资源描述:
《verilog实验报告---程超.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、西安邮电學院基于Verilog的数字电路模拟实验系部名称:通信与信息工程学院学生姓名:张宏扬专业名称:通信工程班级:通工0809学号:(01)时间:2010年12月20号实验题目门级建模仿真实验一、实验内容设计的一个带有清零的顺序输出结果的计数器,q从0计数到15二、技术规范1、输入引脚:reset,clk;输出引脚:q。2、功能:这时也个具有清零的计数器,从0到15输出的。在其中用到了T触发器和D触发器来实现它的功能。三、实验步骤1、在modulesim软件中对设计模块和验证模块进行书写和编译;2、对编译好的模块进行仿真。四、
2、源代码://脉动进位计数器顶层模块moduleripple_carry_counter(q,clk,reset);output[3:0]q;inputclk,reset;//生成了4个T触发器(T_FF)的实例,每个都有自己的名字T_FFtff0(q[0],clk,reset);T_FFtff1(q[1],q[0],reset);T_FFtff2(q[2],q[1],reset);T_FFtff3(q[3],q[2],reset);endmodule//触发器T_FFmoduleT_FF(q,clk,reset);outputq
3、;inputclk,reset;wired;D_FFdff0(q,d,clk,reset);notn1(d,q);//非门(not)是Verilog语言的内置原语部件(primitive)endmodule//D触发器(D_FF)//带异步复位的D触发器(D_FF)moduleD_FF(q,d,clk,reset);outputq;inputd,clk,reset;regq;//可以有许多种新结构,不考虑这些结构的功能,只需要注意设计块是如何以自顶向下的方式编写的always@(posedgeresetornegedgeclk)
4、if(reset)q<=1'b0;elseq<=d;endmodulemodulestimulus;regclk;regreset;wire[3:0]q;//引用已经设计好的模块实例ripple_carry_counterr1(q,clk,reset);//控制驱动设计块的时钟信号,时钟周期为10个时间单位initialclk=1'b0;//把clk设置为0always#5clk=~clk;//每5个时间单位时钟翻转一次//控制驱动设计块的reset信号initialbeginreset=1'b1;#15reset=1'b0;#
5、180reset=1'b1;#10reset=1'b0;#20$finish;//终止仿真end//监视输出initial$monitor($time,"Outputq=%d",q);endmodule五、仿真结果及分析ClkReset013241501201q[3:0]仿真输出结果:0Outputq=020Outputq=130Outputq=240Outputq=350Outputq=460Outputq=570Outputq=680Outputq=790Outputq=8100Outputq=9110Outputq=101
6、20Outputq=11130Outputq=12140Outputq=13150Outputq=14160Outputq=15170Outputq=0180Outputq=1190Outputq=2195Outputq=0210Outputq=1220Outputq=2实验题目RS锁存器一、实验内容带有延迟的RS锁存器,写出其带有延迟的Verilog门级描述。编写其激励模块,根据下面的输入-输出关系表对其功能进行验证。setresetQn+100Qn01010111?在设计完成后,写出激励模块对其进行仿真。二、技术规范1、输入
7、引脚:reset,set;输出引脚:q,qbar,out。2、功能:这是具有延迟的RS锁存器。Reset为置位端,set为置零端。三、实验步骤1、在modulesim软件中对设计模块和验证模块进行书写和编译;2、对编译好的模块进行仿真。四、源代码:RS锁存器1.设计模块:moduleSR_lach(q,qbar,reset,set);outputq,qbar;inputreset,set;nand#1(q,reset,qbar);nand#1(qbar,set,q);endmodule2.验证模块:moduleTop;wireQ
8、,Qbar;regReset,Set;SR_latch(.reset(Reset),.q(Q),.qbar(Qbar),.set(Set));initialbegin$monitor($time,"Set=%b,Reset=%b,Q=%b",Set,Rese