OpenEdv-开源电子网
标题:
仿真过程数据以TXT导出数据丢失问题
[打印本页]
作者:
刘王村
时间:
2024-4-2 18:26
标题:
仿真过程数据以TXT导出数据丢失问题
在使用Vivado或者使用Modelsim仿真的时候,有时候需要把数据导出来到MATLAB中,
和MATLAB的仿真结果对比。
之前一直使用的是$fdisplay对数据进行输出,如下所示。
(需要输出的信号都配对了同步信号用来确保不会有无效的数据导出去)
/* synthesis translate_off */
integer handle;
initial begin
handle = $fopen("../../../../sim_out_data/sim3/wave0_data0_real.txt");
end
always@(posedge clk_200MHz)begin
if(wave0_valid)
$fdisplay(handle,"%d",wave0_data0_real);
end
/* synthesis translate_on */
复制代码
但是当同时用这种方法同时导出很多信号的时候,就会发现有的数据对应的txt文件会丢失,不会建立相应的文件
或者建立了但是文件一直是0KB(查看文件的时候已经退出了仿真)
在网上看到另外一种使用tcl语言的方法:
proc write_sim_data {env name radix cycle file} {
set fid [open $file w]
for {set i 0} {$i <= $::now} {incr i [expr $cycle * 1000]} {
set str [exa -env $env -radix $radix -time ${i}ps {*}$name]
puts $fid $str
}
close $fid
}
复制代码
但是这种也存在问题:没办法关联数据有效信号以及数据时钟,只能取决于Modelsim的绝对时钟
所有想请问一下有没有其他更好的导出的方式?(现在主要用的是Modelsim仿真)
欢迎光临 OpenEdv-开源电子网 (http://47.111.11.73/)
Powered by Discuz! X3.4