如何编写代码与生成下载文件的简单介绍

如何编写代码与生成下载文件的简单介绍,第1张

当我们在对产品的FPGA代码做远程升级时,通常都是把加密后的下载文件发给用户,让用户在本地进行下载升级。但有时候由于我们没检查好,致使更新程序有问题,这样给到用户手上下载后,就会使得东西无法工作或者工作异常。如果不是紧急情况,做些沟通再把正确的文件重新给用户即可;但如果设备是属于持续工作型,那便一个钟也耽误不起,此时便会造成很多不必要的麻烦了。

所以在对FPGA代码进行远程升级时,建议使用多重配置功能。

1.ICAPE核

使用多重配置功能时,必须调用FPGA内部的ICAPE核,该核可以对上一节讲的IPROG的指令进行配置。

如何编写代码与生成下载文件的简单介绍,IPROG配置指令,第2张

IPROG配置指令

在Vivado中的“Language Templates”中进行搜索,输入”ICAPE”便可以看到你所使用的器件对应的ICAPE核的源语了。ISE的也是如此。

如何编写代码与生成下载文件的简单介绍,Xilinx FPGA的多重配置功能(2),第3张

2.多重配置的代码

多重配置的代码是放在旧程序上,更新程序不需要此段代码。旧程序则从Flash的0地址开始存储;更新程序是存储在旧程序的后面。当系统上电后,FPGA会访问Flash的0地址起,查看旧程序中的ICAPE核,以此判断是否去加载新程序。

如何编写代码与生成下载文件的简单介绍,Xilinx FPGA的多重配置功能(2),第4张

如何编写代码与生成下载文件的简单介绍,Xilinx FPGA的多重配置功能(2),第5张

如何编写代码与生成下载文件的简单介绍,Xilinx FPGA的多重配置功能(2),第6张

在更新程序中,则不需要以上的代码,原因上一小节已经说过了。

3.多重配置文件的打包

在Vivado中,生成.xdc文件时,还需要把Flash加载的信息写入。如下图所示,设置为SPI Flash存储,采用4速率进行读写。

之后便是将两个.bit文件合并成一个.mcs文件了。在Vivado的菜单栏中选择“Tools”——“Generate Memory ConfiguraTIon File”,进行.mcs文件的配置。

如何编写代码与生成下载文件的简单介绍,Xilinx FPGA的多重配置功能(2),第7张

如下图所示,选择Flash器件,选择读写速率,选择下载文件,点击OK便可以生成.mcs文件了。

如何编写代码与生成下载文件的简单介绍,Xilinx FPGA的多重配置功能(2),第8张

最后将生成的.mcs文件发给用户即可,这样当用户在加载更新程序过程中出现问题时,FPGA会自动跳到之前的旧文件重新进行程序加载,从而保证设备可以正常运行。

有兴趣的读者可以尝试一下,在ICAPE核的控制代码中加入一些控制信号,比如使用一个外部按键,当检测到按键按下时,则执行ICAPE核的代码,此时FPGA便会去重新加载新的工程。如果没有按键按下,则继续运行当前的工程。

如何编写代码与生成下载文件的简单介绍,Xilinx FPGA的多重配置功能(2),第9张

3.结语

本小节只是简单的介绍了如何编写代码与生成下载文件,在一般的运用中,按照本小节的做法便可以做到程序的多重加载了。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2626367.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-11
下一篇 2022-08-11

发表评论

登录后才能评论

评论列表(0条)

保存