ModelSim作布局布线后仿真的库问题
Modelsim常见问题

Modelsim 常见问题
Q1:设计中用到厂商提供的IP时,编译时出现“(vopt-3473) Component instance "XXXX" is not bound.”
A1:编译时,需要把所需的Libray添加到编译命令中,如“vsim -L C:/Modeltech_6.2b/xilinx_lib/XilinxCoreLib ......”。
Q2:vhdl和verilog混合仿真时,vhdl和verilog代码中会调用同一个组件,但是他们分别来自不同的library,如unisim和unisim_ver,它们相互并不通用,及verilog不能调用unisim_ver的组件,会造成组件找到却没办法绑定的错误,如:“Port 'Q' not found in the connected module”?
A2:当仿真时,由于vhdl代码中会指定从那个库文件里面提取,而verilog代码中没有,所以使用vsim命令时,把verilog所需的库放在第一个,而后放vhdl 所需的库,这样,verilog会从unisim_ver代码开始查询组件。
Q3:"ERROR: ../<project>/<module.v>: Unresolved reference to 'glbl' in 'glbl.GSR'" A3:在仿真工程中添加glbl.v文件(一般在~/ise/verilog/src/glbl.v,同理Quartus),把testbench.v和glbl.v同时选中后进行仿真,即vsim -t 1ps -L unisims_ver work.glbl work.tb。
荐)ModelSim SE仿真Altera库的一些问题 常见仿真错误 问题 合集

荐)ModelSim SE仿真Altera库的一些问题常见仿真错误问题合集1. modelsim怎么调用altera的库仿真啊?(megafunctions)以前有个帖子说把quartus安装目录下的sim文件夹里面的文件编译进modelsim里面就可以了,可是sim文件夹里面我要的那个函数不是.v文件啊,还有他里面的一些.vhd文件怎么编译错误啊?是eda/sim_lib里,编译错误,我想是你编译的顺序不对用EDA/SIM_LIB中文件直接放到PROJECT中,你需要看看它的告错信息。
一般是缺库。
你可以按提示缺的库,在FILE/NEW/LIBRARY菜单里创建一个映射到WORK的库。
这样一般就好了。
如何在modelsim里如altera的库中做后仿真啊,急死了我用synplify综合后,用modelsim做后仿真,我在modelsim里面加入了C:quartusedasim_libmodelsimvhdl里面的两个库,但是编译的时候还是提示我找不到library apex20k。
还要加什么库啊???郁闷死了vlib apex20kvmap apex20k apex20kvcom -work apex20k c:/quartus/eda/sim_lib/apex20k_atoms.vhdvcom -work apex20k c:/quartus/eda/sim_lib/apex20k_components.vhd谢谢i8086,我现在知道怎么加入altera的库了,但是错误依然在,不知道是什么原因,modelsim里面的提示如下:vcom -reportprogress 300 -work work {D:/caiyang/rev_1/caiyang_1.vhd}# Model Technology ModelSim SE vcom 5.7e Compiler 2003.07 Jul 8 2003# -- Loading package standard# ** Error: (vcom-19) Failed to access library 'acex2k' at "acex2k".# No such file or directory. (errno = ENOENT)# ** Error: D:/caiyang/rev_1/caiyang_1.vhd(7): Library acex2k not found.# -- Loading package std_logic_1164# -- Loading package numeric_std# -- Loading package components# ** Error: D:/caiyang/rev_1/caiyang_1.vhd(12): Unknown identifier: acex2k# ** Error: D:/caiyang/rev_1/caiyang_1.vhd(14): VHDL Compiler exitinglibrary ieee, acex2k;use ieee.std_logic_1164.all;use ieee.numeric_std.all;library synplify;use ponents.all;use acex2k.acex2k_components.all;~~~~~~~~~~~~~~~就是提示找不到这个东西,这是用synplify综合后的文件的前面几行代码。
modelsim仿真小结

