數(shù)電實(shí)驗(yàn)指導(dǎo)書_第1頁
數(shù)電實(shí)驗(yàn)指導(dǎo)書_第2頁
數(shù)電實(shí)驗(yàn)指導(dǎo)書_第3頁
數(shù)電實(shí)驗(yàn)指導(dǎo)書_第4頁
數(shù)電實(shí)驗(yàn)指導(dǎo)書_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、數(shù)字電子技術(shù)實(shí)驗(yàn)指導(dǎo)書江蘇科技大學(xué)電子信息學(xué)院目 錄實(shí)驗(yàn)一 基本邏輯門器件功能與參數(shù)測試2實(shí)驗(yàn)二 組合邏輯電路的分析與設(shè)計7實(shí)驗(yàn)三 基于CPLD/FPGA的組合邏輯電路設(shè)計11實(shí)驗(yàn)四 基于CPLD/FPGA的時序邏輯電路設(shè)計18實(shí)驗(yàn)五 狀態(tài)機(jī)初步23實(shí)驗(yàn)六 音樂播放電路29實(shí)驗(yàn)七 電子秒表設(shè)計35附錄(一)常用電路的Verilog實(shí)現(xiàn)范例37附錄(二)QuartusII 使用簡明教程46附錄(三)部分集成電路引腳排列57實(shí)驗(yàn)一 基本邏輯門器件功能與參數(shù)測試一、 實(shí)驗(yàn)?zāi)康?. 掌握集成邏輯門基本的功能。2. 掌握數(shù)字器件主要參數(shù)的測試方法。二、 實(shí)驗(yàn)設(shè)備及器件1. EEEC-010B實(shí)驗(yàn)箱2.

2、74LS00 四二輸入與非門3. 74HC00四二輸入與非門4. 74LS02 四二輸入或非門5. 74LS86 四二輸入異或門6. 74LS125 三態(tài)緩沖器(三態(tài)門)三、 實(shí)驗(yàn)內(nèi)容及步驟為了測試們電路的邏輯功能,門電路的輸入端應(yīng)接相應(yīng)的電平信號(利用實(shí)驗(yàn)箱上的撥動開關(guān),輸入高/低電平),輸出接LED發(fā)光管顯示輸出電平狀態(tài)(利用實(shí)驗(yàn)箱提供紅、黃、綠三種色彩的LED發(fā)光管,做輸出顯示,注意該實(shí)驗(yàn)箱LED顯示部分,高電平驅(qū)動LED點(diǎn)亮,低電平驅(qū)動LED熄滅)。1. 與非門邏輯功能測試用74LS00(四二輸入與非門)進(jìn)行實(shí)驗(yàn),引腳圖如圖1-1所示,按照圖1-2所示接線圖1-1圖1-2根據(jù)表1-1,

3、改變輸入端A、B的電平狀態(tài),觀測輸出顯示并將結(jié)果填入表中,將實(shí)驗(yàn)實(shí)測結(jié)果與理論結(jié)果對比給出結(jié)論。表1-1 74LS00測試表輸入輸出YAB理論值實(shí)測值000110112. 或非門邏輯功能測試用74LS02(四二輸入或非門)進(jìn)行實(shí)驗(yàn),引腳圖如圖1-3所示,按照圖1-4所示接線圖1-3圖1-4根據(jù)表1-2,改變輸入端A、B的電平狀態(tài),觀測輸出顯示并將結(jié)果填入表中,將實(shí)驗(yàn)實(shí)測結(jié)果與理論結(jié)果對比給出結(jié)論。表1-2 74LS02測試表輸入輸出YAB理論值實(shí)測值000110113. 異或門邏輯功能測試用74LS86(四二輸入異或門)進(jìn)行實(shí)驗(yàn),引腳圖如圖1-5所示,按照圖1-6所示接線, 圖1-5圖1-6根

4、據(jù)表1-3,改變輸入端A、B的電平狀態(tài),觀測輸出顯示并將結(jié)果填入表中,將實(shí)驗(yàn)實(shí)測結(jié)果與理論結(jié)果對比給出結(jié)論。表1-3 74LS86測試表輸入輸出YAB理論值實(shí)測值000110114. *三態(tài)門邏輯功能測試A.用74LS125(三態(tài)門)進(jìn)行功能驗(yàn)證實(shí)驗(yàn),引腳圖如圖1-7所示,按照圖1-8所示接線,注意將輸出接到邏輯筆觀測輸出狀態(tài)圖1-7 圖1-8根據(jù)表1-4,改變輸入端D、EN的電平狀態(tài),觀測輸出顯示并將結(jié)果填入表中,將實(shí)驗(yàn)實(shí)測結(jié)果與理論結(jié)果對比給出結(jié)論。表1-4 74LS125測試表輸入輸出YAEN理論值實(shí)測值000110115. *三態(tài)門應(yīng)用按照圖1-9接線,二個三態(tài)門輸出端并在一起,其中一

