当前位置:   article > 正文

Xilinx 7系列FPGA配置(ug470)

ug470

Xilinx 7系列FPGA配置(ug470)

配置模式

如果 M[2:0] 为 ”101“,则该FPGA 只支持 JTAG 进行配置。处于其余配置模式下时,依旧可以使用 JTAG 模式进行调试,并且优先级最高。

串行配置模式

接口

在这里插入图片描述

从-连接方式

主-连接方式
  • 除了CCLK 连接不同,其他都和从串行模式一样
串行菊花链(非同时配置)
  • 上升沿采样DIN数据,下降沿DOUT输出数据,形成上下流关系;
  • SPI 在该连接方式下不支持重配置功能;
  • 第一个器件最后完成配置;当链中最远端器件完成配置,则将DONE变为高阻态,这样下一个器件检测到DONE为高则开始配置;
  • 7系列必须放在第一个;
  • DOUT传输的总数据量有限制,所以要根据程序大小计算好可以连接的器件个数

在这里插入图片描述

串行配置(同时配置)
  • 所有器件要一样(IDCODE一样),配置程序也一样

在这里插入图片描述

时序

在这里插入图片描述

SPI配置模式

SPIx1/x2 连接图
  • INIT_B 需要外部上拉电阻;
  • 菊花链模式不支持SPIx2和x4,DOUT连接下个器件的DIN形成菊花链;
  • FPGA VCCO_0 要适配 FLASH器件的VCC;
  • 默认SPI器件在CCLK下降沿锁存数据,FPGA在上升沿采样数据(可以通过配置SPI_FALL_EDGE属性更改为下降沿采样);
  • 可通过ConfigRate属性调节CCLK频率;可通过ExtMasterCclk_en属性使能外部输入时钟EMCCLK作为CCLK源使用;
  • VCCBATT用于AES密钥存储,需要时连接

在这里插入图片描述

SPIx1模式时序
  • CCLK初始始终为3MHz,配置ConfigRate只有在读写数据时生效,写地址和指令时不生效;
  • SPI FLASH在配置后不使用,建议将FCS_B拉高;
  • PUDC_B为低,在写完读指令和地址后,MOSI需要拉高或者为高阻态

在这里插入图片描述

SPIx4 连接图

在这里插入图片描述

SPI操作指令
  • 通过spi_buswidth属性改变读写位宽

在这里插入图片描述

操作flash空间大于128Mb
  • 通过使能 spi_32bit_addr 属性支持32bit地址模式
SPI配置时序
  • 默认SPI器件在CCLK下降沿锁存数据,FPGA在上升沿采样数据;
  • 可以通过配置SPI_FALL_EDGE属性更改为下降沿采样,但是一开始还是上升沿采样,只有到读取bit流中的更改为下降沿这个配置信息之后才会生效,这个在使能外部时钟源和更改速率之前生效

在这里插入图片描述

SPI最大速率计算

在这里插入图片描述

在这里插入图片描述

上电顺序要求

SPI flash必须在FPGA 拉低FCS_B和发送读指令之前具备接受指令状态

主BPI配置模式

  • 某些引脚位于 bank15,Artix-7 中 7A50T 以及更小器件和 Spartan-7系列不支持 BPI 配置;
  • BPI模式支持异步和同步读取两种方式,默认异步;
  • 异步读取支持x8和x16两种位宽,均为自动识别
接口

在这里插入图片描述

异步读取模式
连接图
  • BPI模式:M[2:0]= 101 ;
  • CCLK必须作为输出悬空;
  • RS[1:0]用于多镜像配置(MultiBoot)

在这里插入图片描述

时序
  1. 开始配置:上电或者低脉冲PROGRAM_B信号;
  2. 上电配置:PROGRAM_B低电平时拉低INIT_B;
  3. 初始化完成:INIT_B变高,INIT_B上升沿采样M[2:0],识别配置模式;
  4. 识别为BPI模式:FWE_B拉高,FOE_B拉低,FCS_B拉低;
  5. 主模式时INIT_B上升沿一段延时后输出CCLK;
  6. FPGA输出初始地址并维持10个CCLK;
  7. FPGA在CCLK上升沿读取数据;
  8. CRC错误,INIT_B输出低,DONE保持低电平;
  9. 加载完成,DONE拉高;
  10. CCLK变为高阻态;
  11. 在GTS_cycle后多功能I/O引脚变为用户模式,默认为DONE变为高后一个周期

