vivado的工程,通过第三方的vcs进行仿真时,需要vivado预先生成synopsys_sim.setup文件和相应的xilinx的库文件。其中synopsys_sim.setup可以用指定xilinx的的库文件的位置。
1、vivado生成vcs库文件的方法:
a.guif方式:vivado界面的Tools > Compile Simulation Libraries;指定库文件的存放位置和第三方软件的路径
b.tcl命令:
compile_simlib -language all -dir {想要存放的库文件的目录} -simulator vcs -simulator_exec_path {vcs软件的安装路径,到bin目录层次} -verbose -library all -family all
2、其中synopsys_sim.setup,应该在启动vivado的目录下(具体路径视具体情况而定)
3、synopsys_sim.setup的使用:
下面是一个简单的synopsys_sim.setup文件
--VCS MX setup file for ASIC
--Mapping default work directory
WORK > DEFAULT
DEFAULT : ./work
--Library Mapping
STATS_PKG : ./stat_work
MEM_PKG : ./mem_work
其含义是:
1)--表示行注释,类似verilog里面的//
2)以下两行设置默认library目录为./work
WORK > DEFAULT
DEFAULT : ./work
其中./代表当前run的目录,一般为makefile或脚本所在目录,如果该目录下没有./work目录,则VCSMX会报错。这个目录的作用是什么呢?
在三步仿真方法中,第一步将尚未编译成预编译库的文件编译成预编译库,这个预编译库的保存目录需要你指定,如果你没有指定,那么就保存在默认目录,在本例中即./work目录,
3)以下两行定义了两个库,分别是STATS_PKG,MEM_PKG ,编译时生成的预编译库文件分别保存在./stat_work和./mem_work目录中:
STATS_PKG : ./stat_work
MEM_PKG : ./mem_work
例如 vlogan -sverilog -work STATS_PKG a.sv
这句将a.sv编译到STATS_PKG 这个库中
当然还有很多其他可以通过synopsys_sim.setup来设置的选项,也可以指定其他文件来实现synopsys_sim.setup的功能。另外也可以在synopsys_sim.setup中指定某个文件作为所有设置的一部分,当我们使用vivado调用vcs预编译库的时候,它会生成一个synopsys_sim.setup文件,为了避免修改该文件,我们可以在自己的synopsys_sim.setup文件中添加如下一行代码进行调用:
OTHERS=vivado预编译库目录 /synopsys_sim.setup【这个文件是上文通过vivado生成的初始化文件synopsys_sim.setup】
这一部分比较重要