5、個三態(tài)門輸入端D接方波(約2HZ),另一個輸入端D接高電平“1” ,二個使能端EN中一個接1,一個接0(不能同時為0),輸出接邏輯筆,觀測輸出顯示并將結(jié)果填入表中,將實(shí)驗(yàn)實(shí)測結(jié)果與理論結(jié)果對比給出結(jié)論。 圖1-9表1-5 74LS125測試表輸入輸出YA10A2EN1EN2理論值實(shí)測值6. TTL和CMOS器件電壓傳輸特性測試用74LS00和74HC00,進(jìn)行數(shù)字器件電壓傳輸特性測試,按照圖1-10所示,連接線路按照表1-6要求在輸入端輸入不同的電壓值,觀測門電路輸出的對應(yīng)電壓值,并記錄在表1-6中,完成該表格后,根據(jù)表格數(shù)據(jù)繪制輸入輸出電壓曲線。圖1-10表1-6 數(shù)字器件電壓傳輸特性測試輸

6、入電壓(V)輸出電壓(V)74LS0074HC0000.40.81.01.21.41.61.82.02.22.42.62.83.03.23.43.63.84.04.55.0四、 預(yù)習(xí)要求1. 復(fù)習(xí)數(shù)字基本門電路的工作原理。2. 熟悉實(shí)驗(yàn)用數(shù)字器件的引腳排列。3. 根據(jù)提供的實(shí)驗(yàn)原理圖,設(shè)計實(shí)驗(yàn)接線圖。4. 畫好實(shí)驗(yàn)測試用表格。五、 實(shí)驗(yàn)要求1. 畫出測試電路原理圖,并將實(shí)驗(yàn)結(jié)果填入相應(yīng)表格。2. 分析根門電路功能。3. 根據(jù)要求繪制特性曲線。4. 獨(dú)立完成實(shí)驗(yàn),按時提交實(shí)驗(yàn)報告。實(shí)驗(yàn)二 組合邏輯電路的分析與設(shè)計一、 實(shí)驗(yàn)?zāi)康?. 了解74系列典型組合邏輯集成電路的功能。2. 掌握在Quartu

7、s平臺環(huán)境下利用原理圖輸入法,并完成簡單組合電路的設(shè)計3. 掌握在Quartus平臺環(huán)境下進(jìn)行電路綜合、電路仿真、目標(biāo)器件下載的基本步驟和方法二、 實(shí)驗(yàn)設(shè)備及器件1. EEEC-010B實(shí)驗(yàn)箱2. 74LS138 三線-八線譯碼器3. FPGA 、CYCLONE EP1C3T144C8三、 實(shí)驗(yàn)內(nèi)容及步驟組合邏輯電路的分析方法:組合邏輯電路的邏輯功能特點(diǎn)是任意時刻的穩(wěn)定輸出狀態(tài),只決定于該時刻輸入信號的狀態(tài),而與輸入信號作用前電路原來所處的狀態(tài)無關(guān)。組合邏輯電路的結(jié)構(gòu)特點(diǎn)是邏輯電路全部由門電路組成,電路中沒有記憶單元,而且由輸出到各級門的輸入之間也無任何反饋線。組合邏輯電路的設(shè)計也稱為組合邏輯

8、電路的綜合,就是根據(jù)給定的實(shí)際的邏輯命題,求出實(shí)現(xiàn)其邏輯功能的邏輯電路。根據(jù)邏輯電路圖,分級寫出函數(shù)表達(dá)式。組合邏輯電路的設(shè)計方法:步驟:給定邏輯電路輸出邏輯函數(shù)式一般從輸入端向輸出端逐級寫出各個門輸出對其輸入的邏輯表達(dá)式,從而寫出整個邏輯電路的輸出對輸入變量的邏輯函數(shù)式。必要時,可進(jìn)行化簡,求出最簡輸出邏輯函數(shù)式。列真值表將輸入變量的狀態(tài)以自然二進(jìn)制數(shù)順序的各種取值組合代入輸出邏輯函數(shù)式,求出相應(yīng)的輸出狀態(tài),并填入表中,即得真值表。分析邏輯功能通常通過分析真值表的特點(diǎn)來說明電路的邏輯功能。采用互補(bǔ)輸入,與門,或門完成電路的電路圖的設(shè)計使用原理圖輸入方法,在QUARTUSII平臺下,完成設(shè)計輸

9、入編譯,觀察RTL級電路仿真,驗(yàn)證電路的功能和速度。下載,完成硬體測試。實(shí)驗(yàn)內(nèi)容 組合邏輯電路設(shè)計 舉例:血型合格鑒定電路人類有四種基本血型:A,B,AB,和O。要求輸血者和受血者的血型必需符合下述原則:O型血可以輸給任意血型的人,但O型血的人只能接受O型的血;AB型血只能輸給AB血型的人,但AB型血的人能接受所有血型的血;A型血能輸給A型血和AB型血的人,而A型血的人只能接受A型血和O型血;B型血能輸給B型血和AB型血的人,而B型血的人只能接受B型血和O型血。以MN代表輸血者血型,PQ代表受血者血型,L代表配對結(jié)果,血型進(jìn)行編碼: 00代表O型血, 01代表A型血, 10代表B型血, 11代

