目录
1 概述
本文用于讲解FPGA的远程更新的一种思路。
远程更新是指不用在本地靠近再用JTAG烧写程序,可以在远端通过上位机加载程序。
至于上位机通过什么方式把程序发送到本地则看使用者自己设计,比如以太网、串口、SPI、GTX等等。
2 参考文件
《ug470》
《xapp502》
《xapp583》
3 远程更新思路
借用微处理器(简称MIC)配置FPGA的思路进行远程更新。虽然一般情况下MIC配置FPGA只是用于动态加载,即远程烧写bit临时调试,掉电后程序会丢失。但若是想将远程传输过来的程序(例如bin文件)写入MIC上挂的flash中,然后MIC再将flash中的程序写入FPGA,每次MIC上电后都会先把FLASH中的程序读取后传输去烧写FPGA,则就实现了掉电不丢失的远程更新功能。
其架构如下图所示:
图 1 程序烧写架构图
4 MIC配置FPGA的模式
7 Series FPGA Configuration Modes如下所示:
MIC配置FPGA有两种模式:
-
slave serial mode ;
-
slave selectMAP mode。
当然为了调试的方便性,无论是用slave serial mode 与slave selectMAP mode设计时建议都加上JTAG。
4.1 slave serial mode情况
图 2 slave serial mode配置示例
其使用的管脚情况如下所示:
4.2 slave selectMAP mode情况
图 3 slave selectMAP mode配置示意
其使用的管脚情况如下所示:
5 FPGA配置时序
5.1 serial 配置时序
注意:
1)Bit 0 represents the MSB of the first byte. For example, if the first byte is 0xAA (1010_1010), bit 0 = 1, bit 1 = 0, bit 2 = 1, etc.
2) For Master configuration mode, CCLK is driven only after INIT_B goes High to shortlyafter DONE goes High. Otherwise CCLK is in a high-Z state. Data sheet timing isrelative to the CCLK pin.
3) CCLK can be free-running in Slave Serial mode.
5.2 SelectMAP****配置时序
6 程序配置顺序
6.1 程序的基本配置顺序
图 4 基本配置顺序
6.2 Slave Serial Configuration Flow Diagram
6.3 Select MAP Configuration Flow Diagram
7 数据格式与bit交换规律
7.1 数据格式
要将bit流烧写进flash中一般都要对应的数据格式,XILINX FPGA的数据格式有:
7.2 Bit交换规律
8 参考代码
1)slave serial mode的参考代码:
2)slave selectMAP mode的参考代码: