原创 ModelSim中Altera库的添加

2011-4-1 10:05 7869 11 14 分类: FPGA/CPLD

最近,有一个IP核的调试,但是里面调用了Altera的syncram,这样ModelSim就不能直接进行仿真,而QuartusII又不支持Tesbbench的仿真,所以为了在ModelSim中仿真就必须将Altera的这些仿真库添加到ModelSim中。


在ModelSim中进行仿真需要加入Quartus提供的仿真库,原因是下面三个方面:
    ·Quartus不支持Testbench;
    ·调用了megafunction或者lpm库之类的Altera的函数;
    ·时序仿真要在Modelsim下做仿真。
    下面以Altera器件为例,介绍如何在ModelSim中加入Altera的仿真库,Quartus II软件中自带有Altera的仿真库,只要把它拿到ModelSim中去编译一下就可以了,具体步骤如下:
1.设置仿真库路径24806086-490e-43b4-9329-b280bbdee7a2.jpg
    打开ModelSim安装目录(我用的是ModelSim SE 6.5版本,安装在D:\ModelSim_6.5b目录下),新建文件夹altera,我们就在该目录下存放预编译的各种Altera库。
    启动ModelSim SE 6.5,在主窗口执行【File】/【Change Directory】命令将路径转到altera文件夹。或在命令行中执行cd D:/ModelSim_6.5b/altera。


     7f0a5e5e-66ce-4bb9-813c-8f2d119cab96.jpg      
2.新建库
    Quartus II中提供的仿真库文件存放的路径是...\altera\91\quartus\eda\sim_lib,每个库文件提供了两种形式:.v(Verilog)格式和.vhd(VHDL)格式两种,根据你所用的语言选择使用。用于编译资源库的文件有220model.v,220model.vhd,220pack.vhd,altera_mf.v,altera_mf.vhd,altera_mf_components.vhd,altera_primitives.v,altera_primitives.vhd,altera_primitives_components.vhd文件。网上的很多教程都是把这些文件一起编译,这样适用于Verilog和VHDL混合仿真,但如果只用一种语言,如Verilog则完全没必要全部编译。下面以该目录下的altera_mf.v为例介绍建立预编译库的方法。
    注:ModelSim中仿真库可以分为两大类:第一类是工作库(working),默认值为“work”目录,work目录中包含当前工程下所有被编译的设计单元,编译前必须建立一个work库,并且每个编译有且仅有一个work库;第二类是资源库(resource),存储能被当前编译引用的设计单元,在编译期间允许有多个resource库。
    在主窗口中选择【File】/【New】/【Library】命令,新建一个名为altera_mf的库。


     3560334e-665a-4bf3-a5a8-b90c1772fc17.jpg                   
3.编译库
    方便起见在altera文件夹下新建目录src,把用于编译资源库的文件复制到src文件夹中。
    在主菜单中选【Compile】/【Compile】命令,弹出Compile Source Files对话框,library中选择你刚才建立的库名altera_mf,查找范围你选择altera_mf.v文件,刚才你已经把它复制到了...\altera\src目录下。执行编译命令。


     f159063e-1eee-4607-84ad-469b80d30191.jpg           
    继续按照步骤2和3中介绍的方法添加剩下的几个库。添加完成后如下图所示。


     b7e8200b-48ea-4575-92fc-ed6c9554c535.jpg
4.配置modelsim.ini文件
    这一步是为了将前面建立的库添加进系统库,以后就不用再重复添加了。
    ModelSim安装根目录下的配置文件modelsim.ini的只读属性去掉,用记事本或其他文本编辑程序打开。在[Library]下修改前面添加的库的路径。注意修改后关闭并改回只读属性。
    注:第1步设置的仿真库路径必须在ModelSim的安装目录下才能事业能够此相对路径。
 altera_primitives = $MODEL_TECH/../altera/altera_primitives
 220model = $MODEL_TECH/../altera/220model
 altera_mf = $MODEL_TECH/../altera/altera_mf


5.添加Altera底层硬件原语仿真库(ATOM)
    在时序仿真时,必须加载所使用到的对应于具体Altera器件的底层硬件原语的仿真库(ATOM)。
    上面编译了Altera三个资源库文件:220model.v,altera_mf.v,altera_primitives.v,编译通过之后。根据我们选用的具体器件型号继续编译我们所需要的器件底层原语仿真库文件,比如我们选择使用的是cycloneii,所以编译cycloneii_atoms.v。


当然,在进行具体的仿真的时候,还有注意将这些已经编译的仿真库添加到当前工程中,具体是:打开Start Simulation窗口,在Libraries栏中将相关仿真库Add进去即可,然后就可以进行相关的仿真了。


   634266dc-fce0-4b01-95c8-393d3087167d.jpg


若是要进行时序仿真,则还应在SDF一栏将相关的.sdo延时文件添加进去,然后再进行仿真。

PARTNER CONTENT

文章评论3条评论)

登录后参与讨论

用户1311596 2012-12-1 00:09

很不错的modelsim教程,谢谢楼主!

用户388551 2011-4-20 08:39

不错的教程,谢谢LZ.

用户412838 2011-4-1 21:39

很好 谢谢啊
相关推荐阅读
asus119_412419641 2013-07-17 23:41
Allegro使用小结
1、解决Allegro在大鼠标模式下的拖影问题(尤其在Win7系统下) 大鼠标去掉拖影的设置方法:在env文件里面一句set infinite_cursor_bug_nt 注意:在pcbe...
asus119_412419641 2013-07-15 23:37
FPGA代码设计规范整理
  1、设计中的FIFO、状态机接口需要有异常恢复状态和状态上报机制,格雷码电路防止被综合电路优化掉。 a)自行设计的格雷码FIFO(一般用于连续数据流跨时钟域)用Synplify综合时,...
asus119_412419641 2013-07-15 22:03
FPGA代码设计规范整理
  1、设计中的FIFO、状态机接口需要有异常恢复状态和状态上报机制,格雷码电路防止被综合电路优化掉。 a)自行设计的格雷码FIFO(一般用于连续数据流跨时钟域)用Synplify综合时,...
asus119_412419641 2013-07-15 21:58
FPGA代码设计规范整理
  1、设计中的FIFO、状态机接口需要有异常恢复状态和状态上报机制,格雷码电路防止被综合电路优化掉。 a)自行设计的格雷码FIFO(一般用于连续数据流跨时钟域)用Synplify综合时,...
asus119_412419641 2013-06-30 23:28
Cadence Allegro导网表的错误问题解决
  在Allegro导入网表的时候,有时候会出现这样一个错误问题,如下:   ------ Oversights/Warnings/Errors ------   #1   E...
asus119_412419641 2013-04-24 17:22
[博客大赛]关于OrCAD Capture CIS导网表出现问题的解决方法
在Capture CIS中完成原理图编辑修改后,导出网表时,出现了以下错误:   #192 ERROR(ORCAP-36004): Conflicting values of part n...
EE直播间
更多
我要评论
3
11
关闭 站长推荐上一条 /3 下一条