波形文件作为vectorbase irdrop仿真的重要输入文件,格式五花八门,尺寸大小不一。通常用到较多shm,vcd,fsdb,vpd,saif几种格式,对于波形文件过大,格式不匹配,版本太低等等问题该去如何处理呢?
vcd :IEEE1364标准(Verilog HDL语言标准)中定义的一种ASCII文件,是通用的文件格式。包含了芯片内部信号的变化信息,以此模拟芯片的实际状态用PA 仿真工具进行功耗,irdrop等方面评估。因为VCD是 Verilog HDL语言标准的一部分,因此所有的verilog的仿真器都能够查看该文件。
fsdb:(Fast Signal DataBase) 是Spring Soft 公司 Debussy / Verdi 支持的波形文件,针对性的提取了仿真过程中信号的重要信息,删减了VCD中信息冗余,所以尺寸相较vcd较小,使用过程中读取的速度更快。
shm:Cadence公司 NC verilog 和Simvision支持的波形文件,实际上 .shm是一个目录,其中包含了.dsn和.trn两个文件,相同场景,shm的产生时间和内存占用都优于fsdb。
vpd :Synopsys公司 VCS DVE支持的波形文件,可以用vcdpluson产生。
saif :(switching activity interchange format) 开关行为内部交换格式文件,用于仿真器和功耗分析之间交换信息的ASCII文件(美国标准信息交换码文件)
上述的波形文件产自不同的工具,为了开源兼容,衍生了彼此之间的转换行为
1:fsdb2vcd
2:vcd2fsdb
3:vcd2saif
4:fsdb2saif
5:vpd2vcd
6:shm2vcd
7:shm2saif
转换过程中还有很多细化的选择项,比如时间段选择,信号选择等等,均可查阅工具用法来了解详情。
2.版本切换
voltus或者redhawk等PA仿真工具在读取波形文件遇到波形文件版本过低或者过高的情况,以fsdb 版本过高为例,可以将fsdb 转换成vcd文件, 然后用低版本的verdi 工具再将vcd转成fsdb,这样就可以将fsdb的版本降低
3.按照hier 层级抽取波形文件,以fsdb为例:
基于flatten环境的fsdb文件,抽出block level仿真对应的波形文件,以加速voltus迭代速率和debug的效率。
以上为部分波形文件的处理方法,除了示例以外,其余格式均可采用相互转换,选择性抽取的方式。