FSDB 波形文件产生以及截取

FSDB波形产生:

FSDB:Fast Signal Database 相比较于VCD文件,FSDB文件的大小比VCD波形小5-50倍。

各家的仿真器都支持在simulation的过程中,直接生成FSDB文件

将VCD文件转换为FSDB文件的三种方式:

1) vfast工具

2) 在nTrace中使用File---Load simulation Tesults打开

3) 在nWave中使用File---Open命令来打开 将Fsdb文件转换为Vcd文件: 1) fsdb2vcd工具,

 

在进行仿真时,novas_dump.log文件会产生,其中记录verdi的环境变量

 

FSDB Dumper支持三种方式来加入options:

1) simulator的command line中添加,simv +fsdbfile+high.fsdb

2) 直接在env中添加,setenv NOVAS_FSDB_FIEL mid_prio.fsdb

3) FSDB Dumping cmd中添加,$fsdbDumpfile("+fsdbfile+low_prio.fsdb")

其中,并不是每个option都支持三种方式,cmd line中的优先级最高

 

FSDB Dumping cmd line option

+fsdbfile+filename,指定FSDB文件的名字,默认名字是novas.fsdb。

+fsdbfile+test1.fsdb +fsdbLogOff,不打印出log信息。+fsdbLogOff

+fsdbLog=severity,按severity的方式dump log信息。+fsdbLog=3

+fsdb+all[=on|off],dump所有支持的类型,+fsdb+all=on

+fsdb+autoflush,在simulation stop或者ctrl+c停止时自动将缓冲中的波形输出,+fsdb+autoflush

+fsdb+dump_log[=on|off],使能或者关闭novas_dump.log,+fsdb+dump_log=on

+fsdb+glitch=num,0表示所有的glitch都保存,1表示最近的glitch保存,2表示最近两个glitch被保存,+fsdb+glitch=0 +fsdb+dumpoff_glitch+time,表示停止dump glitch的时间,+fsdb+dumpoff_glitch+30

+fsdb+dumpoff+time,指定dump结束的时间,+fsdb+dumpoff+2500,+fsdb+dumpoff+2500ps

+fsdb+dumpon+time,指定dump开始的时间,+fsdb+dumpon+500,+fsdb+dumpon+2500ps

+fsdb+io_only,只dump input/output的信号,+fsdb+io_only

+fsdb+parameter,使能parameter的dump,默认关闭,+fsdb+parameter=on

+fsdb+reg_only,只dump寄存器类型的信号,+fsdb+reg_only

+fsdb+psl_prop,只dump PSL property类型的信号,+fsdb+psl_prop

+fsdb+sequential,使能sequence的dump,+fsdb+sequential

+fsdb+strength[=on|off],使能或者不dump strength信息,+fsdb+strength=on

+fsdb+struct[=on|off],使能或者不dump struct信息,+fsdb+struct=on

+fsdb+writer+mem_limit=num,设置limit进行FSDB Flush单位为M,+fsdb+writer_mem_limit=64

+fsdb+sva_status,使能assertion status的dump,+fsdb_sva_status

 

FSDB Dumping task $fsdbDumpfile,设置FSDB的名字,默认是“novas.fsdb”,$fsdbDumpfile("FSDB_NAME",Limit_Size);              

必须在fsdbDumpvars task之前设置。

 

$fsdbDumpvars(depth,instance,"option="),$fsdbDumpvars(0,system,"+fsdbfile+novas.fsdb");

  不指定scope,等同于整个design,等同于"+all"。

$fsdbDumpvarsByFile("txtFileName","option"),将需要dump的信号写入一个file中。

$fsdbDumpFinish,本身FSDB Files在simulation结束时,都会自己关闭,也可以显式调用该task,来关闭。

$fsdbDumpflush,清空缓存中的波形数据。

$fsdbDumpon("options");$fsdbDumpoff("option");

$fsdbAutoSwitchDumpfile(10,"test.fsdb",20),表示在fsbd文件到10M大小之后,创建新的fsbd文件,最多创建20个fsdb文件。

$fsdbSwitchDumpfile("NewFileName"."+fsdbfile+src_file"),执行到该task之后,关闭上一个dump,开始新的dump文件。。

                                                                                    $fsdbSwitchDumpfile(test1.fsdb,"+fsdbfile+test0.fsdb")

$fsdbDumpSVA(depth,instance,"option"),将assertion的结果存在某个fsdb中,

                       $fsdbDumpSVA(1,system.arbiter,"+fsdbfile=SVA.fsdb"),将该instance下所有assert全部dump到该fsdb中。

$fsdbDumpMDA(depth, instance, options),将多维变量的值dump到fsdb中,MDA(multidimensional array),在VCS中使用,compile的时候需要加-debug_pp

FSDB 波形截取:

fsdbextract source.fsdb -bt 10000ns -et 20000ns -o output.fsdb

source.fsdb是原始波形文件,10000ns 和 20000ns是截取波形的开始时间点与结束时间点,otuput.fsdb是截取出来的波形文件名b

### 如何在 Verdi 工具中保存和加载波形文件 在 Verdi 工具中,可以通过特定的快捷键或者菜单选项来实现波形文件的保存与加载。以下是具体方法: #### 保存波形文件 为了便于后续查看已提取的信号,在 Verdi 中可以将当前显示的波形保存为 `.rc` 格式的文件。通过按下 `Shift + S` 组合键即可触发保存操作[^2]。此过程会弹出一个对话框,允许用户指定保存路径以及文件名。 #### 加载波形文件 当需要重新调用之前保存过的波形配置时,可利用快捷键 `r` 来开启加载界面。在此界面上,浏览并选取目标 `.rc` 文件之后确认选择,先前定义好的波形布局便会恢复到工作区中。 另外一种方式是从命令行启动 Verdi 并直接关联至所需的波形数据源。例如使用 `-ssf fsdb_file` 参数可以直接指向某个波形文件(支持多种格式而不仅限于 FSDB),这样就不必再手动挑选波形文件了[^4]。 对于特别庞大的波形记录文件(如 FSDB 类型),如果遇到性能瓶颈问题,还可以考虑先对其进行时间片段上的切割处理后再导入分析环境之中。比如采用如下指令来进行分割: ```bash fsdbextract source.fsdb -bt 10000ns -et 20000ns -o output.fsdb ``` 上述脚本的作用是从原始的大规模波形文件截取时间段介于 10,000 纳秒到 20,000 纳秒之间的部分,并将其另存为新的较小尺寸的波形文件以便更高效地查阅[^5]。 最后值得注意的是,除了这些基本的功能之外,Verdi 的图形化界面也提供了丰富的自定义选项供使用者调整以适应个人偏好,像字体大小这样的细节都可以按照需求修改。例如可以在 waveform 设置面板里面把默认字型由 Courier 12 调整增大至 Courier 18 提升阅读舒适度[^1]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

简单同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值