【Xrun+Indago简单环境搭建】


【博客首发于微信公众号《漫谈芯片与编程》,欢迎专注一下,多谢大家】

Xrun(Xcelium)对应的wavedorm view工具SimVision & Indago;
Xcelium(Xrun)是cadence最新的仿真工具,原型是Incisive(irun);

Xrun 仿真

Xrun模式是单步仿真:

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

三步仿真

comp:
	xrun -compile add.v	//--本质是调用 xmvlog
elab:
	xrun -elaborate add.v	//--本质是调用xmelab,生成仿真snapshot:对于verilog来说,xrun可以自动检测top模块,但不能检测VHDL的top模块;需要通过-top来指定;
sim:	
	xrun -R			//--本质是调用xmsin,调用仿真snapshot;

Xrun项目结构

使用Xrun的项目文件结构:

project/
├── Makefile
├── src/
│   ├── top.sv
│   └── ...
├── tb/
│   ├── testbench.sv
│   └── ...
└── sim/
    └── xrun.log
//-- src/ 目录包含设计源文件。
//-- tb/ 目录包含测试平台文件。
//-- sim/ 目录用于存放仿真结果和日志文件。

使用Xrun来进行编译:

xrun -64bit \
     -access +rwc \
     -f filelist.f \
     -top testbench \
     -define "DEFINE1=1 DEFINE2=2" \
     -l sim/xrun.log

-64bit:启用 64 位模式。
-access +rwc:允许读写访问。
-f filelist.f:指定包含所有源文件的文件列表。
-top testbench:指定顶层模块。
-define “DEFINE1=1 DEFINE2=2”:定义宏。
-l sim/xrun.log:指定日志文件。

在这里重点看一下filelist.f的src文件格式:

+incdir+../src
+incdir+../tb
../src/top.sv
../tb/testbench.sv

Makefile 示例

# Makefile for Xrun

# 工具路径
XRUN = xrun

# 源文件目录
SRC_DIR = src
TB_DIR = tb

# 输出目录
SIM_DIR = sim

# 设计文件
DESIGN_FILES = $(wildcard $(SRC_DIR)/*.sv)
TESTBENCH_FILES = $(wildcard $(TB_DIR)/*.sv)

# 文件列表
FILELIST = $(SRC_DIE)/filelist.f

# 日志文件
LOG_FILE = $(SIM_DIR)/xrun.log

# 编译目标
all: compile

# 编译目标
compile:
	@echo "Compiling design and testbench..."
	$(XRUN) -64bit -access +rwc -f $(FILELIST) -top testbench -l $(LOG_FILE)
	@echo "Compilation complete."


# 清理生成的文件
clean:
	@echo "Cleaning up..."
	rm -rf $(SIM_DIR) *.log
	@echo "Cleanup complete."

# 默认目标
.PHONY: all clean 

Indago view

Indago对标Verdi,也是一款波形查看,代码调试的EDA;
在debug uvm验证环境时,我们一般是通过增加打印,然后仿真,根据仿真打印的log,来确定问题。除此之外,indago也可以查看仿真时刻的任意状态。
如何实现查看任意时刻的任意状态–,使用Xrun工具仿真的时候,需要产生indago database,将仿真过程中的信息,给记录下来。最后使用indago工具,载入这个database,实现信息的回看

编译阶段

在编译阶段,要加入如下三个选项:
-ida: 使能indago debug analyzer。 如果使用xrun工具,不需要加该选项。
-linedebug:支持代码行调试,必加
-uvmlinedebug: 支持uvm库代码行调试,可选

仿真阶段

在仿真阶段,需要加入 +UVM_HYPERLINKS=ON 选项,和-input run.tcl 选项,来指定仿真所需要的tcl文件。
在run.tcl中,可以精细化的控制indago database生成。因为产生indago database会降低仿真速度,因此需要使用run.tcl,来精细化控制,database的生成过程。
参考的run.tcl脚本:

ida_probe -log -sv_flow -uvm_reg -log_objects -sv_modules -wave -wave_probe_args="top_tb -depth all –all memories"
run
exit

ida_probe命令

ida_probe,指定database中记录产生的数据。这个命令很重要,因为后面indago能回看的数据,完全是由这个命令,来指定的。

Indago启动

通过run.tcl脚本,指定产生database的信息。Xrun工具仿真完毕后,会在当前目录下,生成ida.db文件夹。

Indago的debug特性和Verdi基本类似:

  • 查看波形
  • 设置断点
  • 单步执行
  • 查看变量值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值