10、表AB型血,將血型編碼帶入真值表得出表2-1表2-1獻(xiàn)血者 MN受血者 PQ配對結(jié)果 L00001000110010100111010000101101100011111000010010101011011111000110101110011111 將真值表化簡得到表達(dá)式可得表達(dá)式根據(jù)表達(dá)式繪制出邏輯電圖,并在去Quartus平臺上利用原理圖輸入法,設(shè)計電路,并進(jìn)行綜合和仿真,將邏輯電路圖仿真波形記錄到報告中1. 設(shè)計一個8421碼和2421碼相互轉(zhuǎn)換的邏輯電路。設(shè)計一個如表2-2所示的8421碼和2421碼相互轉(zhuǎn)換的邏輯電路。 表2-2 8421碼A B C D 2421碼E F G H84

11、21碼A B C D 2421碼E F G H0 0 0 00 0 0 00 1 0 11 0 1 1 0 0 0 10 0 0 10 1 1 01 1 0 00 0 1 00 0 1 00 1 1 11 1 0 10 0 1 10 0 1 11 0 0 01 1 1 00 1 0 00 1 0 01 0 0 11 1 1 1根據(jù)真值表得出輸出變量EFGH各自與輸入變量ABCD之間的關(guān)系表達(dá)式,然后根據(jù)表達(dá)式繪制出邏輯電圖,并在去Quartus平臺上利用原理圖輸入法,設(shè)計電路,并進(jìn)行綜合和仿真,將邏輯電路圖仿真波形記錄到報告中2. 2位二進(jìn)制乘法器設(shè)計及驗(yàn)證 輸入A1A0和B1B0兩個兩位二進(jìn)

12、制信號,輸出為二者的乘積F0F1F2F3,為四位二進(jìn)制數(shù),通過LED發(fā)光管或者LED數(shù)碼管顯示結(jié)果。具體電路形式不限。請按照設(shè)計流程設(shè)計出邏輯電圖,并在Quartus平臺上利用原理圖輸入法,編輯設(shè)計電路,并進(jìn)行綜合和仿真,將邏輯電路圖仿真波形記錄到報告中以上兩個實(shí)驗(yàn)項(xiàng)目,根據(jù)教師要求進(jìn)行下載測試驗(yàn)證。四、 預(yù)習(xí)要求1. 復(fù)習(xí)數(shù)字基本門電路的工作原理。2. 熟悉實(shí)驗(yàn)用數(shù)字器件的引腳排列。3. 復(fù)習(xí)實(shí)驗(yàn)所用電路的邏輯功能和使用方法。4. 根據(jù)所指定的設(shè)計題目按正規(guī)設(shè)計步驟寫出真值表、輸出函數(shù)表達(dá)式、電路圖5. 完成預(yù)習(xí)報告。五、 實(shí)驗(yàn)要求1. 畫出測試電路原理圖,并將實(shí)驗(yàn)結(jié)果填入相應(yīng)表格。2. 分

13、析根門電路功能。3. 獨(dú)立完成實(shí)驗(yàn),按時提交實(shí)驗(yàn)報告。實(shí)驗(yàn)三 基于CPLD/FPGA的組合邏輯電路設(shè)計一、 實(shí)驗(yàn)?zāi)康?熟悉Verilog硬件描述語言,并利用Verilog硬件描述語言設(shè)計組合邏輯電路。 2進(jìn)一步加深學(xué)習(xí)QUARTUSII平臺完成數(shù)字系統(tǒng)設(shè)計的流程和方法。二、 實(shí)驗(yàn)設(shè)備及器件1QUARTUSII 7.2軟件平臺 2FPGA 、CYCLONE EP1C3T144C8三、 實(shí)驗(yàn)內(nèi)容及步驟硬件描述語言Verilog類似于高級程序設(shè)計語言(例如C語言),它是一種以文本形式來描述數(shù)字系統(tǒng)硬件的結(jié)構(gòu)和行為的語言,用它可以表示邏輯圖、邏輯表達(dá)式,還可以表示更復(fù)雜的數(shù)字邏輯系統(tǒng)所完成的邏輯功能。

14、計算機(jī)對就、硬件描述語言的處理包括:邏輯仿真和邏輯綜合。有關(guān)Verilog的基本語法規(guī)則和程序結(jié)構(gòu)請復(fù)習(xí)教科書“電子技術(shù)基礎(chǔ)-數(shù)字部分(第五版)”第二章的相關(guān)內(nèi)容。1.Verilog語言基本描述方式對于一個數(shù)字電路采用硬件描述語言來描述,主要可采用結(jié)構(gòu)描述、數(shù)據(jù)流描述和行為描述這三種方式。下面以二選一數(shù)據(jù)選擇器為描述目標(biāo),分別采用上述三種方式進(jìn)行描述,請大家比較和分析三種方式的特點(diǎn)。圖4-1給出了由門電路構(gòu)成的二選一數(shù)據(jù)選擇器的電路圖,圖4-1結(jié)構(gòu)描述方式:-例4-1module mux21a (out ,a,b,sel); /模塊聲明intput a,b,sel; /定義輸入信號output

