Cadence Xrun UVM Makefile

news/2024/5/19 19:20:33 标签: systemverilog, UVM, makefile, Cadence Xrun

#记录工作实践

#基于Cadence Xrun工具的UVM Makefile

#
#--==============================================================
#-- File name        : Makefile
#-- Author           : sh

#-- Date             : 2023/11/01

#-- Abstract         : Cadence Xcelium Xrun Makefile
#--==============================================================
#
#######################################################
.PHONY : com run clean
#######################################################
export cpto_sw_v200_tb_path = ..
#######################################################
SIM_DIR    = .
LOG_DIR    = ../log
FSDB_DIR    = ../wave/fsdb
SHM_DIR    = ../wave/shm
TC_DIR    = ../tc/cfg
COV_DIR    = ../cov/imc
#######################################################
TOP_BENTCH    = top
TOP_DUT        = cpto_sw_v200_top
#######################################################
uvm_version    = uvm_1.1d
export UVM_HOME    = /tools/uvm/uvm-1.1d
export UVM_PKG      = /tools/uvm/uvm-1.1d/src/uvm_pkg.sv
export UVM_EXT_HOME = /tools/edaTools/Cadence/XCELIUM20.09.007/tools/methodology/UVM/CDNS-1.1d
#######################################################
TOP_FILE   = ${cpto_sw_v200_tb_path}/th/cpto_sw_v200_top.sv
COMMON_FILE= ${cpto_sw_v200_tb_path}/tt/uvm_plus_arg_def.sv
#######################################################
tc     = cpto_sw_v200_basic_test
seed   = $(shell \date +%m%d%H%M%S)
fsdb   = on
vbt    = UVM_MEDIUM 
errnum = 10
gui    = off
#######################################################
TIMESCALE += -timescale 1ns/100ps
#TIMESCALE += -vtimescale 1ns/100ps
#######################################################
DFILELIST  = -f ./incfilelist.f
VFILELIST  = -f ./vincfilelist.f
CFILELIST  = -f ./cfilelist.f
#######################################################
WAVE_COM_OPTS = +loadpli1=${VERDI_HOME}/share/PLI/IUS/LINUX64/boot/debpli.so:debpli_boot
#######################################################
#compile options
SYS_COM_OPTS += -v2001 -sv -disable_sem2009
SYS_COM_OPTS += -uvmhome $(UVM_HOME) -uvmexthome $(UVM_EXT_HOME) -uvm $(UVM_PKG)
#SYS_COM_OPTS += -uvmnocdnsextra
SYS_COM_OPTS += -64bit
SYS_COM_OPTS += -notimingcheck
SYS_COM_OPTS += -access +rwc -accessreg +rwc
SYS_COM_OPTS += -genhier
SYS_COM_OPTS += -debug -plidebug -fsmdebug 
#SYS_COM_OPTS += -uvmlinedebug -classlinedebug
SYS_COM_OPTS += -parseinfo include
SYS_COM_OPTS += -date
SYS_COM_OPTS += -dumpstack
SYS_COM_OPTS += -negdelay
SYS_COM_OPTS += $(TIMESCALE)
SYS_COM_OPTS += -lwdgen
SYS_COM_OPTS += -dpi
SYS_COM_OPTS += +cli+3
SYS_COM_OPTS += -errormax 10
SYS_COM_OPTS += -relax
#######################################################
#cov options
COV_COM_OPTS += -coverage B:E:F:T:U
COV_COM_OPTS += -covdut $(TOP_DUT)
#######################################################
#USER options
USR_COM_OPTS += -top $(TOP_BENTCH)
#USR_COM_OPTS += -define MACRO
#######################################################

#######################################################
com:
    @echo "******************************";
    @echo "******XRUN Compile Start******"
    @echo "******************************";
    xrun -compile -elaborate \
    $(SYS_COM_OPTS) \
    $(USR_COM_OPTS) \
    $(COV_COM_OPTS) \
    $(DFILELIST) $(COMMON_FILE) $(TOP_FILE) $(VFILELIST) $(CFILELIST) \
    -l $(SIMDIR)/xrun_compile.log 
    @echo "******************************";
    @echo "*******XRUN Compile End*******"
    @echo "******************************";
    #$(WAVE_COM_OPTS) \
#######################################################