在这里插入图片描述

同步读取模式
连接图
  1. 同步读取模式是最快的配置模式;
  2. 一开始使用默认CCLK速率和异步读取模式,直到读取bitstream的header才转换为同步读模式;
  3. 同步模式需要通过设置BPI_sync_mode属性设置,有两种属性值:Type1(用于G18F信号flash);Type2(用于P30/P33信号flash);
  4. 同步读模式,FPGA CCLK输出连接BPI Flash,ADV_B连接FLASH ADV引脚;
  5. FPGA配置完成后 BPI flash保持同步读模式;
  6. 同步读模式只支持x16;
  7. bit顺序和SelectMap一样

在这里插入图片描述

最大配置速率计算

在这里插入图片描述

上电顺序要求
  • 在FPGA驱动FCS_B低电平并输出第一个地址之前,BPI闪存必须准备好进行异步读取,以确保BPI闪存可以输出存储的比特流。

SelectMAP 配置模式

简介
  • 总线宽度 8、16、32bits,可以自动识别总线宽度;

  • 支持配置和读取操作;

  • 读操作只有从 SelectMAP模式支持;

  • CCLK主模式下为输出;从模式下为输入;

  • 模式:单器件从模式、多器件菊花链模式、多相同器件模式

接口

Data Ordering

![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=MD_IMG%2FXilinx%207%E7%B3%BB%E5%88%97FPGA%E9%85%8D%E7%BD%AE.assets%2Fimage8.png&pos_id=img-ZR95DUWS-1709733617032)
在这里插入图片描述

单器件配置模式
连接示例

在这里插入图片描述

数据加载

支持连续和非连续数据加载,数据加载由 CSI_B、RDWR_B、CCLK信号控制

  • CSI_B

    • SelectMAP 接口使能,低有效;

    • 当不需要SelectMAP和读回操作时,CSI_B可以接地

  • RDWR_B

    • 输入输出使能,低电平输入(写FPGA),高电平输出(读FPGA);
    • CSI_B使能时,RDWR_B保持不变,否则会中断配置和回读操作
  • CCLK

    • 所有数据操作同步于CCLK;
    • 配置FPGA:FPGA在时钟上升沿采样;
    • 回读FPGA:FPGA在时钟上升沿更新数据
连续配置时序

非连续配置时序

两种非连续配置方式:

  • 通过控制CSI_B信号;
  • 通过控制CCLK信号


在这里插入图片描述

终止操作
  • 分为配置终止和回读终止操作;
  • 当CSI_B有效时改变RDWR_B触发终止操作;
  • 配置终止会持续4个CCLK周期,同时数据线D0-7会返回状态字;回读终止不返回状字;
  • 终止操作完成后会恢复配置/回读操作;或者可以通过产生PROGRAM_B低脉冲复位整个器件
时序

在这里插入图片描述

状态字定义

状态字数据对齐

多器件SelectMAP独立配置
  • 通过CS单独控制每个器件

多器件SelectMAP同时配置

并行菊花链配置
  • CS_B为菊花链;
  • 第一个器件可以为Master/Slave SelecrMAP、BPI,其他必须都为Slave SelecrMAP

在这里插入图片描述

JTAG配置模式

  • 无论M[2:0]配置为何值,都支持JTAG在线配置

配置引脚

在这里插入图片描述

在这里插入图片描述

CVGBVS

  • 输入引脚;
  • CVGBVS决定bank0 I/O支持的电压值,以及配置区间bank14、bank15的I/O所支持的电压值;
  • 若I/O工作在1.8V或者更低电压下,CVGBVS接GND;
  • 若I/O工作在2.5V/3.3V下,CVGBVS接VCCO_0(3.3V/2.5V);
  • 7系列有两种I/O bank类型:high-range (HR I/O) banks 支持3.3,2.5V电压标准;a few lower voltage I/O standards, and high-performance (HP I/O) banks 支持 1.8V 或者更低的电压标准;

在这里插入图片描述

