通常在同一批次产品中,FPGA设计中只需要一套代码即可。但偶尔需要将代码实现更新而又不拆开设备情况下对代码进行更新,这就需要运用到代码远程更新功能了。
代码远程更新的实现可以用网络和串口对FPGA发送命令和数据,使得FPGA进行代码切换。在本设计中,FPGA相关硬件无需更改,才有JTAG下载模式,通过千兆网口对FPGA下发切换程序命令和新的FPGA镜像,实现代码更新。
本模块功能采用逻辑设计方式,需要用到altera下的两个IPcore(Altera Remote Update 和 Altera ASMI Parallel),其中Altera Remote Update 完成远程更新功能寄存器(启动地址、看门狗、使能)设置,而Altera ASMI Parallel完成Nor-FLASH程序数据更新,实现NOR-FLASH数据读写。
对一般设计而言,设计人员可以在flash中烧写两套FPGA程序(比如对一个开发板点亮LED1和点亮LED2,当按下按钮时候,程序从点亮LED1跳变到LED2程序)
注意,远程代码更新对不同altera FPGA芯片需要设置的寄存器不一样。
altera官方参考设计:
AN 603: Active Serial Remote SystemUpgrade Reference Design