赞
踩
FPGA的配置数据存储在CMOS锁存器中,掉电会丢失,因此在上电之后需要加载bit流。常见的配置模式如下所示,
如果通过JTAG配置7系列设备,则配置指令独立于模式引脚而发生。
从上图中可以看到,配置模式由M[2:0]指定(在配置过程中及配置完成之后,其引脚电平不能改变),有主XX配置、从XX配置、JTAG配置;主/从是针对CCLK引脚而言的(CCLK由内部有源晶振产生,对应的频率值就是产生bit时设置的配置速率)。每种配置模式都有一些相关的接口引脚,这些引脚分布在不同的Bank中,Bank0中包含JTAG引脚、专用配置引脚;Bank14和Bank15包含多功能配置引脚,如下所示,
部分引脚的介绍
名称 | 描述 |
---|---|
DONE | 高有效,表示配置完成 |
INIT_B | 低有效,表示配置存储器正在初始化 |
PROGRAM_B | 低有效,表示异步复位配置逻辑 |
TCK | Jtag时钟信号 |
TDI | Jtag数据输入 |
TDO | Jtag数据输出 |
TMS | Jtag模式选择 |
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进制数据 | 释义 |
---|---|
20000000 | Packet Type 1:NOP,插入该数据包是为了满足延时要求 |
30022001 | Packet Type 1: Write TIMER register, WORD_COUNT=1 |
30020001 | Packet Type 1: Write WBSTAR register, WORD_COUNT=1 |
30008001 | Packet Type 1: Write CMD register, WORD_COUNT=1 |
30026001 | Packet Type 1: Write CRC register, WORD_COUNT=1 |
30012001 | Packet Type 1: Write COR0 register, WORD_COUNT=1 |
3001C001 | Packet Type 1: Write COR1 register, WORD_COUNT=1 |
3000C001 | Packet Type 1: Write MASK register, WORD_COUNT=1 |
3000A001 | Packet Type 1: Write CTL0 register, WORD_COUNT=1 |
5xxxxxxxx | TYPE2数据包写入 |
重配置技术可以分成两种:静态重配置和动态重配置。
FPGA多重加载允许FPGA在多个设计镜像文件之间进行切换,它具有Fallback MultiBoot(可靠的多重加载)特性,当在多重加载的过程中出现错误的时候,FPGA能够再次开启配置流程。具体而言,当 IDCODE错误、CRC错误、看门狗超时、BPI地址错误 等错误触发fallback特性时,会在内部产生一个复位脉冲来复位整个配置逻辑、WBSTAR、BOOTSTS寄存器,这个复位脉冲会拉低INIT_B、Done引脚,重新从RS引脚设置的0地址处开始配置流程。在fallback的重配置过程中,看门狗会禁能, IPROG指令也被忽略掉,且此次配置若是失败的话,不会再进行配置了。
xapp提供了两个参考工程,一个是golden工程,一个是update工程,两个工程在HDL层面上,区别主要是流水灯的闪烁方式不同,
golden工程与update工程均设置了bit的multiboot属性,这可以通过gui的方式实现,也可以直接在xdc中进行约束,
解析的bit流对比如下,
FPGA开发全攻略——配置电路
7系列FPGA上电配置流程
Xilinx FPGA上电时序分析与设计
基于FPGA的flash分区实现多功能转换(icap核)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。