基于FPGA的在线升级

在线升级的意义

首先什么是FPGA的在线升级?
所谓FPGA的在线升级其实就是不对FPGA进行常规意义下的下载程序,便可以通过一些手段更新FPGA中的程序,一般用到的工具有ICAP原语、flash。那个该问题的解决将面临两个问题:
1、如何将新的FPGA程序下载到flash中;
2、如何让FPGA执行新的程序;
FPGA在线升级的意义?
我们为什么要花费这么大的代价去学习FPGA的在线升级,有一个很重要的原因就是:调试时,我们一般用JATG接口进行烧录、调试,但是等产品上线时,因为JATG接口过于笨重,我们一般是不保留该接口;在没有这个接口的情况下要想下载新的程序,就必须使用在线升级。

在线升级的策略

这里需要掌握的一个知识是,FPGA默认从flash中读取程序是从0地址读取的。我们回忆以下电脑中操作系统的加载,在电脑中首先加载的是一个引导程序,该引导程序指导着对应操作系统的加载,那么对应到FPGA中我们使用同样的办法。首先再FPGA的默认起始点(flash的0地址)下载一个引导程序,然后在引导程序中包含ICAP原语,在一定的条件下,使得FPGA从flash中加载新的FPGA程序。
从上面的分析我们可以打先FPGA在线升级的最关键的问题就是引导程序的书写,这里先给出一般引导程序的设计模块:
在这里插入图片描述
这里简单介绍上面几个模块的重要性。
I-start:读秒程序,开机时,在一定的时间段内,FPGA如果没有接收到PC机在线升级的指令,便启动ICAP程序跳转到指定的地方执行程序。
rs232:该模块的主要作用是接受从PC机传来的新的FPAG烧录程序,注意这里一般选择是bin文件,因为bin文件经过串口方便传输。
spi:将rs232接收来的引得FPGA烧录文件写入到指定的flash地址中并且覆盖相应之前的FPGA程序,这里注意写入的位置一定要与ICAP原语跳转的位置相同,否则该引导程序将没有作用。
ICAP:该模块主要起到FPGA从指定的flash地址启动程序的作用,里面包括ICAP原语,是引导程序中最关键的部分。
KEY:这里起到两个作用,一:给定FPGA在线升级的指令;二:等待spi将新的FPGA程序写入到flash中,再启动对用ICAP程序跳转到指定地方执行。
上述的整体过程,我们一般用状态机控制,会发现所有的程序我们之前的文章中都有,这里我不再写程序,只给出相应的策略。

整体框架

在这里插入图片描述
flash中的两块程序如上图,其中1是我们这篇文章中主要讲解的引导程序,2是FPGA执行程序的地方。

总结

该策略我并没有验证,但是从理论上是可行的,主要是因为上一篇文章的ICAP原语没有下板验证通过,自己也没有进行更深入的调试,但是该理论方案是彻底可行的。

参考文献

[1] V3学院

结束语

创作不易,认为文章有帮助的同学们可以收藏点赞支持。(工程也都在群中)对文章有什么看法或者需要更近一步交流的同学,可以加入下面的群:
在这里插入图片描述

  • 6
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
FPGA在线升级是指通过一些手段更新FPGA中的程序,而不需要进行常规意义下的下载程序。常用的工具有ICAP原语和flash。在线升级面临两个问题:如何将新的FPGA程序下载到flash中,以及如何让FPGA执行新的程序。在线升级的意义在于,当产品上线时,由于JTAG接口过于笨重,一般不会保留该接口。因此,在没有JTAG接口的情况下,要想下载新的程序,就必须使用在线升级的方法。在线升级的策略一般是通过产品自带的通讯接口(如串口、以太网接口等)传输待更新的固件包,然后将固件包写入FPGA的配置flash中,覆盖原来通过JTAG烧写的代码。当芯片重新上电或进行一次重配置时,FPGA会执行新的固件包。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [基于FPGA在线升级](https://blog.csdn.net/zhangningning1996/article/details/104122587)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [FPGA远程固件在线升级](https://blog.csdn.net/weixin_45104510/article/details/129154915)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值