Spartan6系列之芯片配置模式详解
1. 配置概述
Spartan6系列FPGA通过把应用程序数据导入芯片内部存储器完成芯片的配置。Spart-6 FPGA可以自己从外部非易失性存储器导入编程数据,或者通过外界的微处理器、DSP等对其进行编程。对以上任何一种情况,都有串行配置和并行配置之分,串行配置可以减少芯片对引脚的要求,并行配置对8bit/16bit Flash或者微处理器来说更合适。
因为Xilinx的FPGA器件的配置数据存储在CMOS 配置锁存器内(CCL),因此Spartan6 FPGA器件上电后必须重新配置。Spartan6器件有多种配置模式,包括:
- JTAG配置模式
- Master Serial/SPI配置模式(X1,X2,X4)
- Slave Serial配置模式
- Master SelectMAP/BPI配置模式(X8,X16)
- Slave SelectMAP配置模式(X8,X16)
Spartan6系列FPGA的配置模式由引脚M[0:1]的状态决定(详细介绍见Spartan6系列之器件引脚功能详述),在主配置模式中,CCLK默认来自与内部的振荡器,也可以来自外部的GCLK0/USERCCLK.,the BitGen -g ConfigRate选项可以设置内部时钟的振荡频率,默认频率为2MHZ;无论M[0:1]状态如何,JTAG配置始终可用。
对一个FPGA系统来说,可以有多种配置模式,但往往只有一种配置模式最适合自己的目标系统,应该要进行慎重的选择。当然,FPGA可以重新装载多个镜像文件,因此可以为1片FPGA提供多个配置文件,典型的应用为:当FPGA上电时,装载一个自检的镜像文件,完成自检后重新装载最终的应用程序镜像文件。这种方法可大大提高FPGA的使用效率。
因为FPGA的外部存储器可以存储多个镜像文件,因此可以通过FPGA正在使用(已装载的镜像)更新外部存储器内容,实现远程镜像更新升级。
1.1. 主模式配置(master mode)
由FPGA自身将外部存储器的配置数据装载进内部的模式称为主模式配置;主配置模式的各种连接方式如下图1所示,左侧为串行配置连接方式,右侧为并行配置连接方式。

图 1主配置模式连接方式汇总
1.2. 从模式配置(slave mode)
由外部器件(主要指处理器)对FPGA进行配置的模式成为从模式;从配置模式的各种连接方式如下图1所示,左侧为串行配置连接方式,右侧为并行配置连接方式。

图 2从配置模式连接方式汇总
2. 具体配置模式详解
Spartan-6系列FPGA的配置模式由模式控制引脚决定,具体情况如表1所示。
表格 1Spartan-6 FPGA配置模式

2.1. JTAG配置模式
在任何情况下,只要FPGA上电,就可以使用JTAG模式。
2.2. Serial配置模式
在serial配置模式中,FPGA在每个CCLK周期载入1bit配置数据。

图 3Serial Configuration时序图
2.2.1. Master Serial配置模式
在配置完成之前,done信号为0,将在整个配置过程中片选platform Flash;program_B是在配置FPGA之前对FPGA进行异步复位;由时序图可以看出,若没有CRC错误,FPGA的INIT_B是作为输出始终将platform Flash的OE置高。

图 4Master Serial Mode 配置电路图
2.2.2. Slave Serial配置模式
对FPGA的异步复位(PROGRAM_B)既可以由外部器件如按钮产生,也可以由CPLD或microprocessor产生;数据及时钟信号均由CPLD等产生;

图 5Slave Serial 配置模式
2.3. SelectMAP配置模式
SelectMAP配置接口提供了8/16bit双向数据接口,即可用于对FPGA的配置,也可用于对FPGA配置数据的回读。在SelectMAP模式中有多种配置思路,例举如下:
- 单FPGA的master SelectMAP配置
- 单FPGA的slave SelectMAP配置
- 多个FPGA呈菊花链连接形式以SelectMAP总线配置不同image
- 多个FPGA呈并列一组形式以SelectMAP总线配置同一个image
表格 2 SelectMap接口中需特别说明的接口信号
|
引脚名 |
方向 |
用途 |
功能描述 |
|
CSI_B |
Input |
双用途 |
低电平使能SelectMap的数据总线 |
|
RDWR_B |
Input |
双用途 |
决定数据总线的方向,0代表输入,1代表输出; |
|
CSO_B |
Output |
双用途 |
菊花链模式中低有效的输出片选信号,当只有1片FPGA时,可不连接 |
|
BUSY |
Output |
双用途 |
回读时使用 |

