• Xilinx 7系列FPGA配置(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)

  • 相关阅读:
    字节大佬打造1137页【数据结构与算法】神册!太香了
    表白弹药库 - 这是我为你写的散文诗(结尾附源码)
    java核心技术卷一 第3章 第11版
    Docker命令
    AR工业远程巡查系统:实时监控设备状态,及时发现潜在问题
    mvn打包成war包或可执行jar包
    行业分析网站-网站分析软件-免费网站详细数据分析软件
    深度学习修炼(二)全连接神经网络 | Softmax,交叉熵损失函数 优化AdaGrad,RMSProp等 对抗过拟合 全攻略
    4、bash中的特殊符号与数据流重定向
    假期酒店价格一路涨价,专家称住便宜酒店的时代可能过去了
  • 原文地址:https://blog.csdn.net/qq_38695100/article/details/136519211