安路好用的调试工具VPI

文章目录

  对于FPGA调试人员,最希望的就是能够监控内部信号和动态控制内部信号。

  监控内部信号常用方法有两种,一是将内部信号引到管脚,使用外部逻辑分析仪查看。二是使用FPGA自带的逻辑分析仪,用JTAG下载器就可以完成内部信号查看。

  动态控制内部信号则需要有串口UART或其他总线连到FPGA,然后通过上位机发送命令控制内部寄存器。但这需要FPGA内有总线模块,上位机还需要串口助手这些调试软件,如果没有的话就很不方便。现在安路有个VPI(Virtual Probe Interface)调试工具,可以很方便的动态控制内部信号。

1.VPI简介

  Virtual Probe Interface 可以实时监控和驱动 FPGA 内部信号,不过最好用的还是驱动内部信号,本文只讲驱动内部信号功能。VPI需要通过实例化添加到设计中,用户可定制VPI输入输出信号的位宽和数量。VPI可以代替外部管脚向FPGA 内部输入信号,从而控制 FPGA 内部信号。其连接框图如下图所示。

2.VPI插入方式

  Virtual Probe Interface 需要通过在工程源码中进行实例化添加,并将所需的控制信号连接VPI的 outprobe,将想要监测的信号接入 VPI的 inprobe。最多支持插入 32 个 VPI IP。如果工程中除了添加 VPI还添加了 Chip Watcher,那么 Chip Watcher 和 VPI 相加不能超过 32 个。

2.1IP生成

  打开的工程,单击菜单栏 Tools -> IP Catalog,打开 IP 选择界面,选择 Debug 分类下的 Virtual Probe Interface。如下图所示:

  双击 Virtual Probe Interface IP,用户可以自定义选择路径和名称,如下图所示:

  单击 OK 后,即可打开 VPI IP 设置界面,如下图所示。

  General Options 界面相关参数设置如下:

Input Probe Count:设置需要观测的探针个数,支持范围为 1~64 个,默认值为 1。

Output Probe Count:设置输入到 FPGA 内部的探针个数,支持范围为 1~64 个,默认为 1。

  General Options 相关参数设置完成后,即可单击 Probe In Ports 界面,用于设置每个 Input Probe 的位宽。Probe In Ports 个数和 General Options 界面设置的 Input Probe Count 的值一致。如下图所示:

  Probe In Ports 界面相关参数设置如下:

In width:输入探针位宽,可根据实际位宽进行设置,支持范围 1~256,默认值为 1。

  Probe In Ports 相关参数设置完成后,即可单击 Probe Out Ports 界面,用于设置每个 Output Probe 的位宽。Probe Out Ports 个数和 General Options 界面设置的 Output Probe Count 的值一致。如下图所示。

  Probe Out Ports 界面相关参数设置如下:

Out width:输出探针位宽,可根据实际位宽进行设置,支持范围 1~64,默认值为 1。

Out Initial Value(in hex):指定输出探针初始值,支持 16 进制格式,默认值为 0。

  完成所有设置后,即可单击 OK 按钮,生成相应的 Virtual Probe Interface IP。

2.2IP例化

  Virtual Probe Interface 生成后,可以通过右键单击 Show Instantiation Template 查看实例化模板,如下图所示:

  在工程源文件中粘贴实例化模板,同时将 clk 接入需要观测的信号所使用时钟,inprobe、outprobe接入需要观测的信号,如下图所示:

  最后综合编译即可。

3.VPI下载和控制

3.1下载

  编译完成 Generate Bitstream 后,打开 ChipWatcher 界面,单击界面上方的 Watch 按钮,如下图所示。

  即可进入 Watch 主界面进行下载,点击如下图中1下载按钮进行下载。

3.2控制

  进入 Watch 界面后,即可打开 Virtual Probe Interface Instance 界面进行控制。VPI界面默认没有打开,需通过标题栏"+"进行勾选打开,如上图2所示。

  打开后,Virtual Probe Interface Instance 控制界面如下图所示。可以通过加号和减号添加或删除所需信号。

  如果Watch 界面存在其他 ChipWatcher Instance 的情况下,Virtual Probe Interface Instance 界面处于触发条件设置窗口位置。如下图所示。

  最后修改信号的值,点击Send即可。

相关推荐
落chen3 小时前
基于FPGA的SDRAM开发-进阶篇
fpga开发
飞猫的边缘AI8 小时前
边缘AI-5: 了解最灵活的计算芯片FPGA
人工智能·fpga开发·ai芯片·边缘ai·计算芯片·边缘ai芯片·titanium edge
badboy12111 小时前
Xilinx Vitis Core Development Kit 2025.2.1_Win+Linux
linux·fpga开发·xilinx
海盐nnn1 天前
面向 AI 的 FPGA 开发流程:别急着让它写代码,先把方向定好
fpga开发
zlinear数据采集卡1 天前
数据采集卡从入门到精通(38):上位机开发实战——Python/QT/LabVIEW的技术选型与分层架构
python·单片机·嵌入式硬件·qt·fpga开发·开源·labview
zlinear数据采集卡2 天前
数据采集卡从入门到精通(42):项目实战三——设备预测性维护系统,从布点到预警
开发语言·单片机·嵌入式硬件·安全·fpga开发
国科安芯2 天前
ASL706S:让 MCU 不再“失忆跑飞“的守护芯片
分布式·单片机·嵌入式硬件·安全·fpga开发·架构
明德扬2 天前
多路MIPI摄像头如何同步聚合?一文看懂FPGA视频汇聚方案
fpga开发·音视频
松小白song2 天前
FPGA开发三大铁律:位宽、逻辑与连接,为何仿真通过上板却挂?
fpga开发
FPGA小徐3 天前
FPGA 时钟频率计算与单位换算
fpga开发