cadence indago简单使用说明

参考博文:http://www.lujun.org.cn/

1,indago系列工具介绍

indago工具,是cadence工具,推出的一系列debug工具。在启动simvision工具时,就会弹出一个窗口,里面就提到了indago工具。

这套工具,非常的强大,但是就是网上介绍的资料不多。因为,有很多人,都不知道这个工具。

主要包括3个工具:

  • debug analyzer app

  • protocol debug app

  • embedded software debug app,简称eswd工具

     

这三个工具,我只用过debug analyzer app(之后,均简称为indago)和eswd,这两个工具,后面,就对这个两个工具进行详细的介绍。

对于indago,主要用来debug uvm验证环境,会非常有用,当然也可以用来debug RTL。因为该工具,可以查看仿真过程中任意时刻的仿真状态。除了可以往后单步,还能往前单步。因为需要在仿真过程中,将整个仿真过程给记录,因此带来的一个问题,就是造成仿真速度较慢。

而eswed工具,我认为是针对cpu,最强的软件debug工具。该工具,可以将cpu执行的trace流(需要自己开发monitor,从RTL中,将cpu的执行流抓出来),和elf程序,进行一一对应,并且还能和波形进行对应,让我们可以清晰的指导,cpu在每个时刻,在执行什么程序,以及当前的cpu状态。

2,如何产生indago database

首先介绍下indago工具,也就是debug analyzer app。

在debug uvm验证环境时,我们一般是通过增加打印,然后仿真,根据仿真打印的log,来确定问题。如果打印加得不够,还得修改源代码,增加代码代码。

有了indago工具之后,就再也不需要在环境中,增加额外的打印代码。因为indago工具,可以查看仿真时刻的任意状态。

那indago是如何实现的了?其中的关键,就在于,使用irun工具仿真的时候,需要产生indago database,将仿真过程中的信息,给记录下来。最后使用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脚本。

1
2
3
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能回看的数据,完全是由这个命令,来指定的。比如,ida_probe,指定了database要记录波形,那么将来在indago工具中,才可以看到波形。

下图,是ida_probe命令的说明:

这里,说明一下这个命令的一些常用选项:

 1、-start_time/-end_time

 指定database记录仿真状态的起始时间和结束时间。主要用来,记录关键一段仿真过程的状态。

 2、-log

 记录打印的信息

 3、-log_objects

 记录打印信息中的,动态对象。

 4、-uvm

记录uvm package信息。如果使用这个选项,需要编译带上 –linedebug 选项。

开启这个选项,会将uvm的基类,比如uvm_test,uvm_env等这些基类进行记录,这样将来在indago工具中,可以在这些基类中,回看仿真过程。

如果不关心uvm基类的底层过程,可以不用加这个选项。

5、-uvm_reg

 记录uvm_reg的信息,需要在编译选项,加入 –uvmlinedebug。当uvm环境中,有uvm寄存器模型,需要将该选项加上。

6、-wava/-wave_probe_args=xxx

 -wave开启波形记录。 -wave_probe_args,指定波形记录的形式。xxx参数,是传递给probe的参数。

对于probe命令,其说明如下:

如-wave_probe_args= "dut_top -depth all –all memories",表示记录dut_top模块的内部信号波形,以及该模块之下所有模块的内部波形。因为还有-all选项,因此还会记录memory的波形。

 7、-sv_files

 允许记录systemverilog文件

 8、-sv_flow

 允许记录systemverilog信息

 9、-sv_modules

 允许记录systemverilog的module信息。默认为是不

  • 3
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cadence SPB 16.6是一个先进的电子设计自动化工具套件,广泛应用于各种电路设计和验证工作中。以下是关于Cadence SPB 16.6的使用说明: 首先,Cadence SPB 16.6提供了功能强大的原理图编辑器,使得用户能够创建和编辑电路原理图。用户可以通过插入符号、连接连线和设置属性等操作来完成原理图的设计。 其次,Cadence SPB 16.6还提供了丰富的模型库,包括数字逻辑、模拟电路和射频电路等模型。用户可以根据需要选择并使用这些模型,从而快速完成电路的设计工作。 此外,Cadence SPB 16.6还具有强大的仿真功能。用户可以通过该软件执行静态和动态仿真,以验证电路的功能和性能。仿真结果可以帮助用户发现并解决设计中的问题。 在布局和布线方面,Cadence SPB 16.6提供了完善的布局工具。用户可以使用这些工具来安排和布置电子器件以及电路板的元件。通过优化布线,用户可以提高电路的可靠性和性能。 最后,Cadence SPB 16.6还支持PCB设计和制造。用户可以使用该软件将电路设计导出为PCB布局文件,并通过其他工具进行制造和组装。 总的来说,Cadence SPB 16.6是一款功能强大的电子设计自动化工具套件,通过其丰富的功能和工具,用户可以完成电路设计、仿真、布局和制造等工作。这个软件的使用有助于提高电路设计的效率和质量,是电子工程师们不可缺少的工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值