
如果不是创建工程时候要天健文件,也可在project——add to project —— new file / exiting file 进行添加(当然这时候左侧要选中的是project栏,而不是library或者其它)
通常,在ModelSim中进行仿真需要加入Quartus提供的仿真库,原因是下面三个方面:·Quartus不支持Testbench;
·调用了megafunction或者lpm库之类的Altera的函数;
·时序仿真要在Modelsim下做仿真。
下面以Altera器件为例,介绍如何在ModelSim中加入Altera的仿真库,Quartus II软件中自带有Altera的仿真库,只要把它拿到
ModelSim中去编译一下就可以了,具体步骤如下:
1.设置仿真库路径
打开ModelSim安装目录(我用的是ModelSim SE 6.2版本,安装在D:\ModelSim\Installfiles目录下),新建文件夹altera,我们就在该目录下存放预编译的各种Altera库。
启动ModelSim SE 6.2,在主窗口执行【File】/【Change Directory】命令将路径转到altera文件夹。或在命令行中执行cd D:/ModelSim/Installfiles/altera。
2.新建库
Quartus II中提供的仿真库文件存放的路径是...\altera\80\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的库。
3.编译库
方便起见在altera文件夹下新建目录src,把用于编译资源库的文件复制到src文件夹中。
在主菜单中选【Compile】/【Compile】命令,d出Compile Source Files对话框,library中选择你刚才建立的库名
altera_mf,查找范围你选择altera_mf.v文件,刚才你已经把它复制到了...\altera\src目录下。执行编译命令。
继续按照步骤2和3中介绍的方法添加剩下的几个库。添加完成后如下图所示。
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。
另外,在进行仿真的时候,还要注意将上述已经编译的相关库添加到当前的工程中,以便相关lpm之类的核的调用, *** 作如下:在Start Simulation窗口的libraries一栏下进行添加,如图:
然后再选择work目录中当前工程的顶层实体进行仿真即可。
若是要进行时序仿真,则还应在SDF一栏进行.sdo延时文件的添加。
1步:查阅<<基于模型设计(qsys篇)>>8页,原来要将a家库建在modelsim安装目录中:我的modelsim给默认装在c:\Mentor@Graphics内,在其中建了altera_fang仿真库目录。
运行——〉vsim,接着cd C:/MentorGraphics/altera_fang,回车。点菜单File——〉New——〉Library,将上栏默认的work改成primitive
注意到modelsim反馈了信息:“# Copying C:\MentorGraphics\win32/../modelsim.ini to modelsim.ini”。查看新建库目录,果然多了个modelsim.ini文件。
突然想起原来刚读此段时v和vhdl两个库的纠结,果断删除并新建两个子目录altera_fangv,altera_fangvhdl,然后ls一下:
ls
# altera_fangv/
# altera_fangvhdl/
# modelsim.ini
# primitive/,先编译常用的verilog库:cd altera_fangv,建元素V库后找到quartus库文件藏的目录D:\altera\11.1\quartus\eda\sim_lib:点击编译:
依葫芦画瓢,依次建库编译,有点累:altera_mf_v,220model_v,cyclone_v,cycloneii_v,stratix_v,stratixii_v,对应文件名为:altera_mf.v,220model.v,cyclone_atom.v,cycloneii_atom.v,stratix_atom.v,stratixii_atom.v;
这些是我买的老板的fpga 型号,现在可能有点古旧了,据传13版就不支持了。然后是关键一步:
修改modelsim安装目录下的ini文件,去掉只读属性,添加此a家库进系统库,不重装系统就不用每次忘记添加它了;然后打开modelsim就出来了:
谁知一无缝仿真,出现错误:
# ** Error: D:/fft3/lpm_mult0.vhd(39): Library altera_mf not found.
# ** Error: D:/fft3/lpm_mult0.vhd(40): (vcom-1136) Unknown identifier "altera_mf".
# ** Error: D:/fft3/lpm_mult0.vhd(42): VHDL Compiler exiting
# ** Error: C:/MentorGraphics/win32/vcom failed.
看来从网上下的fft3项目用的lpm是默认的vhdl格式,先记下其参数后,按其原参数重新选用verilog格式的lpm。不报错了。但没出来波形。怎么回事?没有设置测试向量吗?查百度知道,原来:
“产生testbench 的步骤: processing ->start ->start testbench template writer 然后quartus II会自动编译生成testbench模板的
”我的项目中激励就是个时钟,填写模板就该行了。试试。。。
(继续)
在经历了夜半3点不眠狂搜加天明闷声狂试后。我投子了,看来quartus真的不能象saber,pspice一样原理图直接仿真,哪怕用modelsim助力:
规规矩矩把顶层原理图转乘.v,然后在项目中把原理图换成它,别忘了重新设其为顶层。呜呼。。。才出来波形。a家的软件q东东真让我等初哥寒心啊。
两个插曲:
1-testbench设置时,注意三个名字可以不同,但第一个名字不要带.vt扩展名;“i1”要加进去。
2-由于li¥cense,飘红时,还是把峻a龙的nios行改成你用的ip号行。起码11
1sp2可用。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)