图 6 SelectMap配置接口
SelectMap配置模式有多种时序,因控制信号的不同而不同,主要有三种:连续的SelectMap配置模式数据载入时序、非连续数据总线可控的SelectMap配置模式数据载入时序、非连续时钟可控的SelectMap配置模式数据载入时序。数据总线宽带可以是8/16bit宽,数据宽度取决于配置启动阶段对数据总线采样的结果,在启动阶段,数据总线会输出特殊的标志数据。

图 7连续的SelectMap配置模式数据载入时序

图 8非连续数据总线可控的SelectMap配置模式数据载入时序

图 9非连续时钟可控的SelectMap配置模式数据载入时序
2.3.1. 单FPGA的Master SelectMap配置模式
在主模式下,CSI_B和EDWR_B接地,使能了SelectMap的数据线并使数据线的方向为输入;因为是单FPGA,所以不需要用到CSO_B,浮置即可。

图 10单FPGA的主SelectMap配置模式
2.3.2. 单FPGA的Slave SelectMap配置模式
当使用CPLD/Microprocessor来配置FPGA时,即可使用master SelectMap模式也可使用slave SelectMap模式,但优先使用Slave SelectMap配置模式。当CPLD/Microprocessor的SELECT等于0时,将使能FPGA的SelectMap配置模式数据总线;当CPLD/Microprocessor的READ/WRITE为0时,FPGA的SelectMap配置模式数据总线方向为输入,这时可以将配置数据输入到FPGA内部。

图 11单FPGA的从SelectMap配置模式
2.4. SPI配置模式
SPI配置模式只能工作于主模式,SPI接口允许FPGA把标准的工业SPI Flash作为配置数据存储介质。需要注意的是,在FPGA呈菊花链连接模式中,FPGA的SPI模式配置只能选择SPIX1方式,不能选择SPIX2或SPIX4模式。要使能FPGA的SPIX4的配置模式,需要在ise的BitGen选项里增加“-g: spi_buswidth:4”。

图 12Spartan-6 FPGA SPI配置接口
|
引脚名 |
方向 |
描述 |
配置之后 |
|
MOSI/MISO[0]/CSI_B |
Input/Output |
FPGA串行数据输出/输入;连接到SPI Flash的从数据输入引脚 |
User IO |
|
DIN/D0/MISO/MISO[1] |
Input |
主FPGA数据输入从SPIFlash数据输出端口;连接到SPI Flash的数据输出口 |
User IO |
|
CSO_B |
Output |
片选信号,低有效 |
User IO |
|
DOUT |
Output |
串行数据输出,在FPGA的菊花链中使用,连接到下一片FPGA的DIN引脚 |
User IO |
|
MISO[3:2] |
Input |
主FPGA串行数据输出从SPI Flash数据输出引脚 |
User IO |

图 13Spartan-6 FPGA SPI配置接口电路图
不同数据线传输模式根据SPI总线每次传输的命令区分,Single_Read的命令操作码:0x03或0xE8;Dual_Read的命令操作码:0x3B;Quad_Read的命令操作码:0x6B。

图 14SPI总线Single_Read时序

图 15SPI总线Dual_Read时序

图 16SPI总线Quad_Read时序
2.5. BPI配置接口
BPI:Byte-Wide Peripheral Interface,字节宽度外设接口。FPGA可以从一个工业标准的并行NOR Flash读取配置数据。Spartan-6 FPGA最高支持1Gb的NOR Flash,也就是说地址线最高可达26根,但是并不是每种Spartan-6 FPGA都支持BPI配置或者26位的地址线的,具体情况例举如下:
- MCB-M1(Bank1的存储器控制模块)可以用作BPI配置接口,但是,用户只能选择将MCB_M1用作存储器控制接口或者BPI之一,不能同时作为两种接口使用。
- 6SLX4 、6SLX25/T FPGA不支持BPI配置接口。
- TQG144 和 CPG196封装的FPGA不支持BPI配置接口。
- CSG225封装中BPI配置地址线A22、A23不可用。

图 17BPI配置接口
表格 3BPI配置中特殊引脚说明
|
引脚名 |
方向 |
功能描述 |
|
FCS_B |
Output |
低有效的Flash片选信号 |
|
FOE_B |
Output |
低有效的Flash输出使能信号 |
|
FWE_B |
Output |
低有效的写使能信号 |
|
A[25:0] |
Output |
地址线 |
|
D[15:0] |
Output |
数据线 |
|
CSO_B |
Output |
FPGA菊花链连接时使用 |
|
HDC |
Output |
FPGA配置期间为高电平,用于16bit宽Flash的字节选择 |
|
LDC |
Output |
FPGA配置期间为低电平,用于16bit宽Flash的字节选择 |

图 18BPI配置总线电路连接图

