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配置总线时序图

时间: 2024-12-16 12:56:35

Spartan6系列之芯片配置模式详解的相关文章

httpd(2.2&2.4)RPM搭建配置定义详解

一.RPM包安装配置程序环境 1.CentOS6系列(默认httpd2.2) (1)配置文件:/etc/httpd/conf/httpd.conf.  /etc/httpd/conf.d/*.conf() (2)服务脚本:/etc/rc.d/init.d/httpd 配置文件:/etc/sysconfig/httpd (3)主程序文件:/usr/sbin/httpd.  /usr/sbin/httpd.event.  /usr/sbin/httpd.worker (4)日志文件目录:/var/l

ST MCU_GPIO的八种工作模式详解。

补充: N.P型的区别,就是一个为正电压启动(NMOS),一个为负电压启动(PMOS) GPIO的八种工作模式详解 浮空输入_IN_FLOATING带上拉输入_IPU带下拉输入_IPD模拟输入_AIN开漏输出_OUT_OD推挽输出_OUT_PP开漏复用输出_AF_OD推挽复用输出_AF_PP4输入 + 2 输出 + 2 复用输出,一共是8种模式,以下是八种模式的工作原理: GPIO浮空输入_IN_FLOATING模式工作原理以上截图就是浮空输入模式的原理图,图中阴影的部分在浮空输入模式下是处于不

Javascript设计模式之装饰者模式详解篇

一.前言: 装饰者模式(Decorator Pattern):在不改变原类和继承的情况下动态扩展对象功能,通过包装一个对象来实现一个新的具有原对象相同接口的新的对象. 装饰者模式的特点:1. 在不改变原对象的原本结构的情况下进行功能添加.2. 装饰对象和原对象具有相同的接口,可以使客户以与原对象相同的方式使用装饰对象.3. 装饰对象中包含原对象的引用,即装饰对象是真正的原对象经过包装后的对象. 二.Javascript装饰者模式详解: 描述:装饰者模式中,可以在运行时动态添加附加功能到对象中.当

Icehouse版keystone配置完全详解(更新中)

本文全面解读Icehouse发行版keystone的配置文件keystone.conf [DEFAULT]admin_token=(string value)# 这是一个公知的密码,用于初始化keystone,强烈建议在生产模式中禁用,只需要在# keystone-paste.ini文件中移除AdminTokenAuthMiddleware这个pipeline即可 public_bind_host=(string value)# The IP Address of the network int

jquery的uploadify插件多文件上传配置参数详解

最近做了个多文件上传,需要限制上传文件类型的例子.以前没做过找了一些资料,下次有用.同时也给大家做参考. uploader: uploadify.swf 文件的相对路径,该swf文件是一个带有文字BROWSE的按钮,点击后淡出打开文件对话框,默认值:uploadify.swf. script: 后台处理程序的相对路径 .默认值:uploadify.php checkScript:用来判断上传选择的文 件在服务器是否存在的后台处理程序的相对路径 fileDataName:设置一个名字,在服务器处理

"MindManager"学习iOS系列之"CAAnimation-核心动画"详解,让你的应用“动”起来。

"MindManager"学习iOS系列之"CAAnimation-核心动画"详解,思维导图内展示了CAAnimation-核心动画的大多数基本功能和知识,每个part都有代码讲解,展示出CAAnimation-核心动画的清晰轮廓,编者提供了"JPG"."SWF"."PDF"."Word"."Mmap"格式的源文件供给使用.注意:JPG格式仅为图片总览,SWF格式使用

九爷带你了解 nginx 日志配置指令详解

nginx日志配置指令详解 日志对于统计排错来说非常有利的. 本文总结了nginx日志相关的配置如 access_log.log_format.open_log_file_cache.log_not_found.log_subrequest.rewrite_log.error_log. nginx有一个非常灵活的日志记录模式.每个级别的配置可以有各自独立的访问日志.日志格式通过log_format命令来定义.ngx_http_log_module是用来定义请求日志格式的. 1. access_l

Mysql 配置参数详解以及优化配置

mysql有以下几种日志: 错误日志:   log-err 查询日志:   log 慢查询日志:  log-slow-queries 更新日志:   log-update 二进制日志: log-bin 要把日志生成在 /var/log 目录下(是系统日志存放的地方,只有 root 账号有写权限),需要 MySQL进程对这个目录有读写权限,一般是不这么做的,也考虑到安全问题,包括 MySQL 本身的数据安全,因为对 MySQL 的所有操作,都会记录到常规查询日志.MySQL的日志就不要用 /var

Android M新特性Doze and App Standby模式详解

参考: Optimizing for Doze and App Standby Android M新特性Doze and App Standby模式详解 深入android6.0 设备 idle状态 Android M 的 Doze 模式下第三方推送服务还能用吗? 一.Optimizing for Doze and App Standby 从Android6.0开始,Android提供了两种省电延长电池寿命的功能:Doze和App Standby: 表现形式:当设备没有连接到电源,设备进入Doz