Menu Close

Xilinx 7系列FPGA配置简介

1. 配置概述

Xilinx 7系列FPGA通过将特定应用的比特流(配置数据)加载到内部存储器(片内存储器)中进行配置:

  • 可以从外部非易失性存储设备(比如FLASH,EEPROM)加载
  • 也可以通过外源进行配置,例如微处理器(microprocessor)、DSP 处理器、微控制器(microcontroller)、PC 或电路板测试仪

在任何情况下,都有两个通用配置数据路径:

  • 第一个是串行数据路径,减少器件引脚的使用
  • 第二个数据路径是 8 位、16 位或 32 位数据路径,用于提高性能或访问(或链接)到行业标准接口,非常适合处理器、x8-parallel, x16-parallel FLASH等外部数据源存储器

与处理器和处理器外设一样,Xilinx FPGA 可以在系统中根据需要进行无限次重新编程

由于FPGA 配置数据存储在 CMOS 配置锁存器 (CMOS configuration latchs, CCL) 中,因此必须在断电后重新配置。

主要有以下几种配置模式(后文有解释):

  • Master Serial
  • Master SPI
  • Master BPI
  • Master SelectMAP
  • JTAG
  • Slave SelectMAP
  • Slave Serial

以上这些配置模式的选择由管脚M[ 2: 0 ]决定。相关选择如图1所示。目前FII-PRX100-D开发板的模式选择管脚连接如图2所示,*表示当前电阻并没有焊接。所以可以看出,只有M0被上拉电阻置为1,也就是说,M[ 2: 0 ]为001,根据图1可以看出当前的模式是Master SPI。

%title插图%num

图1 模式选择管脚M[ 2: 0 ] [1]

 

%title插图%num

图2 FII-PRX100-D原理图中M[ 2: 0 ]管脚链接

Master和Slave在这里实际上是指配置时钟(configuration clock,CCLK)的方向。

  • Slave配置模式中,CCLK是输入。
  • Master配置模式中,FPGA从内部晶振驱动CCLK

注意:不管M[ 2: 0 ]的管脚连接如何,FPGA都支持JTAG配置接口。

 

2. 配置数据来源

配置数据来源主要有3种:

  • FPGA从FLASH等非易失性存储设备中自行加载配置数据
  • 其它智能的设备(processor,microcontroller等)可以将配置数据下载到FPGA上
  • 配置数据还可以通过FPGA上的JTAG接口从主机上下载(比如使用Vivado烧录程序)

 

3. 配置模式

Slave Modes:外部控制FPGA下载配置数据的模式都被称为Slave modes。优点是FPGA配置的数据可以放在任何地方,比如主机processor的FLASH,硬盘,或是代码中,甚至可以是通过网络远程连接到存储设备上。Slave 模式一般需要其它智能器件配合使用,如额外的MCU或FPGA。 该过程一般是由MCU将FLASH Memory中的配置数据读出,然后并行或串行写道FPGA的SRAM中。这种应用场景一般在系统中有MCU器件,可以将FPGA程序存在MCU的程序存储器中,在程序初始化时同时配置FPGA。在这种模式下FPGA的在线升级比较方便。

Master Modes:FPGA自己下载的模式,一般来说,配置数据被放在非易失性存储芯片或设备(同一开发板上)内,上电或FPGA被复位后,FPGA自动发出相应时序控制信号,自举的把存储器芯片的配置数据搬移到FPGA内,做到配置自实现过程。

 

在FPGA上电的时候,会自动boot存在FLASH里面的程序(检索其中的比特流)。FPGA具有串行外设接口 (SPI),通过该接口 FPGA 可以从标准 SPI  FLASH设备读取比特流。配置的比特流需要在FPGA上电的时候提供好。

 

BPI:byte peripheral interface parallel NOR FLASH,支持更宽的配置数据总线,更快的配置,但是需要至少25个管脚的连接。因此,一般在需要配置大量数据或是需要同时去配置几个FPGA时,去考虑BPI模式。

SPI可支持x1,x2,x4三种数据总线宽度。具体数据管脚如何分配,见图3。

%title插图%num

图3 SPI管脚 [2]

对于SPI通讯协议及工程的学习,这里有一些可参考的文章:

SPI 通讯协议(1)SPI定义与应用

SPI 通讯协议(2)简单的spi verilog 模块及仿真

SPI 通讯协议(3)SPI FLASH 介绍

SPI 通讯协议(4)SPI FLASH (verilog) 工程解析 (spi_phy.v)

SPI 通讯协议(5)SPI FLASH (verilog) 工程解析 (spi_cmd.v)

SPI 通讯协议(6)SPI FLASH (verilog) 工程解析 (spi_IF.v)

SPI 通讯协议(7)SPI FLASH (verilog) 工程解析 (TOP.v)及仿真

SPI 通讯协议(8)SPI FLASH (verilog) 工程解析 (开发板操作)

 

SelectMAP:SelectMAP配置接口提供8-bit,16-bit和32-bit的双向数据总线接口。

  • 在Master SelectMAP模式中,CCLK是输出
  • 在Slave SelectMAP模式中,CCLK是输入

当使用microprocessor或者是CPLD(complex programmable logic device)去配置FPGA时,应该使用Master SelectMAP或是Slave SelectMAP。

 

文章参考

[1]Xilinx.com, 2021. [Online]. Available: https://www.xilinx.com/support/documentation/user_guides/ug470_7Series_Config.pdf. [Accessed: 24- Jun- 2021].

[2]Xilinx.com, 2021. [Online]. Available: https://www.xilinx.com/support/documentation/application_notes/xapp586-spi-flash.pdf. [Accessed: 25- Jun- 2021].

Posted in FPGA, FPGA, FPGA, FPGA硬件资源, 元器件, 开发板, 文章, 资料区
0 0 投票数
Article Rating
订阅评论
提醒
guest
2 评论
最新
最久 最赞
内联反馈
查看所有评论
vacuum
vacuum
1 月 前

老师 没有那种配置在片内rom中的么 所有fpga都有断电要重新配置的过程?

相关链接