15、 out; /定義輸出信號not u1 (nsl, sel); /Verilog 保留關(guān)鍵字and u2 (sela, a, nsl);/嚴(yán)格按照 接口的順序and u3 (selb, b, sel);or u4 (out, sela, selb);endmodule-表4-1中顯示出 Verilog語言中已定義了常用的基本的12種門級元件,程序中可直接調(diào)用元件名稱功能描述元件名稱功能描述and多輸入端與門nand多輸入端與非門or多輸入端或門nor多輸入端或非門xor多輸入端異或門nxor 多輸入端異或非門buf多輸入端緩沖器not多輸入端反相器緩沖器bufif1高電平有效三態(tài)緩沖器noti

16、f1高電平有效三態(tài)反相器bufif0低電平有效三態(tài)緩沖器notif0低電平有效三態(tài)反相器數(shù)據(jù)流描述方法:例4-2module mux21a (out ,a, b ,sel) ;intput a,b,sel;/定義信號方向output out; /wire nsl,sela,selb; /內(nèi)部變量 相當(dāng)于內(nèi)部導(dǎo)線(線網(wǎng)類型)assign nsl= sel;assign sela=a & nsl;assign selb=b & sel;assign out=sela | selb;endmodule-程序中端口信號的方向有INPUT、OUTPUT和INOUT三種類型,分別表示輸入信

17、號、輸出信號和輸入輸出雙向信號,assign賦值語句 用來對wire變量進(jìn)行賦值,描述組合邏輯電路。行為描述方法-例4-3module mux21a (out ,a, b ,sel) ;intput a,b,sel;output out;reg out;/寄存器類型(只能在initial和always中賦值)always (sel or a or b)if(!sel)out=a; /是不是有點(diǎn)象C語言的樣子?else out=b;endmodule-注意體會wire和reg之間的區(qū)別。,當(dāng)信號不指定類型,系統(tǒng)就默認(rèn)為1位wire類型。專門指定出wire類型,可能是多位或?yàn)槭钩绦蛞鬃x。wire只

18、能被assign連續(xù)賦值,reg只能在initial和always中賦值。wire使用在連續(xù)賦值語句中,而reg使用在過程賦值語句中2. Verilog 基本結(jié)構(gòu)語句² 條件語句(if-else)條件語句必須在initial或always過程塊語句引導(dǎo)的begin end塊語句中編寫。Initial 初始化過程塊語句,module中可以含有多個initial過程塊,但是initial過程塊在程序中只被執(zhí)行一次,主要用于進(jìn)行初始化變量等工作。Always 過程語句 一般以always(敏感條件)句式出現(xiàn),只要敏感條件滿足,有always引導(dǎo)的過程塊可以反復(fù)運(yùn)行,程序主體一般都有alwa

19、ys過程塊構(gòu)成2線-4線譯碼器(if條件語句實(shí)現(xiàn))例4-4module decode(y,a);input1:0 a;output3:0 y;reg3:0 y;always (a)beginif (a=0) y<=4b1110;else if (a=1) y<=4b1101;else if (a=2) y<=4b1011;else y<=4b0111;endendmodule² 多分支選擇語句 case² 語法格式:case (表達(dá)式)<選擇值或標(biāo)識符1>: 執(zhí)行語句;; 執(zhí)行語句;<選擇值或標(biāo)識符2>: 執(zhí)行語句;; 執(zhí)行語

20、句;<選擇值或標(biāo)識符3>: 執(zhí)行語句;; 執(zhí)行語句;<默認(rèn)值>: 執(zhí)行語句;; 執(zhí)行語句;endcase 2線-4線譯碼器 (case多分枝選擇語句實(shí)現(xiàn))例4-5module decode(y,a);input1:0 a;output3:0 y;reg3:0 y;always (a)begincase(a)2d0:y<=4b1110;2d1:y<=4b1101;2d2:y<=4b1011;2d3:y<=4b0111;Endcaseendendmodule3.常見組合邏輯電路的verilog設(shè)計方法 基本邏輯運(yùn)算的實(shí)現(xiàn)例4-6 module gat

21、e4( IN0,IN1,OUT0 ,OUT1,OUT2,OUT3 );input IN0 ,IN1 ;output OUT0 ,OUT1,OUT2,OUT3 ; assign OUT0 = IN0&IN1;/信號賦值語句(assign)assign OUT1 = IN0|IN1; /邏輯運(yùn)算符 (&,|,)assign OUT2 = IN0; assign OUT3 = IN0IN1; /兩目運(yùn)算符endmodule 雙向端口三態(tài)總線電路的設(shè)計) module tri_2( outp,ina ,en ); input ina ,en; output outp ; assign

