介绍FPGA在线调试的一大利器—VIO

时间:2025-04-28  作者:Diven  阅读:0

之前的文章介绍了FPGA在线调试的方法,包括选定抓取信号,防止信号被优化的方法等等。

介绍FPGA在线调试的一大利器—VIO

当存在多种参数的场景时,意味着我们需要多次综合布局布线,这十分浪费时间,虽然只是修改一个数值。

而本文将介绍FPGA在线调试的一大利器,VIO(Xilinx), In-System Memory Content Editor(Altera);使用这个利器,可以节省很多的综合布局布线时间,并且对故障重现等场景有很大的帮助。

在某些场景下,需要多次在线调试测量参数取其中最佳的参数,在这种测试场景下,推荐使用VIO,In-System Memory Content Editor;

以Xilinx的VIO为主要内容介绍:

在Vivado的IP Catalog里找到VIO IP,VIO全称为Virtual Input Output,IP核配置界面如下:

‪其中Input Probe Count是输入端口的数量,Output Probe Count是输出端口的数量。根据自己的需要去定义。

进入PROBE_IN Ports界面设置输入端口的信号位宽,如下图:

进入PROBE_OUT Ports界面设置输出端口的信号位宽,以及输出的初始值如下图

设置完成后,将其例化进项目,与对应的输入和输出信号相连。注意,时钟要与输入输出数据对应上。

等到综合,布局布线,比特流跑完,将bit文件和ltx文件下载进FPGA,Vivado会出现一个dashboard,如下图

VIO有一个好,就是会显示出信号名称,例如输入端口的信号名是reg_rd_data,输出端口是aux_rst,都显示出来了,此外还包括位宽,Input/Output等信息。

做个简单实验,通过修改Output方向的aux_rst值,使整体FPGA复位,修改完成后如下图:

可以看到,reg_rd_data被复位到0。

然后我们再取消复位,将aux_rst设置为全0状态,如下图:

最近的VIO调试案例中,我们使用VIO去控制SPI模块向某芯片写入和读取数值,以测试芯片的部分功能;使用VIO修改DDS IP的频率控制字,使得DDS IP输出的频率做到实时更改,以此测试后续功能。

除了Xilinx家的工具有这个功能,Altera家的工具也有,如下:

我们需要在Quartus II中例化一个LPM_CONSTANT模块,如下图,设置好常数的位宽及初始值

选中那个复选框,然后给这个Instance ID取个名字,限制为4个字符。

同样在项目中例化这个LPM_CONSTANT,然后经过综合等一系列过程,最后将sof文件下载到FPGA,打开In-System Memory Content Editor,如下图

红框内会出现例化的Instance ID,选中后就可以修改对应的值(手边没有Altera的板子,没办法截完整图)。

由于Vivado的版本比Quartus新,VIO的功能看起来更加强大,不知道新版的Quartus是不是也与时俱进了。

在线修改值的方法会占用FPGA内部的存储资料和触发器资源,请适量使用,不要浪费资源。

猜您喜欢

电子元件中,二极管和三极管是非常常见的基础元件。在电路中起着重要的作用,能够控制电流的流动,放大信号等。了解如何测量二极管和三极管的好坏,对于确保电路的正常运行...
2025-03-29 20:31:07

超级电容器,近来受欢迎。在储能领域,扮演重要配件。复合材料提升了电容器性能。本文将介绍超级电容器复合材料的特点和应用。什么是超级电容器?超级电容器是新型储能设备...
2025-03-21 17:30:36


现代市场中,配件的选择对于产品的整体价值和用户体验非常重要。Accessories_30X7MM_TM作为重要的配件,能够为多种产品提供额外的功能和美观,帮助用...
2025-04-24 05:01:08




电子元器件中,贴片电阻是常见的组件。在电路中起着重要的作用,负责限制电流、分压和信号调节等功能。然而,有时我们在测试贴片电阻时会发现其阻值显示为无穷大,这引发了...
2025-03-17 19:30:35

贴片电阻上标记为「1•0」通常表示阻值为1欧姆。中间的点并非小数点,而是用于分隔数字,避免与小数点混淆,尤其是在小尺寸元件上。这种表示方法常见于贴片电阻,是为了...
2024-11-26 11:29:40

保险丝座(盒)是电气设备中不可少的保护元件,分类主要根据材质、结构和用途等方面进行划分。从材质上看,保险丝座通常分为塑料和金属两种。塑料保险丝座轻便且具有良好的...
2011-08-22 00:00:00