Linux下编译Verilog流程---vcs+verdi

概述:

用的是vnc在Windows环境下控制显示远程服务器桌面,然后建立工程,采用脚本的方式用vcs编译,用Verdi进行波形查看。
工程建立
工程文件夹下建立top、hdl、lib、env、sim、debug、filelist、syn、testcase共九个子文件夹。
top中放顶层(tb)文件,hdl中放设计文件,lib中放厂商提供的库及ip核文件,env放top中所需要的driver、monitor文件等,即在调试过程中不变的一些文件(量),filelist指明这些文件分别在的路径,sim中的.sh脚本运行vcs,编译RTL design ,验证环境,dump 波形,生成.fsdb文件,供后面debug使用,debug中的.sh脚本运行verdi,testcase中存放一些调试中变的量,比如实验的不同码流,syn存放vivado综合的一些文件。

top文件

$fsdbDumplimit(1800) //限制fsdb文件size
$fsdbDumpvars()
glbl//自动复位

filelist

f_xilinx_unisim_vlog.f:设置Xilinx库路径
f_hdl_env_vlog.f:设置环境env路径
f_hdl_dem_vlog.f:设置hdl文件路径

env

tb_inn_mnt.v tb_mcu_drv.v top调用

sim:comp.sh

comp_init(){
    
    
:
}
comp_run(){
    
    
cop,_init $*
# variable  只是给这些变量起个名,下面才具体用;方便用作模板后面修改

# top variable
COMP_TOP="tb_pn_gen"
#verdi waveform library path variable
VERDI_DUMP="/share/synopsys/verdi/share/PLI/VCS/LINUX64"
COMP_LIB="f_xilinx_unisim_vlog.f"

# Path每个路径变量后面豆必须有一个空格
#library path
COMP_LIB_PATH="-f ../filelist/$COMP_LIB "
#design path
COMP_DESIGN_PATH="-f ../filelist/f_hdl_dem_vlog.f ""-f ../filelist/f_hdl_env_vlog.f "
#top path  指定top文件位置,并指定top文件中哪个模块为顶层模块
COMP_TOP_PATH="../top/$COMP_TOP.v -top $COMP_TOP"

#Parameter   一样还是每个结尾处有一个空格
#waveform parameter -P定义PLI的列表(tab)文件
# 在verilog hdl设计中,设计者可以调用外部软件提供的函数,如波形生成软件Verdi可通过VCS的PLI接口与Veriloghdl交互
COMP_DUMP_PARA="-P $VERDI_DUMP/novas.tab $VERDI_DUMP/pli.a "
#vcs common parameter
COMP_COMM_PARA="+vcs+lic+wait +v2k -lca -debug_all -timescale=1ns/100ps +libext+.v+.vh+.i+ "
COMP_COMM_PARA="$COMP_COMM_PARA+define+DUMP_FSDB "
#log parameter
COMP_LOG_PARA=" -l comp.log "
#merge all parameter
COMP_VCS_PARA="$COMP_COMM_PARA$COMP_LIB_PATH$COMP_DESIGN_PATH$COMP_TOP_PATH$COMP_DUMP_PARA$COMP_LOG_PARA"

#在终端中打印   -e激活转义字符
echo -e "$COMP_VCS_PARA"

# Compile & run
vcs -full64 $COMP_VCS_PAPR
./simv -l sim.log
}

comp_run S*

猜你喜欢

转载自blog.csdn.net/weixin_44884357/article/details/115044120