(完整版)VerilogHDL數(shù)字設(shè)計(jì)與綜合(第二版)第七章課后習(xí)題答案_第1頁(yè)
(完整版)VerilogHDL數(shù)字設(shè)計(jì)與綜合(第二版)第七章課后習(xí)題答案_第2頁(yè)
(完整版)VerilogHDL數(shù)字設(shè)計(jì)與綜合(第二版)第七章課后習(xí)題答案_第3頁(yè)
(完整版)VerilogHDL數(shù)字設(shè)計(jì)與綜合(第二版)第七章課后習(xí)題答案_第4頁(yè)
(完整版)VerilogHDL數(shù)字設(shè)計(jì)與綜合(第二版)第七章課后習(xí)題答案_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1 .聲明一個(gè)名為osci11ate的寄存器變量并將它初始化為0。使其每30個(gè)時(shí)間單位進(jìn)行一次取反操作。不要使用always語(yǔ)句。提示:使用 forever循環(huán)。答:代碼如下:reg oscillate;initialbeginosci11ate<=0;forever #30 osci11ate<=oscillate;end2 .設(shè)計(jì)一個(gè)周期為 40個(gè)時(shí)間單位的時(shí)鐘信號(hào),其占空比為 25%。使用always和initial塊進(jìn)行 設(shè)計(jì)。將其在仿真 0時(shí)刻的值初始化為0。答:代碼如下:reg clock;initialc1ock<=0;always begin#30 c1ock

2、<=1;#10 c1ock<=0;end3 .給定下面含有阻塞過(guò)程賦值語(yǔ)句的initial塊。每條語(yǔ)句在什么仿真時(shí)刻開(kāi)始執(zhí)行?a, b, c和d在仿真過(guò)程中的中間值和仿真結(jié)束時(shí)的值是什么?initialbegina = lhbO;b = #1。 l'bi;C = #51出口;d - #20 bt c; end答:仿真輸出結(jié)果:* /c.hapterr_O/a /tlhaptei 7_0/b 7_0/c/chapter010 eno111Nuh00nsi i lipi iluiiiligii 1 i i in20|1 111 II | p 11 1 U 111 |I 1304

3、04 .在第3題中,如果initial塊中包括的是非阻塞過(guò)程賦值語(yǔ)句,那么各個(gè)問(wèn)題的答案是什么?答:#Verilog HDL數(shù)字設(shè)計(jì)與綜合(第二版)最終d沒(méi)有輸出,因?yàn)閐<= #20 a,b,c;語(yǔ)句執(zhí)行的是先將 a, b, c取值存儲(chǔ),在20個(gè)時(shí)間單位后將存儲(chǔ)的值賦給 d,因?yàn)閎, c在初始時(shí)刻沒(méi)有值,所以 d值也是不確定的5 .指出在下面的 Verilog代碼中各條語(yǔ)句的執(zhí)行順序。其中是否含有不確定的執(zhí)行順序?a, b,c和d的最終值是什么?initialbegina - lhb0; NO c - b;endinitial beginb > lhbl;#0 d > a;e

4、nd答:先執(zhí)行a=1' b0,b=1 '蜘執(zhí)行#0 c=b,#0 d=a,執(zhí)行順序不確定,最終輸出結(jié)果 a=0,b=1,c=1,d=0.6.在下面的低J子中,d的最終值是什么?initialbeginb = l*bl; c = IbO;#io b = 1 initial begind - M25 (b | c);end答:仿真輸出波形如下,最終輸出結(jié)果 d=1 o 0時(shí)刻b|c的值是1,在25個(gè)時(shí)間刻度后賦給 d7 .使用帶有同步清零端的 D觸發(fā)器(清零端高電平有效,在時(shí)鐘下降沿執(zhí)行清零操作)設(shè)計(jì)一個(gè)下降沿觸發(fā)的 D觸發(fā)器,只能使用行為語(yǔ)句。提示:D觸發(fā)器的輸出q應(yīng)當(dāng)聲明為寄存

