版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Verilog HDL数字集成电路设计原理与应用上机作业班级:*学号:*姓名:*题目1:数字集成电路的verilog HDL描述与仿真。要求:(1)学习使用Modelsim设计和仿真软件; (2)练习教材7.2.1中的例子; (3)掌握设计代码和测试代码的编写; (4)掌握测试仿真流程; (5)掌握Modelsim软件的波形验证方式。解答: 题目2: 简述begin-end语句块和fork-join语句块的区别,并写出下面信号对应的程序代码解答:(1)begin-end语句块和fork-join语句块的区别:1、执行顺序:begin-end语句块按照语句顺序执行,fork-join语句块所有语
2、句均在同一时刻执行;2、语句前面延迟时间的意义:begin-end语句块为相对于前一条语句执行结束的时间,fork-join语句块为相对于并行语句块启动的时间;3、起始时间:begin-end语句块为首句开始执行的时间,fork-join语句块为转入并行语句块的时间;4、结束时间:begin-end语句块为最后一条语句执行结束的时间,fork-join语句块为执行时间最长的那条语句执行结束的时间;5、行为描述的意义:begin-end语句块为电路中的数据在时钟及控制信号的作用下,沿数据通道中各级寄存器之间的传送过程。fork-join语句块为电路上电后,各电路模块同时开始工作的过程。(2)程序
3、代码:Begin-end语句:module initial_tb1;reg A,B;initialbeginA=0;B=1;#10A=1;B=0;#10B=1;#10A=0;#10B=0;#10A=1;B=1;endendmoduleFrk-join语句:module wave_tb2;reg A,B;parameter T=10;initialfork A=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)阻塞赋值
4、语句module block2(din,clk,out0,out1,out2,out3);input din,clk;output out0,out1,out2,out3;reg out0,out1,out2,out3;always(posedge clk)beginout0=din;out1=out0; out2=out1;out3=out2;endendmodule(2)非阻塞赋值语句module non_block1 (din,clk,out0,out1,out2,out3);input din,clk;output out0,out1,out2,out3;reg out0,out1,o
5、ut2,out3;always(posedge clk) beginout0<=din;out1<=out0; out2<=out1;out3<=out2;endendmodule 题目4:设计16位同步计数器要求:(1)分析16位同步计数器结构和电路特点; (2)用硬件描述语言进行设计; (3)编写测试仿真并进行仿真。解答:(1)电路特点:同步计数器的时间信号是同步的;每当到达最高计数后就会重新计数。(2)程序代码:module comp_16 (count, clk, rst );output 15:0 count;input clk,rst; reg 15:0 c
6、ount;always (posedge clk) if (rst)count<=16'b0000000000000000; else if (count=16'b1111111111111111) count<=16'b0000000000000000; else count<=count+1;endmodule(3)仿真代码:module comp_16_tb;wire 15:0 count;reg clk,rst; comp_16 U1 (count, clk, rst );always #1 clk=clk;initialbeginclk=0;
7、rst=0;#1 rst=1;#10 rst=0;#10 rst=1;#10 rst=0;#99999 $finish;endendmodule 题目5. 试用Verilog HDL门级描述方式描述如下图所示的电路。解答:module zy(D0,D1,D2,D3,S1,S2,T0,T1,T2,T3,Z);output Z;input 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,
8、D2,S1,wire2), U6(T3,D3,S1,S2);or U7(Z,T0,T1,T2,T3,);endmodule 题目6. 试用查找真值表的方式实现真值表中的加法器,写出Verilog HDL代码:CinainbinsumCout0000000110010100110110010101011100111111解答:module homework6(SUM,COUT,A,B,CIN);output SUM,COUT;input A,B,CIN;reg SUM,COUT;always(A or B or CIN)case(A,B,CIN) 3'b000:SUM<=0; 3&
9、#39;b000:COUT<=0; 3'b001:SUM<=1; 3'b001:COUT<=0; 3'b010:SUM<=1; 3'b010:COUT<=0; 3'b011:SUM<=0; 3'b011:COUT<=1; 3'b100:SUM<=1; 3'b100:COUT<=0; 3'b101:SUM<=0; 3'b101:COUT<=1; 3'b110:SUM<=0; 3'b110:COUT<=1; 3'b11
10、1:SUM<=1; 3'b111: COUT<=1; endcase endmodule 题目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 cou
11、t,sum=a+b+c;endmodule16位同步乘法器:module multiplier(a,b,mul); input 15:0a,b; output 31:0mul; assign mul=a*b;endmodule(3)仿真代码:16位同步加法器:module adder_tb;reg 15:0a,b; reg c; wire 15:0sum; wire cout; initial begin a=8;b=8;c=1; end initial begin #10 a=16'b1111111111111111;#10 b=1; end adder U2(.a (a),.b (
12、b),.c(c),.cout(cout),.sum(sum);endmodule16位同步乘法器:module multiplier_tb; reg 15:0a,b; wire 31:0mul; initial begin a=3;b=8; end initial begin #10 a=100; #15 b=100; end multiplier U1(.a(a),.b(b),.mul(mul);endmodule仿真截图:加法器:乘法器: 题目8. 将下面的状态转移图用Verilog HDL描述。在图中,状态机的输入只与状态的跳转有关,与状态机的输出无关,因此该状态机为摩尔型状态机。下面为
13、三段式描述方式。解答:程序代码:module homework8(clk,out,step,clr); output 2:0out; input step,clk,clr; reg 2:0out; reg 1:0state,next_state; always (posedge clk) state<=next_state; always (state or clr) if(clr) next_state<=0; else case(state) 2'b00: case(step) 1'b0:begin next_state<=2'b00;out<
14、;=3'b001;end 1'b1:begin next_state<=2'b01;out<=3'b001;end endcase 2'b01: begin out<=3'b010; next_state<=2'b10; end 2'b10: case(step) 1'b0:begin next_state<=2'b00;out<=3'b100;end 1'b1:begin next_state<=2'b11;out<=3'b100;e
15、nd endcase 2'b11: case(step) 1'b0:begin next_state<=2'b11;out<=3'b111;end 1'b1:begin next_state<=2'b00;out<=3'b111;end endcase endcaseendmodule仿真代码:module homework8_tb; reg clk,step,clr; wire 3:0out; always #5 clk=clk; initial begin clk=0; clr=1;step=1;end ini
16、tial begin #5clr=0; #10 step=0; #10step=1;end homework8 U1(clk,out,step,clr);endmodule仿真截图: 题目9. 如下图所示电路,若其延迟时间设定如表所示,试写Verilog HDL程序设计该电路。路径最小值(min)典型值(type)最大值(max)a_sa_y101214s_s0_sa_y151719s_sb_y111315b_sb_y101214解答:程序代码:module a(a,s,b,y,s0); input a,b,s,s0; output y; assign y=(s&&b)|(s0
17、&&a); specify (a=>y)=(10,12,14); (b=>y)=(10,12,14); (s=>y)=(11,13,15); (s0=>y)=(11,13,15); endspecifyendmodulemodule b(a,s,b,y); input s,a,s,b; output y; wire s0; not #(4)U1(s0,s); delay_door U2(a,s,b,y,s0);endmodule 题目10.设计一个8位数字显示的简易频率计。要求:能够测试10Hz10MHz方波信号;电路输入的基准时钟为1Hz,要求测量值以
18、8421BCD码形式输出;系统有复位键;采用分层次分模块的方法,用Verilog HDL进行设计。解答:程序代码:module x; reg standard_clk; reg test_clk; wire 7:0out; reg reset; initial begin reset=0; test_clk=0; standard_clk=0; end initial #15 reset=1; always #1 test_clk=test_clk; always #10 standard_clk=standard_clk; a U1(.reset(reset),.test_clk(test_
19、clk),.standard_clk(standard_clk),.ratio_final(out);endmodulemodule a(reset,test_clk,standard_clk,ratio_final); input reset,test_clk,standard_clk; output 7:0ratio_final; wire mul_clk; wire reset_comp; wire 7:0ratio_start; and U0(reset_comp,reset,standard_clk); t U1(.ain(test_clk),.din(standard_clk),.
20、mul(mul_clk); w U2(.clk(mul_clk),.count(ratio_start),.reset(reset_comp); c U3(.ratio_start(ratio_start),.ratio_final(ratio_final);endmodule module w(clk,count,reset); input clk,reset; output count; parameter bit=8; reg bit-1:0count; always (posedge clk or negedge reset) if(!reset) count<=8'b0
21、0000000; else count<=count+1; endmodulemodule t(ain,din,mul); parameter width=1; input width-1:0ain,din; output width*2-1:0mul; assign mul=ain*din;endmodulemodule c(ratio_start,ratio_final); input 7:0ratio_start; output 7:0ratio_final; assign ratio_final=2*ratio_start;endmodule 题目11. 用Verilog HDL设计一个4位LED显示器的动态扫描译码电路。要求:4个七段显示器共用一个译码驱动电路;显示的数码管清晰明亮,无闪烁现象发生。解答:module a(out,in); output out; input in; reg6:0out; wire3:0in; always(in) begin case(in) 4'd0:out=7'b1111110; 4'd1:out=7'b0110000; 4'd2:out=7'b1101101; 4'd3:out=7'b1111001; 4'd4:out=7&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 艺术体操用带细分市场深度研究报告
- 装载机产品供应链分析
- 商务礼仪攻略秘籍-提升个人形象与职场成功率
- 窗用纸制室内遮帘商业机会挖掘与战略布局策略研究报告
- 化妆用防晒制剂产品供应链分析
- 纸板杯市场分析及投资价值研究报告
- 物镜光学产品供应链分析
- 广告设计行业经营分析报告
- 电感线圈支架产品供应链分析
- 常压潜水服出租行业营销策略方案
- 妇科手术患者饮食指导
- MOOC 现代科技与人类未来-大连大学 中国大学慕课答案
- 主题班会-期中考试动员
- 夸美纽斯完整版本
- 社会主义发展史智慧树知到期末考试答案2024年
- 创新者的窘境读书课件
- 2024-2029年中国工业固态硬盘行业市场现状分析及竞争格局与投资发展研究报告
- 医院管理案例分享:住院患者人工气道同质化管理持续改进
- 第1课时《认识总体国家安全观》教学设计
- 项目设计招标实施工作方案
- 糖尿病酮症酸中毒的诊断和治疗
评论
0/150
提交评论