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. 应用程序正常初始化(0xc0000135)失败的解决方法

    转自:http://blog.sina.com.cn/s/blog_64fba4e00100mzf9.html 这是由于没有安装.NET framework 所造成的,请安装.NET framewor ...

  2. vue provide和inject使用

    provide和inject使用场景也是组件传值,尤其是祖父组件--孙组件等有跨度的组件间传值,单向传值(由provide的组件传递给inject的组件). provide 选项应该是一个对象或返回一 ...

  3. 解决 在POM配置Maven plugin提示错误“Plugin execution not covered by lifecycle configuration”

    eclipse在其POM文件的一处提示出错如下: Plugin execution not covered by lifecycle configuration: org.apache.maven.p ...

  4. Stage3d AGAL GPU处理照片 旧照片效果 sepia || pixelbender

    如果看不到下边的flash,请更新flash player到最新版本. 利用AGAL实现旧照片效果,大家可以对照一下之前一篇文章,关于图像处理(pixelbender).硬件处理肯定会更快,但这里无法 ...

  5. 新浪API及调用案例

    百度分享:http://pan.baidu.com/s/1uSmku

  6. demo02

    class PhoneNumber(): def __init__(self,number): self.a=number[1:4] self.b=number[6:9] self.c=number[ ...

  7. 解决Mysql中文乱码问题的方案

    MySQL会出现中文乱码的原因不外乎下列几点: 1.server本身设定问题,例如还停留在latin12.table的语系设定问题(包含character与collation)3.客户端程式(例如ph ...

  8. SlackWare安装

     Keep It Simple Stupid 01.下载 slackware: http://www.slackware.com/ 中科大:    http://mirrors.ustc.edu.cn ...

  9. c++课程设计(日历)

    今天比较无聊,就随便找了个程序设计来做,下面是源代码,以及效果图...不喜请喷!/*题目1:年历显示. 功能要求: (1) 输入一个年份,输出是在屏幕上显示该年的日历.假定输入的年份在1940-204 ...

  10. HDUOJ ------1398

    http://acm.hdu.edu.cn/showproblem.php?pid=1398 Square Coins Time Limit: 2000/1000 MS (Java/Others)   ...