5、器變量。使用設(shè)計(jì)出的D觸發(fā)器輸出一個(gè)周期為10個(gè)時(shí)間單位的時(shí)鐘信號(hào)。答:第七題和第八題參見(jiàn)chapter7.v8 .使用帶有異步清零端的 D觸發(fā)器設(shè)計(jì)第7題中要求的D觸發(fā)器(在清零端變?yōu)楦唠娖胶罅⒓?執(zhí)行清零操作,無(wú)需等待下一個(gè)時(shí)鐘下降沿),并對(duì)這個(gè)D觸發(fā)器進(jìn)行測(cè)試。答:第七題和第八題參見(jiàn)chapter7.v9 .使用wait語(yǔ)句設(shè)計(jì)一個(gè)電平敏感的鎖存器,該鎖存器的輸入信號(hào)為d和clock,輸出為q。其功能是當(dāng)clock 1時(shí)q = d。答:代碼及輸出波形如下:module my_latch(d,clock,q);input d,clock;output q;reg q;alwayswait(

6、clock)begin# 1q<=d;/注意,這里的賦值語(yǔ)句前必須要加上#延遲,否則無(wú)法仿真。endendmodule module test79;reg d,clock;wire q;initialclock<=0;always# 10 clock<=clock;initialbegind<=1'b0;# 15 d<=1'b1;# 50 d<=1'b0;# 20 $stop;endmy_latch my_latch1(d,clock,q); endmodule10 .使用條件語(yǔ)句設(shè)計(jì)例 7.19中的四選一多路選擇器。外部端口必須保持

7、不變。 答:代碼如下(標(biāo)注行可以去掉)#Verilog HDL數(shù)字設(shè)計(jì)與綜合(第二版)module mux_41(out,i0,i1,i2,i3,s1,s0);input i0,i1,i2,i3;input s0,s1;output out;reg out;always (*)if(s1=0 && s0=0)out<=i0;else if (s1=0 && s0=1)out<=i1;else if (s1=1 && s0=0)out<=i2;else if (s1=1 && s0=1)out<=i3;els

8、e $display("Invalid control signals"); / 可去endmodule11 .使用條件語(yǔ)句對(duì)本章中的交通信號(hào)燈控制器進(jìn)行重新設(shè)計(jì)。答:部分代碼如下,其余代碼與書(shū)中相同。always (state)beginhwy=GREEN;cntry=RED;if(state=S1)hwy =YELLOW;else if (state=S2)hwy =RED;else if (state=S3)beginhwy=RED;cntry=GREEN;endelse if (state=S4)beginhwy=RED;cntry=YELLOW;else begi

9、n hwy=GREEN; cntry=RED;endendalways (state or X)beginif(state=S0)beginif (X)next_state=S1;elsenext_state=S0;endelse if(state=S1)beginrepeat('Y2RDELAY) (posedge clock); next_state=S2;endelse if(state=S2)beginrepeat('R2GDELAY) (posedge clock); next_state=S3;endelse if(state=S3)beginif(X)next_s

