Verdi fsdb分块记录方法

文摘   2024-11-03 20:03   北京  

常用的fsdb分块记录使用的方法主要有以下两种:$fsdbAutoSwitchDumpfile和$fsdbSwitchDumpfile。下面将示例说明两种方法的用法。

1 按照指定大小分割波形

Verdi支持在仿真时,指定dump的波形达到一定大小后自动进行分块保存,其命令格式如下:

$fsdbAutoSwitchDumpfile(File_size | File_Size_var,”FSDB_Name” | FSDB_name_var,Number_of_files | Number_of_Files_var[,”log_filename”|,log_filename_var]);

其中

  • File_sizefsdb块的大小也可以通过变量File_Size_var指定)指定分块fsdb的大小,即生成的单个fsdb的大小,这里需要注意,指定的最小File_size为10(即10MB),如果指定的数值小于10,那么实际dump时将会按照10MB进行dump(话说都10MB了,也没有必要分块了);

  • FSDB_Namefsdb名也可以使用存放在变量FSDB_Name_var中名字)指定生成的fsdb文件名;

  • Number_of_files(产生文件的个数也可以通过变量Number_of_files_var指定)指要产生的fsdb文件最大个数,如果指定为0则产生的文件数没有限制;

  • log_filenamedump过程中保存log信息的文件名也可以通过变量log_filename_var指定)指定dump过程中保存log信息的文件名;

【示例】

initial begin    $fsdbDumpvars(0,u_dut);    $fsdbAutoSwitchDumpfile(15,”test.fsdb”,30);end

上述代码片段指定了生成的fsdb名称格式为test_num.fsdb,即生成的第一个波形文件为test_000.fsdb,第二个为test_001.fsdb......直到仿真结束,此时根据仿真产生的波形文件的大小,最终dump的文件可能会出现以下几种情况:

  • 仿真波形总的大小不超过30*15MB时,将生成波形为test_001.fsdb~test_n.fsdb,其中n=(波形总大小/15MB);

  • 仿真波形总的大小大于30*15MB时,超过test_029.fsdb后产生的波形将会依次从test_000.fsdb开始覆盖,如果不期望覆盖,达到指定个数后停止dump,则可以使用参数“+fsdb+no_overwrite”,例如;

initial begin    $fsdbDumpvars(0,u_dut);    $fsdbAutoSwitchDumpfile(15,”test.fsdb”,30,“+fsdb+no_overwrite”);end

所以,在具体使用时,一定要注意仿真波形的大小,建议将函数中的Number_of_files设置的大一些。

2 按照指定时间间隔分割波形

除了产生固定大小的波形分块外,Verdi还支持在仿真时,根据指定的不同时间区间产生对应的波形文件,当一个波形文件开始dump时,前一个已经dump的fsdb波形文件就已经关闭了,即此时可以使用Veridi打开前一个已经完成dump关闭的fsdb波形文件。dump波形的命令格式如下:

$fsdbSwitchDumpfile(“NewFileName”|NewFileName_var[,”+fsdbfile+pre_file”|,pre_file_var]);

这里需要注意,如果指定+fsdbfile+pre_file,那么波形记录将从此刻开始记录新的波形到文件NewFileName中,原来的pre_file波形文件关闭;如果没有指定+fsdbfile+pre_file,那么波形记录将从当前激活的正在记录的波形文件切换至新的波形文件NewFileName中,而之前记录波形的文件将关闭。

【示例】 

【仿真结果】 

 从仿真结果来看,仿真波形的记录从test1.fsdb切换到test2.fsdb,然后从test2.fsdb切换到test3.fsdb。当200ns仿真波形从test1.fsdb切换到test2.fsdb时,test1.fsdb波形保存关闭,此时可以通过Verdi打开观测到已经dump的波形,并且此时同时开始记录仿真波形到test2.fsdb中,当400ns仿真波形从test2.fsdb切换到test3.fsdb时,test2.fsdb波形保存关闭,也可以通过Verdi打开观测到已经dump的波形,同时开始记录仿真波形到test3.fsdb中,直到仿真结束。

从上例可以看出,使用$fsdbSwitchDumpfile切换时如果没有指定“+fsdbfile+pre_file”,此时将会从当前处于正在记录状态的波形切换至新的要dump的波形。

当然,关于Verdi如何dump波形,还有很多其他的工具自带方法,大家可以查看对应的工具手册查看,一般情况下,这些doc都在工具的安装路径下可以找到,当然你也可以在网上搜索。


处芯积律
处芯积律,而后知所至。一个芯片人的技术和行业研究分享。
 最新文章