很多产品都有远程升级维护的需求,那么如何对FPGA实现安全可靠的远程升级呢?
需要用到FPGA的mulTIboot的功能,Flash中可以存储2个配置程序
第一个配置程序,叫golden程序。位于地址0处,FPGA默认加载的配置程序。功能:用于引导FPGA跳到第二个配置程序所在的位置,进行重配置,即mulTIboot功能
用于烧写(更新)第二个配置程序(位于flash的xx偏移位置,偏移位置可由用户设定)
第二个配置程序,叫用户程序(位于flash的xx偏移位置,偏移位置可由用户设定)。功能:这个是用户真正的完成设计功能的程序,可由CPU通过第一个配置程序进行更改
用于烧写(更新)第二个配置程序(位于flash的xx偏移位置,偏移位置可由用户设定)
通过上面的方式,可以确保升级成功:
1、上电,FPGA加载第一个配置程序
2、第一个配置程序引导FPGA加载第二个配置程序
3、CPU通过第二个配置程序的烧写flash的功能,更新flash中处于xx位置的第二个配置程序,即自己更新自己
4、更新成功,掉电,重启。/ 更新失败,掉电重启失败,则接下来的5
5、重新上电,FPGA加载第一个配置程序,用它里面的功能2继续更新flash中处于xx位置的第二个配置程序
6、掉电重启
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)