Vivado用ILA抓波形保存为CSV文件

将ILA观察到的波形数据捕获为CSV文件,抓10次,把文件合并,把源文件删除

运行方法:Vivado的 Tcl console 窗口输入命令

set tcl_dir F:/KLD_FPGA/Code/sim

set tcl_filename TCL_ILA_TRIG_V1.2.tcl

source tcl_dir/tcl_filename

TypeScript 复制代码
#===================================================
# 脚本说明 V1.2
# 功能:将ILA观察到的波形数据捕获为CSV文件,抓10次,把文件合并,把源文件删除
# 启用了自动重新触发模式。这样可以在每次触发时重新捕获数据
# 运行方法:Vivado的 Tcl console 窗口输入命令 
# set tcl_dir F:/KLD_FPGA/Code/sim
# set tcl_filename  TCL_ILA_TRIG_V1.2.tcl
# source $tcl_dir/$tcl_filename
# 注意:注意 vivado 下面的路径使用的是反斜杠 /,和 Windows 下的路径不一样
#===================================================

# ILA探针名字 hw_ila_1(u_ila_0) 
#set ila_name "u_ila_0" 
#set hw_name hw_ila_1
# ILA所在FPGA
#set fpga "xc7z020_1"

set data_dir "F:/KLD_FPGA/Code/sim/debug"

# 如果数据目录不存在,则创建目录
if {![file exists $data_dir]} {
    file mkdir $data_dir
}

for {set i 0} {$i < 4} {incr i} {
	#显示状态,启动ILA
	puts "Initiating ILA, iteration $i"
	#运行ila
	run_hw_ila [get_hw_ilas -of_objects [get_hw_devices xc7z020_1] -filter {CELL_NAME=~"u_ila_0"}] 
	#等待
	wait_on_hw_ila [get_hw_ilas -of_objects [get_hw_devices xc7z020_1] -filter {CELL_NAME=~"u_ila_0"}]
    # 上传ILA采集的数据
    set ila_data [upload_hw_ila_data [get_hw_ilas -of_objects [get_hw_devices xc7z020_1] -filter {CELL_NAME=~"u_ila_0"}]]
    # 显示ILA采集的数据
    display_hw_ila_data $ila_data
	#写入文件
	write_hw_ila_data -csv_file -force $data_dir/TCL_ILA_TRIG_$i.csv $ila_data
	#显示状态,保存完毕
	puts "Saved ILA data, iteration $i"
}


# 所有文件列表
set all_csvs [glob -directory $data_dir *.csv]

# 最终输出的合并文件
set final_csv [file join $data_dir "final.csv"]

# 如果存在则删除 final.csv
if {[file exists $final_csv]} {
  file delete $final_csv
}

# 逐个追加 CSV 文件内容  
set f [open $final_csv a]
foreach csv $all_csvs {
  set r [open $csv]
  puts $f [read $r]
  close $r
}
close $f

# 删除原始文件(可选)
foreach csv $all_csvs {
  file delete $csv 
}
相关推荐
Turing_kun15 小时前
基于FPGA的实时图像处理系统(1)——SDRAM回环测试
fpga开发
I'm a winner1 天前
新手入门Makefile:FPGA项目实战教程(二)
笔记·fpga开发
我爱C编程2 天前
基于FPGA的8PSK+卷积编码Viterbi译码通信系统,包含帧同步,信道,误码统计,可设置SNR
fpga开发·通信·8psk·帧同步·snr·卷积编码·维特比译码
I'm a winner2 天前
新手入门 Makefile:FPGA 项目实战教程(三)
fpga开发
范纹杉想快点毕业2 天前
嵌入式 C 语言编程规范个人学习笔记,参考华为《C 语言编程规范》
linux·服务器·数据库·笔记·单片机·嵌入式硬件·fpga开发
lazyduck2 天前
从半年到一年的 bug 往事:TCP modbus的卡死与补救
fpga开发·modbus
范纹杉想快点毕业3 天前
《嵌入式 C 语言编码规范与工程实践个人笔记》参考华为C语言规范标准
服务器·c语言·stm32·单片机·华为·fpga开发·51单片机
Chipi Chipi3 天前
FPGA即插即用Verilog驱动系列——串口数据、命令解析
fpga开发
FPGA_ADDA4 天前
基于 AMDXCVU47P HBM2 FPGA 的 2 路 100G 光纤 PCIe 高性能计算加速卡
fpga开发·vu47p·100g光纤pcie·高性能计算加速卡
霖004 天前
高级项目——基于FPGA的串行FIR滤波器
人工智能·经验分享·matlab·fpga开发·信息与通信·信号处理