0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA远程更新/远程调试的一种简单方法

OpenFPGA 来源:OpenFPGA 2023-05-25 09:23 次阅读

之前介绍过一种远程(无线)更新的方式,详见《起飞!通过无线WIFI下载调试FPGA》,这种方式缺点有两个:一是速度较慢;二是我们的设备中需要增加一个无线设备,增加成本的同时增加了暴露的风险。这两点即无法在调试的时候使用也没办法在实际设备中使用。今天我们再介绍另一种简单方式。

下面是目前我们很多设备常用的硬件架构,这种架构中,我们可以很方便使用嵌入式设备作为“桥梁”用来调试FPGA,其实这也是XVC方案的“变种”。

d16b62f4-fa1d-11ed-90ce-dac502259ad0.png

为了演示上面的方案,使用树莓派+FPGA进行方案验证。

d16fd33e-fa1d-11ed-90ce-dac502259ad0.pngd1773c50-fa1d-11ed-90ce-dac502259ad0.png Xilinx 的 Platform Cable USB II

Jtag Pi

我们知道正常的调试器/下载区的JTAG接口可以兼容很多芯片,所以首先需要制作一个扩展板进行IO口电平兼容设计,硬件如下:

d18186ec-fa1d-11ed-90ce-dac502259ad0.png

将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 连接。

d18a282e-fa1d-11ed-90ce-dac502259ad0.png

引脚 Vcc 连接到 FPGA 板的 Vref。它用于对信号进行电压转换(电压取决于电路板)。

首先我们运行 Xilinx Vivado。然后从主菜单中选择Open Hardware Manager 。

d192913a-fa1d-11ed-90ce-dac502259ad0.png

在硬件管理器中,我们将看到硬件选项卡,我们可以在其中使用连接器图标打开目标。

d198d626-fa1d-11ed-90ce-dac502259ad0.png

之后我们将连接到本地主机 hw_server。

d1a2115a-fa1d-11ed-90ce-dac502259ad0.png

现在右键单击 localhost 并选择Add Xilinx Virtual Cable (XVC)。现在在弹出窗口中输入 Raspberry Pi IP(WiFi 或以太网 - 取决于使用的网络)。

d1aa4262-fa1d-11ed-90ce-dac502259ad0.png

连接后将看到一些已识别的设备——在我们的例子中我们看到 xc7z007s。

d1afde2a-fa1d-11ed-90ce-dac502259ad0.png

现在我们可以为 FPGA 选择 bit 文件并对其进行远程编程。

d1b708e4-fa1d-11ed-90ce-dac502259ad0.png

测试如下,对 FPGA 进行下载需要 5 秒(Zynq 7z007s 的比特流大小约为 17Mb)。如果比特流中有调试内核,还可以读取 XADC 值或ila进行调试。

d1bfef5e-fa1d-11ed-90ce-dac502259ad0.png

项目地址

https://github.com/kholia/xvcpi

https://bitbucket.org/Mylium/xvcpi/src/master/

总结

树莓派板载了wifi和1G 网口,所以可以使用无线或者有线进行调试。对应于实际设备中,上面的代码很容易移植到新的嵌入式设备,也无需浪费时间和精力在FPGA上做远程更新的手段。

PS:Jtag Pi不是必须得,只要树莓派的IO电平和FPGA电平标准兼容即可。

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1602

    文章

    21320

    浏览量

    593194
  • 嵌入式
    +关注

    关注

    4982

    文章

    18281

    浏览量

    288438
  • WIFI
    +关注

    关注

    81

    文章

    5160

    浏览量

    199426
  • 远程调试
    +关注

    关注

    0

    文章

    32

    浏览量

    8559
  • 远程更新
    +关注

    关注

    0

    文章

    8

    浏览量

    7591

原文标题:FPGA远程更新/远程调试的一种简单方法

