之前介绍过一种远程(无线)更新的方式,详见《起飞!通过无线WIFI下载调试FPGA》,这种方式缺点有两个:一是速度较慢;二是我们的设备中需要增加一个无线设备,增加成本的同时增加了暴露的风险。这两点即无法在调试的时候使用也没办法在实际设备中使用。今天我们再介绍另一种简单方式。
下面是目前我们很多设备常用的硬件架构,这种架构中,我们可以很方便使用嵌入式设备作为“桥梁”用来调试FPGA,其实这也是XVC方案的“变种”。
为了演示上面的方案,使用树莓派+FPGA进行方案验证。
Xilinx 的 Platform Cable USB II
Jtag Pi
我们知道正常的调试器/下载区的JTAG接口可以兼容很多芯片,所以首先需要制作一个扩展板进行IO口电平兼容设计,硬件如下:
将Jtag Pi 连接到 raspberry Pi 和在其上运行的软件应用程序,我们就有了一个便宜的远程编程器。
如何使用
将 Jtag Pi 连接到 Raspberry Pi 之上后,我们需要将 Xilinx Virtual Cable for Raspberry Pi 应用程序复制到板上。我通过 SSH 将它复制到我的主目录中。然后只需进入该目录并运行:
make
就会看到编译输出:
cc-std=gnu99-O3-c-oxvcpi.oxvcpi.c cc-oxvcpixvc
之后我们有一个编译的应用程序。运行它:
sudo./xvcpi
完毕!
现在我们可以试一试了。
测试
我们需要将 Jtag Pi 和 FPGA 连接。
引脚 Vcc 连接到 FPGA 板的 Vref。它用于对信号进行电压转换(电压取决于电路板)。
首先我们运行 Xilinx Vivado。然后从主菜单中选择Open Hardware Manager 。
在硬件管理器中,我们将看到硬件选项卡,我们可以在其中使用连接器图标打开目标。
之后我们将连接到本地主机 hw_server。
现在右键单击 localhost 并选择Add Xilinx Virtual Cable (XVC)。现在在弹出窗口中输入 Raspberry Pi IP(WiFi 或以太网 - 取决于使用的网络)。
连接后将看到一些已识别的设备——在我们的例子中我们看到 xc7z007s。
现在我们可以为 FPGA 选择 bit 文件并对其进行远程编程。
测试如下,对 FPGA 进行下载需要 5 秒(Zynq 7z007s 的比特流大小约为 17Mb)。如果比特流中有调试内核,还可以读取 XADC 值或ila进行调试。
项目地址
https://github.com/kholia/xvcpi
https://bitbucket.org/Mylium/xvcpi/src/master/
总结
树莓派板载了wifi和1G 网口,所以可以使用无线或者有线进行调试。对应于实际设备中,上面的代码很容易移植到新的嵌入式设备,也无需浪费时间和精力在FPGA上做远程更新的手段。
PS:Jtag Pi不是必须得,只要树莓派的IO电平和FPGA电平标准兼容即可。
-
FPGA
+关注
关注
1631文章
21806浏览量
606681 -
嵌入式
+关注
关注
5096文章
19199浏览量
308278 -
WIFI
+关注
关注
81文章
5313浏览量
205079 -
远程调试
+关注
关注
0文章
40浏览量
8641 -
远程更新
+关注
关注
0文章
8浏览量
7628
原文标题:FPGA远程更新/远程调试的一种简单方法
文章出处:【微信号:Open_FPGA,微信公众号:OpenFPGA】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
Xilinx FPGA远程调试方法(二)
![Xilinx <b class='flag-5'>FPGA</b><b class='flag-5'>远程</b><b class='flag-5'>调试</b><b class='flag-5'>方法</b>(二)](https://file1.elecfans.com/web2/M00/88/AC/wKgaomRvAJqAMQSnAAJ34bD-jr8166.jpg)
使用MAXI接口的最简单方法是什么?
一种节省能源的简单方法
如何去实现一种基于RT-Thread+RA6M4的远程开机助手设计
一种宽范围微弱直流信号测量的简单方法
多节点大容量FPGA系统的远程升级方法
![多节点大容量<b class='flag-5'>FPGA</b>系统的<b class='flag-5'>远程</b>升级<b class='flag-5'>方法</b>](https://file1.elecfans.com//web2/M00/A4/AB/wKgZomUMNTeAfbPjAAAOC-c3GDo991.gif)
简单介绍一种远程传输监控的数据采集方法
![<b class='flag-5'>简单</b>介绍<b class='flag-5'>一种</b><b class='flag-5'>远程</b>传输监控的数据采集<b class='flag-5'>方法</b>](https://file.elecfans.com/web1/M00/45/B4/pIYBAFpz_fCAUng0AAALujinFg0577.png)
设计一种跳转到Avalon总线的简单方法
如何实现远程FPGA的更新和重启
![如何实现<b class='flag-5'>远程</b><b class='flag-5'>FPGA</b>的<b class='flag-5'>更新</b>和重启](https://file.elecfans.com/web1/M00/C0/77/o4YBAF8II7uAPSCuAAMGesLZL_c478.png)
评论