版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、2014-2015-2-G02A3050-1電子電路設(shè)計(jì)訓(xùn)練(數(shù)字 EDA部分)實(shí)驗(yàn)報(bào)告(2015年5月20日)教學(xué)班學(xué)號(hào)姓名 組長 簽名 成績自動(dòng)化科學(xué)與電氣工程學(xué)院目錄 TOC o 1-5 h z 目 錄 1 HYPERLINK l bookmark2 o Current Document 實(shí)驗(yàn)一、簡單組合邏輯和簡單時(shí)序邏輯 1 HYPERLINK l bookmark4 o Current Document 實(shí)驗(yàn)任務(wù) 1簡單組合邏輯 1 HYPERLINK l bookmark6 o Current Document 實(shí)驗(yàn)要求 1 HYPERLINK l bookmark8 o Curr
2、ent Document 模塊的核心邏輯設(shè)計(jì) 1 HYPERLINK l bookmark10 o Current Document 測(cè)試程序的核心邏輯設(shè)計(jì) 1 HYPERLINK l bookmark12 o Current Document 仿真實(shí)驗(yàn)關(guān)鍵結(jié)果及其解釋 2 HYPERLINK l bookmark14 o Current Document 實(shí)驗(yàn)任務(wù) 2簡單時(shí)序邏輯 3 HYPERLINK l bookmark16 o Current Document 實(shí)驗(yàn)要求 3 HYPERLINK l bookmark18 o Current Document 模塊的核心邏輯設(shè)計(jì) 3 HY
3、PERLINK l bookmark20 o Current Document 測(cè)試程序的核心邏輯設(shè)計(jì) 3 HYPERLINK l bookmark22 o Current Document 仿真實(shí)驗(yàn)關(guān)鍵結(jié)果及其解釋 4 HYPERLINK l bookmark24 o Current Document 實(shí)驗(yàn)小結(jié) 4 HYPERLINK l bookmark26 o Current Document 實(shí)驗(yàn)二、條件語句和 always 過程塊 5 HYPERLINK l bookmark28 o Current Document 實(shí)驗(yàn)任務(wù) 1利用條件語句實(shí)現(xiàn)計(jì)數(shù)分頻時(shí)序電路 5 HYPERLIN
4、K l bookmark30 o Current Document 實(shí)驗(yàn)要求 5 HYPERLINK l bookmark32 o Current Document 模塊的核心邏輯設(shè)計(jì) 5 HYPERLINK l bookmark34 o Current Document 測(cè)試程序的核心邏輯設(shè)計(jì) 6 HYPERLINK l bookmark36 o Current Document 仿真實(shí)驗(yàn)關(guān)鍵結(jié)果及其解釋 7 HYPERLINK l bookmark38 o Current Document 實(shí)驗(yàn)任務(wù) 2用 always 塊實(shí)現(xiàn)較復(fù)雜的組合邏輯電路 8 HYPERLINK l bookmar
5、k40 o Current Document 實(shí)驗(yàn)要求 8 HYPERLINK l bookmark42 o Current Document 模塊的核心邏輯設(shè)計(jì) 8 HYPERLINK l bookmark44 o Current Document 測(cè)試程序的核心邏輯設(shè)計(jì) 9 HYPERLINK l bookmark46 o Current Document 仿真實(shí)驗(yàn)關(guān)鍵結(jié)果及其解釋 10 HYPERLINK l bookmark48 o Current Document 實(shí)驗(yàn)小結(jié) 11 HYPERLINK l bookmark50 o Current Document 實(shí)驗(yàn)三、賦值、函數(shù)和
6、任務(wù) 12 HYPERLINK l bookmark52 o Current Document 實(shí)驗(yàn)任務(wù) 1阻塞賦值與非阻塞賦值的區(qū)別 12 HYPERLINK l bookmark54 o Current Document 實(shí)驗(yàn)要求 12 HYPERLINK l bookmark56 o Current Document 模塊的核心邏輯設(shè)計(jì) 12 HYPERLINK l bookmark58 o Current Document 測(cè)試程序的核心邏輯設(shè)計(jì) 13 HYPERLINK l bookmark60 o Current Document 仿真實(shí)驗(yàn)關(guān)鍵結(jié)果及其解釋 14 HYPERLINK
7、 l bookmark62 o Current Document 實(shí)驗(yàn)任務(wù) 2在 Verilog HDL 中使用函數(shù) 16 HYPERLINK l bookmark64 o Current Document 實(shí)驗(yàn)要求 16 HYPERLINK l bookmark66 o Current Document 模塊的核心邏輯設(shè)計(jì) 16 HYPERLINK l bookmark68 o Current Document 測(cè)試程序的核心邏輯設(shè)計(jì) 18 HYPERLINK l bookmark70 o Current Document 仿真實(shí)驗(yàn)關(guān)鍵結(jié)果及其解釋 19 HYPERLINK l bookma
8、rk72 o Current Document 實(shí)驗(yàn)任務(wù) 3在 Verilog HDL 中使用任務(wù) 20 HYPERLINK l bookmark74 o Current Document 實(shí)驗(yàn)要求 20 HYPERLINK l bookmark76 o Current Document 模塊的核心邏輯設(shè)計(jì) 20 HYPERLINK l bookmark78 o Current Document 測(cè)試程序的核心邏輯設(shè)計(jì) 21 HYPERLINK l bookmark80 o Current Document 仿真實(shí)驗(yàn)關(guān)鍵結(jié)果及其解釋 22 HYPERLINK l bookmark82 o Cu
9、rrent Document 實(shí)驗(yàn)小結(jié) 22 HYPERLINK l bookmark84 o Current Document 實(shí)驗(yàn)四、有限狀態(tài)機(jī) 23 HYPERLINK l bookmark86 o Current Document 實(shí)驗(yàn)任務(wù) 1基于狀態(tài)機(jī)的串行數(shù)據(jù)檢測(cè)器 23 HYPERLINK l bookmark88 o Current Document 實(shí)驗(yàn)要求 23 HYPERLINK l bookmark90 o Current Document 模塊的核心邏輯設(shè)計(jì) 23 HYPERLINK l bookmark92 o Current Document 測(cè)試程序的核心邏輯設(shè)
10、計(jì) 25 HYPERLINK l bookmark94 o Current Document 仿真實(shí)驗(yàn)關(guān)鍵結(jié)果及其解釋 26 HYPERLINK l bookmark96 o Current Document 實(shí)驗(yàn)任務(wù) 2樓梯燈 26 HYPERLINK l bookmark98 o Current Document 實(shí)驗(yàn)要求 26 HYPERLINK l bookmark100 o Current Document 模塊的核心邏輯設(shè)計(jì) 27 HYPERLINK l bookmark102 o Current Document 測(cè)試程序的核心邏輯設(shè)計(jì) 31 HYPERLINK l bookma
11、rk104 o Current Document 仿真實(shí)驗(yàn)關(guān)鍵結(jié)果及其解釋 32 HYPERLINK l bookmark106 o Current Document 實(shí)驗(yàn)小結(jié) 34實(shí)驗(yàn)一、簡單組合邏輯和簡單時(shí)序邏輯1.1實(shí)驗(yàn)任務(wù)1簡單組合邏輯1.1.1實(shí)驗(yàn)要求 設(shè)計(jì)一個(gè)兩位數(shù)據(jù)比較器,比較兩個(gè)數(shù)據(jù)a和b。若兩數(shù)據(jù)相同,則 給出結(jié)果1,否則給出結(jié)果0。設(shè)計(jì)一個(gè)字節(jié)(8位)的比較器,比較兩個(gè)字節(jié)a7:0和b7:0的大小。 若a大于b,貝U輸出高電平,否則輸出低電平。1.1.2模塊的核心邏輯設(shè)計(jì)兩位數(shù)據(jù)比較器assign equal=(a=b)?1:0; /用連續(xù)賦值語句 assign 對(duì)結(jié)果 e
12、qual 賦值,a=b 時(shí),equal輸出為1,否則為0字節(jié)數(shù)據(jù)比較器assignres=(ab)?1:0;/用連續(xù)語句 assign 對(duì)結(jié)果 equal 賦值,ab 時(shí) equal 輸 出為1,否則輸出為01.1.3測(cè)試程序的核心邏輯設(shè)計(jì)(1)兩位數(shù)據(jù)比較器always #50 clock=clock; /產(chǎn)生周期性跳變的時(shí)鐘,50個(gè)時(shí)間單位跳變一次 always( negedgeclock) /always后的語句表示時(shí)序控制,每次時(shí)鐘下降沿 時(shí)刻產(chǎn)生不同的a和bbeg ina=$ra ndom%2;b=$random%2;/每次隨機(jī)產(chǎn)生a和bendin itialbegin #10000
13、0000 $stop; end 系統(tǒng)任務(wù),暫停仿真以觀察波形(2)字節(jié)數(shù)據(jù)比較器/a和b從0255共256個(gè)數(shù)中隨機(jī)產(chǎn)生,即可生成 8a=$ra ndom%256;b=$ra ndom%256;位字節(jié)數(shù)據(jù)1.1.4仿真實(shí)驗(yàn)關(guān)鍵結(jié)果及其解釋(1)兩位數(shù)據(jù)比較器圖1兩位數(shù)據(jù)比較器波形圖如圖1所示,a和b相同時(shí)equal輸出為高電平,否則輸出低電平。(2)字節(jié)數(shù)據(jù)比較器圖2字節(jié)數(shù)據(jù)比較器波形圖如圖2所示,ab時(shí),res輸出高電平,否則res輸出低電平1.2實(shí)驗(yàn)任務(wù)2簡單時(shí)序邏輯1.2.1實(shí)驗(yàn)要求設(shè)計(jì)一個(gè)分頻器,將時(shí)鐘波形二分頻。1.2.2模塊的核心邏輯設(shè)計(jì)always(posedge clk_in)
14、 /always語句后表示時(shí)序控制,每次 clk_in時(shí)鐘上 升沿時(shí)刻進(jìn)行動(dòng)作beg inif(! reset) clk_out=0; /reset信號(hào)為低電平時(shí),輸出清零else clk_out=clk_out; /reset 為高電平時(shí),輸出時(shí)鐘 clk_out 在輸 入時(shí)鐘clk_in的上升沿時(shí)刻翻轉(zhuǎn)end1.2.3測(cè)試程序的核心邏輯設(shè)計(jì)always #clk_cycle clk=clk; /產(chǎn)生輸入時(shí)鐘in itialbeg inclk=0;reset=1;#10 reset=0; /reset給低電平,輸出清零#110 reset=1; /reset 復(fù)位#100000 $stop;
15、 系統(tǒng)任務(wù),暫停仿真以便觀察波形end124仿真實(shí)驗(yàn)關(guān)鍵結(jié)果及其解釋圖3二分頻器的波形圖如圖3所示,輸入時(shí)鐘elk被二分頻輸出。1.3實(shí)驗(yàn)小結(jié)通過實(shí)驗(yàn)一,我掌握了如下內(nèi)容:assign連續(xù)賦值語句的使用。always, initial 塊的使用。reg, wire等數(shù)據(jù)類型的適用范圍調(diào)用被測(cè)試模塊的方法實(shí)驗(yàn)二、條件語句和always過程塊2.1實(shí)驗(yàn)任務(wù)1利用條件語句實(shí)現(xiàn)計(jì)數(shù)分頻時(shí)序電路2.1.1實(shí)驗(yàn)要求(1)設(shè)計(jì)20分頻計(jì)數(shù)器,將10MHz的時(shí)鐘分頻為500kHz的時(shí)鐘。(2)利用10MHz的時(shí)鐘,設(shè)計(jì)一個(gè)給定單周期形狀的周期波形。2.1.2模塊的核心邏輯設(shè)計(jì)(1)20分頻計(jì)數(shù)器begi ni
16、f(j=9)對(duì)計(jì)數(shù)器進(jìn)行判斷,計(jì)十個(gè)數(shù)翻轉(zhuǎn)一次,則一個(gè)周期計(jì)20個(gè)數(shù),即實(shí)現(xiàn)20分頻beg inj=0;輸出時(shí)鐘翻轉(zhuǎn)的同時(shí)計(jì)數(shù)器置零F500K=F500K;endelsejv=j+1;/若還沒計(jì)到十個(gè)數(shù),繼續(xù)計(jì)數(shù)end(2)給定單周期形狀的波形begi nif(j=20)beg inFDIV=0;j20)&(j=30)beg inFDIV30 )&(j=50)beg inFDIV=0;j=j+1;/后20個(gè)時(shí)鐘周期輸出跳變成低電平,保持計(jì)數(shù)endelsej=0;計(jì)數(shù)器清零end2.1.3測(cè)試程序的核心邏輯設(shè)計(jì)20分頻計(jì)數(shù)器always #clk_cycle F10M_clk=F10M_clk;
17、 /產(chǎn)生輸入的 10MHz 時(shí)鐘in itialbeg inRESET=1;F10M_clk=0;#100 RESET=0; /reset給低電平,輸出清零#100 RESET=1; /reset 復(fù)位#10000 $stop; /系統(tǒng)任務(wù),暫停仿真以便觀察波形end給定單周期形狀的波形begi nRESET=1;F10M_clk=0;#100 RESET=0;#100 RESET=1;#100000 $stop;end / 與(1) 一致2.1.4仿真實(shí)驗(yàn)關(guān)鍵結(jié)果及其解釋(1) 20分頻計(jì)數(shù)器祠三豈 + 屮 XI11 應(yīng) lidIfLwnrjwujt-innrnnmuipiuuirpuuui
18、rr 11juinmrwifLlJLJlJJUBUW1RRJ-.1jfr1 III Iiib aiiialjii dlfiBaiiiai li 1i bj |J 1 1 1 1如衍吃Mffir.rWPfifMpKWriiO/Mf L| 4 IR-| hk |r f fWMdtatt* jr-辿圖4 20分頻計(jì)數(shù)器波形圖如圖4所示,10MHz的時(shí)鐘F10M被20分頻成500kHz的時(shí)鐘F500k。(2)給定單周期形狀的波形圖5給定單周期形狀的波形圖如圖5所示,生成了題目要求形狀的周期波形圖2.2實(shí)驗(yàn)任務(wù)2用always塊實(shí)現(xiàn)較復(fù)雜的組合邏輯電路2.2.1實(shí)驗(yàn)要求設(shè)計(jì)一個(gè)指令譯碼電路,對(duì)輸入數(shù)據(jù)執(zhí)
19、行相應(yīng)的操作,包括加、減、 與、或和求反。運(yùn)用always塊設(shè)計(jì)一個(gè)8路數(shù)據(jù)選擇器。要求:每路輸入數(shù)據(jù)與輸出數(shù)據(jù)均為4位2進(jìn)制數(shù),當(dāng)選擇開關(guān)(至少3位)或輸入數(shù)據(jù)發(fā)生變化時(shí),輸出 數(shù)據(jù)也相應(yīng)變化。2.2.2模塊的核心邏輯設(shè)計(jì)指令譯碼電路always(opcode or a or b) 電平敏感的always塊,當(dāng)輸入數(shù)據(jù) a,b或控制 信號(hào)opcode變化時(shí),輸出發(fā)生變化beg incas&opcode)plus:out=a+b; 控制信號(hào)為plus時(shí),輸出等于a+bminus: out=a-b; 控制信號(hào)為minus時(shí),輸出等于a-bband:out=a&b;控制信號(hào)為band時(shí),輸出等于a
20、&bbor:out=a|b; 控制信號(hào)為bor時(shí),輸出等于a|bunegate:out=a; /控制信號(hào)為unegate時(shí),輸出等于a default: out=8hx; 未收到指令時(shí),輸出任意態(tài)endcase8路數(shù)據(jù)選擇器always(ctl or a0 or al or a2 or a3 or a4 or a5 or a6 or a7)/ 電平敏感模塊,控 制信號(hào)ctl或輸入a0a7變化時(shí),輸出發(fā)生變化begi ncasgctl)ctl0:out=a0;、Ctl1:out=a1;、ctl2:out=a2;、ctl3:out=a3;、ctl4:out=a4;、ctl5:out=a5;、ctl
21、6:out=a6;、ctl7:out=a7; 控制端為ctl0ctl7對(duì)應(yīng)輸出a0a7default: out=4dx; 未收到指令時(shí),輸出任意態(tài)endcase223測(cè)試程序的核心邏輯設(shè)計(jì)指令譯碼電路begi na=$random%256; /從0255共256個(gè)數(shù)中隨機(jī)生成一個(gè)數(shù)作為輸入 a b=$random%256; /從0255共256個(gè)數(shù)中隨機(jī)生成一個(gè)數(shù)作為輸入 b opcode=3h0; /控制信號(hào)設(shè)為初值0,即plus,求和repea(times)beg in/repeat循環(huán)語句使控制及輸入信號(hào)重復(fù)變化#100 a=$ra ndom%256;b=$ra ndom%256;opc
22、ode=opcode+1; /每一時(shí)鐘到來時(shí),輸入 a,b改變一隨機(jī)數(shù),控制信號(hào)+1end#100 $stop;end系統(tǒng)任務(wù),暫停仿真以觀察輸出波形(2)8路數(shù)據(jù)選擇器begi na0=$ra ndom%16;a1=$ra ndom%16;a2=$ra ndom%16;a3=$ra ndom%16;a4=$ra ndom%16;a5=$ra ndom%16;a6=$ra ndom%16;a7=$random%16;從 015 中隨機(jī)生成輸入 a0a7ctl=3d0; /控制端置 ctIOrepea(times) /repeat語句重復(fù)改變輸入begi n#100 a0=$ra ndom%16
23、;a仁$ra ndom%16;a2=$ra ndom%16;a3=$ra ndom%16;a4=$ra ndom%16;a5=$ra ndom%16;a6=$ra ndom%16;a7=$random%16;/隨機(jī)生成 a0a7ctl=ctl+1;/控制端每次加1end#100 $stop;end2.2.4仿真實(shí)驗(yàn)關(guān)鍵結(jié)果及其解釋指令譯碼電路圖6指令譯碼電路波形指令譯碼電路輸出波形如圖所示??刂菩盘?hào)opcode為0時(shí),輸出為a+b;控制信號(hào)opcode為1時(shí),輸出為a-b;以此類推8路數(shù)據(jù)選擇器圖7 8選1數(shù)據(jù)選擇器波形圖8路數(shù)據(jù)選擇器輸出波形如圖7所示,控制端ctl為07時(shí)對(duì)應(yīng)輸出a0a7。
24、2.3實(shí)驗(yàn)小結(jié)通過實(shí)驗(yàn)二,我掌握了如下內(nèi)容:if.else條件語句的使用。case條件語句的使用實(shí)驗(yàn)三、賦值、函數(shù)和任務(wù)3.1實(shí)驗(yàn)任務(wù)1阻塞賦值與非阻塞賦值的區(qū)別3.1.1實(shí)驗(yàn)要求本實(shí)驗(yàn)中兩個(gè)模塊blocking和non_blocking分別采用阻塞賦值和非阻塞 賦值語句,從實(shí)驗(yàn)結(jié)果比較他們的區(qū)別。3.1.2模塊的核心邏輯設(shè)計(jì)阻塞賦值always(posedge clk)beg inb=a;c=b; 阻塞賦值,a賦給b,b賦給c$display(Blocki ng: a=%d, b=%d, c=%d.,a,b,c); 在 Tran script 窗口中顯示賦值后a,b,c的值end非阻塞賦值a
25、lways(posedge clk)beg inb=a;c run -allt blocking: a* 3r b- c= 3 * N&n_BLcckiEigta? 3r b- x, c- i.Sleeking: 4 7, b 7, c 7Tci:_Blockiag:3= lt 3, c int lotking;G=lf 13P b*LOf c-10 rm -all * Sloc-Jclng; a= 3f b= 3# s x4 !OB._BlQcking?3r bc- 揖甲4 Blocking: a- 7f b= J c= 3.P# Uo&_BlocJcing; a- 7r A3* c= 氣4
26、 31 ocking: a=15f b=15, c= 7.t Moa_Blocking;a=15r b= 7P c= 3-t 一Blockingr; a-LO, b-10. c-LS,iJoa Blocking: a=LO b=l5 9 e= 7-._Blocking: a= 2f b= 2, c=10 wlDa_Blockng: a= 2r b=10p slEL-# Sreak in Eodule DDinpare a t D: EI圖11阻塞賦值程序變形1輸岀結(jié)果改變阻塞賦值程序后的波形圖如圖10所示,可見將b=a, c=b的順序調(diào)換之 后,阻塞賦值程序先將上一次時(shí)鐘上升沿時(shí)b的值賦給c,
27、再將這一次時(shí)鐘上升沿時(shí)a的值賦給b,即b與a同時(shí)變化但c的值是上一個(gè)b值。在波形圖上看, 由于輸入a的變化時(shí)刻對(duì)應(yīng)的是時(shí)鐘下降沿,而輸出要在下一時(shí)鐘上升沿才能顯 示,故阻塞與非阻塞輸出c在波形圖上看是一致的,實(shí)際上在時(shí)鐘下降沿a發(fā)生 變化時(shí),阻塞輸出c的值已經(jīng)發(fā)生變化。輸出結(jié)果如圖11(3)阻塞賦值寫法3lAwullmIA4IM頁 MDCltJjjj.i!10L:.!丄!丄Biceking: i- 3r irlocking:a- 3 f b-c= 3 +3, C= 1”圖12阻塞賦值程序變形 2波形圖# BLocting: a= 7f 3c= 3. 匚 e= 3.4 Mdh Blcieking
28、?a= 7, b=BLockz rg: a=lS, b= T.j5a_BliBcking: a=l a, b=BL&etirg? a=10r b=15p e=lS.WBn_BlMkingTaLOJ b-15. e 7.Blockirig:2rrlS.W0is_Blocking:a= 2. BhCi* e=15B# Breat in Module eonpaTG at D: /ED2圖13阻塞賦值程序變形 2輸岀結(jié)果阻塞賦值程序變形2的輸出波形與結(jié)果如圖12、圖13所示。由于兩個(gè)阻塞 操作用同一個(gè)時(shí)鐘沿觸發(fā),執(zhí)行順序是不確定的。3.2實(shí)驗(yàn)任務(wù)2在 Verilog HDL中使用函數(shù)3.2.1實(shí)驗(yàn)要
29、求(1)設(shè)計(jì)程序?qū)崿F(xiàn)函數(shù)調(diào)用(2)設(shè)計(jì)一個(gè)帶控制端的邏輯運(yùn)算電路,分別完成正整數(shù)的平方、立方和 最大數(shù)為5的階乘運(yùn)算。3.2.2模塊的核心邏輯設(shè)計(jì)(1)設(shè)計(jì)程序?qū)崿F(xiàn)函數(shù)調(diào)用always(posedge elk) /elk上升沿觸發(fā)同步運(yùn)算begi nif(!reset)result=0; /reset 為低時(shí)復(fù)位elsebeg inresult=n*faetorial(n)/(n*2)+1); /調(diào)用 factorial 函數(shù),verilog 在整數(shù)除法運(yùn)算結(jié)果中不考慮余數(shù)endendfunction31:0 factorial;函數(shù)定義,返回一個(gè) 32位的數(shù)in put3:0 opera n
30、d;輸入一個(gè)4位操作數(shù)reg3:0 in dex;函數(shù)內(nèi)部計(jì)數(shù)用中間變量begi nfactorial=operand?1:0; 操作數(shù)為0時(shí)函數(shù)輸出為0,否則為1for(i ndex=2;i ndex=opera nd;i ndex=in dex+1) factorials ndex*factorial;表示階乘的迭代運(yùn)算endendfunction(2)帶控制端的邏輯運(yùn)算電路always(posedge clk)beg inif(!reset)result=0;elsebeg inif(sel=0) result=n*n; /控制端輸入sel=0時(shí),執(zhí)行平方操作else if(sel=1)
31、 result=n*n*n; /控制端輸入sel=1時(shí),執(zhí)行立方操作 else if(sel=2&*=5) result=factorial(n);控制端輸入 sel=2 且 輸入n小于等于5時(shí),計(jì)算n!elseresult=factorial(5); /否則計(jì)算 5!endendfunction31:0 factorial;/函數(shù)定義,返回一個(gè) 32位的數(shù)in put3:0 opera nd;輸入一個(gè)4位操作數(shù)reg3:0 in dex;/函數(shù)內(nèi)部計(jì)數(shù)用中間變量begi nfactorial=operand?1:0; 操作數(shù)為0時(shí)函數(shù)輸出為0,否則為1for(i ndex=2;i ndex=
32、opera nd;i ndex=in dex+1) factorials ndex*factorial;表示階乘的迭代運(yùn)算end3.2.3測(cè)試程序的核心邏輯設(shè)計(jì)(1)設(shè)計(jì)程序?qū)崿F(xiàn)函數(shù)調(diào)用in itialbegi nclk=0;n=0;reset=1;#100 reset=0; 產(chǎn)生復(fù)位信號(hào)的負(fù)跳變沿#100 reset=1; 復(fù)位信號(hào)恢復(fù)高電平后輸入nfor(i=0;i=15;i=i+1)beg in#200 n=i; 用循環(huán)結(jié)構(gòu),每隔200個(gè)時(shí)鐘周期改變一次輸入n的值end#100 $stop;end帶控制端的邏輯運(yùn)算電路begi nclk=O;n=0;reset=1;#100 reset=
33、0; 產(chǎn)生復(fù)位信號(hào)的負(fù)跳變沿#100 reset=1; 復(fù)位信號(hào)恢復(fù)高電平后輸入 nfor(i=0;iy)beg intmp=x;x=y;y=tmp; /x與y變量內(nèi)容互換,要求順序執(zhí)行,采用阻塞賦值方式enden dtask(實(shí)驗(yàn)指導(dǎo)書上采用快速排序算法,我對(duì)快速排序不熟悉,故采用選擇排序算法)3.2.3測(cè)試程序的核心邏輯設(shè)計(jì)begi na=0;b=0;c=0;d=0;repea(50)beg in#100 a=$random%15;b=$ra ndom%15;c=$ra ndom%15;d=$ra ndom%15; /隨機(jī)生成參與排序的數(shù) a,b,c,dend324仿真實(shí)驗(yàn)關(guān)鍵結(jié)果及其解釋
34、圖16使用任務(wù)進(jìn)行排序輸岀波形使用任務(wù)進(jìn)行排序得到的輸出波形如圖 16所示。輸出以16進(jìn)制顯示,可見排序功能實(shí)現(xiàn)正確3.3實(shí)驗(yàn)小結(jié)通過實(shí)驗(yàn)三,我掌握了如下內(nèi)容:深入理解了阻塞與非阻塞賦值的區(qū)別。掌握了在Verilog HDL中使用函數(shù)的方法,進(jìn)一步熟悉了 if.else和case 分支結(jié)構(gòu)的使用。掌握了用repeat語句實(shí)現(xiàn)for循環(huán)結(jié)構(gòu)的方法。掌握了在Verilog HDL中使用任務(wù)的方法,回顧了排序算法。實(shí)驗(yàn)四、有限狀態(tài)機(jī)4.1實(shí)驗(yàn)任務(wù)1基于狀態(tài)機(jī)的串行數(shù)據(jù)檢測(cè)器4.1.1實(shí)驗(yàn)要求設(shè)計(jì)一個(gè)串行數(shù)據(jù)監(jiān)測(cè)器。要求是:連續(xù)4個(gè)或4個(gè)以上為1時(shí)輸出1,其他情況下輸出0。4.1.2模塊的核心邏輯設(shè)計(jì)
35、always(posedge elk)if(!rst)state=Q0;elsestate=nextstate; 復(fù)位端為0時(shí)輸出狀態(tài)置零,復(fù)位端為 1時(shí)輸出 狀態(tài)始終向下一狀態(tài)變化always(state or x)case(state)Q0: if(x=1)n extstate=Q1;elsen extstate=Q0;Q1: if(x=1)n extstate=Q2;elsen extstate=Q0;Q2: if(x=1)n extstate=Q3;elsen extstate=QO;Q3: if(x=1)n extstate=Q4;elsen extstate=QO;Q4: if(x
36、=1)n extstate=Q4;elsen extstate=QO;defaultn extstate=QO;en dcase狀態(tài)轉(zhuǎn)移的條件判斷部分,轉(zhuǎn)移邏輯見狀態(tài)圖always(state or rst or x)if (!rst)Y=0;elseif (state=Q 4& x=1)Y=1;elseY=0;輸出的條件判斷部分,輸出邏輯見狀態(tài)圖狀態(tài)圖如圖17所示:圖17 1111狀態(tài)機(jī)狀態(tài)圖4.1.3測(cè)試程序的核心邏輯設(shè)計(jì)always(posedge elk)data=data22:0,data23;in itialbeg inclk=0;rst=1;#5 rst=0;#30 rst=1;
37、data=b1011_1110_0010_1111_1110; 待檢測(cè)的數(shù)字序列#500 $stop;end4.1.4仿真實(shí)驗(yàn)關(guān)鍵結(jié)果及其解釋圖18 1111序列檢測(cè)輸岀波形1圖19 1111序列檢測(cè)輸岀波形2圖18、圖19為“1111”序列檢測(cè)的輸出波形。由輸出波形可見,當(dāng)檢測(cè)到第一段“ 1111后輸出丫翻轉(zhuǎn),輸出為1,當(dāng)再次輸入0時(shí)輸出復(fù)位為0;監(jiān)測(cè) 到第二段“ 1111”后輸出丫又變?yōu)?,且當(dāng)輸入在“ 1111”后保持為1時(shí),輸出 也保持為1。4.2實(shí)驗(yàn)任務(wù)2樓梯燈4.2.1實(shí)驗(yàn)要求樓下到樓上依次有3個(gè)感應(yīng)燈:燈1、燈2、燈3。當(dāng)行人上下樓梯時(shí),各 個(gè)燈感應(yīng)到后自動(dòng)點(diǎn)亮,若在 8s內(nèi)感應(yīng)
38、信號(hào)消失,則點(diǎn)亮8s,若感應(yīng)信號(hào)存在 時(shí)間超過8s,則感應(yīng)信號(hào)消失4s后燈自動(dòng)關(guān)閉?;救蝿?wù):(1)做出如上邏輯電路并仿真。(2)設(shè)感應(yīng)信號(hào)是電平信號(hào),考慮去抖情況,對(duì)于感應(yīng)信號(hào)到達(dá)存在毛刺(小 于0.5s),設(shè)計(jì)合適邏輯并剔除。擴(kuò)展任務(wù):(3)若為節(jié)約能源,下一個(gè)燈點(diǎn)亮的同時(shí)將自動(dòng)關(guān)閉上一個(gè)燈,作出如上 邏輯設(shè)計(jì)并仿真(僅考慮一個(gè)人的情況)。(4)考慮存在多個(gè)人上下樓梯的情況,比如:行人1已經(jīng)從燈1到達(dá)燈2,燈2受感應(yīng)自動(dòng)點(diǎn)亮,但此時(shí)行人2剛上樓梯 到達(dá)燈1的位置,則燈1和燈2都須點(diǎn)亮。更加復(fù)雜一點(diǎn),如果行人2是下樓梯剛到達(dá)燈3位置,作出如上邏輯設(shè)計(jì)并 仿真。4.2.2模塊的核心邏輯設(shè)計(jì)(1
39、)基本任務(wù)對(duì)一盞燈進(jìn)行建模always ( posedge clock or n egedge reset_rtbeg inif ( ! reset_ n ) beg instate = OFF ;endelsebegin / reset信號(hào)為0時(shí),關(guān)燈;reset信號(hào)為1時(shí),開始執(zhí)行case( state )OFF: begincount = 0 ;state = n state ;endON: beginif ( n state = LONG ) cou nt = 0 ;elseco unt = count + 1 ;state = n state ;endLONG: begi nif (
40、 n state = LONG ) cou nt =0 ;state = n state ;endDELAY_LONG: beginif ( n state = DELAY_LONG ) cou nt = cou nt + 1 ;state = n state ;endDELAY_SHORT: begi nif ( n state = DELAY_SHORT ) cou nt = cou nt + 1 ;else count = 0 ;state = n state ;enddefault : state = OFF ;en dcase二段式中的第一段,給出各狀態(tài)跳變到下一狀態(tài)的條件enden
41、dalways ( state or switch or count )begi ncase ( state )OFF:if ( switch ) n state = ON ;ON:if ( switch )if (count NUM_WAIT-1 ) n state = ON ;else n state = LONG ;else n state = DELAY_SHORT ;LONG: if ( switch ) nstate = LONG ;else n state = DELAY_LONG ;DELAY_LONG:if ( switch ) n state = ON ;else if (
42、 tolera nee NUM_DELAY-1 ) n state = DELAY_LONG ;else if (count NUM_DELAY-1 ) n state = DELAY_LONG ;else n state = OFF ;DELAY_SHORT:if ( switch ) n state = ON ;else if ( cou nt NUM_WAIT-1 ) n state = DELAY_SHORT ;else n state = OFF ;default: n state = OFF;endcaseend /二段式中的第二段,判斷各狀態(tài)時(shí)滿足條件的下一狀態(tài)是哪個(gè)狀態(tài)assign light = ( state = OFF )? 0 : 1 ; /light 為輸出變量,表示燈的亮滅,OFF 為0時(shí)燈亮,OFF為1時(shí)燈滅(2)去抖任務(wù)assign filtered = ( state = INACTIVE ) ? 0 : 1 ;assig n out = filtered | in ;ACTIVE :if (
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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年度農(nóng)村房屋改造裝修環(huán)保材料采購與施工合同2篇
- 2025年度智慧城市建設(shè)中股東股權(quán)變更管理合同3篇
- 2025年度跨境電商倉儲(chǔ)租賃服務(wù)協(xié)議3篇
- 2025年度教育科技公司股權(quán)置換合同樣本3篇
- 2025年度汽車環(huán)保材料研發(fā)與應(yīng)用合作合同3篇
- 二零二五年度納米材料研發(fā)委托合同2篇
- 二零二五年度智慧養(yǎng)老設(shè)施運(yùn)營管理服務(wù)合同3篇
- 二零二五年度農(nóng)村土地置換與農(nóng)業(yè)人才培養(yǎng)合作協(xié)議2篇
- 2025年度公司高管聘用合同全新版:企業(yè)數(shù)字化轉(zhuǎn)型合作協(xié)議3篇
- 二零二五年度養(yǎng)殖場動(dòng)物福利保障承包協(xié)議3篇
- 2025年安徽交控集團(tuán)招聘筆試參考題庫含答案解析
- 促進(jìn)臨床合理用藥持續(xù)改進(jìn)措施
- 精神科護(hù)理崗位競聘
- 廣西北海市2023-2024學(xué)年八年級(jí)(上)期末數(shù)學(xué)試卷
- MOOC 數(shù)字電路分析與設(shè)計(jì)-浙江大學(xué) 中國大學(xué)慕課答案
- 閘閥的操作力矩參考表
- 浙江省市政工程安全臺(tái)賬完整
- 環(huán)氧樹脂參考配方大全
- 花木綠化養(yǎng)護(hù)考核評(píng)分表
- #2鍋爐爐膛內(nèi)腳手架搭設(shè)及拆除施工方案
- 110KV變電站工程創(chuàng)優(yōu)監(jiān)理實(shí)施細(xì)則
評(píng)論
0/150
提交評(píng)論