Modelsim仿真小结Modelsim的基本仿真流程大致分以下几个步骤:建库、编译工程、前后仿真、调试等。
Modelsim仿真既可以在modelsim界面操作,也可以用do文件实现,这里结合学习的教程、网上看到的资料,和实际遇到的一些问题,分别做一整理小结。
1.建库建库包括Altera库和Xilinx库,同时都包括Verilog和VHDL。
这里只建了Verilog库,VHDL 和Verilog步骤相同。
对于Altera库主要包括lpm元件库、Mega_Function库atera_mf、altera原语库altera_primitive和各器件系列模型库。
前三种是调用altera模块的必备库,第四种是进行综合后功能仿真和布线后时序仿真需要的库,和器件系列有关,只选对应系列即可。
Altera库创建和编译步骤如下:a)在Modelsim安装目录下新建文件夹,命名altera_lib,以存放编译后的库文件,可以在altera_lib下新建Verilog和VHDL两个子文件夹,分别存放Verilog和VHDL库。
b)打开Modelsim,新建Library,file ->new->library ..c)如下图,创建lpm库,路径E:\modeltech_10.1a\altera_lib\Verilog\lpmd)添加库文件,并编译,compile -> compile …,出现compile source files窗口,library指定到lpm下,查找围,选quartus安装目录下…eda\sim_lib目录里的仿真原型文件:220model.v ,点c ompile ,点done。
到此,lpm库建立完毕。
e)同理,建立altera_mf库添加altera_mf.v ,建立primitive库添加altera_primitive.v建立各系列的模型库,命名可用系列名加_ver“xxx_ver”,也可随意吧,添加各系列的xxx_atoms.v。
Modelsim使用常见问题及解决办法

Modelsim使用常见问题及解决办法在ISE启动modelsim时遇到问题1。
我在ISE中启动modelsim时出现了下面的错误Loading work.tb_ic1_func# ** Error: (vsim-19) Failed to access library 'xilinxcorelib_ver' at "xilinxcorelib_ver".# No such file or directory. (errno = ENOENT)# ** Error: (vsim-19) Failed to access library 'unisims_ver' at "unisims_ver". # No such file or directory. (errno = ENOENT)# Loading work.fifoctlr_ic_v2# ** Error: (vsim-19) Failed to access library 'xilinxcorelib_ver' at "xilinxcorelib_ver".# No such file or directory. (errno = ENOENT)# ** Error: (vsim-19) Failed to access library 'unisims_ver' at "unisims_ver". # No such file or directory. (errno = ENOENT)# ** Error: (vsim-3033) fifoctlr_ic_v2.v(126): Instantiation of 'BUFGP' failed. The design unit was not found.是什么原因?“点到仿真模式,在source里面选中你建立工程选择的芯片,然后看Processes,点开,有个compile HDL simulation library,运行一下就OK了”2.ISE用modelsim仿真提示:# ** Error: (vish-4014) No objects found matching '*'.结果仿真时老是报错:# ** Error: (vish-4014) No objects found matching '*'.# Error in macro ./test_top_tb.fdo line 10# (vish-4014) No objects found matching '*'.# while executing# "add wave *"解决办法,改modelsim.ini文件中的一个参数:VoptFlow = 0# ** Error: (vish-4014) No objects found matching 'XXXX'.在之前的设计里有一个信号XX, 并且保持在wave.do文件里现在这个信号在你的设计你被去掉了,modelsim仍然调用旧的wave.do,找不到对应的信号XX,就报错误这个错误可以忽略3.当对IP核修改后,用Modelsim仿真显示:No entity is bound for inst 或CE is not in the entity。
modelsim后仿真详解

