原创 Modelsim TCL学习

2011-7-10 16:45 5084 5 10 分类: FPGA/CPLD
最近在研究学习TCL,在modelsim里面 还是很方便的
;编译本地库

vlib work

;编译verilog
vlog +acc"../src/rxa.v"

;编译IPCORE
vlog +acc"../core/abc.v"

;编译顶层文件
vlog +acc"../sim/tb_tb.v"

;编译本地库
vlog +acc"C:/Xilinx/12.3/ISE_DS/ISE/verilog/src/glbl.v"
vsim -novopt -t 1ps -L xilinxcorelib_ver -L unisims_ver -L unimacro_ver -L secureio -lib work rxta_tb glbl
log -r/*
 
 
 
secureip = C:\Xilinx\12.3\ISE_DS\ISE\/verilog/mti_se/6.5d/nt/secureip
unisim = C:\Xilinx\12.3\ISE_DS\ISE\/vhdl/mti_se/6.5d/nt/unisim
unimacro = C:\Xilinx\12.3\ISE_DS\ISE\/vhdl/mti_se/6.5d/nt/unimacro
unisims_ver = C:\Xilinx\12.3\ISE_DS\ISE\/verilog/mti_se/6.5d/nt/unisims_ver
unimacro_ver = C:\Xilinx\12.3\ISE_DS\ISE\/verilog/mti_se/6.5d/nt/unimacro_ver
simprim = C:\Xilinx\12.3\ISE_DS\ISE\/vhdl/mti_se/6.5d/nt/simprim
simprims_ver = C:\Xilinx\12.3\ISE_DS\ISE\/verilog/mti_se/6.5d/nt/simprims_ver
xilinxcorelib = C:\Xilinx\12.3\ISE_DS\ISE\/vhdl/mti_se/6.5d/nt/xilinxcorelib
xilinxcorelib_ver = C:\Xilinx\12.3\ISE_DS\ISE\/verilog/mti_se/6.5d/nt/xilinxcorelib_ver
uni9000_ver = C:\Xilinx\12.3\ISE_DS\ISE\verilog\mti_se\6.5d\nt/uni9000_ver
cpld = C:\Xilinx\12.3\ISE_DS\ISE\vhdl\mti_se\6.5d\nt/cpld
cpld_ver = C:\Xilinx\12.3\ISE_DS\ISE\verilog\mti_se\6.5d\nt/cpld_ver
 
 
 
不管是verilog写的
还是vhdl写的
 
都按照来
 
 
 
20110710160950280.bmp
 
 
 
 
20110710161016660.bmp
 
 
 
 
以下为转载
Modelsim是现在业界比较流行的HDL语言仿真工具。在这里关于他的使用我就不说了。主要是讲一讲困扰我们的库编译的问题。
      因为Modelsim为各个主要fpga厂商都提供了支持,所以在我们使用的时候必须先要对相应的厂商的库进行编译。在这里,我以xilinx公司为例。使用的软件为ise5.2i,modelsim se 5.7c(如果版本不同,并不影响操作步骤)。针对语言为vhdl。

好了,首先我们要做的是什么那?

首先,我们要跋山涉水,翻山越岭,搞到一份完全的软件才行
然后,安装。(%¥……※%×……%※※%¥¥#¥%……)
在ise4.1版本中,xilinx公司提供xilinxlib.tcl文件用于modelsim库的仿真。而在5.1版本之后,提供了一个compxlib应用程序,据说可以进行自动仿真。但是,经过我得使用,将机器仿死了。所以,只好使用手动仿真了,不过为了大家的使用方便,我已经做了一个绝对的绝对的绝对好使的批处理文件。在文章的最后部分找到他然后复制到写字板中另存为*.do文件,直接使用就好使了。

首先编译unisim库(如果是verilog语言为unisims_ver),这个库对应原理图功能仿真和行为级仿真。
先用cd命令,或菜单中的change directory命令来设置你想要存放库的文件夹。默认的为*:/modeltech/examples/。
vlib unisim
vmap unisim unisim
新建库。然后找到xilinx提供的库文件。看看你的*:/xilnx/vhdl(verilog)/src/文件夹下都有什么?进入unisims文件夹,就会看到四个库文件了。切记,切记,一定要按照我写的顺序进行编译,否则出错本人概不负责。
vcom -work unisim c:/xilinx/vhdl/src/unisims/unisim_VPKG.vhd 
vcom -work unisim c:/xilinx/vhdl/src/unisims/unisim_VCOMP.vhd
vcom -work unisim c:/xilinx/vhdl/src/unisims/unisim_VITAL.vhd
vcom -work unisim c:/xilinx/vhdl/src/unisims/unisim_SMODEL.vhd

然后,依据上面的方法建立simprim库。对应布局布线后的时序仿真。
vlib simprim                                                    
vmap simprim simprim                                            
vcom -work simprim c:/xilinx/vhdl/src/simprims/simprim_Vpackage.vhd
vcom -work simprim c:/xilinx/vhdl/src/simprims/simprim_Vcomponents.vhd
vcom -work simprim c:/xilinx/vhdl/src/simprims/simprim_VITAL.vhd
vcom -work simprim c:/xilinx/vhdl/src/simprims/simprim_SMODEL.vhd
只要记得按照我的顺序编译就不会错。

但是如果你以为xilinxcorelib也是一样就大错特错了。打开xilinxcorelib文件夹,呵呵,害怕了不是。有多达500多个文件。要是自己一句一句的写,吼吼,要出人命了。
别害怕,xilinx公司已经为我们想好了这个问题,在这个文件夹下仔细的寻找一个vhdl_analyze_order文件。打开看看,原来他已经将这些文件按顺序来排列了。只要我们将他们做成一个批处理文件来运行不就行了。

Vhdl_analyze_order文件打开部分如下:
iputils_std_logic_arith.vhd 
iputils_std_logic_signed.vhd
xfft1024_v1_0.vhd           
xfft1024_v1_0_comp.vhd      
prims_constants_v5_0.vhd    
viterbi_v2_0.vhd            
viterbi_v2_0_comp.vhd       
prims_constants_v3_0.vhd    
viterbi_v1_0.vhd            
viterbi_v1_0_comp.vhd       
ul_utils.vhd                
vfft_utils.vhd              
vfftv2_utils.vhd            
vfft64v2.vhd                
vfft64v2_comp.vhd           
vfft1024v2.vhd     
但是要在500多句话前加上
vcom -work xilinxcorelib d:/xilinx/vhdl/src/XilinxCoreLib/        
好像也是不可能的了。呵呵呵呵,听说过列编辑这种东西嘛(如果没听过,自己找个墙角蹲着去),我用的是ultraedit。很好用的hex格式文件编辑工具,做这个工作正好。好了,生成*.do文件之后就万事大吉了。

错!!!!!!

在小弟的不断探索中发现xilinx提供的库竟然有语法错误,就5.2版本来说,要想顺利的运行这个文件需要改动如下两个地方:
c_counter_binary_v6_0.vhd文件的第264行去掉begin。
Mult_gen_v6_0.vhd文件第216行去掉function。

好了。运行文件……………………等待20分钟,成功。
最后,要将编译成功的库定义成全局库才行,这样在使用ise直接调用modelsim的时候才能够顺利的进行。
在modelsim安装目录下找到modelsim.ini文件。选择属性,将只读去掉。在library后面加上
unisim=$MODEL_TECH/../examples/unisim
simprim=$MODEL_TECH/../examples/simprim
xilinxcorelib=$MODEL_TECH/../examples/XilinxCoreLib
这里因为我们将库编译在examples文件夹下,如果你修改了编译路径,用你的路径来替换我写的路径就可以了。
下面我付上我的批处理文件,如果你使用的是5.2.的版本,而且按照我的方法修改了xilinx的库文件的话。就可以直接在modelsim中用do命令来编译了。Do命令的格式为(do 批处理文件路径名/*.do)。也可以在菜单中点击execute macro来实现。

 verilog的与vhdl类似,只要将库名加一个_ver就行了

 
PARTNER CONTENT

文章评论5条评论)

登录后参与讨论

FPGADeveloper 2012-8-10 00:05

应该是一样的

用户412764 2012-8-9 17:23

有没有针对Altera的呀?

用户468778 2012-3-22 10:12

牛人。哈哈。

FPGADeveloper 2011-7-10 16:42

secureip = C:\Xilinx\12.3\ISE_DS\ISE\/verilog/mti_se/6.5d/nt/secureip unisim = C:\Xilinx\12.3\ISE_DS\ISE\/vhdl/mti_se/6.5d/nt/unisim unimacro = C:\Xilinx\12.3\ISE_DS\ISE\/vhdl/mti_se/6.5d/nt/unimacro unisims_ver = C:\Xilinx\12.3\ISE_DS\ISE\/verilog/mti_se/6.5d/nt/unisims_ver unimacro_ver = C:\Xilinx\12.3\ISE_DS\ISE\/verilog/mti_se/6.5d/nt/unimacro_ver simprim = C:\Xilinx\12.3\ISE_DS\ISE\/vhdl/mti_se/6.5d/nt/simprim simprims_ver = C:\Xilinx\12.3\ISE_DS\ISE\/verilog/mti_se/6.5d/nt/simprims_ver xilinxcorelib = C:\Xilinx\12.3\ISE_DS\ISE\/vhdl/mti_se/6.5d/nt/xilinxcorelib xilinxcorelib_ver = C:\Xilinx\12.3\ISE_DS\ISE\/verilog/mti_se/6.5d/nt/xilinxcorelib_ver uni9000_ver = C:\Xilinx\12.3\ISE_DS\ISE\verilog\mti_se\6.5d\nt/uni9000_ver cpld = C:\Xilinx\12.3\ISE_DS\ISE\vhdl\mti_se\6.5d\nt/cpld cpld_ver = C:\Xilinx\12.3\ISE_DS\ISE\verilog\mti_se\6.5d\nt/cpld_ver

FPGADeveloper 2011-7-10 16:12

vlog AA.v -cover bcesx vsim AA -t 100ps -coverage
相关推荐阅读
FPGADeveloper 2017-04-11 12:03
界面好像比较清爽
界面好像比较清爽,试用下 ...
FPGADeveloper 2015-11-19 17:24
评论:@emesjx's Blog 博客中提到的“高速LVDS接口信号完整性处理实例”
学习看看...
FPGADeveloper 2015-01-02 17:16
2015年FPGA雏鹰培训计划
 ...
FPGADeveloper 2015-01-02 11:05
2015 新年新开始~
2015 新年新开始~...
FPGADeveloper 2014-09-12 23:28
AD DA 测试
AD DA       测试条件           ...
FPGADeveloper 2014-06-13 16:45
5位创始人讲述创业失败的教训
  失败,这是围绕在创业者身上很常见的事情,它常让创业者在很长一段时间内灰心失望。         但是总有一些创业者勇敢的面对失败,从而最后取得成功。我们采访了5位成功的创始...
EE直播间
更多
我要评论
5
5
关闭 站长推荐上一条 /1 下一条