#######################################################
run:
    @echo "***************************************************";
    @echo "******Simulation Start:$(tc),$(seed),$(vbt);******"
    @echo "***************************************************";
    xrun -R \
    -licqueue \
    +UVM_TC_CFG_NAME=$(tc) -f $(TC_DIR)/$(tc).cfg \
    +ntb_random_seed=00 -svseed $(seed) -randwarn \
    +loadpli1=${VERDI_HOME}/share/PLI/IUS/LINUX64/boot/debpli.so:debpli_boot \
    +dump_fsdb=$(fsdb) +UVM_VERBOSITY=$(vbt) +UVM_MAX_QUIT_COUNT=$(errnum) \
    -covoverwrite -covworkdir $(COV_DIR) -covbaserun $(tc) \
    -l $(LOG_DIR)/$(tc)/$(tc)_$(seed).log
    @echo "***************************************************";
    @echo "******Simulation Start:$(tc),$(seed),$(vbt);******"
    @echo "***************************************************";
#######################################################

#######################################################
indago:
    @echo "debug is indago"
    @cd ./xrun && indago
    @echo "Welcom indago!"
#######################################################

#######################################################
verdi:
    verdi \
    -2001 \
    -autoalias \
    -sv -ntb_opts uvm-1.1 \
    -f ./incfilelist.f \ 
    -f ./vincfilelist.f \
    -top top \
    +libext +.v +.V +.vg +.vb +veo +.h +.sv \
    &. 
#######################################################


http://www.niftyadmin.cn/n/5151252.html

相关文章

如何修改docker容器中的MySQL数据库的密码?

查看容器中MySQL的ID:docker ps | grep mysql进入容器:docker exec -it {容器ID} /bin/bash调整MySQL配置文件,设置跳过权限控制:echo "skip-grant-tables" >> /etc/mysql/conf.d/docker.cnf 警 告:这…

如何撰写出让快团团用户吸引力的产品文案?

如何撰写出让快团团用户吸引力的产品文案? 今天我想和大家分享一些关于撰写快团团团长赛道文案的秘诀。 首先,我们要将文案与消费者的使用场景紧密相连。 这意味着,你需要清晰地描述出你的产品或服务在消费者生活中的哪些方面扮演着重要角色。…

docker的使用以及注意事项

ssh的登录 1.登录ssh ssh 用户名IP地址 2.生成密钥 ssh-keygen生成密钥,在.ssh文件夹中(如果没有自己生成一个) 如果密钥之前已经生成过,可能在配置git的时候,会报错:这个密钥已经使用过的报错 解决方法是:otherwise[…

ZZ038 物联网应用与服务赛题第C套

2023年全国职业院校技能大赛 中职组 物联网应用与服务 任 务 书 (C卷) 赛位号:______________ 竞赛须知 一、注意事项 1.检查硬件设备、电脑设备是否正常。检查竞赛所需的各项设备、软件和竞赛材料等; 2.竞赛任务中所使用的各类软件工具、软件安装文件等,都…

【漏洞复现】fastjson_1.2.24_unserializer_rce

感谢互联网提供分享知识与智慧,在法治的社会里,请遵守有关法律法规 文章目录 1.1、漏洞描述1.2、漏洞等级1.3、影响版本1.4、漏洞复现1、基础环境2、漏洞检测3、漏洞验证 1.5、深度利用1、GetShell 说明内容漏洞编号漏洞名称fastjson 1.2.24 反序列化导致…

一站式解决方案:体验亚马逊轻量服务器/VPS的顶级服务与灵活性

文章目录 一、什么是轻量级服务器/VPS 二、服务器创建步骤 三、服务器连接客户端(私钥登录) 四、使用服务器搭建博客网站 五、个人浅解及总结 一、什么是轻量级服务器/VPS 亚马逊推出的轻量级服务器/VPS:是一种基于云计算技术的虚拟服务器解决方案。它允许用户…

【unity实战】教你轻松构建对话系统

先来看最终效果 前言 欢迎来到我们的Unity实战教程系列。在这一篇中,我们将深入探讨如何在Unity中构建一个对话系统。 对话系统是许多游戏中不可或缺的一部分,特别是在角色扮演游戏(RPG)、冒险游戏和视觉小说等类型中。它们为玩…

微信小程序如何跳转到外部小程序

要在微信小程序中跳转到外部小程序,您可以使用微信小程序提供的 wx.navigateToMiniProgram 方法。以下是实现步骤: 在需要跳转的页面或组件中,编写触发跳转的逻辑,例如点击按钮: 替换 外部小程序的AppID 和 外部小程序…