modelsim后仿真想很多人跟我一样,被ModelSim的后仿真搞的头晕脑胀。
为了这个问题,我在网上找了很多的资料,但发现这些资料往往说的不明白。
一些步骤被作者有意无意地省略掉,这常常给读者造成不必要的麻烦,所以我决定写下这一篇文章,把这3天我努力的结果拿出来,与大家分享。
首先,我把我用到的软件说明一下。
如果你发现根据我的操作,你还是解决不了ModelSim后仿真的问题,那就可能是软件版本的问题。
1, ModelSim Se 6.1b2, Synplify Pro 7.5.13, ISE 5.2i (这个是老了点)4, WindowsXP(这个应该没有多大的关系)还有就是我使用的是verilog,我想VHDL的方法与verilog是差不多的,最多也就是在建库方面有点差别而已。
下面的这些方法,是我这3天搞出来的。
当然也参考了一些文章。
如果谁有更方便的方法,欢迎指出来。
我的邮箱是vf1983cs@。
有空大家多交流。
一、为modelsim生成3个库。
首先,介绍一下这三个库。
Simprim_ver:用于布局布线后的仿真。
Unisim_ver :如果要做综合后的仿真,还要编译这个库。
Xilinxcorelib_ver:如果设计中调用了CoreGen产生的核,则还需要编译这个库。
我们要为modelsim生成的是标准库。
所谓的标准库就是modelsim运行后,会自动加载的库。
不过这方面我还不是很肯定。
因为我在后仿真时,还是要为仿真指定库的路径,不然modelsim找不到。
第一步:在modelsim环境下,新建工程,工程的路径与你想把库存储的路径一致。
第二步:新建库,库名起作simprim_ver。
我们首先就是要建的就是这个库。
第三步:在modelsim的命令栏上,打下如下命令:vlog -work simprim_ver d:/Xilinx/verilog/src/simprims/*.v其中的d:/Xilinx是我的Xilinx的安装路径,你把这个改成你的就行了。
使用Modelsim完成相关仿真过程问题汇总

使用Modelsim仿真Altera FPGA工程(包括IP核)步骤以及问题汇总前提:计算机上已经安装QuartusII和Modelsim通用版,并且均已破解。
环境说明:所用的软件版本,QuartusII为9.0,Modelsim为6.5c。
本测试仅在WIN XP SP3上测试,对于VISTA/WIN7/LIN或者其他平台没做过测试。
但其他平台或者其他版本的过程应该都差不多。
其他:感谢teamo版主的破解和编译教程,以及后期对我的热心指导。
如果各位对整个步骤还有什么问题的华可以直接和我联系,我的论坛ID是lanphon,邮箱是lanphon@。
一、Altera库的编译(本部分基本上全部抄袭teamo版主的教程,懒得写了)1) 先到C:\modeltech_6.5目录下找到文件"modelsim.ini",将其属性改为可写(右键‐>属性)。
2) 启动modelsim se,选择【file】‐>【new】‐>【library】命令,在弹出的【create a newlibrary】窗口中将选项【create】设置为【a new library and a logical mapping to it】,在【libryr name】和【library library】窗口中将选项【create】设置为【a new library and a logical mapping to it】,在【libryr name】和【library physical name】中键入所要创建库名字,如Altera ,此时在主窗口中已多了一个Altera 项。
注:这个过程实质上想当于在modelsim 主窗口中的脚本区域中输入了vlib和vmap命令。
3) 在workspace中的library中选中你健入的库名Altera,在主菜单中选【compile】→【compile…】命令。
modelsim仿真问题_xp

modelsim仿真问题_xp1、MODELSIM仿真提示already declared in this scope解决方法:在定义这个信号前其它模块接口信号中调用了这个信号,modelsim仿真报错,通过把信号定义挪到调用模块前面问题解决。
2、modelsim中,Instantiation of 'dffeas' failed. The design unit was not found.** Error: (vsim-3033) E:/pro/verilog_prj_example/simulation/modelsim/tb_sdrtest.v(2 4): Instantiation of 'print_task' failed. The design unit was not found.两种方法;报告3、Error: Can't compile duplicate declarations of entity "ram" into library "work"Error: Instance could be entity "ram" in file ram.v E rror: Instance could be entity "ram" in file ram.bdf解决办法:将.bdf文件的名字改掉,不能和.v文件的名字相同。
4、Quartus中仿真时出现no simulation input file assignment specify 对话框最好保证工程名、主模块、仿真文件的名字都一样。
5、9.17.2014下载波形文件仿真错误Error: Run Generate Functional Simulation Netlist (quartus_map yumen2_mk--generate_functional_sim_netlist) to generate functional simulation netlist for top level entity "yumen2_mk" before running the Simulator (quartus_sim)解决方法:原因是在功能仿真时候没有建立一个网表,网表的作用本人不是很清楚,只能说是功能仿真的一个必要步骤吧。
想很多人跟我一样,被ModelSim的后仿真搞的头晕脑胀

想很多人跟我一样,被ModelSim的后仿真搞的头晕脑胀。
为了这个问题,我在网上找了很多的资料,但发现这些资料往往说的不明白。
一些步骤被作者有意无意地省略掉,这常常给读者造成不必要的麻烦,所以我决定写下这一篇文章,把这3天我努力的结果拿出来,与大家分享。
首先,我把我用到的软件说明一下。
如果你发现根据我的操作,你还是解决不了ModelSim后仿真的问题,那就可能是软件版本的问题。
1, ModelSim Se 6.1b2, Synplify Pro 7.5.13, ISE 5.2i (这个是老了点)4, WindowsXP(这个应该没有多大的关系)还有就是我使用的是verilog,我想VHDL的方法与verilog是差不多的,最多也就是在建库方面有点差别而已。
下面的这些方法,是我这3天搞出来的。
当然也参考了一些文章。
如果谁有更方便的方法,欢迎指出来。
我的邮箱是****************。
有空大家多交流。
一、为modelsim生成3个库。
首先,介绍一下这三个库。
Simprim_ver:用于布局布线后的仿真。
Unisim_ver :如果要做综合后的仿真,还要编译这个库。
Xilinxcorelib_ver:如果设计中调用了CoreGen产生的核,则还需要编译这个库。
我们要为modelsim生成的是标准库。
所谓的标准库就是modelsim运行后,会自动加载的库。
不过这方面我还不是很肯定。
因为我在后仿真时,还是要为仿真指定库的路径,不然modelsim找不到。
第一步:在modelsim环境下,新建工程,工程的路径与你想把库存储的路径一致。
第二步:新建库,库名起作simprim_ver。
我们首先就是要建的就是这个库。
第三步:在modelsim的命令栏上,打下如下命令:vlog -work simprim_ver d:/Xilinx/verilog/src/simprims/*.v其中的d:/Xilinx是我的Xilinx的安装路径,你把这个改成你的就行了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ModelSim作布局布线后仿真的库问题Modelsim是目前最流行的应用最广泛的FPGA仿真器,是Mentor Graphics的子公司Model T echnology开发的。
因为Modelsim好学易用,调试方便,仿真速度快,功能强大,所以很多芯片厂商的开发系统都OEM Mentor Graphics公司的Modelsim仿真器,包括Xilinx,Alter a,Lattice和Actel等。
Modelsim是一个单内核仿真器,同一个内核可以进行VHDL仿真、Verilog仿真和VHDL/Verilog混合仿真;支持所有的VHDL和Verilog标准;采用直接编译技术(Direct-Compiled),大大提高了HDL编译和仿真速度。
Modelsim支持三个层次的仿真:RTL仿真、综合后仿真和布局布线后仿真。
为了加快仿真速度,一般情况下设计中调用的库都是已经进行编译过的,然后对设计进行仿真,此时仿真器直接调用库中已经编译过的单元,而不是再次对设计中的单元模块进行编译。
所以如果要对设计进行综合后仿真和布局布线后仿真,必须先对设计中调用的库进行编译处理。
这也是本文的重点内容。
因为每个厂商的库不一样,而且同一个厂商,不同的器件库就有可能不同,所以下面就目前国内比较常用的几个公司的芯片的库问题分别进行探讨。
1.Xilinx公司的器件:其库的处理方式有两种,一种是在Xilinx的网站上,我们可以下载到压缩文件xilinx_lib_4.zip,解压缩后有一个xilinx_lib_4.tcl(将来的版本可能会升级)。
单独运行Modelsim,然后在工具菜单中有一项是执行宏(这里Modelsim5.5 和5.6、5.7有一些差异,不过在5.5中仍可以找到执行宏Execute Macro),运行xilinx_lib_4.tcl后可以看到。
你可以根据你的厂商软件版本选择,指定Xilinx 的安装路径,在Install Path中指定你编译后的数据将要放的目录位置(可以是任何一个目录,最好是设计者数据盘中的某个目录,因为库编译一次就可以了,重新安装软件不需要重新编译库)。
对于Xilinx作布局布线后仿真只需要simprim库即可;如果要作综合后仿真,就需要编译Unisim库;如果设计中调用了CoreGen产生的核就需要编译CoreGen库。
这应该根据设计者的具体情况进行选择。
如果编译完了后,在Modelsim中库会自动变为标准库(注意:Xilinx提供的早期脚本文件作不到这一点)。
所谓标准库,也就是说这个库会和IEEE这些库一样,当Modelsim启动时,这些库会自动加载,里面的单元在VHDL代码中可以随意调用。
比如:在布局布线后的VHDL 文件中大家可以看到Library simprim这样的语句。
当然也可以自己手动改变这些库的性质,只用修改在Modelsim安装路径下的Modelsim.ini文件即可。
比如:修改后的Modelsim.ini 可以看到为[Library]std = $MODEL_TECH/../stdieee = $MODEL_TECH/../ieeeverilog = $MODEL_TECH/../verilogstd_developerskit = $MODEL_TECH/../std_developerskitsynopsys = $MODEL_TECH/../synopsysmodelsim_lib = $MODEL_TECH/../modelsim_libsimprim = D:/test/test/simprimunisim = D:/test/test/unisimlogiblox = D:/test/test/logibloxsimprims_ver = D:/test/test/simprims_verunisims_ver = D:/test/test/unisims_verxilinxcorelib = D:/test/test/xilinxcorelibxilinxcorelib_ver = D:/test/test/xilinxcorelib_verlpm = d:/test/test/lpm…可以看到修改后的文件中simprim库和IEEE等标准库处于同等的位置。
如果关于这些库的行不加到这个文件中,那么每做一个项目的时候,设计者都要建立一个库,然后把这个库和编译后的目录映射好。
比如:在Modelsim中用命令vlib simprimvmap simprim D:/test/test/simprim在一个项目中设置的库对其他项目是无效的,所以如果你经常用一些库,就可以把这些库设置成标准库。
另外一种编译库的方法更本质一些,上面这种方法是厂商做一个脚本文件方便大家对库进行处理。
事实上,我们可以手工处理这些库。
在Xilinx的ISE安装目录下,比如:D:/xili nx/vhdl/src和D:/xilinx/Verilog/src下都有这些库源文件;simprim库的源文件就在…/src/simprims目录下,CoreGen库的源文件就在…/src/XilinxCoreLib下等。
在Modelsim的命令窗口运行下面的命令即可:vlib simprimvmap simprim d:/test/test/simprim (路径可以自己任意指定)vcom –work simprim $XILINX/vhdl/src/simprims/simprim_Vcomponents.vhdvcom –work simprim $XILINX/vhdl/src/simprims/simprim_Vpackage.vhdvcom –work simprim $XILINX/vhdl/src/simprims/simprim_VITAL.vhd(注意:编译顺序不能颠倒),Unisim库如下所示:vlib unisimvmap unisim D:/test/test/unisimvcom -work unisim $XILINX/vhdl/src/unisims/unisim_VCOMP.vhdvcom -work unisim $XILINX/vhdl/src/unisims/unisim_VPKG.vhdvcom -work unisim $XILINX/vhdl/src/unisims/unisim_VITAL.vhdvcom -work unisim $XILINX/vhdl/src/unisims/unisim_VCFG4K.vhd如果是Verilog语言,可以进行同样的处理。
不过必须注意一定要编译glbl.v文件。
如果要了解更详细的信息,可以参考相关文献。
库编译后就可以手工修改安装目标下的Modelsim.ini文件。
修改后的文件如前所述即可。
2.Altera公司的器件:对于Altera公司,其MaxplusII软件能开发的器件的库的名字是alt_vtl,仿真模型在maxp lus2/vhdl87/vital或者maxplus2/vhdl93/vital下面可以找到。
如果是Quartus,则库的名字不再用alt_vtl。
该公司不同的器件库名字是不一样的,库名如下:如果是lpm库,要编译的文件是220model.vhd和220pack.vhd,在安装目录下可以搜索的到。
比如:…quartus/eda/sim_lib/关于lpm库设置过程是这样的,进入MODELSIM,创建一个库,例如:vlib lpmvmap lpm <…/myalteralib/lpm>(自己指定绝对路径,或者用菜单创建)vcom –work lpm <…/sim_lib/220pack.vhd> (自己指定绝对路径,或者用菜单编译)vcom –work lpm <…/sim_lib/220model.vhd> (自己指定绝对路径,或者用菜单编译)现在可以到Modelsim的安装目录,编辑modelsim.ini。
[Library]std = $MODEL_TECH/../stdieee = $MODEL_TECH/../ieeeverilog = $MODEL_TECH/../verilogstd_developerskit = $MODEL_TECH/../std_developerskitsynopsys = $MODEL_TECH/../synopsysmodelsim_lib = $MODEL_TECH/../modelsim_liblpm = <…/myalteralib/lpm>(一定要和自己刚才创建的lpm库目录一致)此时,即可在Modelsim的library窗口中看到有这个库了。
其他的库同理可以这么作。
下面举例apex20k库为例:运行Modelsim,创建库apex20k,vlib apex20kvmap apex20k <…/myalteralib/apex20k>vcom –work apex20k <…/eda/sim_lib/apex20k_atoms.vhd>vcom –work apex20k <…/eda/sim_lib/apex20k_componenets.vhd>然后修改modelsim.ini文件即可。
3.Actel公司的器件:因为大多数设计者使用Actel公司器件的原因是其反熔丝特性,这些芯片是一次编程的,所以布局布线后仿真显的更加重要。
安装Actel公司的Designer后其库的原文件位置是:VHDL 的VITAL Library: <Drive>:/Actel/ Designer_R1-2001/ lib/vtl/95Verilog Library: <Drive>:/Actel/ Designer_R1-2001/lib/vlog此处以VHDL为例进行库编译说明。
对应于不同的器件系列其库名字分别是act1, act2, ac t3, a3200dx, a40mx, a42mx, a54sx,a54sxa, ex and a500k等。
V erilog的库名稍微有所不同,库名分别是act1, act2, act3, 3200dx, 40mx, 42mx, 54sx, 54sxa, ex and a500k等。
源文件分别和库名相对应,很容易看出。
下面以act2库为例进行说明。
vlib act2vmap act2 d:/test/test/act2vcom –93 –work act2 <Drive>:/Actel/ Designer_R1-2001/ lib/vtl/95/act2.vhd然后对Modelsim安装目录下的Modelsim.INI文件进行修改即可。