【无标题】

S6 配置详细攻略
何冰峰
1 概述
1.1 什么是配置?
S6 的配置就是应用配置数据通过比特流的方式加载进入
S6 内部存储器。
1.2 配置模式?
主从角度(时钟方向)
S6 可以主动地从外部非易失性存储器加载数据来配置自己
S6 也可以被动的由外部微处理器等加载来配置自己
位宽角度
串行配置
8bit/16bit 并行模式
因为 FPGA 的配置数据是被存放在
CMOS 配置锁存器( CCLs )中的,所以如果需要在
掉电之后才能进行重新配置。
配置数据比特流需要通过特定的管脚进入
FPGA 中。根据上述
配置模式的分类进行组合之后分为以下
5 类配置模式:
JTAG 配置模式
主动串行( x1 /SPI(x2/x4) 配置模式
被动串行配置模式
主动并行( x8/x16 )配置模式
被动并行( x8/x16 )配置模式
1.2.1 主从模式与 CCLK 的关系
在主动配置模式下,
S6 默认的通过
S6 内部晶体振荡器或者是外部主动时钟源
GCLK0/USERCCLK
来驱动 CCLK 输出配置时钟。当使用内部晶振的时候,可以通过配置
BitGen 软件中的 -g ConfigRate 位来进行配置时钟频率的选择,
S6 默认设置为 2MHz
配置结束之后, S6 内部的晶振关闭,除非发生以下情况:
使用 SEU 侦测
CFGMCLK 在启动初始的时候就已经连接了 SUSPEND 模式下选择使用内部时钟(晶振仅在在唤醒的流程中开启)
密钥使能
CCLK 管脚是一个复用引脚,在配置之前,
片内是没有上拉电阻的。配置完成之后作为
IO 口使用,除非 PERSIST 使用了。
被动配置模式下, CCLK 作为输入管脚。
不管在何种配置模式下面,
JTAG 接口都是可用的。
1.3 配置方案
1.3.1 基本配置方案
基本配置方案包括使用
XILINX 平台 FLASH PROM 或者是第三方 SPI PROM 进行主动
串行配置。 这种解决方案能够最少的使用
FPGA 的管脚, 并且在 I/O 电压的供应上更加具有
选择的灵活性。 XILINX
JTAG 编程软件也支持
SPI PROM
1.3.2
低成本优先解决方案
在某些特殊的应用中我们可以选用低成本的配置解决方案:
假如在系统设计中有多余的非易失性存储器,
那么我们把配置比特流镜像文件存放
在这个存储器中。 如果没有这样一个存储器件,
也可以通过远端的一个连接来完成
FPGA 的配置,这种情况下可以考虑被动串行
/ 并行模式以及
JTAG 模式。
假如在系统设计中一定会使用到一个非易失性存储器,
那么可以与其他处理器共用
这个存储器。 FPGA 的配置比特流能够以任何处理器代码的方式存放在电路板上,
这样 FPGA 配置数据和处理器代码可以共用一个存储器件。
S6 也可以直接使用商业级
SPI 串行 FLASH 和并行 NOR FLASH 存储器进行配置。
1.3.3
高速解决方案
在某些应用中需要在很短的时间中就要是
FPGA 中的逻辑是可用的,所以
FPGA 配置
模式和配置工具必须比普通的配置要快许多。
配置时间包括配置逻辑的初始化时间加上配置
时间,这个时间主要取决与配置设备的位宽以及配置逻辑的速度。例如,当使用一个
4-bit
位宽 33MHz 的数据总线, 3.6Mb 的配置数据需要
28ms 配置进入 XC6SLX16 FPGA 中。
同样时钟频率下,并行配置模式必然比串行配置模式快。
在菊花链中配置一片
FPGA 必然比配置多片
FPGA 快。但是如果多片
FPGA 并联
独立分开配置速度是可以确定。
在主动模式下, FPGA 内部产生 CCLK 配置时钟信号, CCLK 可由用户设置,最大
CCLK 频率的设置取决于存放配置数据的非易失性存储器的读速率,
一个高速的存 储器必然是配置加快。
假如单板上有一个可用的外部时钟,可以使用
XILINX 平台 FLASH FPGA 进行
被动配置。
1.4 加密技术
和处理器加载代码一样,
FPGA 的配置比特流会在上电的时候加载进入
FPGA 中。这就
意味着比特流会被人盗取。
同样和处理器一样, S6 有多种技术用来保护
FPGA 比特流。 XC6SLX75/T XC6SLX100/T
XC6SLX150/T 有片上 AES 解密逻辑来保证
S6 的高度安全性能。
2 配置接口
2.1 配置模式选择接口
S6 的配置模式选择由
M[1:0] 来进行选择。
并行配置模式的总线位宽是由配置逻辑自动侦测的。
不管 FPGA 出于何种配置模式下面,
S6 4 条专用的 JTAG 引脚一直是可用的。
S6 默认设置为被动串行模式,在模式设置管脚
M[1:0] 内部有上拉电阻。
2.2 JTAG 接口
对于 JTAG 接口来说, 没有一种指定的模式, 只要 FPGA 上电之后, 不管任何时候 JTAG
接口作为配置接口是一直可用的。 2.3 串行配置接口
2.3.1
串行配置管脚
Pin
Type
Dedicated/
Dual-purpose
Description
M[1:0]
I
复用
配置模式选择管脚
CCLK
I/O
复用
JTAG 外的所有配置模式下的配置时钟源
DIN
I
复用
串行配置数据输入,与
CCLK 上升沿同步
DOUT
O
复用
为下游菊花链设备输出串行数据,与
CCLK
降沿同步
DONE
I/O/OD
专用
高电平有效信号,高电平表明
FPGA 配置完成
INIT_B
I/O/OD
复用
M[1:0] 采样之前是一个输入管脚,可以
通过拉低该脚可以延迟
FPGA 的配置;
M[1:0] 采样之后是一个
OD 门低输出有
效信号,低电平指示配置期间发生了
CRC
校验错误;
开启 SEU 侦测的时候, 该管脚保留,可作
I/O 口使用
PROGRAM_B
I
专用
低电平有效信号,异步复位整个
FPGA 芯片 2.3.2
主动串行配置
主动串行配置被设计是使用
XILINX 平台 FLASH PROM 来配置 FPGA
在多片 FPGA 菊花链配置的时候, DOUT 需要接到下游 FPGA DIN 管脚。
CCLK 网络需要进行并行端接。
主动串行模式和主动地
SPI 模式都是通过同样的
M[1:0] 值来进行判定的。因此,
SPI
制管脚、 CSO_B MOSI 在配置的时候都是有效的。
S6 BANK2 供电电压必须和 XILINX 平台 FLASH PROM 供电电压相同。
DONE 管脚默认的是作为带有内部上拉的
OD 门输出管脚, 但是依然建议额外外接一个
上拉电阻。在 BitGen 软件中可以设置
g-DriveDone 来对 DONE 进行驱动。
INIT_B 是一个双向的 OD 门管脚,所以需要外接一个上拉电阻。
BitGen 启动时钟设置必须设置
CCLK ,但实际上软件中进行了默认的设置。
多片 XILINX PROM
可以通过级联来扩展配置存储能力。
在向 XILINX PROM
中烧写程序之前需要将生成的
BIT 文件跟换成为适当格式的文件。
在一些 XILINX PROM 中,复位的极性是可以变成设置。在
S6 的应用中 RESET# 应该
被配置为低电平有效。 主动串行配置仅限于
XILINX 平台 FLASH XCFS/XCFP PROM
不是用的配置管脚如
CSI_B/RDWR_B 可以悬空或接地处理。 它们都是可以复用的管脚。
VFS 存在于 XC6SLX75/T XC6SLX100/T XC6SLX150/T 中,用于 eFUSE 编程使用。
VBA TT 也存在于 XC6SLX75/T XC6SLX100/T XC6SLX150/T 中,为密钥的存储进行
供电。假如不使用
AES 加密, VBA TT 可接 VCCAUX 或者接地或者悬空。
假如 BANK2
供电电压为
1.8V VCCAUX
必须为 2.5V 。假如 BANK2
供电电压为
2.5V/3.3V ,那么 VCCAUX 供电电压可以为
2.5V/3.3V
在上电和配置期间, SUSPEND 管脚必须为低电平。假如
SUSPEND 功能没有使用,这
个管脚需要接地处理。
2.3.3 被动串行配置
在串行菊花链中或者通过外部微处理器配置
FPGA 的时候通常使用的是被动串行配置
模式。配置基本上和主动串行配置相似,除了
CCLK 的方向。 2.3.4
串行配置时序
BIT0 为第一个字节的高位。
在主动配置模式下,等到
M[1:0] 采样之后 CCLK 才会使能。
在被动模式下 CCLK 会自动运行。
2.4 并行配置接口
S6 为并行配置提供一个
8bit/16bit 双向的数据接口, 数据接口不仅可以用来配置数据也
可以进行数据的回读。并行配置的总线位宽是自动侦测的。
主动并行模式下
CCLK 是一个输出,被动并行模式下,
CCLK 是一个输入,可以通过
外部时钟源供给或者使用
GCLK 供给。并行总线也支持多片
FPGA 的配置。
并行配置模式有很多种方式:
单片 FPGA 主动并行配置。
单片 FPGA 被动并行配置,典型为使用一个处理器提供时钟数据。
多片 FPGA 菊花链并行配置,从
PROM 或处理器为多片
FPGA 进行不同的配置。
多片 FPGA 并联并行配置,从
PROM 或处理器为多片 FPGA 进行相同的配置。
在并行配置中需要注意到的是
RDWR_B 是一个复用管脚可以用来作为
BANK2
VREF 来使用,但是当使用并行配置的时候,
RDWR_B 管脚不能用作 VREF 2.4.1 并行配置管脚
Pin
Type
Dedicated/
Dual-purpose
Description
M[1:0]
I
复用
配置模式选择管脚
CCLK
I/O
复用
JTAG 外的所有配置模式下的配置时钟源
D[15:0]
三态 I/O
复用
配置和回读数据总线,与
CCLK 上升沿同步
DONE
I/O/OD
专用
高电平有效信号,高电平表明
FPGA 配置完成
INIT_B
I/O/OD
复用
M[1:0] 采样之前是一个输入管脚,可以
通过拉低该脚可以延迟
FPGA 的配置;
M[1:0] 采样之后是一个
OD 门低输出有
效信号,低电平指示配置期间发生了
CRC
校验错误;
开启 SEU 侦测的时候, 该管脚保留,可作
I/O 口使用
PROGRAM_B
I
专用
低电平有效信号,异步复位整个
FPGA 芯片
CSI_B
I
复用
低电平有效信号,低电平片选使能并行数据总
线,高电平禁止
RDWR_B
I
复用
决定 D[X:0] 总线传输方向,
0= 输入; 1= 输出。
RDQR_B 输入尽在 CSI_B 没有使能的时候发生
改变,否则将会出现一个
ABORT 。当使用并行
配置模式的时候, RDWR_B 管脚不能作为
VREF 来使用
CSO_B
O
复用
低电平有效信号,并行菊花链片选输出管脚, 单片 FPGA 配置时不用
BUSY
O
复用
在回读模式下 BUSY 输出管脚会被使用。
2.4.2
XILINX 平台 FLASH PROM 并行配置
在并行配置模式中,最简单的方法就是直接使用配置
PROM 芯片对 FPGA 进行配置。
这种情况下,设置
FPGA 为主动并行模式, RDWR_B CSI_B 管脚接地保证数据的连续加
载。
PROM FPGA D[X:0] 线路上需要串联匹配电阻防止过冲。
XILINX PROM
需要设置为并行模式。
当使用 XILINX 配置 PROM S6 进行并行配置的时候,
RDWR_B CSI_B 管脚
需要拉低。
主动并行配置的时候,
D[X:0] 总线可以使 X8/X16 模式。 XCFxxP 芯片最大的数据
位宽是 X8 模式。
FLASH PROM 并行配置仅限于
XCFP PROM XCFS PROM 仅支持串行配置。 在配置期间除了 BUSY,FOE_B,FCS_B,FEW_B 之外的 A[25:0] 管脚都是可用的,系
统在这些复用管脚的配置期间必须能够受控。
2.4.3 微处理器并行配置
使用微处理器或
CPLD 进行配置的时候可以使用主动并行配置也可以使用被动并行配
置。当然优先考虑被动模式。
在配置或者回读操作的时候,
DOUT/BUSY 可以被驱动为输出。
FPGA 仅仅用来配置而不会使用回读模式的时候,
CSI_B RDWR_B 管脚可以接地。
2.4.4
并行数据加载
并行接口允许连续和非连续的数据加载。
数据的加载由 CSI_B RDWR_B CCLK 信号
来进行控制。 2.4.4.1 CSI_B
并行模式下的位宽是需要侦测才能决定的,这个侦测过程中不管
CSI_B 是什么状态都
是无效的,在同步字侦测之前,不论
CSI_B 的状态如何,每个时钟沿上都会对
D[0 n] 进行
采样。当同步字侦测结束之后
CSI_B 使能并行总线才会有效,在同步字的中间
CSI_B 是不
允许被取消的。 当 CSI_B 高电平的时候, S6 忽略并行接口, 既不锁存数据, 也不驱动输出,
D[0 n] 高阻状态, RDWR_B 的状态也被忽略。
当同步字 被侦测到之后片选管脚会使能并行总线。在同步字侦测之前,不管
CSI_B
于何种状态 ,D[0 n] 会在每个时钟沿上进行采样。最好不要再同步字发送的发送中间取消
CSI_B 。当 CSI_B 处于高电平的时候,
S6 忽略并行接口,既不进行锁存数据也不进行数据
的输出,此时 D[0 n] 高阻状态, RDWR_B 状态也不 进行考虑。
CSI_B=0 的时候,并行接口使能。
CSI_B=1 的时候,并行接口禁止。
假如 FPGA 通过并行接口配置,而且不需要回读模式,或者是多片
FPGA 并联配置的
时候, CSI_B 可以接地处理。
2.4.4.2 RDWR_B
RDWR_B=0 的时候,数据输入(写入
FPGA 中),配置时使用。
RDWR_B=1 的时候,数据输出(从
FPGA 中读出)。回读模式下使用时
CSI_B
要被取消。
CSI_B 取消的时候 RDWR_B 信号状态被忽略。 对三态数据管脚的读写控制是异步的。
CSI_B 有效的时候, RDWR_B=1 的时候, FPGA 主动的驱动并行数据。假如
CSI_B 有效
的时候 RDWR_B 的状态发生了改变, FPGA 异步侦测到违例,并且驱动
BUSY 信号只是一
ABORT 的发生。直到下一个
CCLK 上升沿到来的时候状态寄存器的状态才会更新。
2.4.4.3 CCLK
并行总线上所有的活动都是同步于
CCLK 的。当 RDWR_B=0 的时候, FPGA CCLK
上升沿采样并行数据管脚。当
RDWR_B=1 的时候, FPGA CCLK 的上升沿更新并行管脚
上的状态。
在被动并行模式下,可以通过暂停
CCLK 来暂停配置。 2.4.5
连续并行数据时序
连续数据加载应用于配置处理器能够提供一个无中断的配置数据流中。
上电之后,配置控制器设置
RDWR_B=0 ,并且使 CSI_B 生效 (CSI_B=0) ,引起 FPGA
驱动 BUSY 信号低电平(该过程是异步的)
。在 CSI_B 有效前 RDWR_B 需要先被驱动为低
电平,否则将会发生
ABORT 事件。
CCLK 的下一个上升沿, FPGA 开始采样数据管脚来判断数据位宽。
数据位宽判定之
后,适当的数据总线位宽为同步字的侦测做准备。当同步字锁存到
FPGA 之后开始配置。
当配置比特流加载完成之后,
FPGA 进入启动程序。 FPGA 通过特定的比特流使
DONE
高电平来来表明
FPGA 进入启动阶段。配置控制器在启动阶段完成之后还会继续发送一会
CCLK 脉冲。
配置完成之后 CSI_B RDWR_B 信号可以取消也可以继续保持。
因为并行端口处于不
活动的状态, RDWR_B 的状态不会再引起一个
ABORT 事件。
并行总线上面只有一个外设的时候,
CSI_B 信号可以接低电平。
不适用回读模式的时候,
RDWR_B 可以接地。 CSI_B 有效地时候 RDWR_B 状态
不能发生改变,否则会引起一个
ABORT 事件。
模式选择管教在
INIT_B 上升沿采样。
RDWR_B 需要在 CSI_B 之前有效以防止
ABORT 事件发生。
CSI_B 有效的时候使能并行接口。
第一个字节会在
CSI_B 有效之后的第一个
CCLK 上升沿载入。
配置比特流在每个
CCLK 上升沿载入一个字节。
当启动命令载入之后,
FPGA 进入启动阶段。
启动阶段持续最少
8 CCLK 周期。
启动阶段 DONE 管脚变为高电平。可以使用额外的
CCLK 来完成启动流程。 配置结束之后 CSI_B 信号可以取消。
CSI_B 信号取消之后, RDWR_B 也可以取消。
数据总线可以是 X8/X16 模式。
2.4.6
间断并行数据时序
间断数据配置应用于配置控制器不能提供一个无中断的配置数据流中。
例如,当控制器
需要从其他地方读取额外的数据的时候,就需要暂停配置。
暂停配置有两种方法:
取消 CSI_B 信号,此时 CCLK 依然能够自由运行。
控制 CCLK ,延迟 CCLK
仅当 FPGA 加载同步字的时候
CSI_B 信号不能被取消。
2.4.6.1 控制 CSI 信号
用户拉低 RDWR_B 管脚设置 D[0 n] 为配置输入管脚。如果不适用回读模式,则
可以讲 RDWR_B 直接接地。 CSI_B 有效的时候 RDWR_B 是不可以进行转换的,
否则会引发一个 ABORT 。当然在同步字加载的时候
CSI_B 不能取消。
并行总线上仅有一片外设的时候,
CSI_B 可以接地。 2.4.6.2 控制时钟信号
CSI_B 取消的时候,数据管脚处于高阻状态。数据总线可以是
X8/X16 模式的。
CSI_B 取消的时候, RDWR_B FPGA 没有任何影响。
2.4.7
并行数据位号序列
大部分情况下,并行配置都是使用外部的微控制器、
CPLD FPGA 等。这种应用下面
就必须了解配置文件中
D[0 n] FPGA 对应的高低位是否恰当。
在并行 X8 模式下。配置数据在每个
CCLK 的时候加载一个字节,每个字节的高位在
D0 管脚,低位在 D7 管脚。
2.5 SPI 配置接口
主动串行外围接口( SPI )允许使用一个
SPI 串行 FLASH 存储配置数据。 S6 可以允许
使用一个工业标准的
SPI 串行 FLASH PROM 直接连接进行配置。虽说
SPI 是一个标准的 4
线接口,但是不同的
SPI FLASH 却不一定使用相同的读命令和协议。
SPI 配置也分为
X1/X2/X4 三种配置模式。在
X2 模式中, D 管脚作为一个服用管脚,可以作为数据输入
/
出管脚。在 X4 模式中, 2 跟额外的数据管脚会被使用到。
SPI 串行菊花链的配置仅在
X1
式下面生效。
SPI 串行 FLASH 的编程可以直接通过
iMPACT 编程软件来进行。该软件可以通过
S6
来对 FLASH 进行配置文件的下载。 2.5.1
SPI 配置管脚
Pin
Type
Description
During
Configuration
After
Configuration
M[1:0]
I
配置模式选择管脚
INIT_B 上升
沿采样
I/O
HSWAPEN
I
I/O 上拉控制
HSWAPEN=0 :配置过程 I/O 口上拉
HSWAPEN=1 :配置过程无上拉
配 置 期 间 驱
动 为 有 效 状
I/O
MOSI/
MISO[0]/
CSI_B
I/O
主动 FPGA 串行数据输出、主动
FPGA 串行数据输入
连接到 SPI FLASH PROM 的被动
串行数据输入管脚
FPGA 发送读
命 令 和 起 始
PROM 的 串
行数据输入
I/O
DIN/D0/
MISO/
MISO[1]
I
主动 FPGA 串行数据输入、 被动 SPI
FLASH 输出。连接 SPI FLASH
动数据输出管脚
FPGA 接受来
PROM
串 行 输 出 数
I/O
CSO_B
O
主动 SPI 片选输出。低电平有效
连接到 SPI FLASH 的被动片选输入
HSWAPEN_
B=1 的时候,
需 要 外 接 上
拉电阻
配 置 结 束 之
CSO_B 高电
平 禁 止 SPI
FLASH ,同时
MOSI/DIN.C
CLK 作为普 I/O
CCLK
O
配置时钟, FPGA 内部晶振产生,
连接到 SPI FLASH 的被动时钟输入
驱 动 PROM
时钟输入
I/O 。不用时
接 高 电 平 或
低电平
DOUT
O
串行数据输出。用于多片
FPGA
花链配置
单 片 FPGA
中不使用。 内
部 上 拉 不 会
主动驱动。 菊
花 链 配 置 时
连 接 到 下 游
FPGA DIN
I/O
INIT_B
OD/I/O
初始化指示。低电平有效
SPI
FLASH 在上
电 之 后 要 求
2ms 内 部 复
位时间, 需要
拉蒂 INIT_B
PROM
备完毕。
使
POST_CRC
时为 I/O 。需
要 外 接 上 拉
电阻
DONE
OD/I/O
配置完成指示。
专用引脚, 外
接上拉电阻
PROGRA
M_B
I
FPGA 编程。低电平有效。
低电平大于等于
500ns 强制清空配
置 存 储 器 进 行 重 新 配 置 ,
PROGRAM_B
返回高电平之后充
DONE/INIT_B
高 电 平 开 始
配置
PORGRAM_
B 低 电 平 强
FPGA I/O
高阻。
MISO[3:2]
I
主动 FPGA 串行数据输入, 被动 SPI
串行输出
尽 在 快 速 读
取 是 输 出 命
I/O 2.5.2
X1 模式 SPI 配置
FLASH FPGA 的数据路径上应该添加匹配电阻减小过冲。
FPGA BANK2 的电压和 SPI FLASH 的供电电压应该相同。
CSO_B MOSI CCLK 下降沿锁定。
DIN CCLK 上升沿锁定。
SPI FLASH 上面的其他管脚,比如
WP/HOLD 管脚,在 FPGA 配置过程中没有使用。
应该按照 SPI FLASH 规格书中描述的接法做相应的处理。
HSWAPEN 管脚悬空或接高电平的时候,
CSO_B 需要外接一个上拉电阻。
使用 FPGA 内部晶振的时候可以通过
BitGen ConfigRate 来设置 CCLK 频率。 也可以
使用外部始终原来供给
CCLK 使用。
DONE 管脚是带有内部上啦的
OD 门输出,最好外接上拉电阻。
在启动过程 DONE 释放的周期中,当数字时钟管理(
DCM )或者 PLL 锁相环等待是能
的时候, FPGA 继续接收数据直到启动等待条件出现,或者
DONE 管脚释放。 2.5.3
X4 模式 SPI 配置
S6 还支持 X4 模式下的主动 SPI 配置。
上图所示连接中使用的是
WINBOND W25Q 系列 FLASH 。如果要使能 X4 输出操
作模式,用户需要设置
FLASH QE status_reg[9]=1 。这个设置在 iMPACT
程的过程中进行。
CCLK 可以使 FPGA 内部晶振产生也可以是外部时钟源输入产生。
PROGRAM_B/INIT_B/M0
管脚内部有默认的上拉电阻。
软件对 X4 的支持需要在
BitGen 中设置 X4 使能。
SPI FLASH 的编程需要一个专用的寄存器设置,这个设置可以在
iMPACT 软件中
设置使能 X4 输出。
2.5.4
主动 SPI 自动侦测和错误处理
SPI 读命令是自动选择的,在初始化
FPGA 配置的时候使用一个循环读命令机制。
SPI
X2/X4 的应用就是使用这个机制来进行初始化数据的加载的。
FPGA 发出第一个设置命令
的时候, Mode_Reg 中读命令改变,通过
IPROG 命令,配置改变为
X2/X4 模式。这就需要
BitGende spi_buswidth 选项中进行 SPI X2/X4 命令的设置。
循环机制如下图: 2.5.5
主动 SPI 时序
FPGA 发出第一个读命令(操作码
03H ),假如这个读命令没有返回一个同步字,
FPGA
就会发出第二个读命令(操作码
E8H )。 2.5.6
主动 SPI X2/X4 读命令
S6 的主动 SPI 配置模式支持 Winbond W25Q Quad I/O SPI FLASH 存储器 X2/X4 位宽读
指令。在 BitGen spi_buswidth 选项设置生成 .bit 文件可以是能这种配置方式。
FPGA X1
模式初始化 FLASH ,再以 X2/X4 模式加载。
X2 模式下, X2 快速输出指令( 3Bh )类似于标准的快速输出指令(
0Bh ), DO/DIO
代了 DO 变成了两个管脚输出。
X4 模式下, X4 快速输出指令是
6Bh 2.5.7
上电配置注意事项
上电的时候 ,FPGA 会自动的开始配置流程。 当 FPGA 处于主动串行 SPI 配置模式的时候,
FPGA CSO_B 拉低片选 SPI FLASH 并且发送一个读命令给
SPI FLASH 。需要注意的是在
FPGA SPI FLASH 进行片选发送读命令之前,
SPI FLASH 必须已经完成初始化并且能够
接受命令。这就需要考虑上电时序和上电时间。
控制上电时序,保证
SPI FLASH FPGA 开始配置之前商店完成并且准备好。
保持 PROGRAM_B 低电平延迟 FPGA 配置直到 SPI 商店完成能够接受命令的时候
释放 PROGRAM_B 高电平。
保持 INIT_B 低电平延迟 FPGA 配置。 .
2.5.8
SPI 串行菊花链
在串行菊花链的应用中, 第一级设备使用
SPI 模式, 下游的后级设备都是用被动串行模
式。这样所有的配置比特流都可以存放在一个
SPI 外设中, 主动和被动串行菊花链的比特流
格式基本上都是一样的。
2.6 主动 BPI 配置接口
通过主动字节宽度外设接口(
BPI ), S6 可以通过工业标准的并行
NOR FLASH 来配置
自己。 S6 支持最大 26bit 地址 512Mb 容量的并行 NOR FLASH
当使用 BPI 配置接口的时候, BNAK1 DDR 控制器不能使用。因为在
BANK1
中的复用管脚上面,要么作为
DDR 控制接口使用,要么作为
BPI 配置接口使用。
XC6SLX4 XC6SLX25/T 不支持 BPI 配置接口。 TQG144/CPG196 封装 S6 不支持 BPI 接口。
CSG225 封装中不存在地址管脚
A22/A23
iMPACT 编程软件可以通过间接编程工具完成对
NOR FLASH 启动的编程。
FPGA 驱动 26 跟地址线去访问与其相连接的并行
FLASH 。进行 FPGA 配置的时候只能
使用异步读取模式,这种模式下,
FPGA 驱动地址总线, FLASH PROM 驱动数据比特流发
送给 FPGA 。总线位宽支持
X8/X16 模式。假如并行
NOR FLASH 也支持 X8/X16 模式,必
须将 BYTE# 信号接到合适的状态。
FPGA 方面总线位宽是自动侦测的。
在主动 BPI 模式下,当使用并行
NOR FLASH 的时候, CCLK 输出不接在并行
NOR
FLASH 上面。但是 FLASH 的数据依然会在
CCLK 的上升沿进行采样。
并行 BPI 模式下,地址从
0 开始,每次加
1 ,直到 DONE 管脚做出指示。假如地址达
26 h3FFFFFF( 最大值 ) 但是配置依然没有完成,计数器又会从
0 开始。
2.6.1
BPI 配置接口管脚
Pin
Type
Dedicated/
Dual-Purpose
Description
M[1:0]
I
复用
使用并行 NOR FLASH 进行并行主动配置时为
00
HSWAPEN
I
复用
配置过程中 I/O 上拉选择,内部弱上拉。
HSWAPEN=0 :配置过程中上拉。
HSWAPEN=1 :配置过程 I/O 三态
DONE
I/O/
OD
专用
配置完成高电平指示
INIT_B
I/O/
OD
复用
模式采样之前,拉低
INIT_B 延迟配置。
模式采样之后,低电平表明配置过程
CRC 错误。
SEU 侦测使能的时候, INIT_B 保留不能作为 I/O 使
PROGRAM_B
I
专用
低电平异步复位 CCLK
O
复用
配置时钟输出。
不连接到 NOR FLASH 上面,但是却在内部作为地
址和数据的参考时钟。
FCS_B
O
复用
低电平片选有效信号。
配置过程中驱动低电平,配置完成后三态。配置过
程中内部弱上拉,配置结束之后内部弱下拉。
FOE_B
O
复用
低电平输出使能信号。
配置过程中驱动低电平,配置完成后三态。配置过
程中内部弱上拉,配置结束后内部弱下拉。
FEW_B
O
复用
低电平写使能。
配置过程中驱动高电平,配置结束后三态。配置过
程中内部弱上拉,配置结束之后内部弱下拉。
A[25:0]
O
复用
地址输出
D[15:0]
I
复用
数据输入,在 CCLK 的上升沿采样
CSO_B
O
复用
并行菊花链中的低电平片选信号,
单一 FPGA 配置
的时候不用
HDC
O
复用
High During Configuration 配置过程高电平。
可以连接在 FLASH 上面控制是 X8/X16 输出。
LDC
O
复用
Low During Configuration 配置过程低电平。
可以连接在 FLASH 上面控制是 X8/X16 输出。 2.6.2
主动 BPI 配置
CCLK 必须悬空,不能接高电平也不能接低电平,不需要被驱动。
CCLK 是作为配置过
程中操作的时钟源。
M[1:0]=00
上图为 X16 模式,如果使用 X8 模式的配置,仅仅使用
D[7:0]
BANK1 BANK2 供电电压必须相同,因为这些管脚都是与
FLASH 进行连接。
A24/A25 存在于部分型号中的
BANK5
比特流的发送与
SelectMAP 模式下的位交换规则相同。
假如不用对 FLASH 进行编程, FPGA FCS_B/FOE_B/FEW_B 可以不用, DONE 连接
FLASH FCS_B FLASH FOE_B 接低电平, FLASH FEW_B 接高电平。
假如 HSWAPEN 悬空或接高电平, FCS_B 需要一个上拉电阻。
需要特别注意的是
FLASH FPGA 地址低位和高位不要弄反了,不是所有的
FLASH
都是以 A0 作为低位的。 2.6.3
BPI 配置时序
BPI 模式下 CCLK 是输出。并行 NOR FLASH 数据的采集是在
CCLK 的上升沿进行的。
DONE 高电平之后 S6 停止比特流的加载。
复用 I/O 管脚在 GTS_cycle 之后由配置管脚变为普通
I/O 。默认情况下这个周期是
DONE
管脚高电平之后的一个周期。
数据可以使 X8/X16 模式,地址最高支持
X25
FCS_B/FOE_B/FEW_B 配置完成后也需要内部配置为上拉,或者外接上拉电阻。
由于初始化的原因,第一个地址
0 在主动 BPI 模式下会延长很长的周期。
2.6.4
上电注意事项
SPI 上电注意事项相仿。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值