如何用modelsim仿真包含quartus IP核的工程

原文地址:http://blog.163.com/znn04006518@126/blog/static/1182561252011107102234956/


一、Quartus2中内嵌的Simulator与ModelSim仿真的差异?
Quartus2中内嵌的Simulator也可以进行仿真,它可以分为两种模式,Functional与Timing。但是这里的Functional是基于门级网表的功能仿真,并不是HDL级的功能仿真。

二、第三方EDA工具不支持bdf文件怎么仿真?
首先需要将.bdf原理图文件转换为Verilog HDL等第三方EDA工具所支持的标准描述文件。在Quartus下,保持*.bdf为活动窗口状态,运行[File]/[Create/Update]/[Create HDL Design File for Current File]命令,在弹出窗口选择文件类型为Verilog HDL,即可输出*.v顶层文件。

三、如何在ModelSim中仿真Altera IP宏?
Altera的基本宏功能的功能(行为)仿真模型在Quartus工具安装目录下的"eda\sim_lib"目录中:
Verilog HDL语言的仿真库文件为220model.v和altera_mf.v;
VHDL语言的仿真库文件为220pack.vhd、220model.vhd、altera_mf.vhd和altera_mf_components.vhd。

仿真时把相关库文件加到工程中去就行了。

四、将rom或者ram文件的mif或者hex文件加入到modelsim工程中的时候应当注意rom(ram)文件中对于mif(hex)文件路径的描述。如果是quartus生成的ip核,那么rom和ram.v里面关于路径的描述是基于相对路径的,一定要把相应的mif(hex)文件拷贝到相应路径上才能在modelsim仿真时被链接到相应的rom(ram)上。不用把mif文件或者hex文件添加到modelsim的工程中,只要在rom(ram)中设置路径的地方设置好就行了。ps:尽量别改quartus IP核生成的rom(ram)文件内容,把mif或者hex文件拷贝到相应的地点就行了。
 

五、关于mif和hex文件的区别

hex文件又叫intel hex文件

Intel HEX由任意数量的十六进制记录组成。每个记录包含5个域,它们按以下格式排列:
:llaaaatt[dd...]cc
每一组字母对应一个不同的域,每一个字母对应一个十六进制编码的数字。每一个域由至少两个十六进制编码数字组成,

它们构成一个字节,就像以下描述的那样:
: 每个Intel HEX记录都由冒号开头.
ll 是数据长度域,它代表记录当中数据字节(dd)的数量.
aaaa 是地址域,它代表记录当中数据的起始地址.
tt 是代表HEX记录类型的域,它可能是以下数据当中的一个:
00 – 数据记录
01 – 文件结束记录
02 – 扩展段地址记录
04 – 扩展线性地址记录
dd 是数据域,它代表一个字节的数据.一个记录可以有许多数据字节.记录当中数据字节的数量必须和数据长度域(ll)中指

定的数字相符.
cc 是校验和域,它表示这个记录的校验和.校验和的计算是通过将记录当中所有十六进制编码数字对的值相加,以256为模

进行以下补足.

数据记录
Intel HEX文件由任意数量以回车换行符结束的数据记录组成.数据记录外观如下:
:10246200464C5549442050524F46494C4500464C33
其中:
10 是这个记录当中数据字节的数量.
2462 是数据将被下载到存储器当中的地址.
00 是记录类型(数据记录)
464C…464C是数据.
33 是这个记录的校验和.

mif文件比起hex文件就要"单纯"许多 因为她没有最后的坑爹的校验和 所以生成起来比较容易

mif文件的格式范例如下

WIDTH=128;
DEPTH=4096;

ADDRESS_RADIX=HEX;                                                                            //十进制为DEC 
DATA_RADIX=HEX;                                                                                   //二进制为BIN

CONTENT BEGIN
0000 : 000000000000000000000000FFFFFFF0;
0001 : 000000000000000000000000FFFFFFF1;
0002 : 000000000000000000000000FFFFFFF2;
0003 : 000000000000000000000000FFFFFFF3;

.............................................................................

..............................................................................

END;
(本段参考了http://apps.hi.baidu.com/share/detail/22378107)
下面摘自转自书生党的博客 如何在modelsim里面使用quartus中生成的rom文件 包括初始化的mif和hex

http://blog.163.com/dangxg@126/blog/static/128100197200991561825748/ 

1. 在QuartusII中生成rom的初始化文件,可以是hex,也可以是mif。MIF文件的格式很简单明了,所以我一向都是用MIF。

2.下载convert_hex2ver.dll文件,convert_hex2ver.dll就是把hex文件转换成ModelSim 能认出来的ver文件的动态链接库文件。新版本的QuartusII中已经不带此文件了。需要在网上找一份。(老版本的软件里带了此文件(路径:quartusXX/eda/mentor/modelsim/),应当可以用。)

3.将convert_hex2ver.dll文件放在modelsim安装路径的win32目录下;

4. 在ModelSim安装的目录下找到 modelsim.ini文件,将其只读属性去掉,在“; List of dynamically loaded objects for Verilog PLI applications,”后填入一行“Veriuser = convert_hex2ver.dll”。保存文件,将只读属性改回来。

5.需要将MIF文件复制到ModelSim仿真工程的文件夹下!你运行一次编译和仿真后,会看到自动生成的.ver文件,该文件名同你的MIF文件。

以下是本人的实践和补充

***********************************************************

用quartus生成的rom和ram文件中有关于初始化文件(mif,hex)地址和名字的表示,因为必须把mif和hex放在modelsim的工程文件夹下面 所以 相对的在rom和ram里面的初始化文件地址也必须改成./xx.mif或者./xx.hex 切记


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值