PROGRAM_B

  • 输入引脚,下降沿有效,用于复位整个器件;
  • 上升沿开始启动配置,但上电时把 PROGRAM_B 保持低电平不会使 FPGA配置保持复位状态,延迟配置时间需要使用 INIT_B 信号配合完成
  • 引脚外部需要通过4.7kΩ 以上电阻上拉至VCCO_0

INIT_B

  • FPGA 初始化引脚或配置错误信号,低电平有效。当 FPGA 处于配置复位状态或当FPGA 正在初始化(清除)其配置存储器(PROGRAM_B信号为低电平)时或当 FPGA 检测到配置错误时,FPGA 会将该引脚驱动为低电平;
  • 在上电期间,可以通过讲该引脚拉低,来延迟上电配置程序的时间 ;
  • 当完成初始化后,该引脚被释放,外部上拉电阻讲该引脚拉高,当检测到该信号上升沿之后,FPGA会读取M[2:0]引脚状态,从而确定后续采用哪种配置方式进行配置 ;
  • 引脚外部需要通过4.7KΩ以上的电阻上拉至VCCO_0 ;
  • M[2:0]被采样之后:INIT_B作为输出,0表示CRC或IDCODE错误(这时DONE为低电平),0或表示回读CRC错误(这时DONE为高电平,且回读CRC使能);1表示没有CRC错误,初始化完成

PUDC_B

  • 输入引脚(不可悬空),在配置期间I/O引脚内部上拉电阻使能;
  • 低电平,配置期间所有未赋值引脚为高电平;
  • 高电平,配置期间所有未赋值引脚为高阻态

VCCBATT

  • FPGA内部易失性存储器的电池备用电源,用于存储AES解密器的密钥,如果不需要使用AES易失性密钥存储区域中的解密器密钥,那么将该引脚接地就行,该引脚不是I/O,不受VCCO_0的影响

RS0, RS1

  • 输出引脚,RS[1:0]用多镜像配置(MultiBoot)

RDWR_B

  • 输入引脚;
  • 高电平:FPGA输出数据到SelectMap数据线上;
  • 低电平:外部控制器通过SelectMap数据线写数据到FPGA

FCS_B

  • 输出引脚,flash片选信号,低有效

FOE_B

  • 输出引脚,flash输出使能,低有效

FWE_B

  • 输出引脚,flash写使能,低有效

Configuration Details

配置文件格式

在这里插入图片描述

总线位宽自动检测

  • Serial、JTAG、SPI模式不支持总线位宽自动检测功能;
  • 只检测D[7:0]的值,检测到0xBB,若下一次检测到0x11,则为x8;若下一次检测到0x22,则为x16;若下一次检测到0x44,则为x32;然后立即切换总线位宽,开始检测同步字
    在这里插入图片描述

同步字

  • 识别到同步字前没有其他包数据

在这里插入图片描述

位交换和总线字序

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

延迟配置

  • 通过 INIT_B保持低电平来延迟配置。当INIT_B拉高后(完成初始化阶段),再次拉低不会延迟配置。
延迟相关信号

在这里插入图片描述

配置顺序

在这里插入图片描述

Setup
Device Power-Up (Step 1)
  • 电源引脚

在这里插入图片描述

  • 上电时序


在这里插入图片描述

Clear Configuration Memory (Step 2, Initialization)
  • 以下情况都会触发“清除配置存储”:重新上电、PROGRAM_B低脉冲、JTAG JPROGRAM指令、IPROG指令、fallback重配置;
  • BRAM和寄存器都会通过GSR拉高初始化;
  • 这段期间,除了少数配置输出引脚,其他I/O通过GTS处于高阻态,如果PUDC_B为低,则为内部上拉
Sample Mode Pins (Step 3)
  • INIT_B拉高后,器件采集M[2:0]模式引脚值,驱动CCLK(master模式下),然后在CCLK上升沿采集配置数据引脚值
Bitstream Loading
Synchronization (Step 4)
  • 对于BPI模式、SelectMAP模式,同步前需要先自动识别位宽;
  • 任何同步字前的数据都会被忽略,除了位宽检测序列;
  • 同步阶段对于大多数用户是透明的,因为工具生成的bit包含位宽检测序列及同步字

同步阶段相关信号

Check Device ID (Step 5)
  • 同步之后进行器件ID检验,如果ID不匹配则回退进行重配置

  • 7系列 jtag ID Code寄存器格式

