版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1 蕪湖職業(yè)技術(shù)學(xué)院第第10講講 Verilog HDL綜合設(shè)計(jì)實(shí)踐綜合設(shè)計(jì)實(shí)踐數(shù)字跑表數(shù)字跑表 十字路口交通燈控制器十字路口交通燈控制器樂曲演奏電路樂曲演奏電路自動(dòng)售飲料機(jī)自動(dòng)售飲料機(jī) 實(shí)用多功能數(shù)字鐘實(shí)用多功能數(shù)字鐘計(jì)費(fèi)器計(jì)費(fèi)器 本講通過一些多功能數(shù)字的電路設(shè)計(jì)進(jìn)一步討論基于Verilog的開發(fā)實(shí)踐。這些設(shè)計(jì)實(shí)例經(jīng)常在數(shù)字電路和相關(guān)課程中遇到。還可以把這些設(shè)計(jì)與實(shí)際的實(shí)驗(yàn)開發(fā)裝置相結(jié)合,實(shí)際觀察設(shè)計(jì)效果。2 蕪湖職業(yè)技術(shù)學(xué)院 10.1 數(shù)字跑表 設(shè)計(jì)一個(gè)數(shù)字跑表,該跑表具有復(fù)位、暫停、秒表計(jì)時(shí)等功能。該數(shù)字跑表的結(jié)構(gòu)示意圖為: 首先對(duì)數(shù)字跑表進(jìn)行結(jié)構(gòu)和功能劃分。跑表設(shè)三個(gè)輸入端,分別為時(shí)鐘
2、輸入(CLK)、復(fù)位(CLR)和啟動(dòng)/暫停(PAUSE)按鍵。3 蕪湖職業(yè)技術(shù)學(xué)院 復(fù)位信號(hào)的高電平有效,可對(duì)跑表進(jìn)行異步清零;當(dāng)啟動(dòng)/暫停鍵為低電平時(shí),跑表開始計(jì)時(shí),為高電平時(shí)暫停,變低后在原來的數(shù)值基礎(chǔ)上繼續(xù)計(jì)數(shù)。這兩個(gè)控制信號(hào)的作用如表:表10.1 兩個(gè)控制信號(hào)的作用 為便于顯示,百分秒、秒、和分鐘信號(hào)皆采用BCD碼計(jì)數(shù)方式,并直接輸出到6個(gè)數(shù)碼管顯示出來。4 蕪湖職業(yè)技術(shù)學(xué)院 0 0 0 0 0 0 分鐘 秒 百分秒 5 9 5 9 9 9 分鐘 秒 百分秒分析:當(dāng)百分秒計(jì)數(shù)器加到99時(shí),再加1就會(huì)變?yōu)?,并產(chǎn)生向秒級(jí)進(jìn)位;這時(shí)秒計(jì)數(shù)器加1,當(dāng)秒計(jì)數(shù)器加到59時(shí),再加1就會(huì)變?yōu)?,并產(chǎn)
3、生向分鐘級(jí)進(jìn)位;這時(shí)分鐘計(jì)數(shù)器加1,當(dāng)分鐘計(jì)數(shù)器加到59時(shí),再加1就會(huì)清零。5 蕪湖職業(yè)技術(shù)學(xué)院 5 9 5 9 9 9 分鐘 秒 百分秒24135高 低 高 低高 低具體分析:當(dāng)百分秒計(jì)數(shù)器的低位為9時(shí),再加1變?yōu)?,向百分秒高位進(jìn)位;百分秒高位加1,當(dāng)百分秒高位計(jì)數(shù)到9時(shí),再加1變?yōu)?,向秒計(jì)數(shù)器進(jìn)位;秒計(jì)數(shù)器低位加1,當(dāng)秒低位為9時(shí),再加1變?yōu)?,并向秒高位進(jìn)位;秒高位加1,當(dāng)秒高位計(jì)數(shù)到5時(shí),再加1變?yōu)?,并向分鐘進(jìn)位;分鐘低位加1,當(dāng)分鐘低位為9時(shí),再加1變?yōu)?,并向分鐘高位進(jìn)位;分鐘高位加1,當(dāng)分鐘高位為5時(shí),再加1變?yōu)?。6 蕪湖職業(yè)技術(shù)學(xué)院 根據(jù)分析,可將數(shù)字跑表分成三個(gè)計(jì)時(shí)模
4、塊:百分秒計(jì)時(shí)模塊、秒計(jì)時(shí)模塊、分鐘計(jì)時(shí)模塊。百分秒計(jì)時(shí)依賴時(shí)鐘的上升沿或下降沿進(jìn)行加1計(jì)數(shù);秒計(jì)時(shí)依賴百分秒計(jì)數(shù)到99100那一時(shí)刻進(jìn)行加1計(jì)數(shù);分鐘計(jì)時(shí)依賴秒計(jì)數(shù)到5960那一時(shí)刻進(jìn)行加1計(jì)數(shù)。高 低 1 9高 低2 0高 低 9 9高 低 0 0 百分秒高 低 1 9高 低2 0高 低 5 9高 低 0 0進(jìn)位高 低 1 9高 低2 0高 低 5 9高 低 0 0 秒進(jìn)位 分鐘7 蕪湖職業(yè)技術(shù)學(xué)院信號(hào)定義CLK: 時(shí)鐘信號(hào)CLR : 異步復(fù)位信號(hào)PAUSE: 暫停信號(hào)MSH、MSL:百分秒的高位和低位SH、SL:秒信號(hào)的高位和低位MH、ML:分鐘信號(hào)的高位和低位8 蕪湖職業(yè)技術(shù)學(xué)院9 蕪
5、湖職業(yè)技術(shù)學(xué)院10 蕪湖職業(yè)技術(shù)學(xué)院11 蕪湖職業(yè)技術(shù)學(xué)院綜合后數(shù)字跑表的端口連接示意圖:仿真結(jié)果:12 蕪湖職業(yè)技術(shù)學(xué)院 10.2 交通燈控制器 用Verilog語言設(shè)計(jì)一個(gè)十字路口交通燈控制器,示意圖如下圖所示: A方向和B方向各設(shè)紅(R)、黃(Y)、綠(G)和左拐(L)4盞燈,4種燈按合理的順序亮滅,并能將燈亮的時(shí)間以倒計(jì)時(shí)的形式顯示出來。13 蕪湖職業(yè)技術(shù)學(xué)院功能要求 兩個(gè)方向各種燈亮的時(shí)間能夠進(jìn)行設(shè)置和修改,此外,假設(shè)A方向是主干路,車流量大,因此A方向通行的時(shí)間應(yīng)比B方向長(zhǎng)。 交通燈控制器的狀態(tài)轉(zhuǎn)換表如圖所示: 表中,1表示燈亮,0表示燈滅。A方向和B方向的紅、黃、綠和左拐燈分別用
6、R1、Y1、G1、L1和R2、Y2、G2、L2來表示。14 蕪湖職業(yè)技術(shù)學(xué)院 從狀態(tài)轉(zhuǎn)換表中可以看出,每個(gè)方向4種燈依次按如下順序點(diǎn)亮,并不斷循環(huán):綠燈黃燈左拐燈黃燈紅燈 并且每個(gè)方向紅燈亮的時(shí)間應(yīng)該與另一個(gè)方向綠、黃、左拐、黃燈亮的時(shí)間相等。黃燈所起的作用就是用來在綠燈和左拐燈后進(jìn)行緩沖,以提醒行人該方向馬上要禁行了。設(shè)計(jì)實(shí)現(xiàn)1、設(shè)計(jì)思路 根據(jù)交通燈控制器要實(shí)現(xiàn)的功能,考慮用兩個(gè)并行執(zhí)行的always模塊來分別控制A和B兩個(gè)方向的4盞燈。這兩個(gè)always模塊使用同一個(gè)時(shí)鐘信號(hào),以進(jìn)行同步,也就是說,兩個(gè)進(jìn)程的敏感信號(hào)是同一個(gè)。15 蕪湖職業(yè)技術(shù)學(xué)院 每個(gè)always模塊控制一個(gè)方向的4種燈
7、按如下順序點(diǎn)亮,并往復(fù)循環(huán): 綠燈黃燈左拐燈黃燈紅燈 每種燈亮的時(shí)間采用一個(gè)減法計(jì)數(shù)器進(jìn)行計(jì)數(shù),計(jì)數(shù)器是同步預(yù)置法設(shè)計(jì),這樣只需要改變預(yù)置數(shù)據(jù),就能改變計(jì)數(shù)器的模,因此每個(gè)方向只要一個(gè)計(jì)數(shù)器進(jìn)行計(jì)時(shí)即可。 為便于顯示燈亮的時(shí)間,計(jì)數(shù)器的輸出均采用BCD碼,顯示由4個(gè)數(shù)碼管來完成,A方向和B方向各用兩個(gè)數(shù)碼管。16 蕪湖職業(yè)技術(shù)學(xué)院2、信號(hào)定義CLK: 為同步時(shí)鐘;EN:使能信號(hào),為1時(shí),則控制器開始工作;LAMPA:控制A方向4盞燈的亮滅;其中, LAMPA0 LAMPA3分別控制A方向的左拐燈、綠燈、黃燈和紅燈;LAMPB:控制B方向4盞燈的亮滅;其中, LAMPB0 LAMPB3分別控制B
8、方向的左拐燈、綠燈、黃燈和紅燈;ACOUNT:用于A方向燈的時(shí)間顯示,8位,可驅(qū)動(dòng)兩個(gè)數(shù)碼管;BCOUNT:用于B方向燈的時(shí)間顯示,8位,可驅(qū)動(dòng)兩個(gè)數(shù)碼管; 設(shè)定A方向紅、綠、黃、左拐燈亮的時(shí)間分別為55s、40s、5s和15s,B方向紅、綠、黃、左拐燈亮的時(shí)間分別為:65s、30s、5s和15s。假如要改變這些時(shí)間,只需改變計(jì)數(shù)器的預(yù)置數(shù)即可。17 蕪湖職業(yè)技術(shù)學(xué)院3、代碼實(shí)現(xiàn)18 蕪湖職業(yè)技術(shù)學(xué)院19 蕪湖職業(yè)技術(shù)學(xué)院20 蕪湖職業(yè)技術(shù)學(xué)院21 蕪湖職業(yè)技術(shù)學(xué)院22 蕪湖職業(yè)技術(shù)學(xué)院23 蕪湖職業(yè)技術(shù)學(xué)院 10.3樂曲演奏電路 在本節(jié)中,采用FPGA器件驅(qū)動(dòng)揚(yáng)聲器構(gòu)成一個(gè)樂曲演奏電路。 樂
9、曲演奏原理:組成樂曲的每個(gè)音符的頻率值(音調(diào))及其持續(xù)的時(shí)間(音長(zhǎng))是音樂能連續(xù)演奏所需的兩個(gè)基本數(shù)據(jù),因此只要控制輸出到揚(yáng)聲器的激勵(lì)信號(hào)的頻率的高低和持續(xù)時(shí)間,就可以使揚(yáng)聲器發(fā)出連續(xù)的樂曲聲。24 蕪湖職業(yè)技術(shù)學(xué)院音調(diào)的控制 頻率的高低決定了音調(diào)的高低。音樂的十二平均率規(guī)定:每?jī)蓚€(gè)八度音(如簡(jiǎn)譜中的中音1和高音1)之間的頻率相差一倍。在兩個(gè)八度音之間又可以分為十二個(gè)半音,每?jī)蓚€(gè)半音的頻率比為21/12 。另外,音名A(簡(jiǎn)譜中的低音6)的頻率為440Hz,音名B到C之間、E到F之間為半音,其余為全音。由此可以計(jì)算出簡(jiǎn)譜中從低音1至高音1之間每個(gè)音名對(duì)應(yīng)的頻率。25 蕪湖職業(yè)技術(shù)學(xué)院簡(jiǎn)譜中的音名
10、與頻率的關(guān)系26 蕪湖職業(yè)技術(shù)學(xué)院 所有不同頻率的信號(hào)都是從同一基準(zhǔn)頻率分頻得到的。由于音階頻率多為非整數(shù),而分頻系數(shù)又不能分為小數(shù),因此必須將計(jì)算得到的分頻數(shù)四舍五入取整。若基準(zhǔn)頻率過低,則由于分頻比太小,四舍五入取整后的誤差較大,若基準(zhǔn)頻率過高,雖然誤差變小,但分頻數(shù)將變大。實(shí)際的設(shè)計(jì)應(yīng)綜合考慮這兩個(gè)方面的因素,在盡量減小頻率誤差的前提下取合適的基準(zhǔn)頻率。本例中選取6MHz為基準(zhǔn)頻率。若無6MHz的時(shí)鐘頻率,則可以先分頻得到6MHz或換一個(gè)新的基準(zhǔn)頻率。實(shí)際上,只要各個(gè)音名間的相對(duì)頻率關(guān)系不變,C作1與D作1演奏出的音樂聽起來都不會(huì)“走調(diào)”。27 蕪湖職業(yè)技術(shù)學(xué)院“梁祝”片段曲譜該樂曲各音
11、階頻率及相應(yīng)的分頻比見表:28 蕪湖職業(yè)技術(shù)學(xué)院 為了減小輸出的偶次諧波分量,最后輸出到揚(yáng)聲器的波形應(yīng)為對(duì)稱方波,因此在到達(dá)揚(yáng)聲器之前有一個(gè)二分頻的分頻器。表中的分頻比就是在從6MHz二分頻得到的3MHz頻率基礎(chǔ)上計(jì)算得出的。如果用正弦波代替對(duì)稱方波驅(qū)動(dòng)揚(yáng)聲器將會(huì)有更好的結(jié)果。 從表中可以看出,最大的分頻系數(shù)為9102,故采用14位二進(jìn)制計(jì)數(shù)器分頻可滿足需要。表中,除給出了分頻比之外,還給出了對(duì)應(yīng)于各個(gè)音階頻率時(shí)計(jì)數(shù)器不同的預(yù)置數(shù)。對(duì)于不同的分頻系數(shù),只要加載不同的預(yù)置數(shù)即可。 此外,對(duì)于樂曲中的休止符,只要將分頻系數(shù)設(shè)為0,即初始值為214 -1=16383即可,此時(shí)揚(yáng)聲器將不會(huì)發(fā)聲。29
12、蕪湖職業(yè)技術(shù)學(xué)院音長(zhǎng)的控制 音符的持續(xù)時(shí)間須根據(jù)樂曲的速度及每個(gè)音符的節(jié)拍數(shù)來確定。 梁祝片段音樂中,最短的音符為4分音符,如果將全音符的持續(xù)時(shí)間設(shè)為1s的話,則只需要再提供一個(gè)4Hz的時(shí)鐘頻率即可產(chǎn)生4分音符的時(shí)長(zhǎng)。 樂曲演奏電路的原理框圖為:30 蕪湖職業(yè)技術(shù)學(xué)院 其中,樂譜產(chǎn)生電路用來控制音樂的音調(diào)和音長(zhǎng)。控制音調(diào)通過設(shè)置計(jì)數(shù)器的預(yù)置數(shù)來實(shí)現(xiàn),預(yù)置不同的數(shù)值就可以使計(jì)數(shù)器產(chǎn)生不同頻率的信號(hào),從而產(chǎn)生不同的音調(diào)??刂埔糸L(zhǎng)是通過控制計(jì)數(shù)器預(yù)置數(shù)的停留時(shí)間來實(shí)現(xiàn)的,預(yù)置數(shù)停留的時(shí)間越長(zhǎng),則該音符演奏的時(shí)間也就越長(zhǎng)。每個(gè)音符的演奏時(shí)間都是0.25的整數(shù)倍,對(duì)于節(jié)拍較長(zhǎng)的音符,如2分音符,在記譜時(shí)
13、將該音名連續(xù)記錄兩次即可。 音名顯示電路用來顯示樂曲演奏時(shí)的對(duì)應(yīng)的音符??梢杂?個(gè)數(shù)碼管分別顯示高、中、低音的音名,實(shí)現(xiàn)演奏的動(dòng)態(tài)顯示,十分直觀。 為了使演奏能循環(huán)進(jìn)行,需另外設(shè)置一個(gè)時(shí)長(zhǎng)計(jì)數(shù)器,當(dāng)樂曲演奏完成時(shí),保證自動(dòng)從頭開始演奏。31 蕪湖職業(yè)技術(shù)學(xué)院設(shè)計(jì)實(shí)現(xiàn)1. 信號(hào)定義與說明clk_4Hz :用于控制音長(zhǎng)(節(jié)拍)的時(shí)鐘頻率;clk_6MHz:用于產(chǎn)生各種音階頻率的基準(zhǔn)頻率;speaker:用于激勵(lì)揚(yáng)聲器的輸出信號(hào),本設(shè)計(jì)為方波 信號(hào);high,med,low:分別用于顯示高音、中音、低音音符, 各驅(qū)動(dòng)一個(gè)數(shù)碼管來顯示。32 蕪湖職業(yè)技術(shù)學(xué)院2. 代碼實(shí)現(xiàn)33 蕪湖職業(yè)技術(shù)學(xué)院34 蕪
14、湖職業(yè)技術(shù)學(xué)院35 蕪湖職業(yè)技術(shù)學(xué)院36 蕪湖職業(yè)技術(shù)學(xué)院37 蕪湖職業(yè)技術(shù)學(xué)院38 蕪湖職業(yè)技術(shù)學(xué)院39 蕪湖職業(yè)技術(shù)學(xué)院 10.4 自動(dòng)售飲料機(jī)的設(shè)計(jì) 自動(dòng)售飲料機(jī)是一種典型的利用狀態(tài)機(jī)進(jìn)行電路設(shè)計(jì)的例子。本例采用有限狀態(tài)機(jī)設(shè)計(jì),使用case語句來描述各個(gè)狀態(tài)之間的轉(zhuǎn)移關(guān)系?;貞浺幌耤ase語句的使用。當(dāng)多路選擇的控制條件幾種在某個(gè)變量的變化上時(shí),用case語句加以表達(dá)十分方便且直觀。case語句最適于描述有限狀態(tài)機(jī),比如像CPU的譯碼部分的描述等。case語句的用法:case (敏感信號(hào)表達(dá)式)值1:塊語句1;值2:塊語句2;.值n:塊語句n;default:塊語句n+1;endcase
15、40 蕪湖職業(yè)技術(shù)學(xué)院 當(dāng)case語句中敏感表達(dá)式的值與值1相同時(shí),執(zhí)行塊語句1;當(dāng)敏感信號(hào)表達(dá)式與值2相同時(shí),執(zhí)行表達(dá)式2;依次類推,最后,如果敏感表達(dá)式的值與上面列出的值1到值n都不相同的話,則執(zhí)行default后面的語句塊n+1。值1至值n必須各不相同,一旦判斷與某值相同并執(zhí)行相應(yīng)語句塊后,case語句便告結(jié)束。如果某幾個(gè)連續(xù)排列的值執(zhí)行的是同一條語句,則這幾個(gè)項(xiàng)之間可用逗號(hào)隔開,而將執(zhí)行行語句放在這幾個(gè)項(xiàng)的最后一個(gè)中。 下面用case語句設(shè)計(jì)一個(gè)自動(dòng)售飲料機(jī)。假定每瓶飲料售價(jià)為2.5元,可使用2種幣種,即5角(half_dollar)、1元(one_dollar),機(jī)器有找零功能。41
16、 蕪湖職業(yè)技術(shù)學(xué)院 機(jī)器設(shè)兩個(gè)投幣孔,分別接受1元和5元兩種硬幣,因硬幣識(shí)別裝置牽涉到傳感器,在實(shí)驗(yàn)板上用兩個(gè)按鍵來代替。有兩個(gè)輸入口,分別輸出飲料和找零,還設(shè)兩個(gè)燈,提示用戶取走飲料和零錢,也可用聲音來提醒。另外可設(shè)兩個(gè)數(shù)碼管,用于顯示已投入的幣值。本設(shè)計(jì)中,該顯示模塊省略,如果需要,可自行加上。42 蕪湖職業(yè)技術(shù)學(xué)院設(shè)計(jì)實(shí)現(xiàn)1. 信號(hào)定義與說明clk:時(shí)鐘輸入;reset:系統(tǒng)復(fù)位信號(hào)half_dollar:代表投入5角硬幣one_dollar:代表投入1元硬幣half_out:表示找零信號(hào)dispense:表示機(jī)器售出一瓶飲料collect:該信號(hào)用于提示投幣者取走飲料43 蕪湖職業(yè)技術(shù)學(xué)院2. 代碼實(shí)現(xiàn)44 蕪湖職業(yè)技術(shù)學(xué)院45 蕪湖職業(yè)技術(shù)學(xué)院46 蕪湖職業(yè)技術(shù)學(xué)院 parameter參數(shù)定義
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度消防工程設(shè)計(jì)咨詢與施工監(jiān)理合同4篇
- 2024年度青海省公共營(yíng)養(yǎng)師之二級(jí)營(yíng)養(yǎng)師自我檢測(cè)試卷A卷附答案
- 2024年度陜西省公共營(yíng)養(yǎng)師之四級(jí)營(yíng)養(yǎng)師押題練習(xí)試卷A卷附答案
- 酒店會(huì)議室布局與會(huì)議效率的關(guān)聯(lián)分析
- 教育科技在小學(xué)教育資源均衡分配中的作用
- 二零二五年度代購(gòu)服務(wù)創(chuàng)新研發(fā)合同3篇
- 基于2025年度需求的智慧城市系統(tǒng)集成項(xiàng)目合同3篇
- 2025年度承攬合同范本:航空航天發(fā)動(dòng)機(jī)維修與改造協(xié)議4篇
- 2025年度鉆孔工程進(jìn)度管理承包合同3篇
- 二零二五年度生態(tài)旅游區(qū)承包經(jīng)營(yíng)合同文本4篇
- 2024中考復(fù)習(xí)必背初中英語單詞詞匯表(蘇教譯林版)
- 海員的營(yíng)養(yǎng)-1315醫(yī)學(xué)營(yíng)養(yǎng)霍建穎等講解
- 《現(xiàn)代根管治療術(shù)》課件
- 肩袖損傷的護(hù)理查房課件
- 2023屆北京市順義區(qū)高三二模數(shù)學(xué)試卷
- 公司差旅費(fèi)報(bào)銷單
- 我國(guó)全科醫(yī)生培訓(xùn)模式
- 2021年上海市楊浦區(qū)初三一模語文試卷及參考答案(精校word打印版)
- 八年級(jí)上冊(cè)英語完形填空、閱讀理解100題含參考答案
- 八年級(jí)物理下冊(cè)功率課件
- DBJ51-T 188-2022 預(yù)拌流態(tài)固化土工程應(yīng)用技術(shù)標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論