Xilinx FPGA Multiboot设计与实现(Spartan-6和Kintex-7为例)


ISE、Vivado、MicroBlaze系列教程

1. FPGA固件升级方案

FPGA的硬件可编程性给设计带来了很高的灵活性,基于FPGA的产品也会有更新或升级的需求,而且大多数情况下由于现场环境、人力物力成本的限制,无法通过下载器JTAG方式进行刷新程序,比如机房服务器中的FPGA加速卡或采集卡,无法随便出入机房进行升级,FPGA部署在偏远山区的基站或高高的通信塔台等等场景,现场通过下载器JTAG方式升级固件,一方面影响用户体验和满意度,另一方面又要耗费大量的人力物力。所以就有了FPGA远程更新固件的需求,要满足以下升级要求:

  • 基本的固件升级功能,传输方式可基于常见的通讯协议,如串口、USB、CAN、网口、WiFi、蓝牙、PCIe等协议来实现升级。
  • 基本的防止变砖功能,即在升级过程中任何时刻,出现异常情况,如断电,线缆断开等,都应该能保证重新上电后,还可以再次完成升级流程,防止芯片变砖。
  • 升级流程的优化,可靠的通讯协议,例如握手、校验、应答等等,在满足基本功能的情况下,更高的升级效率。

对于单片机来说,IAP固件升级有非常成熟的应用方案,升级方式也很丰富,尤其是在当前日益丰富的ARM芯片环境下,不同厂家的单片机升级程序之间进行移植也非常方便。

但是对于FPGA来说,IAP升级就比较复杂。目前Xilinx和Altera的FPGA都是基于RAM结构,内部没有Flash存储器,固件程序

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Xilinx FPGA的多启动实现在线升级的原理是通过使用片上ROM(Read-Only Memory)或者外部配置存储器来存储多个bit文件。在系统启动过程中,FPGA会依据配置存储器中的特定信号或引脚状态来选择加载不同的bit文件。 在实现在线升级的过程中,首先需要确保FPGA的配置存储器能够容纳多个bit文件。接下来,需要设计一个合适的控制逻辑,用于根据外部信号或者某些触发条件来选择加载不同的bit文件。 一种常见的实现方法是在FPGA片上集成一个片上ROM,将多个bit文件存储在ROM中,并且将ROM的输出与FPGA的配置引脚相连。在系统启动时,FPGA会根据ROM输出的特定值来选择加载对应的bit文件。此外,也可以使用外部存储器,如EEPROM、Flash或者SD卡等来存储多个bit文件,并通过芯片的配置接口进行读取。 在实际应用中,可以通过编写适当的控制逻辑以及与FPGA外部接口的通信协议,实现在线升级的功能。如,可以设计一个微处理器或者外部控制器来监测系统状态,在需要升级的时候,这个控制器会向FPGA发送信号,指示其加载使用新的bit文件。FPGA会停止当前的操作,并加载新的bit文件进行更新。完成升级后,系统即可正常运行。 总结来说,Xilinx FPGA实现多启动的在线升级是通过选择不同的bit文件来更新FPGA的配置信息。这需要使用片上ROM或者外部存储器来存储不同的bit文件,并通过控制逻辑和外部接口来实现在线升级的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

whik1194

如果对你有帮助,欢迎打赏。谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值