fsdb超过2g的问题
同问,不过我用的是VCS,呵呵
有两种方式可以解决:
第一种:文件超过2G无法打开是32位系统的限制,因为32位系统的寻址空间最多只能到2G,单个文件超过2G都无法访问,解决方法是使用64位系统,并且仿真器需设置为64位模式。通常要在编译、确立和仿真命令后添加相应的64位模式参数。
第二种:在仿真的时候可以添加系统任务,让fsdb自动切分成多个小的波形文件。系统任务如下:
$fsdbAutoSwitchDumpfile(File_Size,"file_name", Max_file_number[, log_file_name])
file_size的单位是M。log file是可选的,建议加上。
initial begin
$fsdbAutoSwitchDumpfile(500,"file_name.fsdb", 10, "fsdb_dump.log");
$fsdbDumpvars(1, your_tb_top_name);
$fsdbDumpvars(0, tb_name.top_module.sub_module.your_debug_model);
$fsdbDumpflush;
end
不可以让波形输出在之后的某一个时间开始,2G的波形打开也困难呀。
不要把所有的波形都Dump出来,把你想看的Dump出来就行了。
或者学学Siloti,他可以把你的波形压缩,只Dump必要的信号,然后根据必要信号计算出其他信号的值,一般可以压缩到40%左右
不错。
呵呵,谢谢大家的回复!
我用上面的方法做了,不过多看几个信号就memory不够了,我内存2g,貌似是硬盘不足?
还好,最后把bug搞定了。
