資源描述:
《蔡覺平老師西電Verilog HDL上機(jī)大作業(yè)(硬件描述語言)_微電子學(xué)院》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、《VerilogHDL數(shù)字集成電路設(shè)計(jì)原理與應(yīng)用》上機(jī)作業(yè)班級(jí):*******學(xué)號(hào):*******姓名:*******題目1:數(shù)字集成電路的verilogHDL描述與仿真。要求:(1)學(xué)習(xí)使用Modelsim設(shè)計(jì)和仿真軟件;(2)練習(xí)教材7.2.1中的例子;(3)掌握設(shè)計(jì)代碼和測(cè)試代碼的編寫;(4)掌握測(cè)試仿真流程;(5)掌握Modelsim軟件的波形驗(yàn)證方式。解答:題目2:簡(jiǎn)述begin-end語句塊和fork-join語句塊的區(qū)別,并寫出下面信號(hào)對(duì)應(yīng)的程序代碼解答:(1)begin-end語句塊和for
2、k-join語句塊的區(qū)別:1、執(zhí)行順序:begin-end語句塊按照語句順序執(zhí)行,fork-join語句塊所有語句均在同一時(shí)刻執(zhí)行;2、語句前面延遲時(shí)間的意義:begin-end語句塊為相對(duì)于前一條語句執(zhí)行結(jié)束的時(shí)間,fork-join語句塊為相對(duì)于并行語句塊啟動(dòng)的時(shí)間;3、起始時(shí)間:begin-end語句塊為首句開始執(zhí)行的時(shí)間,fork-join語句塊為轉(zhuǎn)入并行語句塊的時(shí)間;4、結(jié)束時(shí)間:begin-end語句塊為最后一條語句執(zhí)行結(jié)束的時(shí)間,fork-join語句塊為執(zhí)行時(shí)間最長(zhǎng)的那條語句執(zhí)行結(jié)束的時(shí)間;
3、5、行為描述的意義:begin-end語句塊為電路中的數(shù)據(jù)在時(shí)鐘及控制信號(hào)的作用下,沿?cái)?shù)據(jù)通道中各級(jí)寄存器之間的傳送過程。fork-join語句塊為電路上電后,各電路模塊同時(shí)開始工作的過程。(2)程序代碼:Begin-end語句:moduleinitial_tb1;regA,B;initialbeginA=0;B=1;#10A=1;B=0;#10B=1;#10A=0;#10B=0;#10A=1;B=1;endendmoduleFrk-join語句:modulewave_tb2;regA,B;paramete
4、rT=10;initialforkA=0;B=1;#TA=1;B=0;#(2*T)B=1;#(3*T)A=0;#(4*T)B=0;#(5*T)A=1;B=1;joinendmodule題目3.分別用阻塞和非阻塞賦值語句描述如下圖所示移位寄存器的電路圖。解答:(1)阻塞賦值語句moduleblock2(din,clk,out0,out1,out2,out3);inputdin,clk;outputout0,out1,out2,out3;regout0,out1,out2,out3;always@(posedg
5、eclk)beginout0=din;out1=out0;out2=out1;out3=out2;endendmodule(2)非阻塞賦值語句modulenon_block1(din,clk,out0,out1,out2,out3);inputdin,clk;outputout0,out1,out2,out3;regout0,out1,out2,out3;always@(posedgeclk)beginout0<=din;out1<=out0;out2<=out1;out3<=out2;endendmodu
6、le題目4:設(shè)計(jì)16位同步計(jì)數(shù)器要求:(1)分析16位同步計(jì)數(shù)器結(jié)構(gòu)和電路特點(diǎn);(2)用硬件描述語言進(jìn)行設(shè)計(jì);(3)編寫測(cè)試仿真并進(jìn)行仿真。解答:(1)電路特點(diǎn):同步計(jì)數(shù)器的時(shí)間信號(hào)是同步的;每當(dāng)?shù)竭_(dá)最高計(jì)數(shù)后就會(huì)重新計(jì)數(shù)。(2)程序代碼:modulecomp_16(count,clk,rst);output[15:0]count;inputclk,rst;reg[15:0]count;always@(posedgeclk)if(rst)count<=16'b0000000000000000;elseif(
7、count==16'b1111111111111111)count<=16'b0000000000000000;elsecount<=count+1;endmodule(3)仿真代碼:modulecomp_16_tb;wire[15:0]count;regclk,rst;comp_16U1(count,clk,rst);always#1clk=~clk;initialbeginclk=0;rst=0;#1rst=1;#10rst=0;#10rst=1;#10rst=0;#99999$finish;enden
8、dmodule題目5.試用VerilogHDL門級(jí)描述方式描述如下圖所示的電路。解答:modulezy(D0,D1,D2,D3,S1,S2,T0,T1,T2,T3,Z);outputZ;inputD0,D1,D2,D3,S1,S2;wireT0,T1,T2,T3,wire1,wire2;notU1(wire1,S1),U2(wire2,S2);andU3(T0,D0,wire2,wire1),U4(T1,D1,S