22、outp= en?ina:b'z; / 條件賦值語句 endmodule /相當(dāng)于如果(en=1)為真/則outp=ina, /否則outp=z 數(shù)字比較器 module compare( a ,b ,c );input a ,b ;output c ; assign c=(a=b)?a:b;/相當(dāng)于如果(a=b)條件為真,/c=a,否則c=b。endmodule 全加器的設(shè)計 module adder8( cout ,sum ,ain,bin,cin );input7:0 ain,bin;input cin ;output cout ; output7:0 sum ;assign c

23、out,sum=ain+bin+cin; / 信號合并 , endmodule 8421碼轉(zhuǎn)換成5421碼module bin2bcd (data_in ,data_out);input 3:0 data_in ; output 3:0 data_out ;reg 3:0 data_out ;always (data_in )begin case (data_in 3:0) 4'b0000 : data_out 3:0 = 4'b0000;4'b0001 : data_out 3:0 =4'b0001;4'b0010 : data_out 3:0 = 4

24、'b0010;4'b0011 : data_out 3:0 = 4'b0011;4'b0100 : data_out 3:0 = 4'b0100;4'b0101 : data_out 3:0 = 4'b1000;4'b0110 : data_out 3:0 = 4'b1001;4'b0111 : data_out 3:0 = 4'b1010;4'b1000 : data_out 3:0 = 4'b1011;4'b1001 : data_out 3:0 = 4'b1100; d

25、efault : data_out 3:0 = 41'b0;/ endcaseendendmodule4.實(shí)驗(yàn)題目 用Verilog語言編寫實(shí)現(xiàn)下列器件功能的程序并進(jìn)行編譯、波形仿真。1. 4位全加器的設(shè)計2. BCD-7段LED譯碼器(用if 語句或case語句設(shè)計) 3. 設(shè)計一個7位奇偶校驗(yàn)電路(case語句)4. 數(shù)字比較器,設(shè)計4位二進(jìn)制數(shù)字比較器(if 語句) *5.設(shè)計一個四位三態(tài)門總線緩沖器*6.設(shè)計一個具有算術(shù)運(yùn)算和邏輯運(yùn)算的8位ALU(加、減、乘、與、或、異或)四、 預(yù)習(xí)要求1. 復(fù)習(xí)Verilog語言的基本知識。2. 預(yù)習(xí)常見數(shù)字單元電路Verilog描述方法3.

26、 設(shè)計好實(shí)驗(yàn)要求的相關(guān)程序五、 實(shí)驗(yàn)報告1寫出實(shí)驗(yàn)電路的源程序。2記錄實(shí)驗(yàn)數(shù)據(jù)、仿真結(jié)果。 3總結(jié)實(shí)驗(yàn)體會及實(shí)驗(yàn)收獲。實(shí)驗(yàn)四 基于CPLD/FPGA的時序邏輯電路設(shè)計一、 實(shí)驗(yàn)?zāi)康?學(xué)習(xí)任意進(jìn)制計數(shù)器的設(shè)計、分析和測試方法 2學(xué)習(xí)數(shù)控分頻器的設(shè)計、分析和測試方法3學(xué)習(xí)通用定時計數(shù)器的設(shè)計、分析和測試方法 4學(xué)習(xí)通用PWM控制器的設(shè)計、分析和測試方法二、 實(shí)驗(yàn)器件1QUARTUSII 7.2軟件平臺 2FPGA 、CYCLONE EP1C3T144C8三、 實(shí)驗(yàn)內(nèi)容及步驟1. 基本計數(shù)器的設(shè)計基本原理十進(jìn)制計數(shù)器的設(shè)計(異步清零) 例6-1 module CNT10 (CLK ,ENABLE ,

27、RESET , FULL ,Q) input CLK ,ENABLE ,RESET ;output FULL ;output 3:0 Q ;reg 3:0 QINT; always (posedge RESET OR posedge CLK )beginif (RESET)QINT<=4'B0000;else if(ENABLE)begin if (QINT= 9)QINT<=4'B0000;else QINT<=QINT+4'B1; endendassign Q=QINT; assign FULL=(QINT= 9)?1'B1:1'B

28、0;endmodule2. 數(shù)控分頻器的設(shè)計原理:數(shù)控分頻器的功能就是當(dāng)在輸入端給定不同輸入數(shù)據(jù)時,將對輸入的時鐘信號有不同的分頻比.,數(shù)控分頻器可以用計數(shù)值可并行預(yù)置的加法計數(shù)器設(shè)計完成的。例6-2module div (clk,d,fout);input clk;input7:0 d;output fout;reg fout,full;reg7:0 cnt;/=/實(shí)現(xiàn)可變進(jìn)制計數(shù)器,產(chǎn)生full作為進(jìn)位信號/=always (posedge clk);begin if (cnt= = 8b11111111) begin cnt<=d; /當(dāng)計滿時,cnt預(yù)置初值 full <=

