VCS+Verdi编译Vivado仿真库

开发平台:VCS2017, Verdi2017,Vivado 2017.2

Vivado_HOME为实际安装Vivado的根目录,这个目录下有settings64.sh文件

传统上VCS编译Vivado编译仿真库后,只能VCS使用,在VCS2016版本及更高版本是无法利用kdb参数调用Verdi编译时使用仿真库的。

Xilinx的编译库命令是compile_simlib,参数模板如下:

compile_simlib  [-directory <arg>] [-family <arg>] [-force] [-language <arg>]
                [-library <arg>] [-print_library_info <arg>] -simulator <arg>
                [-simulator_exec_path <arg>] [-source_library_path <arg>]
                [-no_ip_compile] [-32bit] [-quiet] [-verbose]

除此之外,vivado还提供了另一个命令config_compile_simlib,用于配置vcs编译时需要的参数;

config_compile_simlib  [-cfgopt <arg>] [-simulator <arg>] [-reset] [-quiet]
                       [-verbose]

使用这个下面命令可以查看当前一些库的默认编译参数:

config_compile_simlib -simulator vcs_mx

返回的结果如下

Current configuration settings for 'compile_simlib' are:
	vcs_mx.SYNOPSYS_SIM:synopsys_sim.setup
	vcs_mx.verilog.axi_bfm:-sverilog -nc
	vcs_mx.verilog.ieee:-sverilog -nc
	vcs_mx.verilog.simprim:+v2k -nc +define+XIL_TIMING
	vcs_mx.verilog.std:-sverilog -nc
	vcs_mx.verilog.synopsys:-sverilog -nc
	vcs_mx.verilog.unisim:+v2k -nc
	vcs_mx.verilog.vl:-sverilog -nc
	vcs_mx.vhdl.axi_bfm:-nc
	vcs_mx.vhdl.ieee:-nc
	vcs_mx.vhdl.simprim:-nc
	vcs_mx.vhdl.std:-nc
	vcs_mx.vhdl.synopsys:-nc
	vcs_mx.vhdl.unisim:-nc
	vcs_mx.vhdl.vl:-nc
You can enter the following tcl command:
	'config_compile_simlib -cfgopt {modelsim.vhdl.unisim:-source -93 -novopt}'
To change the option used to compile the vhdl unisim for modelsim to '-source -93 -novopt'

除此之外,这个命令的默认参数在下面这个位置$Vivado_HOME/data/parts/xilinx/compxlib/目录下的acd文件内,一个文件名为compxlib_defaults.acd($Vivado_HOME/ids_lite/ISE/data目录同样也有,在vivado更高版本,这个文件至在$Vivado_HOME/ids_lite/ISE/data目录有),另一个名为config_compile_simlib.acd;config_compile_simlib.acd内有各种仿真器的默认参数设置,可以直接修改这个,也可以使用config_compile_simlib,使用下述命令配置:

config_compile_simlib -cfgopt {vcs_mx.verilog.axi_bfm:-sverilog -nc -kdb}
config_compile_simlib -cfgopt {vcs_mx.verilog.ieee:-sverilog -nc -kdb}
config_compile_simlib -cfgopt {vcs_mx.verilog.simprim:+v2k -nc  +define+XIL_TIMING -kdb}
config_compile_simlib -cfgopt {vcs_mx.verilog.std:-sverilog -nc -kdb}
config_compile_simlib -cfgopt {vcs_mx.verilog.synopsys:-sverilog -nc -kdb}
config_compile_simlib -cfgopt {vcs_mx.verilog.unisim:+v2k -nc -kdb}
config_compile_simlib -cfgopt {vcs_mx.verilog.vl:-sverilog -nc -kdb}
config_compile_simlib -cfgopt {vcs_mx.vhdl.axi_bfm:-nc -kdb}
config_compile_simlib -cfgopt {vcs_mx.vhdl.ieee:-nc -kdb}
config_compile_simlib -cfgopt {vcs_mx.vhdl.simprim:-nc -kdb}
config_compile_simlib -cfgopt {vcs_mx.vhdl.std:-nc -kdb}
config_compile_simlib -cfgopt {vcs_mx.vhdl.synopsys:-nc -kdb}
config_compile_simlib -cfgopt {vcs_mx.vhdl.unisim:-nc -kdb}
config_compile_simlib -cfgopt {vcs_mx.vhdl.vl:-nc -kdb}

只有config_compile_simlib.acd内存在的值才可以使用这个命令,这个命令是有局限性,在vivado2017.2不支持配置xpm,secureip,这些可以在编译后重新编译。

配置完成后,执行

compile_simlib -language all -dir {预编译库要存放的位置} -simulator vcs  -library all -family  all -verbose -force

编译完成后,以secureip为例,先设置变量

ip_name=secureip

进入预编译库目录内,在终端运行下述命令

$ip_name目录下有.cxl.vhdl.*文件时需要

sed -i "s/vhdlan/vhdlan -kdb/g" $ip_name/.cxl.vhdl.*.cmd 
source $ip_name/.cxl.vhdl.*.cmd 

$ip_name目录下有有.cxl.verilog.*文件时需要

sed -i "s/vlogan/vlogan -kdb/g" $ip_name/.cxl.verilog.*.cmd 
source $ip_name/.cxl.verilog.*.cmd 

xpm和其他各种未使用kdb编译,或编译引用库时候找不到模块,需要使用;

最后,在工程目录下需要建立synopsys_sim.setup文件,填写内容:

OTHERS=预编译库的绝对路径/synopsys_sim.setup

 

  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值