xilinx FPGA的远程更新(动态加载)详解(Using a Microprocessor to Configure 7 Series FPGAs)

目录

  • 1 概述
  • 2 参考文件
  • 3 远程更新思路
  • 4 MIC配置FPGA的模式
    • 4.1 slave serial mode情况
    • 4.2 slave selectMAP mode情况
  • 5 FPGA配置时序
    • **5.1** **serial** **配置时序**
    • **5.2** **SelectMAP****配置时序**
  • 6 程序配置顺序
    • 6.1 程序的基本配置顺序
    • 6.2 Slave Serial Configuration Flow Diagram
    • 6.3 Select MAP Configuration Flow Diagram
  • 7 数据格式与bit交换规律
    • 7.1 数据格式
    • 7.2 Bit交换规律
  • 8 参考代码

1 概述

本文用于讲解FPGA的远程更新的一种思路。

远程更新是指不用在本地靠近再用JTAG烧写程序,可以在远端通过上位机加载程序。

至于上位机通过什么方式把程序发送到本地则看使用者自己设计,比如以太网、串口、SPI、GTX等等。

2 参考文件

《ug470》

《xapp502》

《xapp583》

3 远程更新思路

借用微处理器(简称MIC)配置FPGA的思路进行远程更新。虽然一般情况下MIC配置FPGA只是用于动态加载,即远程烧写bit临时调试,掉电后程序会丢失。但若是想将远程传输过来的程序(例如bin文件)写入MIC上挂的flash中,然后MIC再将flash中的程序写入FPGA,每次MIC上电后都会先把FLASH中的程序读取后传输去烧写FPGA,则就实现了掉电不丢失的远程更新功能。

其架构如下图所示:

xilinx FPGA的远程更新(动态加载)详解(Using a Microprocessor to Configure 7 Series FPGAs)_第1张图片

图 1 程序烧写架构图

4 MIC配置FPGA的模式

7 Series FPGA Configuration Modes如下所示:

xilinx FPGA的远程更新(动态加载)详解(Using a Microprocessor to Configure 7 Series FPGAs)_第2张图片

MIC配置FPGA有两种模式:

  1. slave serial mode ;

  2. slave selectMAP mode。

当然为了调试的方便性,无论是用slave serial mode 与slave selectMAP mode设计时建议都加上JTAG。

4.1 slave serial mode情况

xilinx FPGA的远程更新(动态加载)详解(Using a Microprocessor to Configure 7 Series FPGAs)_第3张图片

图 2 slave serial mode配置示例

其使用的管脚情况如下所示:

xilinx FPGA的远程更新(动态加载)详解(Using a Microprocessor to Configure 7 Series FPGAs)_第4张图片

xilinx FPGA的远程更新(动态加载)详解(Using a Microprocessor to Configure 7 Series FPGAs)_第5张图片

4.2 slave selectMAP mode情况

xilinx FPGA的远程更新(动态加载)详解(Using a Microprocessor to Configure 7 Series FPGAs)_第6张图片

图 3 slave selectMAP mode配置示意

其使用的管脚情况如下所示:

xilinx FPGA的远程更新(动态加载)详解(Using a Microprocessor to Configure 7 Series FPGAs)_第7张图片

5 FPGA配置时序

5.1 serial 配置时序

xilinx FPGA的远程更新(动态加载)详解(Using a Microprocessor to Configure 7 Series FPGAs)_第8张图片

注意:

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****配置时序

xilinx FPGA的远程更新(动态加载)详解(Using a Microprocessor to Configure 7 Series FPGAs)_第9张图片

6 程序配置顺序

6.1 程序的基本配置顺序

xilinx FPGA的远程更新(动态加载)详解(Using a Microprocessor to Configure 7 Series FPGAs)_第10张图片

图 4 基本配置顺序

6.2 Slave Serial Configuration Flow Diagram

xilinx FPGA的远程更新(动态加载)详解(Using a Microprocessor to Configure 7 Series FPGAs)_第11张图片

6.3 Select MAP Configuration Flow Diagram

xilinx FPGA的远程更新(动态加载)详解(Using a Microprocessor to Configure 7 Series FPGAs)_第12张图片

7 数据格式与bit交换规律

7.1 数据格式

要将bit流烧写进flash中一般都要对应的数据格式,XILINX FPGA的数据格式有:

xilinx FPGA的远程更新(动态加载)详解(Using a Microprocessor to Configure 7 Series FPGAs)_第13张图片

xilinx FPGA的远程更新(动态加载)详解(Using a Microprocessor to Configure 7 Series FPGAs)_第14张图片

7.2 Bit交换规律

xilinx FPGA的远程更新(动态加载)详解(Using a Microprocessor to Configure 7 Series FPGAs)_第15张图片

8 参考代码

1)slave serial mode的参考代码:

https://download.csdn.net/download/u014586651/71894363

2)slave selectMAP mode的参考代码:

https://download.csdn.net/download/u014586651/71895288

你可能感兴趣的:(FPGA,fpga开发,远程更新,slave,serial,slave,selectMAP,动态加载)