文章出处:【微信号:Open_FPGA,微信公众号:OpenFPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    远程在线更新FPGA程序的方法

    本文以提高FPGA远程更新程序的方便性为目标,提出了一种基于EPCS Flash的远程在线更新
    发表于 02-22 11:33 2.8w次阅读
    <b class='flag-5'>远程</b>在线<b class='flag-5'>更新</b><b class='flag-5'>FPGA</b>程序的<b class='flag-5'>方法</b>

    Xilinx FPGA远程调试方法(一)

    日常的FPGA开发常常会遇到“编码与上机调试使用各自的电脑”的场景,解决方法一般如下。
    发表于 05-25 14:36 1858次阅读
    Xilinx <b class='flag-5'>FPGA</b><b class='flag-5'>远程</b><b class='flag-5'>调试</b><b class='flag-5'>方法</b>(一)

    Xilinx FPGA远程调试方法(二)

    上篇主要是分享了Vivado编译软件远程调试方法。杰克使用Vivado软件进行远程连接,主要是用于固化程序以及FPGA(PL端)的异常排查
    发表于 05-25 14:36 1785次阅读
    Xilinx <b class='flag-5'>FPGA</b><b class='flag-5'>远程</b><b class='flag-5'>调试</b><b class='flag-5'>方法</b>(二)

    使用MAXI接口的最简单方法是什么?

    我的块设计中有个XADC,我能够从我的arm / xmd使用“axi_lite总线”进行访问是否有一种简单方法可以从FPGA内部发出“相
    发表于 11-02 11:32

    请问怎么设计一种远程控制实验系统?

    怎么设计一种远程控制实验系统?远程控制实验系统是如何构成的?DataSocket编程、Web Server和TCP编程有什么不同?
    发表于 04-15 06:06

    分享一种不错的远程无钥匙系统方案设计

    分享一种不错的远程无钥匙系统方案设计
    发表于 05-12 06:16

    介绍一种GPS/GSM远程定位技术

    本文介绍一种基于虚拟串口的GPS/GSM远程定位技术。
    发表于 05-25 07:14

    一种基于EPCS Flash的远程在线更新FPGA程序的方法

    远程在线更新FPGA程序系统的硬件结构是怎样构成的?怎样去设计一种远程在线更新
    发表于 06-18 09:16

    一种PLC远程控制的方案

    调试和维护现场设备。从经济方面,远程管控可以减少人力出差成本,解放了工程师在路途上的时间;从技术方面,远程管控实现设备联网功能,实现工业物联网保障。 传统方法:在前端配置
    发表于 07-02 07:14

    一种节省能源的简单方法

    一种节省能源的简单方法是在晚上关闭Mac。与不活动,空闲或睡眠的Mac相比,关机的Mac所消耗的能源更少。对于运行大量Mac的组织,应优先考虑整夜关机。反对在夜间关闭的个常见论点是关闭和启动所花
    发表于 12-29 08:20

    介绍下STM32远程固件更新方法

    经常有项目要求固件远程更新,通过串口、GPRS、4G等等方式。下面介绍下STM32远程固件更新方法。IAP是In Application
    发表于 01-26 06:42

    如何去实现一种基于RT-Thread+RA6M4的远程开机助手设计

    的网络通道只作提示(分为两情况,一种是有公网IP:很简单,开启路由器的DDNS,在路由器处做个端口转发,把系统自带的电脑远程桌面开启,开
    发表于 06-20 10:42

    基于XVC网络协议实现了基于JTAG接口的FPGA远程更新调试

    , FPGA)进行远端升级,本文提出了一种基于XVC (Xilinx visual cable)协议,通过以太网,利用ARM 微控制器控制FPGA 的JTAG 接口对其进行远程
    发表于 11-16 20:13 1.3w次阅读
    基于XVC网络协议实现了基于JTAG接口的<b class='flag-5'>FPGA</b> 的<b class='flag-5'>远程</b><b class='flag-5'>更新</b>与<b class='flag-5'>调试</b>

    如何实现远程FPGA更新和重启

    如今, 大多数通讯系统均将FPGA作为其产品解决方案, 且已有大量FPGA应用到通讯系统之中。为了达到降低系统维护的成本的目的,我们就需要实现FPGA远程
    发表于 07-10 16:01 21次下载
    如何实现<b class='flag-5'>远程</b><b class='flag-5'>FPGA</b>的<b class='flag-5'>更新</b>和重启

    如何实现工业设备远程调试方法

    随着工业4.0的推进,智能化、网络化、远程化已经成为现代工业设备的重要发展方向。其中,远程调试作为一种有效的技术手段,能够显著提高设备维护效率、降低成本,具有非常重要的实践意义。本文将
    的头像 发表于 09-14 10:03 584次阅读