29、 1; /溢出標(biāo)志信號FULL置1 end; else begin cnt<=cnt + 1;/ 否則繼續(xù)作加1計數(shù) full <=0; / 溢出標(biāo)志信號FULL置0 end end /=/ 此時的full信號的占空比為1/cnt ,需要引入D觸發(fā)器,使輸出的信號占空比為/ 調(diào)整為1/2,即50%- always (posedge full) begin fout<=fout; end end module3. 16位定時/計數(shù)器的設(shè)計設(shè)計原理:如圖6-1所示,該設(shè)計模型要求,主要前面學(xué)過的四選一多路選擇器、可變分頻器和16位計數(shù)器組合而成,其中采用四選一多路選擇器完成輸入信

30、號的選擇。采用可變分頻器對所選擇的信號進(jìn)行預(yù)分頻,器分頻輸出信號頻率分別為輸入信號頻率的2/4/8分頻,分頻后的信號進(jìn)入16進(jìn)制計數(shù)器進(jìn)行計數(shù)圖6-1 16位定時/計數(shù)器框圖(4)頻率和占空比可調(diào)PWM的設(shè)計原理:設(shè)計原理:采用分頻器,計數(shù)器和比較器進(jìn)行組合完成PWM模塊的設(shè)計,根據(jù)要求設(shè)計模型要求。 (1)分頻器:采用數(shù)控分頻器完成頻率可調(diào)。若輸入信號為20MHZ,要求PWM輸出信號頻率為1000HZ 最大計數(shù)結(jié)果等于20000000/(256X1000)=78故選用計數(shù)長度為8位(256), 預(yù)置初值為255-78=177。 (2)計數(shù)器:采用8位計數(shù)器對頻率可調(diào)信號進(jìn)行計數(shù),脈寬分辨率為

31、1/28即1/256。 (3)比較器:其計數(shù)結(jié)果與占空比調(diào)整字相比較,若計數(shù)器值大于調(diào)整字,輸出為1,否則輸出為0.改變調(diào)整字大小,改變了輸出信號的脈寬. 圖6-2 PWM模塊結(jié)構(gòu)框圖實(shí)驗(yàn)項(xiàng)目用Verilog語言編寫實(shí)現(xiàn)下列器件功能的程序并進(jìn)行編譯、波形仿真,下載測試。1. N進(jìn)制加法計數(shù)器設(shè)計(N=學(xué)號+5)2. 16位數(shù)控分頻器的設(shè)計 3. *16位定時/計數(shù)器的設(shè)計4. *頻率和占空比可調(diào)PWM的設(shè)計四、 預(yù)習(xí)要求1復(fù)習(xí)Verilog語言的基本知識。2預(yù)習(xí)并熟計數(shù)器、分頻器、數(shù)字比較器,多路選擇器的Verilog的描述方法3設(shè)計好實(shí)驗(yàn)要求的相關(guān)程序五、 實(shí)驗(yàn)報告1寫出實(shí)驗(yàn)電路的源程序。2

32、記錄實(shí)驗(yàn)數(shù)據(jù)、仿真結(jié)果。 3總結(jié)實(shí)驗(yàn)體會及實(shí)驗(yàn)收獲。實(shí)驗(yàn)五 狀態(tài)機(jī)初步 一、 實(shí)驗(yàn)?zāi)康?1. 對有限狀態(tài)機(jī)(FSM)做初步了解。 2. 掌握利用狀態(tài)機(jī)設(shè)計時序邏輯電路的方法二、 實(shí)驗(yàn)器件1QUARTUSII 7.2軟件平臺 2FPGA 、CYCLONE EP1C3T144C8三、 實(shí)驗(yàn)內(nèi)容及步驟1. 狀態(tài)機(jī)基本結(jié)構(gòu)有限狀態(tài)機(jī)是由寄存器組和組合邏輯構(gòu)成的硬件時序電路,其狀態(tài)(即由寄存器組的1和0的組合狀態(tài)所構(gòu)成的有限個狀態(tài))只可能在同一時鐘跳變沿的情況下才能從一個狀態(tài)轉(zhuǎn)向另一個狀態(tài),究竟轉(zhuǎn)向哪一狀態(tài)還是留在原狀態(tài)不但取決于各個輸入值,還取決于當(dāng)前所在狀態(tài)。有限狀態(tài)機(jī)有兩種基本類型:米利(Meal

33、y)機(jī)和摩爾(Moore)機(jī):米利機(jī)的下一狀態(tài)和輸出取決于當(dāng)前狀態(tài)和當(dāng)前輸入;圖6-1 米利型狀態(tài)機(jī)框圖摩爾機(jī)的下一狀態(tài)取決于當(dāng)前狀態(tài)和當(dāng)前輸入,但其輸出僅取決于當(dāng)前狀態(tài)。圖6-21 摩爾型狀態(tài)機(jī)框圖這兩類有限狀態(tài)機(jī)的下一狀態(tài)和輸出都是由組合邏輯電路形成的。 設(shè)計狀態(tài)機(jī)的要點(diǎn)第一,狀態(tài)機(jī)要安全,是指FSM不會進(jìn)入死循環(huán),特別是不會進(jìn)入非預(yù)知的狀態(tài),而且由于某些擾動進(jìn)入非設(shè)計狀態(tài),也能很快的恢復(fù)到正常的狀態(tài)循環(huán)中來。第二,狀態(tài)機(jī)的設(shè)計要滿足設(shè)計的面積和速度的要求。第三,狀態(tài)機(jī)的設(shè)計要清晰易懂、易維護(hù)。2. 狀態(tài)機(jī)描述方法狀態(tài)機(jī)描述的主要有三種方法: 一段式:整個狀態(tài)機(jī)寫到一個always模塊里面