10、tate=S3;elsenext_state=S4;endelse if(state=S4)beginrepeat('Y2RDELAY) (posedge clock); next_state=S0;endelse第7章行為級(jí)建模83next_state=S0;end12 .使用case語(yǔ)句設(shè)計(jì)八功能的算術(shù)運(yùn)算單元( ALU ),其輸入信號(hào)a和b均為4位,功能選擇 信號(hào)select為3位,輸出信號(hào)out為5位。算術(shù)運(yùn)算單元ALU所執(zhí)行的操作與 select信號(hào)有關(guān),具體關(guān)系見(jiàn)下表。忽略輸出結(jié)果中的上溢和下溢的位。select信號(hào)功能3 'b 000out = a3 'b

11、 001out = a + b3 'b 010out = a b3 'b 011out = a / b3 'b 100out = a % b (余數(shù))3 'b 101out = a << 13 'b 110out = a >> 13 'b 111out = a > b (大小幅值比較)答:代碼如下module my_ALU(a,b,select,out);input 3:0 a,b;input 2:0 select;output 4:0 out;reg 4:0 out;always (*) case(select)3

12、'b000: out=a;3'b001: out=a+b;3'b010: out=a-b;3'b011: out=a/b;3'b100: out=a%b;3'b101: out=a<<1;3'b110: out=a>>1;3'b111: out=a>b;default: out=5'b00000;endcase endmodule輸出波形3-J2門(mén)加1010Man I1 I111II IDO17bk&oookThr Did 1Terr;in nojOLDDDI-TCIWO忡T-TiMf

13、iri iI r i1#Verilog HDL數(shù)字設(shè)計(jì)與綜合(第二版)13 .使用while循環(huán)設(shè)計(jì)一個(gè)時(shí)鐘信號(hào)發(fā)生器。時(shí)鐘信號(hào)的初值為0,周期為10個(gè)時(shí)間單位。答:代碼如下module s13;reg clock;initialbeginclock<=0;while #5 clock<=clock;#1000 $stop;endendmodule14 .使用for循環(huán)對(duì)一個(gè)長(zhǎng)度為1024 (地址從0到1023)、位寬為4的寄存器類型數(shù)組 cache_ var進(jìn)行初始化,把所有單元都設(shè)置為0。答:簡(jiǎn)單的for語(yǔ)句module s14;reg 3:0 cache_var 0:1023

14、;integer count;initialfor(count=0;count<1024;count=count+1)cache_varcount=0;endmodule15 .使用forever循環(huán)設(shè)計(jì)一個(gè)時(shí)鐘彳t號(hào),周期為 10,占空比為40%,初值為0答:module s15;reg clock;initialbeginclock<=0;foreverbegin#6 clock<=1;#4 clock<=0;endendendmodule第7章行為級(jí)建模8516 .使用repeat將語(yǔ)句a = a + 1延遲20個(gè)時(shí)鐘上升沿之后再執(zhí)行。答:initialbegin

15、repeat (delay) (posedge clock) i<=i+1;a<=a+1;end17 .下面是一個(gè)內(nèi)嵌順序塊和并行塊的塊語(yǔ)句。該塊的執(zhí)行結(jié)束時(shí)間是多少?事件的執(zhí)行順序是 怎樣的?每條語(yǔ)句的仿真結(jié)束時(shí)間是多少?initial beginx = 1#5 y I'bl; fork# 20 ® " X;# 15 b y; join M4Q x = I1bl;fork# 10 p - x; begin#10 a - y;#30 b > x; end#5 in y; join end答:仿真器輸出如下,作為參考#0 x= 0,y= x,a= x

16、,b= x,p= x,m= x/x=1 'b0#5 x= 0,y= 1,a= x,b= x,p= x,m= x/y=1 'b1#20 x= 0,y= 1,a= x,b= 1,p= x,m= x/b=y#25 x= 0,y= 1,a= 0,b= 1,p= x,m= x/a=x#65 x= 1,y= 1,a= 0,b= 1,p= x,m= x/x=1 'b1#70 x= 1,y= 1,a= 0,b= 1,p= x,m= 1/m=y#75 x= 1,y= 1,a= 1,b= 1,p= 1,m= 1/p=x在時(shí)間75之后,還有#10 a=y; #30 b=x;語(yǔ)句,由于ab原有值是11,沒(méi)有變化,故仿真器沒(méi)有記錄。在#85執(zhí)行a=y,在#105執(zhí)行b=x。全部結(jié)束的時(shí)間為 #10518 .用forever循環(huán)語(yǔ)句、命名塊和禁用命名塊來(lái)設(shè)計(jì)一個(gè)八位計(jì)數(shù)器。這個(gè)計(jì)數(shù)器從count = 5開(kāi)始計(jì)數(shù),到count = 67結(jié)束計(jì)數(shù)。每個(gè)時(shí)鐘正跳變沿計(jì)數(shù)器加1。時(shí)鐘的周期為10。計(jì)數(shù)disable 語(yǔ)句)器的計(jì)數(shù)只用了一次循環(huán),然后就被禁用了(提示:使用 答:參考代碼如下。module s18;reg clock;re

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論