纸上谈兵_FPGA配置_多重加载

FPGA配置概览

配置模式

FPGA的配置数据存储在CMOS锁存器中,掉电会丢失,因此在上电之后需要加载bit流。常见的配置模式如下所示,
在这里插入图片描述
在这里插入图片描述

如果通过JTAG配置7系列设备,则配置指令独立于模式引脚而发生。
在这里插入图片描述

配置引脚

从上图中可以看到,配置模式由M[2:0]指定(在配置过程中及配置完成之后,其引脚电平不能改变),有主XX配置、从XX配置、JTAG配置;主/从是针对CCLK引脚而言的(CCLK由内部有源晶振产生,对应的频率值就是产生bit时设置的配置速率)。每种配置模式都有一些相关的接口引脚,这些引脚分布在不同的Bank中,Bank0中包含JTAG引脚、专用配置引脚;Bank14和Bank15包含多功能配置引脚,如下所示,
在这里插入图片描述
部分引脚的介绍

名称描述
DONE高有效,表示配置完成
INIT_B低有效,表示配置存储器正在初始化
PROGRAM_B低有效,表示异步复位配置逻辑
TCKJtag时钟信号
TDIJtag数据输入
TDOJtag数据输出
TMSJtag模式选择
CFGBVS为bank0的配置引脚预选择电平标准,1表示bank0的供电电压为2.5或3.3;0表示bank0的供电电压为1.8
PUDC_B上拉电阻配置引脚,配置Select IO在配置阶段或上电后的其上拉电阻是否使能。当接GND,表示不使能;接VCCO_34表示使能。
EMCCLK外部主配置时钟,可选引脚
RS0,RS1区域选择引脚,用于选择FLASH的地址

配置时序

Xilinx FPGA需要经过8个步骤才能运行正常的运行用户逻辑,整个流程如下所示,
在这里插入图片描述
从图中可以看出,8个步骤又可以归纳为3个阶段:Setup,BIT加载,启动序列。

启动序列的内容如下,可以在生成bit时进行设置,
在这里插入图片描述在这里插入图片描述

比特流的格式

比特流中由位宽自动检测同步字配置数据包组成。
在这里插入图片描述

位宽自动检测

在这里插入图片描述
只有在BPI配置模式中,才需要用到位宽自动检测,不过,可能是为了统一处理,vivado产生的bit文件中都包含了位宽自动检测。
配置逻辑仅仅检测并行总线的低8位,当低8位检测到0xBB后,如果下一次检测到的是0x11,则说明并行总线是x8位宽;如果下一次检测到的是0x22,则说明并行总线是x16位宽;如果下一次检测到的是0x44,则说明并行总线是x32位宽。

同步字

在同步字之前的数据会被忽略掉。
在这里插入图片描述

配置数据包

7系列FPGA的bit中包含一组配置命令,用以对配置寄存器进行读写。配置数据包中包含两类数据包,如下图所示。
在这里插入图片描述
TYPE1用来对寄存器进行读写,(配置寄存器的地址总共有14位,但是7系列的配置寄存器地址只使用了5位);TYPE2数据包紧随TYPE1数据包之后,使用TYPE1数据包中的地址,用来写入长数据包。

常见数据

16进制数据释义
20000000Packet Type 1:NOP,插入该数据包是为了满足延时要求
30022001Packet Type 1: Write TIMER register, WORD_COUNT=1
30020001Packet Type 1: Write WBSTAR register, WORD_COUNT=1
30008001Packet Type 1: Write CMD register, WORD_COUNT=1
30026001Packet Type 1: Write CRC register, WORD_COUNT=1
30012001Packet Type 1: Write COR0 register, WORD_COUNT=1
3001C001Packet Type 1: Write COR1 register, WORD_COUNT=1
3000C001Packet Type 1: Write MASK register, WORD_COUNT=1
3000A001Packet Type 1: Write CTL0 register, WORD_COUNT=1
5xxxxxxxxTYPE2数据包写入

配置寄存器

在这里插入图片描述

cmd寄存器

在这里插入图片描述

7系列FPGA的比特设置

在这里插入图片描述

FPGA多重加载

重配置技术可以分成两种:静态重配置和动态重配置。

  • 静态重配置:通过指导不同比特流的加载,实现不同逻辑功能的切换。它通常用于系统正常工作之前进行配置,是一种逻辑功能的静态加载。
  • 动态重配置:对全局or局部逻辑资源进行重新配置,以实现不同逻辑功能的转换。与静态重配置不同,它在加载比特流时,仍然保持系统处于工作状态。

FPGA多重加载允许FPGA在多个设计镜像文件之间进行切换,它具有Fallback MultiBoot(可靠的多重加载)特性,当在多重加载的过程中出现错误的时候,FPGA能够再次开启配置流程。具体而言,当 IDCODE错误、CRC错误、看门狗超时、BPI地址错误 等错误触发fallback特性时,会在内部产生一个复位脉冲来复位整个配置逻辑、WBSTAR、BOOTSTS寄存器,这个复位脉冲会拉低INIT_B、Done引脚,重新从RS引脚设置的0地址处开始配置流程。在fallback的重配置过程中,看门狗会禁能, IPROG指令也被忽略掉,且此次配置若是失败的话,不会再进行配置了。
在这里插入图片描述
在这里插入图片描述

IPROG

使用ICAPE2发出IPROG指令

在这里插入图片描述

比特流中嵌入IPROG指令

在这里插入图片描述

XAPP1246

xapp提供了两个参考工程,一个是golden工程,一个是update工程,两个工程在HDL层面上,区别主要是流水灯的闪烁方式不同,
在这里插入图片描述
golden工程与update工程均设置了bit的multiboot属性,这可以通过gui的方式实现,也可以直接在xdc中进行约束,
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
解析的bit流对比如下,
在这里插入图片描述

博文链接

FPGA开发全攻略——配置电路
7系列FPGA上电配置流程
Xilinx FPGA上电时序分析与设计
基于FPGA的flash分区实现多功能转换(icap核)

  • 10
    点赞
  • 138
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
JESD204B协议是一种数字接口协议,用于在高速数据传输中连接数据转换器(AD/DA)和数字信号处理器(DSP)之间。它提供了一种高效、可靠的方式来传输数据,并具有严格的同步和时延要求。根据文献,在JESD204B出现之前,大多数数模转换器的数字接口是差分LVDS接口,但这在布板时会带来困难。而JESD204B具有更复杂的接口逻辑,但可以通过设置参数来适应不同的转换器分辨率,从而简化整个系统设计。根据文献,JESD204B中的参数N'是通过将nibble(4位)的数量乘以四得到的,可以根据需要将其设置为16,以方便使用相同的传输器和接收器连接多个转换器。 JESD204B协议的具体细节和使用方法可以参考相应的技术文档和手册,例如引用中提到的Xilinx JESD204B IP手册。123 #### 引用[.reference_title] - *1* *3* [纸上谈兵_JESD204B](https://blog.csdn.net/linbian1168/article/details/123562122)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] - *2* [JESD204B 协议解析和参数理解](https://blog.csdn.net/yundanfengqing_nuc/article/details/108146050)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值