quartusii 使用ModelSim do文件实现仿真(Verilog)
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)的更多相关文章
- QuartusII 中使用Modelsim对子程序进行仿真
QuartusII 中使用Modelsim对子程序进行仿真 如果采用RTL级仿真那么就没有任何问题,但是如果对子程序采用门级仿真就会出错 解决办法:在Project Navigator中右键需要进行门 ...
- 向modesim中添加alter库 (或者在每次仿真时将库文件加入仿真文件夹一起编译)
在ModelSim中进行仿真需要加入Quartus提供的仿真库,原因是下面三个方面: ·Quartus不支持Testbench: ·调用了megafunction或者lpm库之类的Alte ...
- modelsim脚本文件的编写
第一章 ModelSim介 绍 本指南是为 ModelSim5.5f版本编写的,该版本运行于UNIX和Microsoft Windows 95/98/Me/NT/2000的操作系统环境中.本指南覆盖了 ...
- 在ModelSim中添加Xilinx仿真库
在ModelSim中添加Xilinx仿真库 说明: l ModelSim一定要安装在不带空格的目录下,即不要安装在“Program Files”目录下.如作者是安装在D:\softwares\Mode ...
- ModelSim之tcl自动化仿真
摘要: ModelSim的tcl最大的优势就在于它可以让整个仿真自动运行,免除每次进行各种用户界面控制操作的麻烦.用tcl就可以自动完成建库.映射库到物理目录.编译源代码.启动仿真器.运行仿真等一系列 ...
- 怎样使用Debussy+ModelSim快速查看前仿真波形
引子:ModelSim是HDL仿真软件,Debussy是波形查看软件:搭配使用,相当爽.此处所谓快速查看前仿真波形仅为抛砖引玉,大家不要拘泥于此.两款软件的功能都很强大,请自行研究. 注:本篇博文的软 ...
- 在modelsim中加入quartus仿真库
找到modelsim安装目录下的modelsim.ini文件. 将modelsim.ini的只读属性去掉. 打开quartus软件.选择Launch Simulation Library Compil ...
- modelsim do文件仿真
1.编写sim.do文件 ##### Quit the Simulation ##### quit -sim ##### Make work directory && Create ...
- 如何对多个文件进行MODELSIM仿真? (由于是一个很大的项目,不可能把所有MODULE都放在一个文件里。 如何在ModelSim中对多个.V文件进行仿真?)
可以将所有要编译的所有文件的名字做一个list.新建一个文本文档,重命名为vflist vflist内容例子如下(src为文件夹):src/base_addr_chk.vsrc/config_mux. ...
随机推荐
- sql数据库表复制、查看是否锁表
1.不同数据库之间复制表的数据的方法: 当表目标表存在时: insert into 目的数据库..表 select * from 源数据库..表 当目标表不存在时: select * into 目的数 ...
- 算法笔记_196:历届试题 剪格子(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 如下图所示,3 x 3 的格子中填写了一些整数. +--*--+--+|10* 1|52|+--****--+|20|30* 1|**** ...
- 设定StatusBar的文字成不同的颜色
设定StatusBar上的文字,该文字以StatusBar所在Form的字型设定为准,并以form的ForeColor为字的颜色,文字过长时,自动会截除这个程式的实质意义不太大,因为当文字被盖掉後需自 ...
- LR杂记 - 性能測试指标及经常使用的监控工具
监控指标 性能測试通常须要监控的指标包含: 1.serverLinux(包含CPU.Memory.Load.I/O). 2.数据库:1.Mysql 2.Oracle(缓存命中.索引.单条SQL性能.数 ...
- 原创+转发:微信小程序navigator、redirectTo、switchTab几种页面跳转方式
什么是事件? 事件是视图层到逻辑层的通讯方式. 事件可以将用户的行为反馈到逻辑层进行处理. 详解(以常见的tap点击事情为例) 模板.wxml代码: <view id="tapTest ...
- ScriptManager.RegisterAsyncPostBackControl 方法
来源:VS2012帮助文档 用途: 将控件注册为异步回发的触发器 语法: public void RegisterAsyncPostBackControl( Control control ) 参数 ...
- PHP-VC9/VC6 TS/NTS等版本之间的区别
PHP的更新升级是越来越快了,PHP 5.2 版本已经更新到5.2.17不再更新, 5.3版本的更新到了5.3.8,PHP 5.4马上就要发布,甚至PHP6.0也在开发中.有这么多版本供我们选择,真是 ...
- 着重protected、default区别
public是所有,在哪都可以访问private是私有,仅在自己类里面可以访问protected是自己包里面可以访问,如果有不同包的类想调用它们,那么这个类必须是定义它们的类的子类.default也是 ...
- ORA-04089: 无法对 SYS 拥有的对象创建触发器
ORA-04089: 无法对 SYS 拥有的对象创建触发器 http://bbs.csdn.net/topics/390355220 猛然发现自己是用sys用户创建表空间,创建用户,赋权,顺手就把sq ...
- Python监控文件变化:watchdog
Python监控文件变化有两种库:pyinotify和watchdog.pyinotify依赖于Linux平台的inotify,后者则对不同平台的的事件都进行了封装.也就是说,watchdog跨平台. ...