EDA技术与应用 教学课件 ppt 作者 陈海宴第8章 系统仿真与ModelSim软件使用

上传人:w****i 文档编号:92479293 上传时间:2019-07-10 格式:PPT 页数:106 大小:2.28MB
返回 下载 相关 举报
EDA技术与应用 教学课件 ppt 作者 陈海宴第8章 系统仿真与ModelSim软件使用_第1页
第1页 / 共106页
EDA技术与应用 教学课件 ppt 作者 陈海宴第8章 系统仿真与ModelSim软件使用_第2页
第2页 / 共106页
EDA技术与应用 教学课件 ppt 作者 陈海宴第8章 系统仿真与ModelSim软件使用_第3页
第3页 / 共106页
EDA技术与应用 教学课件 ppt 作者 陈海宴第8章 系统仿真与ModelSim软件使用_第4页
第4页 / 共106页
EDA技术与应用 教学课件 ppt 作者 陈海宴第8章 系统仿真与ModelSim软件使用_第5页
第5页 / 共106页
点击查看更多>>
资源描述

《EDA技术与应用 教学课件 ppt 作者 陈海宴第8章 系统仿真与ModelSim软件使用》由会员分享,可在线阅读,更多相关《EDA技术与应用 教学课件 ppt 作者 陈海宴第8章 系统仿真与ModelSim软件使用(106页珍藏版)》请在金锄头文库上搜索。

1、第8章 系统仿真与ModelSim软件使用,8.1系统任务与函数 在Verilog中定义了很多系统任务和函数,这些系统任务和函数主要用于仿真,有助于实现高效的仿真和有效的仿真分析。 1、$display与$write $display和$write是两个系统任务,两者的功能相同,都用于显示模拟结果,其区别是$display在输出结束后能自动换行,而$write不换行。,$display 和$write的使用格式为: $display(“格式控制符”,输出变量名列表) $write(“格式控制符”,输出变量名列表) 例如: $display($time,”a=%hb=%hc=%h”,a,b,c)

2、;,2、$monitor和$strobe 与$display和$write类似,$monitor和$strobe也属于仿真结果显示与输出系统任务。它们的使用格式如下: $monitor(”显示格式控制符”,输出变量列表); $strobe(”显示格式控制符”,输出变量列表); $monitor就像有一个独立的监视器,每当输出变量列表中的变量发生变化时,$monitor任务就执行一次。,3、$time和$realtime $time和$realtime是显示仿真时间标度的系统任务,这两个系统任务被调用时,可以返回当前的仿真时刻表。两者的区别在于$time返回的是整数时间值,$realtime返回

3、的是实数时间值。,在modelsim下仿真后输出结果显示为: #0 a=x #10 a=1 #20 a=2 如果将$time改为$realtime,那么仿真后输出显示为: #0 a=x #10.1 a=1 #20.2 a=2,4、$finish与$stop 系统任务$finish与$stop用于对仿真过程进行控制,分别表示结束仿真和中断仿真。 $finish与$stop的使用格式如下: $stop; $stop(n); $finish; $finish(n);,n是$finish与$stop 的参数,n可以是0、1、2等值,分别表示以下含义: 0:不输出任何信息; 1:给出仿真时间和位置 2:

4、给出仿真时间和位置,还有其他一些运行统计数据。 如果不带参数,则默认的参数是1.,5、$readmemh与$readmemb $readmemh与$readmemb是属于文件读写控制的系统任务,其作用都是从外部文件中读取数据并放入存储器中。两者的区别在于读取数据的格式不同,$readmemh为读取十六进制数据,而$readmemb为读取二进制数据。$readmemh与$readmemb的使用格式为: $readmemh(”数据文件名”,存储器名,起始地址,结束地址); $readmemb(”数据文件名”,存储器名,起始地址,结束地址); 其中,起始地址和结束地址均可以采用默认,如果缺省起始地址

