QuartusII从9.1之后的版本都已经取消了内部自带的仿真器,都需要借助第三方仿真软件比如Modelsim才能实现仿真。一般在进行代码编写的时候,如果结合功能仿真,可以很快的验证代码实现的逻辑是否满足要求。所以熟练使用Modelsim也是逻辑工程师必须掌握的一个技能。由于Modelsim可以支持命令行的方式,通过创建do文件,可以集成多个可执行的命令。那么对于前期一边编写代码,一边进行功能仿真,使用do文件是可以明显提高工作的效率。下面以Modelsim SE版本为例,通过以下几个步骤与大家一起分享:

1.在当前QII工程下新建一个modelsim文件夹,可以将相关的仿真文件放在这个目录下

2.创建一个simlib.do的文件,用于编译QuartusII软件提供的相关仿真库文件。do文件的创建可以在打开modelsim之后进行创建。simlib.do内容如下:

set LIBPATH c:/altera/11.0/quartus/eda/sim_lib/ (设置QII软件相关仿真库文件的位置)

vlib sim_lib  
vmap sim_lib sim_lib (将QII提供的仿真库文件映射到名为sim_lib的库中)

vlog -work sim_lib $LIBPATH/altera_mf.v
vlog -work sim_lib $LIBPATH/altera_primitives.v
vlog -work sim_lib $LIBPATH/sgate.v
vlog -work sim_lib $LIBPATH/arriaii_atoms.v
vlog -work sim_lib $LIBPATH/arriaii_hssi_atoms.v
vlog -work sim_lib $LIBPATH/220model.v (编译需要使用的QII仿真库文件,一般来说如果不调用任何的IPCore,是不需要编译以上的文件。如果使用到IPCore,那么可以在IPCore设置的EDA标签栏下看到相关需要使用的仿真库文件名称)

3.创建一个sim.do的文件,用于编译当前工程下逻辑设计源文件,IPCore调用文件,以及tesetbench。sim.do文件如下:

vlib work
vmap work work (将工程相关原始文件映射到一个名为work的库)

vlog +acc -work work -incr -f run.f (工程相关原始文件列表都已经存入名为run.f的文件中,对run.f文件中提到的原始文件进行编译)

vsim -novopt  -L sim_lib -l run_modelsim.log  +transport_int_delays +transport_path_delays work.tb_gxb_top (开始进行仿真,建议加入novopt参数,保证可以看到所有仿真结果。将开始仿真之后Modelsim的打印信息存入名为modelsim.log的日志文件。两个“+”之后参数主要实现用于LVDS、SERDES高速接口的仿真,建议保留这两个参数。tb_gxb_top为tesstbench module的名称)

4.创建一个run.f文件,这个文件无论是名称还是扩展名都是随意创建的,没有任何的要求。只要保证步骤3中实现vlog的时候可以找到对应的文件。run.f内容如下:

../gxb_rst_logic.v (子模块源文件,"../"表示相对路径。由于run.f文件放在步骤1创建的modelsim目录下,而此源文件是放置于当前工程目录下)
../gxb_top.v (top顶层源文件)
tb_gxb_top.v (testbench文件,放置在modelsim目录下,即为当前目录)
../gxb_3g125.v (IPCore生成的.v文件)
../gxb_3g125_reconf.v (IPCore生成的.v文件)

5.创建一个wave.do文件,用于执行仿真结束之后在wave窗口观察相关感兴趣的波形。wave.do内容如下:

