Linux环境下FPGA远程JTAG调试配置指南
环境说明
硬件配置
- Linux调试服务器:Ubuntu 20.04(物理机或虚拟机均可)
- FPGA板卡:通过PCIe金手指插在物理主板上(暂无PCIE固件)
- JTAG下载器:FT232H (USB接口,ID: 0403:6014)
软件环境
- 调试服务器:Ubuntu 20.04 + Xilinx Vivado Lab 2018.3
- 工作电脑:Windows/Linux + Vivado
需求分析
目标:在工作电脑上通过局域网远程调试Linux服务器上的FPGA板卡
实现方案
hw_server网络桥接方案
- 适用场景:通过JTAG接口调试,板卡无需PCIE固件
- 优点:配置简单灵活,工作电脑操作体验好,支持跨网络调试
- 实现思路:
- JTAG下载器通过USB连接到Linux服务器
- Linux服务器运行hw_server监听网络端口
- 工作电脑Vivado通过网络连接hw_server进行调试
架构示意:
| |
配置步骤
一、确认JTAG下载器连接
1. 查看USB设备
| |
找到JTAG下载器设备(示例输出):
| |
记下设备ID:0403:6014
二、安装Vivado Lab
1. 运行安装程序
| |
建议安装路径:~/Xilinx/Vivado_Lab/2018.3
2. 解决依赖问题
Ubuntu 20.04缺少旧版本库,需创建软链接:
| |
3. 验证安装
| |
能正常启动GUI即成功。
三、配置USB设备权限
原因分析:hw_server需要访问USB设备,默认普通用户没有权限。
1. 创建udev规则
| |
写入以下内容:
| |
2. 重载规则
| |
四、启动hw_server
1. 检查端口占用
| |
如果3121被占用,换用其他端口(如3122)。
2. 启动hw_server
| |
看到以下输出即成功:
| |
3. 验证监听状态
另开终端执行:
| |
应该能看到 0.0.0.0:3121 在LISTEN状态。
五、工作电脑远程连接
1. 打开Vivado Hardware Manager
在工作电脑的Vivado中:
- 菜单:
Flow→Open Hardware Manager - 或点击左侧
Flow Navigator→Open Hardware Manager
2. 添加远程硬件目标
点击
Open target→Open New Target选择
Remote server配置连接参数:
- Host name: Linux服务器的IP地址(如:192.168.1.100)
- Port: 3121(或hw_server实际监听端口)
点击
Next→Finish
3. 验证连接
成功后应能在Hardware窗口看到JTAG链路和FPGA芯片。

连接成功界面
常见问题排查
1. hw_server提示"Socket bind error. 地址已在使用"
原因:端口被占用
解决:
| |
2. Hardware Manager显示"No device"
原因:USB权限不足或udev规则未生效
排查步骤:
| |
3. Vivado Lab启动报库文件错误
错误信息:
| |
解决:创建软链接指向新版本库(见步骤二-2)
4. 工作电脑无法连接hw_server
排查步骤:
| |
5. JTAG通信速度慢或不稳定
可能原因:
- USB线缆质量差或过长
- USB Hub供电不足
- USB 2.0/3.0兼容性问题
建议:
- 使用优质短线直连
- 避免使用USB Hub
- 尝试不同USB接口
扩展优化
1. hw_server后台运行
使用screen保持hw_server持续运行:
| |
2. 开机自启动hw_server
创建systemd服务:
| |
写入以下内容:
| |
启用服务:
| |
3. 多用户并发访问
hw_server支持多个客户端同时连接,但同一时间只能有一个客户端控制JTAG。配置要点:
- 使用不同的工作电脑连接同一个hw_server
- 第一个连接的客户端获得控制权
- 其他客户端只能监控状态
4. SSL加密连接(可选)
对于跨公网的远程调试,可以配置SSH隧道加密:
| |
调试技巧
1. 调整JTAG时钟频率
如果遇到通信错误,可以降低JTAG频率:
- Hardware Manager → Properties → TCK Frequency
- 尝试从 15MHz 降到 1MHz 或更低
2. 查看hw_server日志
hw_server终端会实时显示连接状态和错误信息,调试时保持观察。
3. 多设备JTAG链
如果板卡上有多个FPGA或其他JTAG设备串联,确保在Vivado中选择正确的目标器件。
总结
本方案通过hw_server实现了Linux环境下的FPGA远程JTAG调试,核心思路:
- 硬件层:JTAG下载器USB连接到Linux服务器
- 软件层:Linux服务器运行hw_server桥接JTAG通信
- 网络层:工作电脑通过TCP/IP远程连接hw_server
优点:
- 配置简单,无需板卡PCIE固件
- 支持局域网/广域网远程调试
- 工作电脑操作体验与本地调试一致
- 可多人共享同一套硬件环境
适用场景:
- 实验室/公司共享FPGA开发板
- 远程办公FPGA开发
- 自动化测试系统
- 板卡无PCIE固件的调试场景
测试环境:Ubuntu 20.04 + Vivado Lab 2018.3 + FT232H JTAG
日期:2026年1月