5、,表示从存储器的首地址开始存储;如果缺省结束地址,表示一直存储到存储器的结束地址。,6、$random $random是产生随机数的系统函数,每次调用该函数将返回一个32位的随机数,该随机数是一个带符号的整数。,8.2 用户自定义原语 利用用户自定义原语(User Defined Primitives,即UDP),用户可以自行定义和调用基本逻辑元件。用户定义基本单元(UDP、User Defined Primitive)和Verilog HDL内部的基本单元相似,但UDP只能用于仿真程序中,不能用于可综合的设计描述。用真值表可以描述组合逻辑UDP元件和时序逻辑UDP元件。,2、UDP的应用 U

6、DP在ASIC库单元开发、中小型芯片设计中很有用,主要表现在以下方面: (1)可以使用UDP扩充已定义的基本单元集; (2)UDP是自包容的,也就是不需要实例化其它模块; (3)UDP可以表示时序元件和组合元件; (4)UDP的行为由真值表表示; (5)UDP实例化与基本单元实例化相同。,8.3 应用Testbench仿真验证 如何验证设计的正确性及其功能的实现是否达到了最初的设计目的,在项目实践中尤为重要。设计的过程实际上是从一种形式到另一种形式的转换,比如从设计要求到RTL代码,从RTL代码到门级网表,从门级网表到版图等。验证则是保证每一步的设计转换过程准确无误。 在FPGA/CPLD设计

7、领域,最常用的仿真软件工具是Modelsim软件。,Testbench,即测试平台,用于仿真验证。在软环境中没有激励输入,也不能对用户的设计输出结果的正确性做出评估。因此就有必要模拟实际环境的输入激励和输出校验,在这个虚拟平台上用户可以对设计从软件层面上进行分析和校验,完成仿真验证。 接下来将简单介绍一下测试平台Testbench的编写及其在ModelSim仿真中的应用。,8.3.1 基本结构 测试平台在结构上包括两部分,一部分是实例化被测设计DUT(Design Under Test)并提供激励源,另一部分是验证输出结果并校验其正确性。 其基本结构框架(Verilog HDL编写)如图8.3

8、.1所示:,8.3.2 验证过程 仿真验证过程主要包括:利用Verilog HDL编制Testbench 仿真文件,通过波形或自动比较工具,分析设计的正确性,并分析Testbench自身的覆盖率和正确性。,Testbench的仿真流程如图8.3.3所示,Testbench为被验证设计提供激励信号、实例化被验证设计、将仿真数据显示在终端或者存入文件。,测试程序的结构如图8.3.4所示,测试程序与一般的Verilog模块没有根本的区别,其特点表现为: 测试模块只有模块名字,没有端口列表。输入信号(激励信号)必须定义为reg型,以保持信号值;输出信号(显示信号)必须定义为wire型。在测试模块中调用

9、被测试模块,调用时,应注意端口排列的顺序与模块定义时一致。,一般的Testbench测试程序分为产生时钟激励信号、各种测试用例和设计模块实例等部分。用户验证DUT模块接口如图8.3.5所示。,8.3.3 验证的全面性与代码覆盖率分析 代码覆盖率(code coverage)可以指示Verilog代码描述的功能有多少在仿真过程中被验证过了,代码覆盖率分析包括以下分析内容。,3、有限状态机覆盖率(finite state machine coverage) 分析RTL代码中有限状态机的覆盖率,统计在仿真过程中状态机发生了哪些跳转,这种分析可以防止验证过程中某些状态跳转从来没有发生过,从而造成设计隐

10、患。,【例8.3.1】总线仲裁器的设计与验证。 共享总线上的设备拥有共同的地址线和数据线,需要总线仲裁器决定哪个设备使用共享的总线。图8.3.6是两个设备共享一个总线的总线状态机。master1和master2是共享总线的两个设备,areq0和areq1分别是master1和master2设备请求使用总线的请求信号,agnt0和agnt1是master1和master2设备使用总线的确认信号,rid是仲裁方式选择信号。当rid=1时,master2拥有比 master1更高的优先级使用总线;当rid=0时,master2和master1循环使用总线。 当master1和master2设备同时发