34、,在該模塊中既描述狀態(tài)轉(zhuǎn)移,又描述狀態(tài)的輸入和輸出。 二段式:用兩個always模塊來描述狀態(tài)機(jī),其中一個always模塊采用同步時序描述狀態(tài)轉(zhuǎn)移;另一個模塊采用組合邏輯判斷狀態(tài)轉(zhuǎn)移條件,描述狀態(tài)轉(zhuǎn)移規(guī)律以及輸出。 三段式:在兩個always模塊描述方法基礎(chǔ)上,增加第三個always模塊。其中一個always模塊采用同步時序描述狀態(tài)轉(zhuǎn)移,一個always采用組合邏輯判斷狀態(tài)轉(zhuǎn)移條件,描述狀態(tài)轉(zhuǎn)移規(guī)律,另一個always模塊描述狀態(tài)輸出。在學(xué)習(xí)過程中,建議大家按照標(biāo)準(zhǔn)的三段式描述方式設(shè)計狀態(tài)機(jī)在此我們以序列檢測器為例,研究如何使用Verilog語言用狀態(tài)機(jī)模型設(shè)計一個能夠檢測輸入序列中10010

35、序列的序列檢測器首先根據(jù)檢測10010序列的要求,繪制出狀態(tài)轉(zhuǎn)換圖,從而確定狀態(tài)機(jī)的狀態(tài)個數(shù)。圖6-3 序列檢測器狀態(tài)轉(zhuǎn)換圖例:6-1 序列檢測器程序/=/ 定義模塊,定義狀態(tài)變量 ,定義符號狀態(tài)值/=module seqdet(nrst,clk,x,z); input nrst,clk; input x; output z; reg z; reg 4:0CS,NS; / CS:初態(tài) ,NS:次態(tài)parameter 4:0 IDLE=5'b00000 , A=5'b00001 , B=5'b00010 ,C=5'b00100 , D=5'b01000 ,

36、E=5'b10000 ; /定義符號狀態(tài)值/=/*第一個always 描述狀態(tài)機(jī)初始化和狀態(tài)的翻轉(zhuǎn)*/=always (posedge clk or negedge nrst) begin if(!nrst) CS <= IDLE; else CS <= NS; /現(xiàn)態(tài)到次態(tài)翻轉(zhuǎn) end/=/*第二個always 描述狀態(tài)機(jī)根據(jù)當(dāng)前狀態(tài)和輸入情況確定次態(tài)*/=always (nrst or CS or x)begin case(CS) IDLE: begin /初始空閑狀態(tài) if(x=1) NS<=A;else NS<=IDLE; end/-A: begin /

37、A 狀態(tài)if(x=0) NS<=B; else NS<=A;end/-B: beginif(x=0) NS<=C;elseNS<=A;end/- C: beginif(x=1)NS<=D; else NS<=IDLE;end/-D:beginif(x=0) NS<=E; else NS<=A; end/-E:beginif(x=0) NS<=C; else NS<=A;End/-default:NS<=IDLE;endcaseend/=/*第三個always 描述狀態(tài)機(jī)輸出*/=always (posedge clk or ne

38、gedge nrst)beginif (!nrst) z<=1'b0;else begincase(NS) IDLE,A,B,C,D: z<=0; E: z<=1;default: z<=0; endcase endendendmodule/=圖6-4狀態(tài)序列檢測其仿真圖實(shí)驗(yàn)項(xiàng)目用Verilog語言編寫實(shí)現(xiàn)下列器件功能的程序并進(jìn)行編譯、波形仿真,下載測試。1. 設(shè)計一個11011的序列檢測器,.檢測到11011序列后,輸出高電平,序列中數(shù)值不可重疊檢測。2. 設(shè)計一個11011的序列檢測器,.檢測到11011序列后,輸出高電平,序列中數(shù)值可重疊檢測。四、 預(yù)習(xí)要

