参考下面的CSDN博客
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
}
-
Line1:定义一个名为write_sim_data的过程,参数列表为:{env name radix cycle file}
env:指定查找对象名称的路径。如top_tb/top_u
name:需要导出的变量列表。如{I_reset_n R_data_cnt}
radix:进制。可选:ascii,binary, decimal,hexadecimal,unsigned等
cycle:时钟周期,单位ns
file:输出文件。如./1.txt -
Line2:打开一个文档,返回文件描述符
-
Line3:分别获得从0到仿真结尾时间,按时钟周期间隔对数据进行取样输出
-
Line4:获得具体数据
-
Line5:将数据写入文件
-
Line7:关闭文件
示例:
write_sim_data sim:/top_tb/u_top_wrapper/top_i/RS_Enc_0 {RS_Out Trigger} unsigned 1000 data.txt