VCS直接仿真Vivado工程的方法与实践
用VCS直接仿真vivado工程
前言
在日常搬砖过程中,在IC design进行fpga原型验证时,在上fpga测试之前,往往需要对vivado工程进行仿真,而vivado工程中可能存在较多的xilinx ip或者block design,直接使用vivado仿真,速度难以接收。如果使用vcs进行仿真,这些ip的仿真文件较多,更恶心的是如果使用axi_interconnect等ip时,每重新generate一次block design,仿真文件会发生变化,难以维护固定的vcs仿真脚本。为了直接对vivado工程进行仿真,vcs可以直接调用vivado自动生成的vcs脚本。包含以下几个步骤:
编译vcs仿真库
选好vcs的path进行编译:
simulation设置
1、选择Verilog Compiler Simulator (VCS)
2、勾选“Generate simulation scripts only”,只生成脚本即可
3、避免在编译时出错,编译选项加入:-sverilog -timescale=1ns/1ps
Run Simulation
运行仿真生成vcs脚本:compile.sh和elaborate.sh
写Makefile
编写vcs仿真的makefile,调用上面的两个脚本文件。
#-------------------------------------------------------------------------------------------------------
all:comp elaborate sim
#-------------------------------------------------------------------------------------------------------
export VERDI_HOME=/nfs/tools/synopsys/verdi/R-2020.12-SP1
vcs_elab_opts=-full64 -debug_pp -t ps -licqueue -l elaborate.log -P ${VERDI_HOME}/share/PLI/VCS/LINUX64/novas.tab ${VERDI_HOME}/share/PLI/VCS/LINUX64/pli.a
vcs_sim_opts=-ucli -licqueue -l sim.log
top=top
#ref_dir=$(abspath $(lastword $(MAKEFILE_LIST)))
ref_dir=$(shell pwd)
#-------------------------------------------------------------------------------------------------------
comp:
cd ../project_test/project_ex.sim/sim_1/behav/vcs && ./compile.sh
#-------------------------------------------------------------------------------------------------------
elaborate:
cd ../project_test/project_ex.sim/sim_1/behav/vcs && ./elaborate.sh
cp -rf ../project_test/project_ex.sim/sim_1/behav/vcs/csrc ./
cp -rf ../project_test/project_ex.sim/sim_1/behav/vcs/t* ./
#-------------------------------------------------------------------------------------------------------
sim:
./tb_${top}_simv ${vcs_sim_opts} -do simulate.do \
-cm line+cond+fsm+branch+tgl \
-cm_name ${top} \
-cm_dir ./${top}.vdb
执行脚本,运行vcs仿真
terminal下直接make命令执行vcs仿真,生成fsdb文件
作者:啊节奏不对