![FPGACPLD应用技术 数字系统的验证_第1页](http://file4.renrendoc.com/view/7ff017074f4fbfcb80a470f47b8c5902/7ff017074f4fbfcb80a470f47b8c59021.gif)
![FPGACPLD应用技术 数字系统的验证_第2页](http://file4.renrendoc.com/view/7ff017074f4fbfcb80a470f47b8c5902/7ff017074f4fbfcb80a470f47b8c59022.gif)
![FPGACPLD应用技术 数字系统的验证_第3页](http://file4.renrendoc.com/view/7ff017074f4fbfcb80a470f47b8c5902/7ff017074f4fbfcb80a470f47b8c59023.gif)
![FPGACPLD应用技术 数字系统的验证_第4页](http://file4.renrendoc.com/view/7ff017074f4fbfcb80a470f47b8c5902/7ff017074f4fbfcb80a470f47b8c59024.gif)
![FPGACPLD应用技术 数字系统的验证_第5页](http://file4.renrendoc.com/view/7ff017074f4fbfcb80a470f47b8c5902/7ff017074f4fbfcb80a470f47b8c59025.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
会计学1FPGACPLD应用技术数字系统的验证任务:设计一个具有“百分秒、秒、分”计时功能的数字跑表,可以实现一个小时以内精确百分之一秒的计时,具有复位、暂停功能,其设计方案框图如图5.1所示。要求复位信号高电平有效,对系统异步清零,暂停信号高电平有效,即高电平停止计数,低电平继续计数,百分秒、秒、分钟计数均采用BCD码计数方式。第1页/共36页逻辑设计`timescale1ns/1nsModulepaobiao(clk,reset,pause,ms_h,ms_l,s_h,s_l,m_h,m_l);第2页/共36页3.Testbench设计在数字系统设计完成后,就要对设计电路进行功能仿真,以验证设计的正确性,这是本任务的核心步骤。编写Testbench的主要目的是为了对使用硬件描述语言(HDL)设计的电路进行仿真验证,测试设计电路的功能、部分性能是否与预期的目标相符。第3页/共36页moduletb_paobiao;reg clk,reset,pause;wire[3:0] ms_h,ms_l,s_h,s_l,m_h,m_l;paobiaou_paobiao(clk,reset,pause,ms_h,ms_l,s_h,s_l,m_h,m_l);//时钟产生模块initialbegin clk=1'b0;endalways #5clk=~clk;//复位信号产生initialbegin reset=1'b0; #100reset=1'b1; #10reset=1'b0;end//暂停信号产生initialbegin pause=1'b1; #300pause=1'b0; #119905pause=1'b1; #30pause=1'b0;endinitial$monitor($stime,,reset,,clk,,,pause,,ms_h,,ms_l,,s_h,,s_l,,m_h,,m_l);endmodule第4页/共36页Modelsim仿真1)新建project(1)选择菜单File/new/project,弹出CreateProject对话框,如图5.2所示。第5页/共36页Modelsim仿真1)新建project(2)添加文件到Project中在弹出的CreateProject对话框中点击OK,弹出AdditemstotheProject对话框,选择AddExistingFile,弹出CreateProjectFile对话框,如图5.3所示。第6页/共36页Modelsim仿真1)新建project(3)在AddfileasType栏中选择Verilog,点击Browse,添加文件后的对话框,如图5.4所示。第7页/共36页Modelsim仿真2)编译源代码点击菜单Compile/Compileall,编译后的文件状态如图5.5所示。第8页/共36页Modelsim仿真3)启动仿真器点击StartSimulation,启动仿真器,如图5.6所示。第9页/共36页Modelsim仿真3)启动仿真器在work工作库下找到testbench文件,并选中,然后点击OK,如图5.7所示。第10页/共36页Modelsim仿真4)执行仿真将仿真信号添加到仿真波形窗口,用鼠标选中仿真信号,选择菜单Add/Wave/SelectedSignals,如图5.8所示。第11页/共36页Modelsim仿真4)执行仿真选择菜单Simulation/Run/RunAll,执行仿真,仿真波形如图5.9所示。第12页/共36页ModelsimModelsim是Mentor公司开发的HDL硬件描述语言仿真软件,该软件可以用来实现对用户设计的VHDL、Verilog或者两种语言混合的程序进行仿真,同时也支持IEEE常见的各种硬件描述语言标准。第13页/共36页使用Modelsim进行功能仿真
1.新建工程
在Modelsim软件中选择“File”菜单下的“New”选项,选择“Project”选项,打开如图5.16所示的新建工程对话框。在该对话框中填写工程名称,路径和库。单击“OK”按钮,弹出如图5.17所示的添加工程项目对话框。选择向工程添加的项目类型,然后单击“Close”按钮完成工程的建立。这里选择“AddExitingFile”项目。第14页/共36页使用Modelsim进行功能仿真
2.加入文件在新建工程时,也可以不选择添加的项目种类,而是在project栏里面单击右键,在弹出的菜单中选择“AddtoProject→ExistingFile”,如图5.18所示。第15页/共36页使用Modelsim进行功能仿真
3.编译源代码Verilog源文件的GUI模式的编译方法是:直接执行主窗口中“Compile”菜单下的各种不同的编译命令,如图5.20所示。第16页/共36页使用Modelsim进行功能仿真
3.编译源代码当文件窗口中“Status”栏的“﹖”图标变成一个“√”的图标时,说明文件编译成功,如图5.21所示。第17页/共36页使用Modelsim进行功能仿真
4.启动仿真器并加载顶层设计这一步骤的GUI操作方法:执行主菜单中的Simulate/Simulate命令。打开开始仿真对话框,如图5.24所示,选择顶层模块,如图5.25所示。
第18页/共36页使用Modelsim进行功能仿真
5.执行仿真,查看波形右键单击test,选择“Add”选项下面的“AddtoWave”选项,为波形窗口添加信号,如图5.26所示。
第19页/共36页使用Modelsim进行功能仿真
5.执行仿真,查看波形此时即可在新弹出的窗口中看到已添加的信号,如图5.27所示。
第20页/共36页使用Modelsim进行功能仿真
5.执行仿真,查看波形单击工具栏中的图标就能看见仿真结果了,如图5.28所示。
第21页/共36页5.3Testbench设计方法通常Testbench没有输入与输出端口,通常应包括信号或变量定义,产生激励波形语句,例化设计模块,监控和比较响应输出语句。5.3.1Testbench基本结构moduletest_bench;
信号或变量定义声明使用initial或always语句来产生激励波形例化设计模块监控和比较输出响应endmodule第22页/共36页5.3Testbench设计方法HDL用于描述硬件电路,同样也可以用于描述仿真激励的产生。HDL描述可以产生所需要的控制信号,以及一些简单的数据。5.3.2简单CPU接口激励产生方式initialbegin cs_n=1;//CPU接口初始状态
wr_n=1; rd_n=1; addr=8’hxx; data=8’hzz; #1000; //一次写操作
cs_n=0;
wr_n=0; addr=8’h80; data=8’h00; #100; cs_n=1;wr_n=1;#10;addr=8’hxx;data=8’hzz;end第23页/共36页5.3Testbench设计方法5.3.4常用产生激励描述方式1)产生时钟的几种方式(1)使用initial方式产生占空比为50%的时钟initialbegin clk=0; #delay; forever #(period/2)clk=~clk;end第24页/共36页5.3Testbench设计方法5.3.4常用产生激励描述方式1)产生时钟的几种方式(2)使用always方式initial clk=0;always #(period/2)clk=~clk;第25页/共36页5.3Testbench设计方法5.3.4常用产生激励描述方式1)产生时钟的几种方式(3)使用repeat方式产生确定数目的时钟脉冲initialbegin clk=0;repeat(6)
#(period/2)clk=~clk;end第26页/共36页5.3Testbench设计方法5.3.4常用产生激励描述方式1)产生时钟的几种方式(4)产生占空比非50%的时钟initial clk=0;alwaysbegin #3clk=~clk; #2clk=~clk;end第27页/共36页5.3Testbench设计方法5.3.4常用产生激励描述方式2)产生复位信号的几种方式(1)异步复位initialbegin rst=1; #100; rst=0; #500; rst=1;end第28页/共36页5.3Testbench设计方法5.3.4常用产生激励描述方式2)产生复位信号的几种方式(2)同步复位1initialbegin rst=1; @(negedgeclk);//等待时钟下降沿
rst=0; #30; @(negedgeclk);//等待时钟下降沿
rst=1;end第29页/共36页5.3Testbench设计方法5.3.4常用产生激励描述方式2)产生复位信号的几种方式(3)同步复位2initialbegin rst=1; @(negedgeclk); //等待时钟下降沿
repeat(3)@(negedgeclk);//经过3个时钟下降沿
rst=1;end第30页/共36页5.4常用的Verilog测试语句1.$display/$monitor//在终端上打印信号的ASCII值initialbegin $timeformat(-9,1,“ns”,12);//设置输出时钟格式
$display(“stimeclkrstpausems_hms_ls_hs_lm_hm_l”);//显示输入的字符串
$monitor(“%t%b%b%b%b%b%b%b%b”,//设置输出信号格式
$realtime,clock,reset,pause,ms_h,ms_l,s_h,s_l,m_h,m_l);//指定输出的信号end$display是将函数内部双引号中的字符串输出在终端上。而$monitor则不同,它的输出是事件驱动的。在例子中,$monitor信号列表中的$realtime信号变化会触发终端显示事件的发生,该信号被设计者对应到仿真时间中,每次$monitor的触发将会把信号列表中的信号值显示在终端中。$monitor语句中的“%”用于定义信号列表中信号的输出格式。例如,%t将信号按照时间格式输出,%b将信号按照二进制格式输出。另外VerilogHDL语言还提供了其它的输出格式,比如%h为十六进制输出,%d为十进制输出,%o为八进制输出等。第31页/共36页5.4常用的Verilog测试语句2.timescales'timescale1ns/1ps//度量参考为1ns,精度为1psmoduletestbench; … initialbegin #10rst=1;//10个仿真时间延时,相当于10x1ns=10ns的仿真时间
… end initialbegin //display语句将在每一个仿真推进布进中执行,也就是1ps执行一次
$display(''%d,rst=%b"m$time,rst); endendmodule'timescalereference_time/precision其中reference_time是单位时间的度量,precision决定了仿真的推进延迟精度,同时也设置了仿真的推进步进单位。第32页/共36页5.4常用的Verilog测试语句3.force/releasemodule testbench; ... initialbegin rst=1;//在仿真时间零点将rst赋值1 forcedata=101;//在仿真时间零点强制使data为101,并保持
#30rst=0;//在仿真绝对时间30将rst赋值0 #50releasedata;//在仿真绝对时间80释放
...//data值将保持直到下一个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度化妆品线上线下全渠道销售合同4篇
- 2025年三类维修劳动合同范文(2篇)
- 2025年度农业机械租赁及配件供应合同范本
- 2025年一般劳动合同经典版(三篇)
- 2025年专利实施许可转让合同常用版(2篇)
- 2025年个人住房按揭贷款合同范文(2篇)
- 2025中外合资经营企业合同模板版本2
- 2025聘书是否属于劳动合同
- 2025年度门业销售合同范本图片获取授权3篇
- 民族品牌加盟合同
- 安踏运动品牌营销策略研究
- 非哺乳期乳腺炎患者的护理
- 淋巴瘤的治疗及护理
- 骨科抗菌药物应用分析报告
- 中职安全管理方案
- 百词斩托福词汇excel版本
- 高考写作指导常见议论文论证方法知识梳理与举例解析课件27张
- 玻璃反应釜安全操作及保养规程
- 高中英语新课标词汇表(附词组)
- 证券公司信用风险和操作风险管理理论和实践中金公司
- 2022年高考湖南卷生物试题(含答案解析)
评论
0/150
提交评论