quit -sim  (退出当前仿真)
do sim.do (执行sim.do文件)
add wave sim:/tb_gxb_top/u1_gxb_top/* (需要观察的波形添加到wave窗口)
radix -hex (所有信号显示为16进制)
run 10us (运行10us)

6.以上仿真所需的文件就全部建立完成。在Modelsim中改变当前目录到步骤1中的modelsim目录下,由于建立仿真库文件只需要执行一次,那么可以在Modelsim下直接运行do simlib.do命令

7.执行do sim.do文件,进行编译和仿真。也可以直接执行do wave.do文件,直接进入wave窗口进行波形观察

8.如果对当前仿真结果不满意,需要再次更改代码。那么再一次进行仿真是,就可以直接执行do wave.do文件

当然,modelsim进行仿真有多种方法,包括直接通过Nativelink功能后台运行modelsim,或者在modelsim下通过图形化界面进行仿真。个人觉得这种方式一劳永逸,过程可控,而且可以让大家了解哪些情况下需要使用QII自带的仿真库文件,加深对QII软件的了解。多谢!

转载:http://blog.csdn.net/w40306030072/article/details/42151689?utm_source=itdadao&utm_medium=referral

quartusii 使用ModelSim do文件实现仿真(Verilog)的更多相关文章

  1. QuartusII 中使用Modelsim对子程序进行仿真

    QuartusII 中使用Modelsim对子程序进行仿真 如果采用RTL级仿真那么就没有任何问题,但是如果对子程序采用门级仿真就会出错 解决办法:在Project Navigator中右键需要进行门 ...

  2. 向modesim中添加alter库 (或者在每次仿真时将库文件加入仿真文件夹一起编译)

    在ModelSim中进行仿真需要加入Quartus提供的仿真库,原因是下面三个方面:    ·Quartus不支持Testbench:    ·调用了megafunction或者lpm库之类的Alte ...

  3. modelsim脚本文件的编写

    第一章 ModelSim介 绍 本指南是为 ModelSim5.5f版本编写的,该版本运行于UNIX和Microsoft Windows 95/98/Me/NT/2000的操作系统环境中.本指南覆盖了 ...

  4. 在ModelSim中添加Xilinx仿真库

    在ModelSim中添加Xilinx仿真库 说明: l ModelSim一定要安装在不带空格的目录下,即不要安装在“Program Files”目录下.如作者是安装在D:\softwares\Mode ...

  5. ModelSim之tcl自动化仿真

    摘要: ModelSim的tcl最大的优势就在于它可以让整个仿真自动运行,免除每次进行各种用户界面控制操作的麻烦.用tcl就可以自动完成建库.映射库到物理目录.编译源代码.启动仿真器.运行仿真等一系列 ...

  6. 怎样使用Debussy+ModelSim快速查看前仿真波形

    引子:ModelSim是HDL仿真软件,Debussy是波形查看软件:搭配使用,相当爽.此处所谓快速查看前仿真波形仅为抛砖引玉,大家不要拘泥于此.两款软件的功能都很强大,请自行研究. 注:本篇博文的软 ...

  7. 在modelsim中加入quartus仿真库

    找到modelsim安装目录下的modelsim.ini文件. 将modelsim.ini的只读属性去掉. 打开quartus软件.选择Launch Simulation Library Compil ...

  8. modelsim do文件仿真

    1.编写sim.do文件 ##### Quit the Simulation ##### quit -sim   ##### Make work directory && Create ...

  9. 如何对多个文件进行MODELSIM仿真? (由于是一个很大的项目,不可能把所有MODULE都放在一个文件里。 如何在ModelSim中对多个.V文件进行仿真?)

    可以将所有要编译的所有文件的名字做一个list.新建一个文本文档,重命名为vflist vflist内容例子如下(src为文件夹):src/base_addr_chk.vsrc/config_mux. ...

随机推荐

  1. Cflow使用具体解释

    近期使用cflow,依据Cflow提供的帮助对cflow的使用方法做了具体的整理.把经常使用的命令的使用方法贴出来.完整版请见http://download.csdn.net/detail/hanch ...

  2. ZH奶酪:PHP解析URL及parse_url、parse_str、explode、implode函数说明

    首先看一下解析任意URL的代码: (1)获取协议类型:例如参考链接中的:http (2)获取主机地址:例如参考链接中的:my.oschina.net (3)获取当前页面在服务器的路径:例如参考链接中的 ...

  3. Docker 安装使用

    1:安装 在Linux上安装Docker,要求64位操作系统,并且内核版本需求为3.10以上,查看本机Linux内核版本: [root@localhost ~]# uname -r -.el7.x86 ...

  4. 霍纳法则(Horner Rule)介绍及C语言实现

    参考自:http://flynoi.blog.hexun.com/31272178_d.html 霍纳法则简介 假设有n+2个实数a0,a1,-,an,和x的序列,要对多项式Pn(x)= anxn+a ...

  5. VB LISTBOX属性

    additem 添加属性 listcount总记录数 listindex索引值 Private Sub Form_Load()List1.AddItem "广东省广州市"List1 ...

  6. Servlet介绍(一)

    Servlet介绍(一) Servlet是一个执行在webserver上的小的Java程序,它通过接收和响应webclient的请求.在tomcatserver中有已经帮我们实现好了Servlet接口 ...

  7. 解决win10鼠标晃动问题

    删除HKEY_CLASSES_ROOTDirectoryBackgroundshellexContextMenuHandlers 下面,除了new以外的文件夹 重启,Ok

  8. ORA-01109:数据库未打开(解决)

    SQL> startup mountORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它SQL> shutdown immediateORA-01109: 数据库未打开 ...

  9. javaweb项目打成war包

    进入项目文件 jar -cvf newsisAP.war *

  10. Android开发之动态检索(Filter)联系人

    1. 将所有联系人都转换为数字串,存到列表中. 将联系人姓名转换为数字串.例如,张丽思创->zlsc->9572. 过程解析: 张 – zhang – z – 9 丽 – li – l – ...