參考下面的 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