
传统的基于无线的FPGA远程更新方案存在速度较慢、需额外硬件且可能增加安全风险的缺点,使其难以同时满足高效调试与生产部署的需求。本文将介绍一种基于树莓派(Raspberry Pi)与XVC(Xilinx Virtual Cable)方案的替代方法,该方法更简单、高效且成本低廉。
在许多嵌入式设备的硬件架构中,利用现有嵌入式处理器作为“桥梁”来调试FPGA是一种常见且高效的思路。下图展示了这种架构,它本质上是XVC方案的一种灵活“变种”。

为了演示此方案,我们采用树莓派结合FPGA开发板进行验证。


Xilinx Platform Cable USB II(传统调试器)
硬件准备:Jtag Pi扩展板
标准调试器的JTAG接口通常兼容多种芯片电平,因此我们需要一个扩展板来完成树莓派GPIO与FPGA JTAG接口的电平匹配与连接。硬件设计如下图所示:

将制作好的Jtag Pi板连接到树莓派,并配合运行在树莓派上的软件,我们就构建了一个低成本的远程编程器。
软件部署与使用
将Jtag Pi连接至树莓派后,我们需要在树莓派上部署并运行XVC服务端程序。首先,通过SSH将xvcpi应用程序源码复制到树莓派的主目录中,这是一种常见的远程运维与开发操作。
进入源码目录,执行编译命令:
make
编译成功后,将输出类似信息:
cc -std=gnu99 -O3 -c -o xvcpi.o xvcpi.c
cc -o xvcpi xvcpi.o
接着,以管理员权限运行编译生成的可执行文件:
sudo ./xvcpi
至此,树莓派端的XVC服务器已启动就绪。
连接与测试
接下来,需要将Jtag Pi的JTAG接口与FPGA开发板的对应引脚相连。

注意:扩展板的Vcc引脚需连接到FPGA板的Vref引脚,以确保正确的电平转换(电压值取决于具体FPGA板卡)。
在PC端,打开Xilinx Vivado设计套件。从主菜单中选择 Open Hardware Manager。

在硬件管理器界面,点击“连接”图标以打开目标。

选择连接到本地硬件服务器(localhost hw_server)。

在“Hardware”面板中右键点击 localhost,选择 Add Xilinx Virtual Cable (XVC)。在弹出的对话框中,输入树莓派的IP地址(根据实际网络连接,填写其Wi-Fi或以太网IP)。

成功连接后,硬件管理器将识别出FPGA设备。本例中识别到的设备为 xc7z007s。

现在,即可选择比特流(bit)文件对FPGA进行远程编程。

测试表明,对于一个约17Mb的Zynq 7z007s比特流文件,下载时间约为5秒。如果比特流中包含了调试内核(如ILA、VIO等),还可以通过Vivado进行远程在线调试,例如读取XADC数值或触发捕获ILA波形。

项目资源
方案总结
树莓派本身集成了Wi-Fi和千兆以太网口,因此可通过有线或无线网络进行远程调试,提供了极大的灵活性。对于实际产品设备,此方案中的XVC服务端代码可以轻松移植到新的嵌入式平台上,从而无需在FPGA逻辑内部单独实现复杂的远程更新机制,节省了开发时间与资源。
补充说明:专用的Jtag Pi扩展板并非绝对必需,只要确保树莓派的GPIO引脚电平与FPGA的JTAG接口电平兼容,即可直接连接。