如何把FPGA调试中的数据给捕获出来并保存为文件

时间:2025-11-01  作者:Diven  阅读:0

在FPGA调试过程中,经常遇到这样的情况:出现BUG时,想采用仿真环境把FPGA调试中遇到的BUG给重现出来,但无论怎样改变仿真环境中的激励,都无法重现FPGA上的出现BUG的情况。
此时,如果有方法,能够把FPGA正在运行时产生BUG前所有的输入变量状态给捕获下来,然后作为激励,添加到仿真环境中去,这样以来,就能够重现FPGA运行时出现的BUG,就可以在仿真环境中去解决这个BUG,调试的复杂度瞬间降低很多,也能大大的提高FPGA调试的效率。  
本文介绍利用Vivado进行FPGA调试时,如何把FPGA调试中的数据给“捕获”出来,并保存为文件,转换到仿真环境中进行仿真,“重现”FPGA调试运行场景的方法。    

如何把FPGA调试中的数据给捕获出来并保存为文件

1、背景

从一个RTL代码描述的电路到FPGA样机的过程可以分为两个阶段,第一阶段为仿真验证,第二阶段为FPGA验证。仿真验证是激励数据源常常由自己编写,往往与板级验证数据源(如TestCenter等网络测试仪产生的以太网数据包)存在较大区别,因此在这里介绍将板级验证数据导入仿真Testbench中的方法。使用这种方法,可以使仿真验证数据源最大限度地接近板级数据源,可以辅助排除绝大部分的逻辑错误。  

2、操作流程

这里我们还以Zedboard Debug数据导出到Testbench为例,对具体实施流程进行介绍,如图1所示,该流程可以分为3个步骤: (1) Zedboard,抓取感兴趣的数据,并通过jtag线传输到上位机; (2) 在上位机Vivado软件的Tcl Console中输入命令,将抓取的数据另存为wave.csv文件; (3) 将wave.csv文件中的数据导入Testbench中,最终输出波形。  
 
图1 操作流程  

3、 操作实例

下面给出一个实例,针对图1的三个步骤,对操作流程进行详细介绍。
(1) 抓取感兴趣的数据,如图2所示。
   
图2 抓取感兴趣的数据  
(2) 如图3所示,在tclconsole中输入命令,将抓取的数据转存为wave,csv,转存后的文件如图4所示。  
图3 tcl console输入命令  
 
图4 wave.csv文件  
(3)将图4中的数据存入RAM中,并在Testbench中循环读取,获得波形数据,如图5所示。  
 
图5 波形数据
通过这样的方法,就可以把FPGA运行时的输入激励数据捕获到文件中,进而转换到仿真环境中进行调试。
按照惯例,我们给出上述过程的源码。

FPGA工程源代码

Zedboard开发板约束文件

仿真环境TESTBENCH文件


审核编辑:刘清

猜您喜欢

之前我们已经向大家介绍了全可编程的Zynq SoC平台应用开发所需的一系列“神器”,如Vivado、Xilinx SDK、PetaLinux等。那么这是否意味着...
2018-07-02 08:17:00

传感器模块是现代科技中不可少的组成部分,应用于智能家居、工业自动化、医疗设备等领域。能够实时采集环境数据,如温度、湿度、光照、压力等,并将这些信息转化为电信号,...
2008-05-23 00:00:00

PTC热敏电阻作为重要的保护元件,应用于电路保护、温度检测等领域。紫泰荆作为国内知名的电子元器件品牌,其生产的PTC热敏电阻因性能稳定、质量可靠受到市场的高度认...
2016-05-18 02:39:30

现代电子设备中,连接器的选择与应用非常重要。CONN_7X3.8MM_SM是常见的连接器,应用于各种电子产品中。本文将对CONN_7X3.8MM_SM进行深入分...
2025-04-21 06:01:45

引言统一潮流控制器(Unified Power Flow Con-troller,简称UPFC)是一种可以较大范围地控制电流使之按指定路经流动的设备,它可在保...
2020-07-23 17:05:00

光纤收发器是用于光纤通信的设备,主要功能是将电信号转换为光信号,反之亦然。通常由发射模块和接收模块组成,发射模块负责将电信号转化为光信号并通过光纤发送,而接收模...
2012-10-28 00:00:00



电阻作为电子元件中的基础组成部分,其性能的优劣直接影响到整个电子设备的稳定性和使用寿命。士康(SACON)作为国内知名的电子元件品牌,其长电极电阻产品以优异的性...
2012-09-04 04:08:30

国产热敏电阻及传感器厂商安培龙IPO成立于2004年的深圳安培龙科技股份有限公司IPO登录创业板,安培龙的主营业务为热敏电阻及温度传感器、氧传感器、压力传感器...
2023-12-07 16:26:00