图 19BPI配置总线时序图
Spartan6系列之芯片配置模式详解的更多相关文章
- Solr系列二:solr-部署详解(solr两种部署模式介绍、独立服务器模式详解、SolrCloud分布式集群模式详解)
一.solr两种部署模式介绍 Standalone Server 独立服务器模式:适用于数据规模不大的场景 SolrCloud 分布式集群模式:适用于数据规模大,高可靠.高可用.高并发的场景 二.独 ...
- Linux网络配置:Nat和桥接模式详解
Linux网络配置:Nat和桥接模式详解 一.我们首先说一下VMware的几个虚拟设备: Centos虚拟网络编辑器中的虚拟交换机: VMnet0:用于虚拟桥接网络下的虚拟交换机: VMnet1:用于 ...
- Android Studio系列教程五--Gradle命令详解与导入第三方包
Android Studio系列教程五--Gradle命令详解与导入第三方包 2015 年 01 月 05 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://s ...
- ST MCU_GPIO的八种工作模式详解。
补充: N.P型的区别,就是一个为正电压启动(NMOS),一个为负电压启动(PMOS) GPIO的八种工作模式详解 浮空输入_IN_FLOATING带上拉输入_IPU带下拉输入_IPD模拟输入_AIN ...
- Cocos2d-x win7 + vs2010 配置图文详解
Cocos2d-x win7 + vs2010 配置图文详解 下载最新版的cocos2d-x.打开浏览器,输入cocos2d-x.org,然后选择Download,本教程写作时最新版本为cocos2d ...
- Javascript设计模式之装饰者模式详解篇
一.前言: 装饰者模式(Decorator Pattern):在不改变原类和继承的情况下动态扩展对象功能,通过包装一个对象来实现一个新的具有原对象相同接口的新的对象. 装饰者模式的特点: 1. 在不改 ...
- reids配置参数详解
转自:http://www.jb51.net/article/60627.htm reids配置参数详解 #daemonize no 默认情况下, redis 不是在后台运行的,如果需要在后台运行, ...
- Java开源生鲜电商平台-盈利模式详解(源码可下载)
Java开源生鲜电商平台-盈利模式详解(源码可下载) 该平台提供一个联合买家与卖家的一个平台.(类似淘宝购物,这里指的是食材的购买.) 平台有以下的盈利模式:(类似的平台有美菜网,食材网等) 1. 订 ...
- ext.js的mvc开发模式详解
ext.js的mvc开发模式详解和环境配置 在JS的开发过程中,大规模的JS脚本难以组织和维护,这一直是困扰前端开发人员的头等问题.Extjs为了解决这种问题,在Extjs 4.x版本中引入了MVC开 ...
随机推荐
- 2016/1/27 1, File 创建 删除 改名 换路径 2,输出流 不覆盖 换行输入 3,输入流
1, File 创建 删除 改名 换路径 package Stream; import java.io.File; import java.io.IOException; public cla ...
- mongodb配置复制集replset
Mongodb的replication主要有两种:主从和副本集(replica set).主从的原理和mysql类似,主节点记录在其上的所有操作oplog,从节点定期轮询主节点获取这些操作,然后对自己 ...
- Vijos 1144 小胖守皇宫 【树形DP】
小胖守皇宫 描述 huyichen世子事件后,xuzhenyi成了皇上特聘的御前一品侍卫. 皇宫以午门为起点,直到后宫嫔妃们的寝宫,呈一棵树的形状:某些宫殿间可以互相望见.大内保卫森严,三步一岗,五步 ...
- 查看jvm常用命令
jinfo:可以输出并修改运行时的java 进程的opts. jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号. jstat:一个极强 ...
- 用C语言实现websocket服务器
Websocket Echo Server Demo 背景 嵌入式设备的应用开发大都依靠C语言来完成,我去研究如何用c语言实现websocket服务器也是为了在嵌入式设备中实现一个ip camera的 ...
- 10.06 WZZX Day1总结
今天迎来了WZZX的模拟.打开pdf的时候我特别震惊,出题的竟然是神仙KCZ!没错,就是那个活跃于各大OJ,在各大OJ排名靠前(LOJ Rank1),NOI2018 Rank16进队的kczno1!! ...
- vue 目录结构介绍
1 初始目录如下: 2 目录结构介绍 bulid:最终帆布的代码存放位置 config:配置目录,包括端口号等 node_modules:npm加载的项目依赖模块 src:z这里是我们要开发的目录,基 ...
- js中setInterval() 和 setTimeout()
setInterval() 方法 定义和用法 setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式. setInterval() 方法会不停地调用函数,直到 clearI ...
- 百度上传组件 WebUploader
WebUploader http://fex.baidu.com/webuploader/doc/index.html WebUploader API 文档详细解读 源码以及示例:https://gi ...
- MySQL 目录结构信息
bin 目录,存储可执行文件. data 目录,存储数据文件. docs 目录,文档. include 目录,存储包含的头文件. lib 目录,存储库文件. share 目录,错误信息和字符集文件.