Xcelium(xrun)的基础使用

Xcelium的基础使用 


https://www.cnblogs.com/Alfred-HOO/articles/17416139.html

一,基础问答
1,Xcelium的由来?
Xcelium(xrun)是cadence最新的仿真工具,Incisive(irun)的升级版本。
2,如何用xrun完成三步仿真?
xrun默认是单步仿真

 
 
xrun add.v //自动完成comp , elab ,sim

三步仿真:

 
 
comp :
 
xrun -compile add.v
 
elab :
 
xrun -elaborate add.v //生成snapshot
 
sim :
 
xrun -R //自动识别snapshot

3、Xcelium的特性
严格的语法检查确保设计的成功,若代码不改变,默认不重新comp,elab代码,来减少仿真时间(如需要重新comp,elab,可添加-noupdate)
二,常用的option
 


 


三,help使用
whichxrun//查看xrun是否可以直接调用

xrun -helpargs//打印出xrun的option作用及用法(xrun -helpall)
当仿真报错,可以使用下面命令debug具体报错类型
xmhelpxrunBADPRFxmhelp xmsim BADPRF (根据报错信息调整xmvlog ,xmelab ,xmsim)
$nchelp ncvlog BADPRF(根据报错信息调整ncvlog,ncelab,ncsim).

<think>好的,用户想了解关于Xcelium的Makefile编写方法或示例。首先,我需要回顾一下用户提供的引用内容,看看有没有相关的信息。用户提供的引用主要涉及一般的Makefile编写方法,以及Android.mk的转换,但并没有直接提到Xcelium。不过,我可以结合Xcelium作为仿真工具的特点,来推断如何编写对应的Makefile。 Xcelium是Cadence的数字仿真器,通常用于硬件设计和验证。在编写Makefile时,用户可能需要编译和运行仿真,管理依赖关系,清理生成的文件等。因此,Makefile的基本结构可能包括目标如compile、simulate、clean等。 根据引用中的内容,Makefile的命名通常是Makefile或makefile,优先使用前者。另外,自动处理依赖关系是关键,但用户提到的引用4指出,简单的依赖处理可能不够完善,特别是间接依赖的头文件,可能需要更复杂的处理。不过对于Xcelium,可能更关注仿真命令和文件管理,而不是源代码编译的依赖。 接下来,我需要考虑Xcelium的常用命令。通常,用户会使用xrun命令来编译和运行仿真。编译阶段可能需要指定文件列表、编译选项,仿真阶段可能需要加载测试平台或指定顶层模块。因此,Makefile的目标可能包括compile、simulate、clean等。 例如,compile目标可能使用xrun -compile来编译设计文件,simulate目标则使用xrun -R来运行仿真。clean目标则删除生成的文件如INCA_libs、波形文件等。 此外,用户可能需要参数化设计,比如指定顶层模块、添加调试选项如-access +rwc,或者生成波形文件。这些都可以在Makefile中通过变量来设置,增加灵活性。 然后,我需要考虑用户可能的后续问题,比如如何添加覆盖率、处理多文件依赖或并行仿真。这些问题可以作为相关问题列出,帮助用户进一步探索。 最后,确保按照用户的格式要求,使用中文回答,正确应用LaTeX格式,生成相关问题,并引用提供的参考资料。虽然引用中没有直接提到Xcelium,但可以引用一般Makefile编写的方法,如引用1、3、4中提到的Makefile结构和依赖管理。</think>### Xcelium Makefile编写指南 Xcelium是Cadence公司开发的数字仿真工具,主要用于ASIC/FPGA验证。其Makefile核心编写逻辑围绕「仿真流程自动化」展开,包含编译、仿真、清理三个阶段。 #### 基础模板 ```makefile # 定义仿真器路径 XCELIUM_PATH = /tools/cadence/XCELIUM/21.09.001 # 源文件列表 RTL_FILES = design.sv tb.sv CFLAGS = -64bit -access +rwc -linedebug compile: $(XCELIUM_PATH)/tools/bin/xrun -compile -sv $(CFLAGS) $(RTL_FILES) simulate: $(XCELIUM_PATH)/tools/bin/xrun -R clean: rm -rf INCA_libs waves.shm xrun.log *.key ``` #### 参数化进阶版 ```makefile TOP_MODULE = tb # 定义顶层模块 COV_OPTS = -coverage all -covoverwrite WAVE_OPTS = -input waves.tcl compile: xrun -f filelist.f -sv -top $(TOP_MODULE) $(COV_OPTS) simulate: xrun -R $(WAVE_OPTS) cov_report: imc -exec 'load_coverage merged_cov; report_summary -out coverage.rpt' clean: rm -rf INCA* *.dsn *.trn *.log *.shm *.vcd *.vpd ``` 相关问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值