39、求1. 復(fù)習(xí)Verilog語言的基本知識。2. 預(yù)習(xí)狀態(tài)機(jī)的基本結(jié)構(gòu)和Verilog的描述方法3. 預(yù)習(xí)序列檢測器的工作原理 4. 設(shè)計好實(shí)驗(yàn)要求的相關(guān)程序五、 實(shí)驗(yàn)報告1寫出實(shí)驗(yàn)電路的源程序。2記錄實(shí)驗(yàn)數(shù)據(jù)、仿真結(jié)果。 3總結(jié)實(shí)驗(yàn)體會及實(shí)驗(yàn)收獲。實(shí)驗(yàn)六 音樂播放電路一、 實(shí)驗(yàn)?zāi)康?1. 使用CPLD控制蜂鳴器演奏樂曲梁祝中的一段; 2. 初步學(xué)會利用結(jié)構(gòu)建模方法設(shè)計程序; 二、 實(shí)驗(yàn)器件1QUARTUSII 7.2軟件平臺 2FPGA 、CYCLONE EP1C3T144C8三、 實(shí)驗(yàn)內(nèi)容及步驟1.實(shí)驗(yàn)背景知識 樂曲演奏的兩個基本參數(shù)是每個音符的頻率值(音調(diào))及其持續(xù)的時間(音長)。因此只要

40、控制輸出到揚(yáng)聲器的激勵信號的頻率和持續(xù)時間,就可以發(fā)出連續(xù)的音樂聲。 音調(diào)的控制: 頻率的高低決定音調(diào)的高低。簡譜中從低音1到高音1 的每個音名對應(yīng)的頻率如下表所示。表7-1 音名與頻率對照表利用可控分頻器對24M信號進(jìn)行可控分頻,產(chǎn)生不同音名需要的頻率,由于24M信號頻率較高,可以考慮用一個固定分頻器將24M基頻信號進(jìn)行預(yù)分頻,然后在送入可控分頻器,由于可控分頻器的輸出信號占空比很小,需要在后面接入2分頻器,將信號占空比調(diào)整成占空比為50%的信號驅(qū)動揚(yáng)聲器,本實(shí)驗(yàn)要演奏的梁祝。在預(yù)分頻48分頻,后置2分頻整形的前提下,各音階頻率及可控分頻預(yù)置值如表7-2所示。 表7-2節(jié)拍的控制:本例演奏的

41、梁祝片段,最短的音符為四分音符,如果將全音符的持續(xù)時間設(shè)為1s的話,則只需要再提供一個4Hz的時鐘頻率即可產(chǎn)生四分音符的時長。 整個電路可按照圖7-1框圖設(shè)計 圖7-1演奏電路的原理圖框圖 48分頻和4Hz節(jié)拍產(chǎn)生電路自行設(shè)計,先給出主要的電路設(shè)計參考modulesong(clk_500KHz,clk 4Hz,speaker) ; /模塊名稱songinputclk_500KHz,clk 4Hz, outputspeaker; /蜂鳴器輸出端reg speaker; /寄存器reg11:0 divider,origin; reg7:0 counter; reg7:0 note; /音符索引值w

42、ire carry; /=/可控分頻器/=assign carry=(divider=4095); always (posedge clk_500KHz) begin if(carry) divider=origin; else divider=divider+1; end /=/ 二分頻整形/=always (posedge carry)begin speaker=speaker; end /=/由音符索引查可控分頻器預(yù)置值表/=always (posedge clk_4Hz)begincase(note) /分頻比預(yù)置4b0000: origin=16384; /休止4b0001: ori

43、gin=616; /低音 14b0010: origin=773; /低音 24b0011: origin=912; /低音 34b0100: origin=976; /低音 44b0101: origin=1092; /低音54b0110: origin=1197; /低音64b0111: origin=1290; /低音 74b1000: origin=1372; /中音14b1001: origin=1410; /中音24b1010: origin=1480; /中音34b1011: origin=1512; /中音44b1100: origin=1570; /中音54b1101: or

44、igin=1622; /中音64b1110: origin=1668; /中音74b1111: origin=1690; /高音1endcaseend/=/樂譜查找表/=always (posedge clk_4Hz) begin if(counter=63) counter=0; else counter=counter+1; case(counter)0:note=b0011; / 樂譜 低音31:note=b0011; / 樂譜 低音32:note=b0011; / 樂譜 低音33:note=b0011; / 樂譜 低音34:note='b0101; / 樂譜 低音55:note

45、='b0101; / 樂譜 低音5 6:note='b0110; / 樂譜 低音67:note='b1000; / 樂譜 中音18:note='b1000; / 樂譜 中音19:note='b1001; / 樂譜 中音2.60:note='b0100; 61:note='b0100; 62:note='b0100; 63:note='b0100; endcase end endmodule/=實(shí)驗(yàn)項(xiàng)目1. 用Verilog語言編寫實(shí)現(xiàn)音樂播放電路設(shè)計,并進(jìn)行編譯、波形仿真,下載測試。四、 預(yù)習(xí)要求1復(fù)習(xí)Verilog語言的基本知識。2預(yù)習(xí)音樂播放電路的設(shè)計思想及和Verilog的描述方法3. 準(zhǔn)備好實(shí)驗(yàn)樂譜,樂譜長度大于64拍4設(shè)計好實(shí)驗(yàn)要求的相關(guān)程序五、

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論