11、出请求时,总线仲裁器根据内部控制寄存器rid的值按照优先级或者循环使用两种机制给相应的总线设备发出确认信号。,总线仲裁器状态机的跳转条件涉及多个输入信号,跳转的路径比较多,在验证时需要考虑的组合情况也比较多,在仿真验证过程中可能出现某些路径没有被仿真到的情况,此时可以考虑编写仿真检查列表,以避免遗漏。,8.4 应用ModelSim软件仿真,8.4.1 软件简介 1、ModelSim 主要特点: (1)RTL和门级优化,本地编译结构,编译仿真速度快; (2)单内核VHDL和Verilog混合仿真; (3)源代码模版和助手,项目管理; (4)集成了性能分析、波形比较、代码覆盖等功能; (5)数据流

12、ChaseX;Signal Spy;C和Tcl/Tk接口,C调试。,8.4.2 ModelSim软件安装过程 本书中相关示例均是采用ModelSim SE 6.2版本。 (1)双击运行 ModelSim SE 6.2目录下 setup.exe程序,弹出如图8.4.1所示对话框,选择安装产品类型;,(2)在这里选择Full Product安装完全版,弹出如图8.4.2所示对话框,直接点击Next,进入如图8.4.3对话框,点击Yes进入如图8.4.4对话框:,(3)在图8.4.4的对话框下选择软件安装路径,默认路径为C:Modeltech_6.2b,也可自己选择安装目录,如图8.4.5所示:,(

13、4)确定后开始安装,显示出安装进度对话框,如图8.4.6所示,直到安装完成,出现如图8.4.7所示界面:,此时,重启ModelSim软件仍不能正常使用,这是因为用户还未获取许可文件。用户可登录Mentor公司官网,在线申请或发送电子邮件获取其许可文件。 当询问security key的时候,在“ License Wizard”中选择 license 所在路径,默认为C:Modeltech_6.2bwin32license.dat。选择确定后一般还要进一步作环境变量配置:右键点击我的电脑-属性-高级-环境变量-新建,新建变量名为LM_LICENSE_FILE,变量值也就是license所在的路径

14、,如C:Modeltech_6.2bwin32license.dat,完成后重启电脑,运行ModelSim,成功打开ModelSim软件界面如图8.4.8所示:,8.4.3 使用ModelSim进行设计仿真 利用ModelSim软件仿真包括功能仿真和时序仿真。下面简单介绍一下ModelSim的仿真过程: 1、新建工程 双击运行ModelSim软件,在软件界面选择“FileNew-Project”建立新工程,并在该对话框中填写和选择工程名称、路径和仿真库,如图8.4.9所示:,确定后点击“OK”按钮,弹出如图8.4.10所示对话框,选择向该工程添加的项目类型,可以新建,也可以添加已有文件,如图8

15、.4.11和8.4.12所示:,2、编译仿真 在文件上右键选择“Compile- Compile All”开始编译,如图8.4.13所示。当状态栏中的问号都变成对勾时编译成功。,编译完成后,在Workspace的“Library”中,点开work的子目录,在文件图标上右键选择“Simulate”进行仿真,如图8.4.14所示:,3、查看波形 仿真编译成功后出现如图8.4.15所示界面,然后右键选择“Add - Add to Wave”为波形窗口添加信号,如图8.4.16所示:,信号添加完成后,弹出如图8.4.17所示的波形界面,然后在“Simulate”菜单下选择“RunRun All”,或者

16、在工具栏中点击“ ”图标开始仿真,直到出现仿真波形。,8.4.4 在 QuartusII 中直接调用 ModelSim 上一节中讲述了利用ModelSim 仿真操作的基本流程,本节将介绍如何在 QuartusII 中直接调用ModelSim 进行仿真。 这节内容的关键在于几处设置,下面将逐步介绍: 1、软件路径设置 打开QuartusII软件,在“Assignments”菜单下选择“SettingsGeneral”选项,根据自己的ModelSim软件安装位置,在“EDA Tool Options”界面下设置ModelSim的安装路径,如图8.4.18所示:,2、仿真测试平台设置 在“Assignments”菜单下选择“SettingsEDA Tool Settings”选项,在“Simul

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号