Load Configuration Data Frames (Step 6)
  • 同步字加载及器件ID检查完成后,开始加载配置数据帧

  • Configuration Packets :Type1、Type2两种,寄存器地址只用5bit

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

Cyclic Redundancy Check (Step 7)
  • FPGA 计算CRC跟bit里的校验值比较;
  • 同步丢失后,后续的指令都被忽略,最配置失败—DONE低,INIT_B高
Startup
  • DONE置位后要保留足够时间保证能到 phase7,保守时间为64个时钟周期

在这里插入图片描述

  • 防止DONE、GTS、GWE在MMCMs锁相和DCI匹配前置位

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

配置过程I/O电平变化(EOS)
  • 在End Of Startup后一个CFGCLK发生0-1-0的电平转变过程;
  • 避免产生影响:VCCO14、15接2.5/3.3V;或者外部引脚上拉;还可以逻辑设计忽略EOS 后第一个CFGCLK上升沿之后至少200ns不采纳数据

STARTUPE2原语

Bitstream Security

Bitstream Composition

在这里插入图片描述在这里插入图片描述在这里插入图片描述

配置寄存器

在这里插入图片描述

重配置和多镜像

Fallback MultiBoot

  • 回退功能使能:ConfigFallback(通过xdc约束或者bitstream设置);
  • 回退重配置时将忽略IPROG,看门狗计时器关闭;
  • 重配置失败,配置终止,INIT_B和DONE保持低电平
先加载golden再触发MultiBoot

在这里插入图片描述

直接加载MultiBoot
  • 对于SPI模式,回退默认使用x1进行golden镜像加载;
  • 对于BPI模式,回退默认使用异步读模式进行镜像加载,所以当配置为同步读模式时要注意CCLK,同时要满足异步和同步读模式;
  • BPI模式,硬件设计RS引脚要根据upper address进行上拉或者下拉

在这里插入图片描述

IPROG

  • IPROG(Internal PROGRAM)指令和PROGRAM_B引脚给低脉冲作用类似,区别在于IPROG不复位WBSTAR、TIMER、BSPI和BOOTSTS寄存器值;
  • IPROG指令触发初始化,同时INIT和DONE拉低;
  • 两种发起指令方式:逻辑控制ICAPE2;生成bit时在golden bit前加入WBSTAR和IPROG指令; 4.当触发回退重新加载时IPROG指令将被忽略
IPROG Using ICAPE2
  • 输入配置信息需要位转换;
  • 发送流程:同步字->WBSTAR->IPROG

在这里插入图片描述

IPROG Embedded in the Bitstream

在这里插入图片描述

Status Register for Fallback and IPROG Reconfiguration
  • BOOTSTS用于存储配置历史;
  • Valid用于只是当前Status是否有效;
  • Status_0用于记录最新配置状态; Status_1用于记录上一次配置状态;

在这里插入图片描述

  • Status_1 表示执行了IPROG,检测到CRC错误;
  • Status_0表示回退加载成功,同时也有IPROG,只是回退重配置忽略IPROG指令,但是同样记录状态

WBSTAR Register

  • 执行IPROG指令后,FPGA从WBSTAR指示的地址开始读指令

在这里插入图片描述

Watchdog Timer

  • 两种模式:配置监控、用户逻辑监控;
  • 计数到达0,触发回退;
  • 计时器寄存器计数时钟为CFGMCLK(65MHz))256分频,一个时钟周期为4000ns,计数器位宽30bits,所以可以计时4230秒;
  • 回退重配置时,Watchdog不使能
Configuration Monitor Mode
  • TIMER寄存器:TIME_CFG_MON设为1,并设置超时计数值
User Monitor Mode
  • TIMER寄存器:TIME_USR_MON设为1,并设置超时计数值

RS Pins

  • 除SPI配置模式,RS信号均由WBSTAR寄存器控制输出;

  • 当BPI或Master SelectMap模式回退时,输出低电平;

  • 在多镜像场景用作为高位地址线;

  • 除CCLK外所有BPI引脚均为多功能I/O,配置完成后(DONE为高)均可由用户控制

在这里插入图片描述

JTAG高级用法

在这里插入图片描述

参考文献

7 Series FPGAs Configuration User Guide (UG470)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/646390
推荐阅读
相关标签
  

闽ICP备14008679号