当前位置: 首页 > news >正文

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

#===================================================
# 脚本说明 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} {#显示状态,启动ILAputs "Initiating ILA, iteration $i"#运行ilarun_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 
}

相关文章:

  • sqlserver2012 解决日志大的问题
  • STM32物联网(ESP-01S模块及STM32和ESP-01S通信方式介绍)
  • 问题:成本会计工作的核心是( ) #其他#知识分享
  • Compose | UI组件(十五) | Scaffold - 脚手架
  • 虚拟dom
  • 【Python网络编程之Ping命令的实现】
  • 数据结构——5.3 二叉树的遍历和线索二叉树
  • leetcode142. 环形链表 II
  • 【RISC-V DSP设计】基于CEVA DSP架构的指令集分析(二)-函数列表
  • 边缘计算第二版施巍松——第七章 边缘计算资源调度
  • 基于Skywalking开发分布式监控(二)
  • Spring Security学习(四)——登陆认证(包括自定义登录页)
  • [日常使用] Shell常用命令
  • PHP+vue+mysql校园学生社团管理系统574cc
  • 【LeetCode】122. 买卖股票的最佳时机 II(中等)——代码随想录算法训练营Day32
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 2017 年终总结 —— 在路上
  • codis proxy处理流程
  • const let
  • GraphQL学习过程应该是这样的
  • Javascripit类型转换比较那点事儿,双等号(==)
  • MySQL数据库运维之数据恢复
  • PHP的类修饰符与访问修饰符
  • React Transition Group -- Transition 组件
  • Service Worker
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 阿里研究院入选中国企业智库系统影响力榜
  • ------- 计算机网络基础
  • 解析 Webpack中import、require、按需加载的执行过程
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 力扣(LeetCode)965
  • 利用DataURL技术在网页上显示图片
  • 算法-插入排序
  • 通过npm或yarn自动生成vue组件
  • 写代码的正确姿势
  • 一、python与pycharm的安装
  •  一套莫尔斯电报听写、翻译系统
  • 移动端唤起键盘时取消position:fixed定位
  • kubernetes资源对象--ingress
  • # Maven错误Error executing Maven
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (MATLAB)第五章-矩阵运算
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (九)c52学习之旅-定时器
  • (转)ObjectiveC 深浅拷贝学习
  • (轉貼) UML中文FAQ (OO) (UML)
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • /proc/vmstat 详解
  • [ Linux 长征路第五篇 ] make/Makefile Linux项目自动化创建工具
  • [2019/05/17]解决springboot测试List接口时JSON传参异常
  • [2023年]-hadoop面试真题(一)
  • [Android]竖直滑动选择器WheelView的实现
  • [BZOJ3757] 苹果树