版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 第第4章章 Verilog HDL設(shè)計(jì)初步設(shè)計(jì)初步 習(xí)習(xí) 題題 4-1 舉例說(shuō)明,舉例說(shuō)明,Verilog HDL的操作符中,哪些操作符的運(yùn)算結(jié)果總是一位的。的操作符中,哪些操作符的運(yùn)算結(jié)果總是一位的。答:答: P74/74/80/924-2 wire型變量與型變量與reg型變量有什么本質(zhì)區(qū)別,它們可用于什么類型語(yǔ)句中?型變量有什么本質(zhì)區(qū)別,它們可用于什么類型語(yǔ)句中?答:書(shū)上答:書(shū)上P2612629.2 Verilog HDL數(shù)據(jù)類型數(shù)據(jù)類型reg主要是用于定義特定類型的變量,即寄存器型主要是用于定義特定類型的變量,即寄存器型(Register)變量變量(或稱寄存器型數(shù)據(jù)類的或稱寄存器型數(shù)據(jù)
2、類的變量變量)。如果沒(méi)有在模塊中顯式地定義信號(hào)為網(wǎng)線型變量,。如果沒(méi)有在模塊中顯式地定義信號(hào)為網(wǎng)線型變量,Verilog綜合器都會(huì)將其默認(rèn)定綜合器都會(huì)將其默認(rèn)定義為義為wire型。過(guò)程語(yǔ)句型。過(guò)程語(yǔ)句always引導(dǎo)的順序語(yǔ)句中規(guī)定必須是引導(dǎo)的順序語(yǔ)句中規(guī)定必須是reg型變量。型變量。wire型變量不允許有多個(gè)驅(qū)動(dòng)源型變量不允許有多個(gè)驅(qū)動(dòng)源 習(xí)習(xí) 題題 4-3 4-3 阻塞賦值和非阻塞賦值有何區(qū)別?阻塞賦值和非阻塞賦值有何區(qū)別?答:答:VerilogVerilog中,用普通等號(hào)中,用普通等號(hào)“=”=”作為阻塞式賦值語(yǔ)句的賦值符號(hào),如作為阻塞式賦值語(yǔ)句的賦值符號(hào),如y=by=b。 Verilog
3、Verilog中,用普通等號(hào)中,用普通等號(hào)“=”=”作為非阻塞式賦值語(yǔ)句的賦值符號(hào),如作為非阻塞式賦值語(yǔ)句的賦值符號(hào),如y=by=b。 阻塞式賦值的特點(diǎn)是,一旦執(zhí)行完當(dāng)前的賦值語(yǔ)句,賦值目標(biāo)變量阻塞式賦值的特點(diǎn)是,一旦執(zhí)行完當(dāng)前的賦值語(yǔ)句,賦值目標(biāo)變量y y即刻即刻獲得來(lái)自等號(hào)右側(cè)表達(dá)式的計(jì)算值。如果在一個(gè)塊語(yǔ)句中含有多條阻塞式賦值獲得來(lái)自等號(hào)右側(cè)表達(dá)式的計(jì)算值。如果在一個(gè)塊語(yǔ)句中含有多條阻塞式賦值語(yǔ)句,則當(dāng)執(zhí)行到其中某條賦值語(yǔ)句時(shí),其他語(yǔ)句將禁止執(zhí)行,即如同被阻塞語(yǔ)句,則當(dāng)執(zhí)行到其中某條賦值語(yǔ)句時(shí),其他語(yǔ)句將禁止執(zhí)行,即如同被阻塞了一樣。了一樣。 非阻塞式賦值的特點(diǎn)是必須在塊語(yǔ)句執(zhí)行結(jié)束時(shí)才
4、整體完成賦值操作。非非阻塞式賦值的特點(diǎn)是必須在塊語(yǔ)句執(zhí)行結(jié)束時(shí)才整體完成賦值操作。非阻塞的含義可以理解為在執(zhí)行當(dāng)前語(yǔ)句時(shí),對(duì)于塊中的其他語(yǔ)句的執(zhí)行情況一阻塞的含義可以理解為在執(zhí)行當(dāng)前語(yǔ)句時(shí),對(duì)于塊中的其他語(yǔ)句的執(zhí)行情況一律不加限制,不加阻塞。這也可以理解為,在律不加限制,不加阻塞。這也可以理解為,在begin_endbegin_end塊中的所有賦值語(yǔ)句都?jí)K中的所有賦值語(yǔ)句都可以并行運(yùn)行??梢圆⑿羞\(yùn)行。 4-4 舉例說(shuō)明,為什么使用條件敘述不完整的條件句能導(dǎo)致產(chǎn)生時(shí)序模塊的綜合結(jié)果?舉例說(shuō)明,為什么使用條件敘述不完整的條件句能導(dǎo)致產(chǎn)生時(shí)序模塊的綜合結(jié)果?答:答: 當(dāng)CLK發(fā)生了電平變化,但是從1
5、變到0。這時(shí)無(wú)論D是否變化,都將啟動(dòng)過(guò)程去執(zhí)行if語(yǔ)句;但此時(shí)CLK=0,無(wú)法執(zhí)行if語(yǔ)句,從而無(wú)法執(zhí)行賦值語(yǔ)句Q=D,于是Q只能保持原值不變(這就意味著需要在設(shè)計(jì)模塊中引入存儲(chǔ)元件)。 當(dāng)CLK沒(méi)有發(fā)生任何變化,且CLK一直為0,而敏感信號(hào)D發(fā)生了變化。這時(shí)也能啟動(dòng)過(guò)程,但由于CLK=0,無(wú)法執(zhí)行if語(yǔ)句,從而也就無(wú)法執(zhí)行賦值語(yǔ)句Q=D,導(dǎo)致Q只能保持原值(這也意味著需要在設(shè)計(jì)模塊中引入存儲(chǔ)元件)。 在以上兩種情況中,由于if語(yǔ)句不滿足條件,于是將跳過(guò)賦值表達(dá)式Q=D,不執(zhí)行此賦值表達(dá)式而結(jié)束if語(yǔ)句和過(guò)程對(duì)于這種語(yǔ)言現(xiàn)象,Velilog綜合器解釋為,對(duì)于不滿足條件,跳過(guò)賦值語(yǔ)句Q=D不予執(zhí)
6、行,即意味著保持Q的原值不變(保持前一次滿足if條件時(shí)Q被更新的值)。對(duì)于數(shù)字電路來(lái)說(shuō),當(dāng)輸入改變后試圖保持一個(gè)值不變,就意味著使用具有存儲(chǔ)功能的元件,就是必須引進(jìn)時(shí)序元件來(lái)保存Q中的原值,直到滿足if語(yǔ)句的判斷條件后才能更新Q中的值,于是便產(chǎn)生了時(shí)序元件。 module LATCH1 (CLK, D, Q); output Q; input CLK, D; reg Q; always (D or CLK) if(CLK)Q=D; /當(dāng)CLK=1時(shí)D被鎖入Qendmodule 4-5 用用Verilog設(shè)計(jì)一個(gè)設(shè)計(jì)一個(gè)3-8譯碼器,要求分別用譯碼器,要求分別用case語(yǔ)句和語(yǔ)句和if_else
7、語(yǔ)句。比語(yǔ)句。比較這兩種方式。較這兩種方式。 4-5 用用Verilog設(shè)計(jì)一個(gè)設(shè)計(jì)一個(gè)3-8譯碼器,要求分別用譯碼器,要求分別用case語(yǔ)句和語(yǔ)句和if_else語(yǔ)句。比較這兩種語(yǔ)句。比較這兩種方式。方式。module decoder3_8 ( G1 ,Y ,G2 ,A ,G3 );input G1, G2, G3;wire G1, G2, G3;input 2:0 A ;wire 2:0 A ;output 7:0 Y ;reg 7:0 Y ;reg s;always ( A ,G1, G2, G3) begin s = G2 | G3 ; if (G1 = 0) Y = 8b1111_1
8、111; else if (s) Y = 8b1111_1111; else case ( A ) 3b000: Y = 8b11111110; 3b001: Y = 8b11111101; 3b010: Y = 8b11111011; 3b011: Y = 8b11110111; 3b100: Y = 8b11101111; 3b101: Y = 8b11011111; 3b110: Y = 8b10111111; 3b111: Y = 8b01111111; default:Y = 8bxxxxxxxx; endcase end endmodule 4-5 用用Verilog設(shè)計(jì)一個(gè)設(shè)計(jì)一
9、個(gè)3-8譯碼器,要求分別用譯碼器,要求分別用case語(yǔ)句和語(yǔ)句和if_else語(yǔ)句。比較這兩種語(yǔ)句。比較這兩種方式。方式。module decoder3_8 ( G1 ,Y ,G2 ,A ,G3 ); input G1, G2, G3; wire G1, G2, G3; input 2:0 A ; wire 2:0 A ; output 7:0 Y ; reg 7:0 Y ; reg s; always ( A ,G1, G2, G3) begin s = G2 | G3 ; if (G1 = 0) Y = 8b1111_1111; else if (s) Y = 8b1111_1111; e
10、lse begin if (A=3b000)Y=8b11111110; else if (A=3b001)Y=8b11111101; else if (A=3b010)Y=8b11111011; else if (A=3b011)Y=8b11110111; else if (A=3b100)Y=8b11101111; else if (A=3b101)Y=8b11011111; else if (A=3b110)Y=8b10111111; else if (A=3b111)Y=8b01111111; else Y=8bxxxxxxxx;end endendmodule/測(cè)試文件,測(cè)試文件,?部
11、分請(qǐng)根據(jù)被測(cè)試的文件修改部分請(qǐng)根據(jù)被測(cè)試的文件修改module stimulus; reg 2:0A ; wire7:0Y ; reg G1 ,G2 ,G3; decoder3_8 DUT ( G1 ,Y ,G2 ,A ,G3 ); initial begin $monitor($time,A=%d,G1=%b,G2=%b, G3=%b,Y= %dn,A, G1, G2, G3, Y); endinitial begin G1=1 ;G2=1 ;G3=1;A=0; #10 G2=0;G1=0; #10 G2=0;G1=1;#10 G2=1;G1=0;G3=0; #10 G1=0;G1=1;G3
12、=1; #10 G1=0;G1=0;G3=0; #10 G1=1;G2=0;G3=0; #50 A= 0; #50 A= 1; #50 A= 2; #50 A= 3; #50 A= 4; #50 A= 5; #50 A= 6; #50 A= 7; #50 $finish; endendmodule習(xí)習(xí) 題題 4-6圖圖4-26所示的是雙所示的是雙2選選1多路選擇器構(gòu)成的電路多路選擇器構(gòu)成的電路MUXK。對(duì)于其中。對(duì)于其中MUX21A,當(dāng),當(dāng)s=0和和s=1時(shí),分別有時(shí),分別有y=a和和y=b。試在一個(gè)模塊結(jié)構(gòu)中用兩個(gè)過(guò)程來(lái)表達(dá)此電路。試在一個(gè)模塊結(jié)構(gòu)中用兩個(gè)過(guò)程來(lái)表達(dá)此電路。答:參考實(shí)驗(yàn)答:參
13、考實(shí)驗(yàn)1圖圖4-26 含含2選選1多路選擇器的模塊多路選擇器的模塊module MUXK (a1, a2, a3, s0, s1, outy); input a1, a2, a3, s0, s1; output outy; wire outy; wire tmp; mux21a u1 (.a(a2),.b(a3),.s(s0),.y(tmp); mux21a u2 (.a (a1),.b (tmp),.s(s1),.y(outy);endmodule習(xí)習(xí) 題題 4-7 4-7 給出給出1 1位全減器的位全減器的VHDLVHDL描述。要求:描述。要求:(1 1)首先設(shè)計(jì))首先設(shè)計(jì)1 1位半減器,
14、然后用例化語(yǔ)句將它們連接起來(lái),圖位半減器,然后用例化語(yǔ)句將它們連接起來(lái),圖4-284-28中中h_suberh_suber是半減器,是半減器,diffdiff是輸出差,是輸出差,s_outs_out是借位輸出,是借位輸出,sub_insub_in是借位輸入。是借位輸入。(2 2)根據(jù)圖)根據(jù)圖4-274-27設(shè)計(jì)設(shè)計(jì)1 1位全減器。位全減器。(3 3)以)以1 1位全減器為基本硬件,構(gòu)成串行借位的位全減器為基本硬件,構(gòu)成串行借位的8 8位減法器,要求用例化語(yǔ)句來(lái)位減法器,要求用例化語(yǔ)句來(lái)完成此項(xiàng)設(shè)計(jì)。完成此項(xiàng)設(shè)計(jì)。 圖圖4-27 1位全減器位全減器x xy ydiffdiffs_outs_ou
15、t0000011110101100/一個(gè)二進(jìn)制半減器半減器設(shè)計(jì)進(jìn)行了闡述module h_suber(x,y,diff,s_out);input x,y;outputdiff, s_out;assign diff=xy;assign s_out=(x)&y;endmodule module f_suber(x,y,sub_in,diffr,sub_out);/一個(gè)二進(jìn)制全減器全減器頂層設(shè)計(jì)進(jìn)行了闡述 output diffr,sub_out; input x,y,sub_in; wire e,d,f; h_suber u1(x,y,e,d);/ h_suber u2(.x(e),.diff(d
16、iffr),.y(sub_in),.s_out(f);/ or2a u3(.a(d),.b(f),.c(sub_out); endmodule xysub_indiffr sub_out0000000111010110110110010101001100011111x x為被減數(shù),為被減數(shù),y y為減數(shù),為減數(shù), sub_insub_in為為低位的借低位的借位,位, diffdiffr r為差,為差,susub_outb_out為向?yàn)橄蚋呶坏慕韪呶坏慕栉?。位。?xí)習(xí) 題題 習(xí)習(xí) 題題4-8 給出一個(gè)給出一個(gè)4選選1多路選擇器的多路選擇器的Verilog描述。此器件與圖描述。此器件與圖4-1類似,
17、但選通控制端有類似,但選通控制端有4個(gè)輸入:個(gè)輸入:S0、S1、S2、S3。當(dāng)且僅當(dāng)。當(dāng)且僅當(dāng)S0=0時(shí):時(shí):Y=A;S1=0時(shí):時(shí):Y=B;S2=0時(shí):時(shí):Y=C;S3=0時(shí):時(shí):Y=D。module MUX41a (A,B,C,D,S0,S1,S2,S3,Y); output Y; /定義定義Y為輸出信號(hào)為輸出信號(hào) input A, B, C, D; input S0,S1,S2,S3; reg Y; /定義輸出端口信號(hào)定義輸出端口信號(hào)Y為寄存器型變量為寄存器型變量 always (A,B,C,S0,S1,S2,S3 )begin /塊語(yǔ)句起始?jí)K語(yǔ)句起始 if (S0=0)Y=A; /當(dāng)當(dāng)
18、S0 =0成立,即成立,即(S0 =0)=1時(shí),時(shí),Y=A; else if (S1=0)Y=B; /當(dāng)當(dāng)(S1 =1)為真,則為真,則Y=B; else if (S2=0)Y=C; /當(dāng)當(dāng)(S2 =2)為真,則為真,則Y=C; else if (S3=0) Y=D; /當(dāng)當(dāng)(S3 =3)為真,即為真,即Y=D; end /塊語(yǔ)句結(jié)束塊語(yǔ)句結(jié)束endmodule4-9 把例把例4-21改成一異步清改成一異步清0,同步時(shí)鐘使能和異步數(shù)據(jù)加載型,同步時(shí)鐘使能和異步數(shù)據(jù)加載型8位二進(jìn)制加位二進(jìn)制加法計(jì)數(shù)器。法計(jì)數(shù)器?!纠?-21】含有異步清0同步時(shí)鐘使能和同步數(shù)據(jù)加載功能的十進(jìn)制計(jì)數(shù)器module
19、CNT10(CLK, RST, EN,LOAD,COUT,DOUT,DATA);input CLK, RST, EN,LOAD; /時(shí)鐘,時(shí)鐘使能,復(fù)位,數(shù)據(jù)加載控制信號(hào)輸入口input 3:0DATA; /4位并行加載數(shù)據(jù)輸入口output 3:0 DOUT; /計(jì)數(shù)數(shù)據(jù)輸出信號(hào)口output COUT; /計(jì)數(shù)進(jìn)位輸出reg COUT; reg3:0 Q1;assign DOUT=Q1; /將內(nèi)部寄存器的計(jì)數(shù)結(jié)果輸出至DOUTalways (posedge CLK or negedge RST ) /時(shí)序過(guò)程 beginif(!RST)Q1=0; /RST=0時(shí),對(duì)內(nèi)部寄存器單元異步清0
20、/當(dāng)LOAD=0,異步向內(nèi)部寄存器加載數(shù)據(jù) /同步使能EN=1,則允許加載或計(jì)數(shù) /當(dāng)Q1小于9時(shí),允許累加 /否則一個(gè)時(shí)鐘后清0返回初值end endalways (Q1) /組合電路之過(guò)程if(Q1=4h9)COUT=1b1; /當(dāng)Q1=1001時(shí),COUT輸出進(jìn)位標(biāo)志1else COUT=1b0; /否則,輸出進(jìn)位標(biāo)志0endmodule 習(xí)習(xí) 題題 4-10 4-10 分頻方法有多種,最簡(jiǎn)單的是二分頻和偶數(shù)分頻甚至奇數(shù)分頻方法有多種,最簡(jiǎn)單的是二分頻和偶數(shù)分頻甚至奇數(shù)分頻,這用觸發(fā)器或指定計(jì)數(shù)模的計(jì)數(shù)器即可辦到。但對(duì)于現(xiàn)場(chǎng)實(shí)分頻,這用觸發(fā)器或指定計(jì)數(shù)模的計(jì)數(shù)器即可辦到。但對(duì)于現(xiàn)場(chǎng)實(shí)現(xiàn)指
21、定分頻比或小數(shù)分頻率的分頻電路的設(shè)計(jì)就不是很簡(jiǎn)單了?,F(xiàn)指定分頻比或小數(shù)分頻率的分頻電路的設(shè)計(jì)就不是很簡(jiǎn)單了。 試對(duì)習(xí)題試對(duì)習(xí)題4-94-9的設(shè)計(jì)稍作修改,將其進(jìn)位輸出的設(shè)計(jì)稍作修改,將其進(jìn)位輸出COUTCOUT與異步加載控與異步加載控制制LOADLOAD連在一起,構(gòu)成一個(gè)自動(dòng)加載型連在一起,構(gòu)成一個(gè)自動(dòng)加載型1616位二進(jìn)制數(shù)計(jì)數(shù)器,也即位二進(jìn)制數(shù)計(jì)數(shù)器,也即一個(gè)一個(gè)1616位可控的分頻器,給出其位可控的分頻器,給出其VerilogVerilog表述,并說(shuō)明工作原理。表述,并說(shuō)明工作原理。設(shè)輸入頻率設(shè)輸入頻率fi=4MHzfi=4MHz,輸出頻率,輸出頻率fo=516.5fo=516.51Hz
22、1Hz(允許誤差(允許誤差0.1Hz0.1Hz),),1616位加載數(shù)值位加載數(shù)值= =?。?。( () )module CNT10(CLK,RST,EN,COUT,DOUT,DATA);module CNT10(CLK,RST,EN,COUT,DOUT,DATA);input CLK,RST,EN; input CLK,RST,EN; /時(shí)鐘,時(shí)鐘使能,復(fù)位,數(shù)據(jù)加載控制信號(hào)輸入口input3:0DATA; input3:0DATA; / 4位并行加載數(shù)據(jù)輸入口output3:0DOUT; output3:0DOUT; /計(jì)數(shù)數(shù)據(jù)輸出信號(hào)口output COUT; output COUT;
23、/計(jì)數(shù)進(jìn)位輸出reg FULL; reg FULL; wire LD ; wire LD ; reg3:0 Q1;reg3:0 Q1;always (posedge CLK or posedge LD or negedge RST) always (posedge CLK or posedge LD or negedge RST) /時(shí)序過(guò)程 beginbegin if(!RST)begin Q1=0;FULL=0;end if(!RST)begin Q1=0;FULL=0;end else if(LD) begin Q1=DATA;FULL=1;end else if(LD) begin Q
24、1=DATA;FULL=1;end else if(EN)begin Q1=Q1+1;FULL=0;end else if(EN)begin Q1=Q1+1;FULL=0;end end endassign LD=(Q1=4B0000); assign LD=(Q1=4B0000); assign DOUT=Q1; assign DOUT=Q1; /將內(nèi)部寄存器的計(jì)數(shù)結(jié)果輸出至DOUTassign COUT=FULL; assign COUT=FULL; /輸出進(jìn)位標(biāo)志0endmodule endmodule module CNT16(CLK,RST,EN,COUT,DOUT,DATA);mo
25、dule CNT16(CLK,RST,EN,COUT,DOUT,DATA);input CLK,RST,EN; input CLK,RST,EN; /時(shí)鐘,時(shí)鐘使能,復(fù)位,數(shù)據(jù)加載控制信號(hào)輸入口input15:0DATA; input15:0DATA; / 4位并行加載數(shù)據(jù)輸入口output15:0DOUT; output15:0DOUT; /計(jì)數(shù)數(shù)據(jù)輸出信號(hào)口output COUT; output COUT; /計(jì)數(shù)進(jìn)位輸出reg FULL; reg FULL; wire LD ; wire LD ; reg15:0 Q1;reg15:0 Q1;always (posedge CLK or
26、posedge LD or negedge RST) always (posedge CLK or posedge LD or negedge RST) /時(shí)序過(guò)程 beginbegin if(!RST)begin Q1=0;FULL=0;end if(!RST)begin Q1=0;FULL=0;end else if(LD) begin Q1=DATA;FULL=1;end else if(LD) begin Q1=DATA;FULL=1;end else if(EN)begin Q1=Q1+1;FULL=0;end else if(EN)begin Q1=Q1+1;FULL=0;end
27、end endassign LD=(Q1=assign LD=(Q1=16d0); assign DOUT=Q1; assign DOUT=Q1; /將內(nèi)部寄存器的計(jì)數(shù)結(jié)果輸出至DOUTassign COUT=FULL; assign COUT=FULL; /輸出進(jìn)位標(biāo)志0endmodule endmodule 4-11 用用Verilog設(shè)計(jì)一個(gè)功能類似設(shè)計(jì)一個(gè)功能類似74LS160的計(jì)數(shù)器。的計(jì)數(shù)器。同步十進(jìn)制同步十進(jìn)制計(jì)數(shù)器計(jì)數(shù)器74LS160TC 進(jìn)位輸出端 CP 時(shí)鐘輸入端(上升沿有效)CEP 計(jì)數(shù)控制端 /MR異步清除輸入端(低電平有效)Q0Q3 輸出端 /PE同步并行置入控制端(
28、低電平有效)CET 計(jì)數(shù)控制端 P0P3數(shù)據(jù)輸入端功能表:功能表:說(shuō)明:H高電平 L低電平 X任意 module CNT10(CP, MR, CET, CEP , PE, TC, Q, P); output 3:0 Q; /計(jì)數(shù)數(shù)據(jù)輸出端 output TC; /TC進(jìn)位輸出端 input CP,MR,CET,PE,CEP; /時(shí)鐘,復(fù)位,時(shí)鐘使能,數(shù)據(jù)加載控制信號(hào)輸入口 input 3:0 P; /4位并行加載數(shù)據(jù)輸入口 reg3:0 Q;reg TC,s s; always(posedge CP or negedge MR ) /CP 時(shí)鐘輸入端(上升沿有效) begin s=s=CET&
29、 &CEP; if(!MR)begin Q=0; end /MR 異步清除輸入端(低電平有效) else begin if(!PE)begin Q=P;end /PE 同步并行置入控制端(低電平有效) else if(s) begin Q=Q+1; if(Q = 4b1111)begin TC=1; end else begin TC=0; end end else begin Q=Q;end end end endmodule 4-11 用用Verilog設(shè)計(jì)一個(gè)功能類似設(shè)計(jì)一個(gè)功能類似74LS160的計(jì)數(shù)器。的計(jì)數(shù)器。同步十進(jìn)制同步十進(jìn)制計(jì)數(shù)器計(jì)數(shù)器74LS1604-11 用用Verilo
30、g設(shè)計(jì)一個(gè)功能類似設(shè)計(jì)一個(gè)功能類似74LS160的計(jì)數(shù)器。的計(jì)數(shù)器。module stimulus;reg CP,MR,CET,CEP;reg 3:0P;/,Qreg PE;wire3:0 Q;wire TC;CNT10 r1(CP, MR, CET, CEP , PE, TC, Q, P);initialCP=1b0; /?CP?0always#5 CP=CP;/?5?initialbeginCET=1b0;MR=1b1;PE=1b1;P=4d0;CEP=1b0;#5 P=4d5; #5 CET=1b1;CEP=1b1;#10 MR=1b0;#10 MR=1b1;#30 P=4d7;#5 P
31、E=1b0;#5 PE=1b1;#50 PE=1b0;#3 PE=1b1;#20 P=4d9;#100 PE=1b0;#10 PE=1b0;#10 PE=1b1;#20 P=4d4;#20 $finish;endinitial$monitor($time, CP=%b, MR=%b, CET=%b,CEP=%b,PE=%b,TC=%b,Q=%d,P =%d, CP, MR, CET,CEP,PE,TC,Q,P);endmodule習(xí)習(xí) 題題 4-12 給出含有異步清零和計(jì)數(shù)使能的給出含有異步清零和計(jì)數(shù)使能的16位二進(jìn)制加減可控計(jì)數(shù)器的位二進(jìn)制加減可控計(jì)數(shù)器的Verilog HDL描述。描述。m
32、odule updowncnt16_v(q,cout, d, load, ena, clk,clr, up_down); input 15:0 d; input load, ena, clk, clrc, up_down; output 15:0 q; output cout; reg 15:0 q; always (posedge clk or negedge clr ) begin if(!clr) q=16h00 ; /異步清零異步清零,低電平有效 else if(ena) begin /計(jì)數(shù)使能端,高電平有效 if(!load)q=d; /同步置數(shù),高電平有效 if(up_down)q
33、=q+1 ; /up_down=1時(shí),加計(jì)數(shù) else q=q-1; end /up_down=0時(shí),減計(jì)數(shù) end assign cout=up_down?&q:|q ; / 或者 endmodule 4-13 分別給出以下分別給出以下6個(gè)個(gè)RTL圖的圖的Verilog描述,注意其中的描述,注意其中的D觸發(fā)器和鎖存器的表觸發(fā)器和鎖存器的表述。述。 圖圖4-28 RTL圖圖1圖圖4-29 RTL圖圖2圖圖4-30 RTL圖圖3圖圖4-31 RTL圖圖4圖圖4-32 RTL圖圖5圖圖4-33 RTL圖圖64-13 4-13 分別給出以下分別給出以下6 6個(gè)個(gè)RTLRTL圖的圖的VerilogVe
34、rilog描述,注意其中的描述,注意其中的D D觸發(fā)器和鎖存器的表述。觸發(fā)器和鎖存器的表述。module RTL1 (CLK, CL, OUT); output OUT; input CLK, CL; reg Q; wire D; /*用assign連續(xù)賦值語(yǔ)句不可以*/ assign OUT=Q; assign D=(Q|CL); /*用門級(jí)電路可以*/ /not(OUT,Q); /nor(D,Q,CL); always (posedge CLK) Q=D;endmodule圖圖4-28 RTL圖圖1DENAQPRECLRDQOUTCLKCL4-13 4-13 分別給出以下分別給出以下6 6
35、個(gè)個(gè)RTLRTL圖的圖的VerilogVerilog描述,注描述,注意其中的意其中的D D觸發(fā)器和鎖存器的表述。觸發(fā)器和鎖存器的表述。圖圖4-29 RTL圖圖2module RTL2(A, B, C, D,Y); output Y; input A, B, C, D; wire TP1,TP2; reg Y; /or(TP1,A,B); /*用門級(jí)電路可以*/ /and(TP2,C,D); assign TP1=A|B; /*用assign連續(xù)賦值語(yǔ)句也可以*/ assign TP2=C&D; always (TP1,TP2,A) begin if(TP1=1)Y=TP1TP2; else Y=A; end endmodule01TP1TP2Y0Y1YDCBA4-13 4-13 分別給出以下分別給出以下6 6個(gè)個(gè)RTLRTL圖的圖的VerilogVerilog描述,注描述,注意其中的意其中的D D觸發(fā)器和鎖存器的表述。觸發(fā)器和鎖存器的表述。圖圖4-30
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025上半年四川瀘州敘永縣事業(yè)單位招聘工作人員176人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 工程維修合同范本(19篇)
- 岳陽(yáng)現(xiàn)代服務(wù)職業(yè)學(xué)院《測(cè)試技術(shù)基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度二零二五年度生態(tài)環(huán)保型商品房買賣協(xié)議
- 2025年度工廠車間承包與綠色制造技術(shù)創(chuàng)新合同3篇
- 2025年度房地產(chǎn)租賃反擔(dān)保質(zhì)押合同樣本2篇
- 2025年度地膜產(chǎn)品研發(fā)生產(chǎn)與全球購(gòu)銷合作協(xié)議3篇
- 2025年度房地產(chǎn)居間合同糾紛起訴狀范文及法律適用指南3篇
- 2025年度辦公室裝修工程施工及配套家具采購(gòu)合同
- 2025年度合伙購(gòu)買養(yǎng)老公寓合作協(xié)議
- 保安服務(wù)項(xiàng)目服務(wù)質(zhì)量標(biāo)準(zhǔn)及日常檢查考核標(biāo)準(zhǔn)
- 2022年1月福建省高中學(xué)生學(xué)業(yè)基礎(chǔ)會(huì)考物理試卷及答案
- 信息系統(tǒng)運(yùn)維服務(wù)方案
- 空調(diào)檢驗(yàn)報(bào)告
- 陜西省西安市碑林區(qū)鐵一中學(xué)2020-2021學(xué)年七年級(jí)上學(xué)期期末數(shù)學(xué)試題(含答案解析)
- 簡(jiǎn)支梁、懸臂梁撓度計(jì)算程序(自動(dòng)版)
- 埋地鋼管結(jié)構(gòu)計(jì)算
- X-Y數(shù)控工作臺(tái)及其控制系統(tǒng)設(shè)計(jì)
- 電工新技術(shù)介紹(課堂PPT)
- 我最喜歡的節(jié)日的小學(xué)英語(yǔ)作文我喜歡的節(jié)日英語(yǔ)作文.doc
- 機(jī)電設(shè)備維護(hù)保養(yǎng)技術(shù)
評(píng)論
0/150
提交評(píng)論