使用vcs+verdi问题较少;
使用vlogan+vcs+verdi三步编译:
vlogan:
vlogan -V -sverilgo -ignore unique_checks +libext+.sv+.vp+.vlib+.svh -l ./vlogan_compile.log -no_error MPD -timescale=1ns/1ps -full64 +v2k -kdb -lca $(youself_filelist)
vcs:
vcs -licqueue -ignore unique_checks -l ./vcs_compile.log -timescale=1ns/1ps -full64 +vcs+llic+wait -debug_access+all -lca -sverilog +lint=TFIPC-L -kdb -top top -top glbl -error=noMPD
verdi:
verdi -dbdir simv.daidir -top top -sv -2001 -ssf test.fsdb &
注:vcs编译报错:xilinx原语
Error found while trying to resolve cross-module reference. token 'glbl'. Originating module 'DCM_ADV'. Source info: assign GSR = glbl.GSR;原因是调用glbl时出现问题解决办法在vcs中添加一行-top glbl。具体原因自行google。
vcs编译vivado工程,还需要再生成vivado.f进行编译。
Vivado compile_simulation时报错:
ERROR: [vivado 12-5602] compile_simlib failed to compile for vcs_mx with error in 136 libraries (cxl_error.log)
ERROR: [Common 17-39] 'compile_simlib' failed due to earlier errors.
错误原因:
1.所用vcs版本和vivado ug900中,page 225(左右)推荐的版本不一致;
2.若版本一致依旧报错,且打开cxl_error.log发现错误均为编译IP时systemc报错,指出gcc版本不对,且发现当前环境脚本没有设置VG_GUN变量。
解决办法:
1.不使用systemc进行IP的编译,其实xilinx大部分IP均不会使用到c语言进行编译。除非调用了ARM core(zynq器件等仿真环境);在tcl中用命令行的方式进行compile_sim,具体的命令行其实在Tool->compile_sim;界面可以看到。在tcl命令行最后添加一个-no_systemc_project选项进行编译。之后export,解决。
2.非要用systemc进行IP编译,可以查看vcs_release_note.pdf文档中关于vg_gun_package的安装。在slovnet下载好之后直接解压,之后添加VG_GNU_Package 变量。source对应的gcc版本即可。之后再次运行Tool->compile_sim。