資源描述:
《蔡覺(jué)平老師-verilog上機(jī)作業(yè).docx》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、上機(jī)作業(yè)題目2:簡(jiǎn)述begin-end語(yǔ)句塊和fork-join語(yǔ)句塊的區(qū)別,并寫出下面信號(hào)對(duì)應(yīng)的程序代碼begin-end語(yǔ)句塊和fork-join語(yǔ)句塊的區(qū)別:1、執(zhí)行順序:begin-end語(yǔ)句塊按照語(yǔ)句順序執(zhí)行,fork-join語(yǔ)句塊所有語(yǔ)句均在同一時(shí)刻執(zhí)行;2、語(yǔ)句前面延遲時(shí)間的意義:begin-end語(yǔ)句塊為相對(duì)于前一條語(yǔ)句執(zhí)行結(jié)束的時(shí)間,fork-join語(yǔ)句塊為相對(duì)于并行語(yǔ)句塊啟動(dòng)的時(shí)間;3、起始時(shí)間:begin-end語(yǔ)句塊為首句開(kāi)始執(zhí)行的時(shí)間,fork-join語(yǔ)句塊為轉(zhuǎn)入并行語(yǔ)句塊的時(shí)間;4、結(jié)束時(shí)間:begin-end語(yǔ)句塊為最后一
2、條語(yǔ)句執(zhí)行結(jié)束的時(shí)間,fork-join語(yǔ)句塊為執(zhí)行時(shí)間最長(zhǎng)的那條語(yǔ)句執(zhí)行結(jié)束的時(shí)間;5、行為描述的意義:begin-end語(yǔ)句塊為電路中的數(shù)據(jù)在時(shí)鐘及控制信號(hào)的作用下,沿?cái)?shù)據(jù)通道中各級(jí)寄存器之間的傳送過(guò)程。fork-join語(yǔ)句塊為電路上電后,各電路模塊同時(shí)開(kāi)始工作的過(guò)程。程序如下:moduleb(a,b);outputa,b;rega,b;initialbegina=0;b=1;#10a=1;forkb=0;#10b=1;#20a=0;join#10b=0;#10a=1;b=1;endendmodule題目3.分別用阻塞和非阻塞賦值語(yǔ)句描述如下圖所示移位
3、寄存器的電路圖。程序如下:moduleblock1(din,clk,out0,out1,out2,out3);inputdin,clk;outputout0,out1,out2,out3;regout0,out1,out2,out3;always@(posedgeclk)beginout3=out2;out2=out1;out1=out0;out0=din;endendmodulemodulenon_block1(din,clk,out0,out1,out2,out3);inputdin,clk;outputout0,out1,out2,out3;regou
4、t0,out1,out2,out3;always@(posedgeclk)beginout0<=din;out1<=out0;out2<=out1;out3<=out2;endendmodule題目4:設(shè)計(jì)16位同步計(jì)數(shù)器要求:(1)分析16位同步計(jì)數(shù)器結(jié)構(gòu)和電路特點(diǎn);(2)用硬件描述語(yǔ)言進(jìn)行設(shè)計(jì);(3)編寫測(cè)試仿真并進(jìn)行仿真。程序如下:moduleb;regclk;regreset;wire[3:0]count,result;always#5clk=~clk;initialbeginclk=0;reset=0;#20reset=1;endaU1(.clk(
5、clk),.reset(reset),.result(result),.count(count));endmodulemodulea(count,clk,reset,result);outputcount,result;inputclk,reset;reg[3:0]count;always@(posedgeclk)beginif(!reset)count=4'b0000;elsecount=count+1;endassignresult=count[0]
6、
7、count[1]
8、
9、count[2]
10、
11、count[3];endmodule題目5.試用Verilog
12、HDL門級(jí)描述方式描述如下圖所示的電路。程序如下:modulediwuti(D0,D1,D2,D3,S1,S2,Z);outputZ;inputD0,D1,D2,D3,S1,S2;wirewi1,wi2,w3,w4,w5,w6;notU1(w1,S1),U2(w2,S2);andU3(w6,D3,S2),U4(w5,D2,S1,w2),U5(w4,D1,S1,w1),U6(w3,D0,w1,w2);orU7(Z,w3,w4,w5,w6);endmodule題目6.試用查找真值表的方式實(shí)現(xiàn)真值表中的加法器,寫出VerilogHDL代碼:Cinainbinsum
13、Cout0000000110010100110110010101011100111111程序如下:modulefulladder(SUM,C_OUT,A,B,C_IN);outputSUM,C_OUT;inputA,B,C_IN;regSUM,C_OUT;always@(AorBorC_IN)case({A,B,C_IN})3'b000:SUM<=0;3'b000:C_OUT<=0;3'b001:SUM<=1;3'b001:C_OUT<=0;3'b010:SUM<=1;3'b010:C_OUT<=0;3'b011:SUM<=0;3'b011:C_OUT<=1
14、;3'b100:SUM<=1;3'b100:C_OU