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. ...
随机推荐
- Tomcat日志格式自定义
设置日志显示信息格式,默认情况下,Tomcat的访问日志是不记录的.需要在serve.xml中修改配置,去掉注释. <!-- <Valve className=&q ...
- js es6 map 与 原生对象区别
区别 object和Map存储的都是键值对组合.但是: object的键的类型是 字符串: map的键的类型是 可以是任意类型: 另外注意,object获取键值使用Object.keys(返回数组): ...
- 使用 C# 开发智能手机软件:推箱子(十二)
这是"使用 C# 开发智能手机软件:推箱子"系列文章的第十二篇.在这篇文章中,介绍 Window/AboutDlg.cs 源程序文件. 这个源程序文件包括 AboutDlg 类,该 ...
- TOMCAT配置数据库连接池
迁移时间--2017年7月9日15:27:02Author:Marydon TOMCAT配置数据库连接池 说明: a.数据库连接池负责分配.管理和释放数据库连接,它允许应用程序重复使用一个现有的数 ...
- 13、java中8中基本类型
一.基本类型介绍 关键字 数据类型 占用字节数 取值范围 默认值 byte 字节型 1个字节 -128~127 0 char 字符型 2个字节 Unicode0~Unicode215-1 \u0000 ...
- 不止是动态化:Weex项目和阿里无线技术开源方向
这是开发者正在书写的峥嵘岁月.受益开源,回馈社区.阿里巴巴集团已经开源115个项目,并正式加入FSF基金会,Apache基金会,linux 基金会和Xen的顾问团队,并在云栖大会北京峰会宣布AliSQ ...
- servlet 转发和超链接转发
超链接属于客户端跳转,request是无法取得属性的 我们知道一个jsp相当与一个servlet 例如,客户端请求A.jsp页面,在A.jsp页面调用request.getAttribute方法放入属 ...
- nyoj---快速查找素数
快速查找素数 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 现在给你一个正整数N,要你快速的找出在2.....N这些数里面所有的素数. 输入 给出一个正整数数N ...
- OOAD和UML
ooad: object oriented analysis designer 又有两个分支: ooa(object oriented analysis):what to do ood(object ...
- http://www.cnblogs.com/txw1958/p/alipay-f2fpay.html
一.条码支付及二维码支付介绍 1. 条码支付 条码支付是支付宝给到线下传统行业的一种收款方式.商家使用扫码枪等条码识别设备扫描用户支付宝钱包上的条码/二维码,完成收款.用户仅需出示付款码,所有收款操作 ...