资源预览内容
第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
第9页 / 共16页
第10页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Verilog HDL数字集成电路设计原理与应用上机作业班级学号姓名* iai 12 11j代删ten由可Itr手tbsndh 入E八iff。人E* Afr3tbeniT_sniHTejs._ aAs3tbehi_g*iHTeg3._ JAestbenctLF ilb egkrlntberidi_d-rillregii. min* 11&: o* 12&: o51QH I1J1Do.noF 览 EQZBl n. EM1!1_1II 1_1-41 j%h ,9 / JSHO题目1:数字集成电路的verilog HDL描述与仿真要 (1)学习使用Modelsim设计和仿真软求:件;(2) 练习教材7.2.1中的例子;(3) 掌握设计代码和测试代码的编写;(4) 掌握测试仿真流程;解答:题目2:简述begin-end语句块和fork-join语句块的区别,并写出下面信号对应的程 序代码Bo1020304050解答:(1) begin-end语句块和fork-join语句块的区 别:1、 执行顺序:begin-end语句块按照语句顺序执行,fork-join语句块所 有语句均在同一时刻执行;2、语句前面延迟时间的意义:beg in-e nd语句块为相对于前一条语句执行结束的时间,fork-joi n语句块为相对于并行语句块启动的时间;3、起始时间:begin-end语句块为首句开始执行的时间,fork-join 语句 块为转入并行语句块的时间;4、结束时间:begin-end语句块为最后一条语句执行结束的时间,forkjoin语句 块为执行时间最长的那条语句执行结束的时间;5、行为描述的意义:begin-end语句块为电路中的数据在时钟及控制信号的作用下,沿数据通道中各级寄存器之间的传送过程。fork-join语句块为电路上电后,各电路模块同时开始工作的过程。(2) 程序代码:Beg in-end 语句:module in itial_tb1 ;reg A,B; in itial beg inA=0;B=1;#10 A=1;B=0;#10 B=1;#10 A=0;#10 B=0;#10 A=1;B=1;end en dmoduleFrk-joi n 语句:module wave_tb2;reg A,B;parameter T=10;in itial forkA=0;B=1;#T A=1;B=0;#(2*T) B=1;#(3*T) A=0;#(4*T) B=0;#(5*T) A=1;B=1;joi n en dmodule题目3.分别用阻塞和非阻塞赋值语句描述如下图所示移位寄存器的电路图outOoutlout2解答:(1)阻塞赋值语句module block2(di n,clk,out0,out1,out2,out3); in put din ,clk;output out0,out1,out2,out3;reg out0,out1,out2,out3;always(posedge clk)beginout0=di n;out 1= out0;out2=out1;out3=out2;enden dmodule(2 )非阻塞赋值语句module non_block1 (di n,clk,out0,out1,out2,out3); in put din ,clk;output out0,out1,out2,out3;reg out0,out1,out2,out3;always(posedge clk)beginout0=di n;out1=out0;out2=out1;out3=out2;enden dmodule题目4:设计16位同步计数器要求:(1)分析16位同步计数器结构和电路特点;(2) 用硬件描述语言进行设计;(3) 编写测试仿真并进行仿真。解答:(1) 电路特点:同步计数器的时间信号是同步的;每当到达最高计数后就会重新计数。(2) 程序代码:module comp_16 (co unt, elk, rst );output 15:0 count;in put clk,rst;reg 15:0 cou nt;always (posedge clk)if (rst) count=16b00000;elseif (coun t=16b1111111111111111)cou nt=16b00000;elsecoun t=co un t+1;en dmodule(3) 仿真代码:module comp_16_tb;wire 15:0 count;reg clk,rst;comp_16 U1 (count, clk, rst );always #1 clk=clk;in itialbeginclk=0;rst=0;#1 rst=1;#10 rst=0;#10 rst=1;#10 rst=0;#99999 $finish;enden dmodule题目5试用Verilog HDL门级描述方式描述如下图所示的电路。D3D2D1DOS2000T211T1解答:module zy(D0,D1,D2,D3,S1,S2,T0,T1,T2,T3,Z); output Z;in put D0,D1,D2,D3,S1,S2;wire T0,T1,T2,T3,wire1,wire2;not U1(wire1,S1),U2(wire2,S2);and U3(T0,D0,wire2,wire1),U4(T1,D1,S1,wire1),U5(T2,D2,S1,wire2),U6(T3,D3,S1,S2);or U7( Z,T0,T1,T2,T3,);en dmoduleCinainbinsumCout000000011001010题目6试用查找真值表的方式实现真值表中的加法器,写出Verilog HDL 代码:0110110010101011100111111解答:module homework6(SUM,COUT,A,B,CIN); output SUM,COUT;in put A,B,CIN;reg SUM,COUT; always(A or B or CIN) case(A,B,CIN)3b000:SUM=0;3bOOO:COUT=O;3b001:SUM=1;3bOO1:COUT=O;3b010:SUM=1;3bO1O:COUT=O;3b011:SUM=0;3b011:COUT=1;3b100:SUM=1;3b100:COUT=0;3b101:SUM=0;3b101:COUT=1;3b110:SUM=0;3b110:COUT=1;3b111:SUM=1;3b111: COUT=1;endcaseen dmodule题目7:设计16位同步加法器和乘法器要求:(1)分析16位同步加法器和乘法器结构和电路特点;(2) 用硬件描述语言进行设计;(3) 编写测试仿真并进行仿真。解答:(1) 16位同步加法器和乘法器结构和电路特点:加法器的进位只用考虑一位,但是乘法器的进位要考 虑到32位才行。(2) 程序代码:16位同步加法器:module adder(a,b,c,sum,cout);output 15:0sum;output cout;input 15:0a,b;input c;assign cout,sum=a+b+c;endmodule16位同步乘法器:module multiplier(a,b,mul);input 15:0a,b;output 31:0mul;assign mul=a*b;endmodule仿真代码:16位同步加法器:module adder_tb;reg 15:0a,b;reg c;wire 15:0sum;wire cout;initialbegin a=8;b=8;c=1;endinitialbegin#10 a=16b1111111111111111;#10 b=1;endadder U2(.a (a),.b (b),.c(c),.cout(cout),.sum(sum); endmodule16位同步乘法器:module multiplier_tb;reg 15:0a,b;wire 31:0mul;initialbegina=3;b=8; end in itial begin #10 a=100; #15 b=100; endmultiplier U1(.a(a),.b(b),.mul(mul); en dmodule仿真截图:加法器:H 阳-defaiitCP/addertb/a/addertb/b1111111111111111 000000X00000001 1|QQ000600000cL 1111111 1111111T 11 lOOOOOOQOOODOIQboooooaootnooooooc/addef tb/sum|0000300000000001sn000000000! 00.ornocio 叩 i/addeitb?cculwave加训和时血3 /nulAji?r_tb/b乘法器:0000000001100100 1(330000(0(3boco3coD(m JOlOCODKWOOIJOCIIICiococo ocjJDOCC. I0rnjnnM0?0roor0J-00l1l 30C1D000OOmCOODOIKMK I.Q30CDD(OJ0CO1 DCIQX)tacoocosoc()题目8.将下面的状态转移图用Verilog HDL描述。在图中,状态机的输入只与状态的跳转有关,与状态机的输出无关,因此该状态机为摩尔型状态机。下面为三段式描述方式。start=0clr=1StateOout=001step3=1
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号