2022年modelsim使用教程. .pdf

上传人:Che****ry 文档编号:34883558 上传时间:2022-08-19 格式:PDF 页数:18 大小:1.41MB
返回 下载 相关 举报
2022年modelsim使用教程. .pdf_第1页
第1页 / 共18页
2022年modelsim使用教程. .pdf_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《2022年modelsim使用教程. .pdf》由会员分享,可在线阅读,更多相关《2022年modelsim使用教程. .pdf(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Modelsim 6.0 使用教程1. Modelsim简介Modelsim 仿真工具是Model 公司开发的。 它支持 Verilog 、VHDL以及他们的混合仿真,它可以将整个程序分步执行,使设计者直接看到他的程序下一步要执行的语句,而且在程序执行的任何步骤任何时刻都可以查看任意变量的当前值,可以在Dataflow窗口查看某一单元或模块的输入输出的连续变化等,比 quartus自带的仿真器功能强大的多,是目前业界最通用的仿真器之一。 对 于 初 学 者 , modelsim自 带 的 教 程 是 一 个 很 好 的 选 择 , 在Help-SE PDF Documentation-Tuto

2、rial里面. 它从简单到复杂、从低级到高级详细地讲述了modelsim 的各项功能的使用,简单易懂。 但是它也有缺点, 就是它里面所有事例的初期准备工作都已经放在 example 文件夹里,直接将它们添加到modelsim 就可以用,它假设使用者对当前操作的前期准备工作都已经很熟悉,所以初学者往往不知道如何做当前操作的前期准备。 2.安装 同许多其他软件一样, Modelsim SE同样需要合法的License, 通常我们用Kengen产生license.dat。 解压安装工具包开始安装,安装时选择Full product安装。当出现Install Hardware Security Key

3、 Driver时选择否。当出现Add Modelsim To Path选择是。出现Modelsim License Wizard时选择 Close。 在 C盘根目录新建一个文件夹flexlm ,用 Keygen 产生一个 License.dat,然后复制到该文件夹下。 修改系统的环境变量。右键点击桌面我的电脑图标,属性-高级-环境变量 -(系统变量)新建。按下图所示内容填写,变量值内如果已经有别的路径了,请用“; ” 将其与要填的路径分开。LM_LICENSE_FILE = c:flexlmlicense.dat 1名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -

4、- - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 18 页 - - - - - - - - - 安装完毕,可以运行。 3. Modelsim仿真方法 Modelsim 的仿真分为前仿真和后仿真,下面先具体介绍一下两者的区别。 3.1 前仿真 前仿真也称为功能仿真,主旨在于验证电路的功能是否符合设计要求,其特点是不考虑电路门延迟与线延迟,主要是验证电路与理想情况是否一致。可综合FPGA代码是用 RTL级代码语言描述的,其输入为RTL级代码与Testbench. 3.2 后仿真 后仿真也称为时序仿真或者布局布线后仿真,是指电路已经映射到特定的工艺环境以后

5、,综合考虑电路的路径延迟与门延迟的影响,验证电路能否在一定时序条件下满足设计构想的过程,是否存在时序违规。其输入文件为从布局布线结果中抽象出来的门级网表、Testbench 和扩展名为SDO或 SDF的标准时延文件。 SDO 或 SDF的标准时延文件不仅包含门延迟,还包括实际布线延迟,能较好地反映芯片的实际工作情况。一般来说后仿真是必选的,检查设计时序与实际的FPGA运行情况是否一致,确保设计的可靠性和稳定性。 3.3 Modelsim仿真的基本步骤 Modelsim 的仿真主要有以下几个步骤:建立库并映射库到物理目录;编译原代码(包括 Testbench;执行仿真。 3.3.1 建立库 在执

6、行一个仿真前先建立一个单独的文件夹,后面的操作都在此文件下进行,以防止文件间的误操作。然后启动Modelsim将当前路径修改到该文件夹下,修改的方法是点File-Change Directory选择刚刚新建的文件夹见下图。 2名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 18 页 - - - - - - - - - 仿真库是存储已编译设计单元的目录,modelsim中有两类仿真库,一种是工作库,默认的库名为work, 另一种是资源库。Work 库下包含当前工程下所有已经

7、编译过的文件。所以编译前一定要建一个work 库,而且只能建一个work 库。资源库存放work 库中已经编译文件所要调用的资源,这样的资源可能有很多,它们被放在不同的资源库内。例如想要对综合在 cyclone芯片中的设计做后仿真,就需要有一个名为cyclone_ver的资源库。 映射库用于将已经预编译好的文件所在的目录映射为一个modelsim 可识别的库,库内的文件应该是已经编译过的,在 Workspace 窗口内展开该库应该能看见这些文件,如果是没有编译过的文件在库内是看不见的。 建立仿真库的方法有两种。一种是在用户界面模式下,点File-New-Library出现下面的对话框,选择a

8、new library and a logical mapping to it,在Library Name内输入 3名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 18 页 - - - - - - - - - 要创建库的名称,然后OK ,即可生成一个已经映射的新库。另一种方法是在Transcript窗口输入以下命令: vlib work /* 库名 */ vmap work work /* 映射的逻辑名称 存放的物理路径 */ 如果要删除某库,只需选中该库名,点右键选择D

9、elete 即可。 需要注意的是不要在modelsim 外部的系统盘内手动创建库或者添加文件到库里;也不要 modelsim 用到的路径名或文件名中使用汉字,因为 modelsim 可能无法识别汉字而导致莫名其妙的错误。 3.3.2 编写与编译测试文件 在 编 写Testbench之 前 最 好 先 将 要 仿 真 的 目 标 文 件 编 译 到 工 作 库 中 , 点Compile-Compile或,将出现下面的对话框, 在 Library中选择工作库,在查找范围内找到要仿真的目标文件,然后点Compile 和 Done 。或在命令行输入vlog fulladder.v。此时目标文件已经编译

10、到工作库中,在Library中展开工作库会发现该文件。 4名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 18 页 - - - - - - - - - 当对要仿真的目标文件进行仿真时需要给文件中的各个输入变量提供激励源,并对输入波形进行的严格定义,这种对激励源定义的文件称为Testbench,即测试台文件。下面先讲一下 Testbench 的产生方法。 我们可以在modelsim 内直接编写Testbench,而且 modelsim 还提供了常用的各种模板。具体步骤如下:

11、 执行File-New-Source-verilog,或者直接点击工具栏上的新建图标,会出现一个 verilog文档编辑页面, 在此文档内设计者即可编辑测试台文件。需要说明的是在Quartus中许多不可综合的语句在此处都可以使用,而且testbench只是一个激励源产生文件,只要对输入波形进行定义以及显示一些必要信息即可,切记不要编的过于复杂,以免喧宾夺主。 Modelsim 提供了很多Testbench 模板,我们直接拿过来用可以减少工作量。点View-Source-Show Language Templates然后会出现一个加载工程,接着你会发现在刚才的文档编辑窗口左边出现了一个Langu

12、age Templates窗口, 见下图。展开Verilog项,双击Creat Testbench会出现一个创建向导,见下图。5名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 18 页 - - - - - - - - - 选择Specify Design Unit工作库下的目标文件,点Next, 出现下面对话框可以指定Testbench 的名称以及要编译到的库等,此处我们使用默认设置直接点Finish 。 这时在 Testbench 内会出现对目标文件的各个端口的定义还有

13、调用函数接下来,设计者可以自己往Testbench 内添加内容了,然后保存为.v格式即可。按照前面的方法把Testbench 文件也编译到工作库中。 3.3.3 执行仿真 因为仿真分为前仿真和后仿真,下面分别说明如何操作。 .前仿真 前仿真,相对来说是比较简单的。在上一步我们已经把需要的文件编译到工作库内了,现在我们只需点simulate-Start Simulation或快捷按钮会出现 start simulate对话框。点击Design 标签选择Work库下的 Testbench 文件,然后点OK即可,也可以直接双击Testbench 文件,此时会出现下面的界面。 6名师资料总结 - -

14、-精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 18 页 - - - - - - - - - 在主界面中会多出来一个Objects窗口,里面显示Testbench 里定义的所有信号引脚,在 Workspace 里也会多出来一个Sim 标签。 右键点击 fuladder_tb.v,选择Add-Add to Wave ,如下图所示。然后将出现Wave窗口,现在就可以仿真了,见下图。 窗口里面已经出现了待仿真的各个信号,点将开始执行仿真到100ns,继续点仿真波形也将继续延伸,见下图. 7名师资料总

15、结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 18 页 - - - - - - - - - 若点,则仿真一直执行,直到点才停止仿真。也可以在命令行输入命令: run 1000 则执行仿真到1000ns,后面的1000 也可以是别的数值,设计者可以修改。在下一次运行次命令时将接着当前的波形继续往后仿真。 对于复杂的设计文件,最好是自己编写testbench文件,这样可以精确定义各信号以及各个信号之间的依赖关系等,提高仿真效率。 对于一些简单的设计文件,也可以在波形窗口自己创建输入波

16、形进行仿真。具体方法是双击work 库里的目标仿真文件fulladder.v,然后点 workspace 窗口中出现的sim 标签,右键点击fuladder,选择Add-Add to Wave ,如下图所示。然后将出现Wave窗口。在wave 窗 口 中 选 中 要 创 建 波 形 的 信 号 , 如 此 例 中 的 a, 然 后 右 键 点 击 , 选 择8名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 18 页 - - - - - - - - - Create/Mod

17、ify/Wave项出现下面的窗口,在 Patterns中选择输入波形的类型,然后分别在右边的窗口中设定起始时间、终止时间以及 单 位 , 再 点Next出 现 下 面 的 窗 口 , 我 们 把 初 始 值 的HiZ改 为0 ,然后修改时钟周期和占空比,然后点Finish. 接着继续添加其他输入波形,出现下面的结果。 前面出现的红点表示该波形是可编辑的。后面的操作与用testbench文本仿真的方法相同 如果设计者只想查看指定信号的波形,可以先选中objects窗口中要观察的信号,然后点右键选择Add to Wave-Selected signals,见下图,那么在Wave窗口中只添加选中的信

18、号。 9名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 18 页 - - - - - - - - - 如果要保存波形窗口当前信号的分配,可以点File-Save-Format,在出现的对话框中设置保存路径及文件名,保存的格式为.do文件。如果是想导出自己创建的波形(在文章最后有详细的解释)可以选择File-Export Waveform在出现的对话框中选择EVCD File并进行相关设置即可,如果导入设计的波形选择File-Import ECVD即可。 在主界面中点Vie

19、w-Debug Windows-Dataflow可以看到会出现dataflow窗口,在objects窗口中拖一个信号到该窗口中,你会发现在dataflow窗口中出现你刚才选中信号所在的模块, 如果双击模块的某一引脚,会出现与该引脚相连的别的模块或者引线,见下图。在 dataflow窗口中点View-Show Wave ,会在dataflow窗口中出现一个wave 窗口,双击上面窗口中的某一模块,则在下面的wave 窗口中出现与该模块相连的所有信号,如果已经执行过仿真,在wave窗口中还会出现对应的波形,见下图。 10名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -

20、- - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 18 页 - - - - - - - - - 在波形窗口中拖动游标,上面模块的引脚信号的值也会随着游标当前位置的改变而改变。 如果要在modelsim 中修改原设计文件,在文档页面点击右键,取消Read Only,即可修改,修改后继续仿真。如果想结束仿真可以点Simulate-End Simulation,或直接在命令行输入 quit -sim,此时quartus也会显示结束所有编译过程。 后仿真 后仿真与前仿真的步骤大体相同,只不过中间需要加添加仿真库、网表和延时文件的步骤。 后仿真的前提是qua

21、rtus已经对要仿真的目标文件进行编译,并生成 modelsim 仿真所需要的.vo 文件( 网表文件 ) 和.sdo文件(时延文件) ,具体操作过程又有两种方法,一种是通过 Quartus 调用 Modelsim,Quartus 在编译之后自动把仿真需要的.vo文件以及需要的仿真库加到 modelsim 中,操作简单; 一种是手动将需要的文件和库加入modelsim 进行仿真, 这种方法可以增加主观能动性,充分发挥modelsim 的强大仿真功能。 。通过 Quartus 调用 Modelsim 使用这种方法时首先要对Quartus 进行设置。 先运行 Quartus,打开要仿真的工程,点菜

22、单栏的Assignments ,点 EDA Tool settings,选中左边Category中的 Simulation. ,在右边的Tool name 中选 ModelSim(Verilog), 选中下面的 Run Gate Level Simulation automatically after complication. 见下图。 11名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 18 页 - - - - - - - - - Quartus 中的工程准备好之后

23、点击start complication按钮,此时modelsim 会自动启动,而 quartus处于等待状态(前提是系统环境变量中用户变量中PATH 要设置好modelsim安装路径 , 如:D:Modeltech_6.0win32) 。在打开的modelsim 的 Workspace 窗口中你会发现多了工作库和资源库,而且work 库中出现了需要仿真的文件。Modelsim自动将 quartus生成的 .vo 文件编译到work 库,并建立相应的资源库。如图所示。 12名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心

24、整理 - - - - - - - 第 12 页,共 18 页 - - - - - - - - - 编写测试台程序fuladder_tb.v ,最好放在生成的 .vo文件所在的目录,以方便在需要手动仿真时使用。 点 Compile 在出现的对话框中选中fuladder_tb.v文件,然后点 Compile按钮, 编译结束后点Done,这时在Work 库中会出现测试台文件。点击simulate-Start Simulation或快捷按钮会出现 start simulate对话框。点击Design 标签选择Work 库下的 fuladder_tb.v文件,然后点击Libraries标签在 Searc

25、h Library中点击 Add 按钮,选择仿真所需要的资源库(如果不知道需要选择哪个库,可以先直接点Compile 看出现的错误提示中说需要的库名,然后再重复上述步骤),见下图。再点start simulate对话框的SDF标签。在出现的对话框的SDF File框内加入 .sdo时延文件路径。在Apply To Region框内有一个“ / ”, 在“/ ”的前面输入测试台文件名,即“fulladder_tb”,在它的后面输入测试台程序中调用被测试程序时给被测试程序起的名称 ,本例中为“ DUT ”,见下图。然后点 OK 。后面与前仿真步骤相同。 13名师资料总结 - - -精品资料欢迎下载

26、 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 18 页 - - - - - - - - - 14名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 18 页 - - - - - - - - - . 手动仿真 手动仿真需要自己添加文件和编译库,但可以充分发挥modelsim 强大的仿真功能。操作时也要先对quartus进行设置,设置与前面相同只是不要选中Run Gate Level Sim

27、ulation automatically after complication。然后启动modelsim,将当前路径改到新建文件夹下。新建一个库, 此处默认库名为work。如果按照中的方法编写testbench并放在 .vo 所在的目录,这时点Compile 下的 Compile 或点将会出现下面的对话框, 点 Compile 在出现的对话框中同时选中fuladder_tb.v和 fuladder.vo文件,点击编译,然后点Done ,这样要仿真的网表文件和testbench就被编译到工作库里了。后面的操作就与中的步骤相同了。 编写测试台文件,如果只进行功能仿真,双击测试台文件名即可进入仿真

28、界面。 如果要进行时序仿真则要将quartus生成的 .sdo文件一起编译到work 库里,后面的步骤与方法1 中的相同。 对于复杂的设计文件,最好是自己编写testbench文件,使用行为级监控语法,提高仿真效率。 对于一些简单的设计文件,也可以在波形窗口自己创建输入波形进行仿真。具体方法是双击work 库里的 fulladder.v文件对其进行仿真,然后点workspace 窗口中出现 15名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 18 页 - - - - -

29、 - - - - 的 sim 标签,右键电击fuladder,选择Add-Add to Wave,如下图所示。然后将 出现Wave窗口,见 下 图 。 先 选 中 要 创 建 波 形 的 信 号 , 如 此 例 中 的 a,b,cin, 然 后 右 键 点 击 , 选 择Create/Modify/Wave项出现下面的窗口,在 Patterns中选择输入波形的类型,然后分别在右边的窗口中设定起始时间、终止时间以及单位,再点Next出现下面的窗口,我们把初始值的 16名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 -

30、 - - - - - - 第 16 页,共 18 页 - - - - - - - - - HiZ改为 0,然后修改时钟周期和占空比,然后点Finish. 接着继续添加其他输入波形,出现下面的结果。前面出现的红点表示该波形是可编辑的。然后点主窗口的Simulate-Run-Run at 100ns 或者直接点或者在主窗口命令行输入run 100,则波形将仿真执行到100ns,如下图。若点,或点 Simulate-Run-Run all或者在命令行输入run 1000,则仿真到终止时间。 4 一些说明 4.1 关于在testbench里使用 timescale的问题 timescale 是编译器指

31、令,用来定义时延精度和时延单位,命令格式为 timescale time_unit/time_precision 其中 time_unit定义时延单位, 即后面模块中出现的时延数值的单位,time_precision定义时延精度。例如 timescale 1ns/100ps 表示时延单位为1ns,时延精度为100ps。如果后面有语句 #5.22 a=1; 此时时延值5.22ns 应该对应为5.2ns ,因为精度为0.1ns 。 17名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 18 页 - - - - - - - - - 如果设计中多个模块带有自身的timescale,编译时模拟器总是定义在所有模块的最小时延精度上,并且所有模块中的时延都自动地换算为到最小试验精度上。 18名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 18 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