文档库 最新最全的文档下载
当前位置:文档库 › fpga配置

fpga配置

fpga配置
fpga配置

基于CPLD的FPGA快速配置电路的设计

张洪刚,邢焕革,王德石

海军工程大学兵器新技术应用研究所,湖北武汉 430033

2008-07-17

摘要:介绍了采用CPLD和Flash器件对FPGA实现快速并行配置,并给出了具体的硬件电路设计和

关键模块的内部编程思路。

关键词: FPGA 并行配置 Flash CPLD

基于SRAM工艺的FPGA(现场可编程门阵列)具有集成度高、逻辑功能强等特点;应用FPGA进行数字电路设计,不但能减小电路的体积,提高系统运行的可靠性,而且其先进的开发工具可使电路设计和系统调试周期大大缩短;FPGA可无限次重复擦写,可使数字系统在线重新配置,设计更加灵活,功能更加强大,且易于更改和升级。由于FPGA中静态随机存储器(SRAM)掉电后数据会丢失,系统每次上电后需重新配置数据,如何快速、高效地将配置数据写入目标器件,并且保证其在掉电后再次上电能自动可靠地恢复配置,就成为整个系统的关键所在。本文就基于CPLD的FPGA并行数据配置方法和配置电路的设计进行初步的研究,并给出具体的硬件电路设计和关键模块的内部编程思路。

1 FPGA数据配置方法比较

实现FPGA的数据配置方法有很多,但根据器件类型和应用场合,Xilinx公司为其FPGA系列产品提供了多种数据配置方式,归纳起来主要有以下四种[3]:①采用JTAG方式加载;②采用主串方式加载;③采用

从串方式加载;④采用并行方式加载。

JTAG方式数据加载方法是基于IEEE1149.1和IEEE1532的配置模式,通过TDI、TDO、TMS和TCK四根信号线接到FPGA上的相应引脚实现数据加载。这种方式电路结构简单、工作可靠、无需外接PROM等存储器件进行数据配置,但需要专用的数据配置电缆,因此该方法适用于数字系统的开发阶段。

主串方式数据加载方法是通过串行方法读取专用PROM存储介质中数据,实现FPGA的在线配置的,其配置时钟由FPGA内部送出。这种方式电路实现较为简单,但该配置方式必须使用Xilinx公司生产的专用

PROM,应用不灵活。

从串方式数据加载方法类似于主串方式,但配置时钟由FPGA外部提供,需要设计专用电路控制整个配

置过程。

并行方式数据加载方法是通过并行方法读取通用Flash或E2PROM等存储介质中的数据,实现FPGA的在线配置的。由于采用并行方式,八位数据可同时被写入FPGA,数据配置速度最快。其配置时钟由外部提供,需要设计专用电路控制整个配置过程。常用的配置控制器可以是各类处理器、微控制器或可编程逻辑器件,目前应用较多的是采用单片机和E2PROM构成控制电路。随着FPGA规模和性能的不断提升,其配置文件越来越大,对配置速度的要求也越来越高,所以快速的并行配置方式必将得到越来越广泛的应用。

2 FPGA并行方式数据配置原理

采用并行方式进行FPGA数据配置时,其相关配置引脚可分为专用配置引脚和非专用配置引脚。专用配置引脚包括:配置模式引脚M2、M1、M0;配置时钟引脚CCLK;配置逻辑异步复位引脚;启动控制引脚DONE。这些引脚只在配置时起作用,配置完成后不能作其它用途。非专用配置引脚包括:数据接口D0~D7、片选信号CS、写信号、BUSY、等引脚,这些引脚在配置时作为信号通道使用,配置完

成后还可作为普通I/O口使用。数据配置时序如图1所示。当为低电平时,FPGA内部数据初始化,初始化完成后,DONE信号变为低电平,同时信号自动置为低电平,开始清空配置存储器。配置存储

器清空后,信号重新被置为高电平,同时器件对模式引脚进行采样,确定以并行方式加载配置数据。当、

信号都为低电平时,就可以通过数据接口D0~D7进行数据配置。图1清晰地表明了并行配置的

全过程。

3 系统设计

3.1 系统组成

并行方式的FPGA数据配置系统由上位机、可编程逻辑器件(CPLD)、Flash、FPGA等组成,其结构如图2所示。控制器件对整个系统的性能具有重要影响,低成本的处理器、微控制器工作频率较低,在对速度要求较高的场合,会成为系统速度的瓶颈,不能发挥并行配置的速度优势,而且仅作为配置控制器使用又造成资源的浪费。采用CPLD作为控制器,Flash作为存储器件,不仅能满足速度和功能的要求,而且硬件

电路更为简洁。

并行数据配置系统的上位机可以选用PC机、工控机等,主要对CPLD进行简单的功能控制,并对系统数据进行处理。CPLD是整个系统设计的核心,其主要功能是进行配置控制和地址生成。Flash闪存是配置文件的存储器件,由专用开发工具生成FPGA配置文件,预先烧写进Flash中。FPGA是系统中配置的目标器件,本系统采用六片Spartan II系列中的Xilinx XC2S200。

3.2 硬件设计

3.2.1 芯片选型

配置电路中CPLD采用XC9500系列中的XC9536芯片,宏单元数目为36个,采用快闪存储技术,最高工作频率可达100MHz。PC44封装的XC9536包括时钟端口在内共有34个通用I/O口,可以满足系统的要求。配置存储器采用Winbond公司的W29C040-90,其512K×8bit的容量可以依次存放三个不同的配置文件,存取周期可达90ns。Spartan II系列FPGA的配置时钟最高可达66 MHz,但考虑到闪存的存取时间限制,

配置晶振采用8MHz有源晶振。

3.2.2 原理图

配置电路接口如图3所示,并行配置的多片FPGA的控制信号CCLK、、、DONE、

和BUSY以及数据线DATA(7:0)并行连接,通过分别设置片选信号CS(0:5)实现各器件的依次配置,直到所有FPGA都配置完成后才进入START-UP阶段,经过八个时钟周期延迟后一起进入工作状态。

图中Flash的存储区被分配成三个区域,分别存储不同的配置文件。其使能信号和地址信号由CPLD提供,当EN为高时,在时钟信号的下降沿对应A(18:0)的八位数据就出现在数据线D(7:0)上。CPLD的作用主要是:①实现与上位机通讯,接收指令并将工作状态反馈到上位机;②通过置PROG低电平控制FPGA的初始化过程;③初始化完成后,控制各FPGA的配置过程。

在数据配置过程中,相应FPGA的和信号应置低电平,若CS信号已被设置,则

的状态就不能改变,否则将引起一个Abort过程[1],使配置过程中断。为确保在CCLK上升沿采到正确的数据,在CCLK下降沿改变数据线D(7:0)上的数据。在CCLK的上升沿,若BUSY信号为低电平,数据在此时钟周期内被接收;若BUSY为高电平,数据不能被接收,直到BUSY变低后的第一个时钟周期才能继续接收

数据。因此,这时的配置数据需要一直保持。

需要注意的是,多片FPGA的START-UP过程是同时进行的,为实现这一功能,在由Xilinx的开发工具

ISE[4]中生成配置文件时,需要修改相应的属性。

3.3 软件设计

CPLD的设计是本系统中最重要的部分,它所实现的功能模块包括接口模块、控制模块、地址发生器模块。接口模块实现与上位机的通信,接收上位机的指令并作相应处理,同时将工作状态反馈给上位机;控制模块提供控制时序命令,操纵整个配置过程;地址发生器模块为读取闪存数据提供数据地址。内部各功能模块采用VHDL硬件描述语言实现,控制主程序用mealy状态机实现。控制主程序的状态转移图如图4所示,其中状态Start是初始状态,Init是初始化过程,Clear RAM过程清空配置存储器,Config是配置过

程,Wait过程是配置多片FPGA的中间过程。

控制模块根据上位机的控制指令完成FPGA的初始化、配置等过程,并将运行结果回传给上位机。由VHDL硬件描述语言生成的原理图符号如图5所示,其中,CLK是配置时钟,RESET是启动信号,DONE、

是FPGA的反馈信号,CEND是地址发生器模块计数结束标志,EN是计数允许信号;、是控制信号,TRUE、FALSE是状态信号,反馈给上位机;CS(0:3)是多片FPGA的片选信号。控制模块的ModelSim

仿真结果如图6所示。

参考文献

1 Xilinx Spartan II 2.5V FPGA Complete Data Sheet. Xilinx,2004

2 王道宪.CPLD/FPGA可编程逻辑器件应用与开发[M].北京:国防工业出版社, 2004

3 任晓东,文博.CPLD/FPGA高级应用开发指南[M]. 北京:电子工业出版社, 2003

4 王诚.FPGA/CPLD设计工具Xilinx ISE 5.X使用详解[M]. 北京:人民邮电出版社, 2003

5 房磊,张焕春. FPGA的配置及接口电路[J]. 世界电子元器件, 2003(11):55~57

FPGA的配置及接口电路

与CPLD不同,FPGA是基于门阵列方式为用户提供可编程资源的,其内部逻辑结构的形成是由配置数据决定的。这些配置数据通过外部控制电路或微处理器加载到FPGA内部的SRAM中,由于SRA M的易失性,每次上电时,都必须对FPGA进行重新配置,在不掉电的情况下,这些逻辑结构将会始终被保持,从而完成用户编程所要实现的功能。

FPGA的配置方式分为主动式和被动式,数据宽度有8位并行方式和串行方式两种。在主动模式下,FPGA在上电后,自动将配置数据从相应的外存储器读入到SRAM中,实现内部结构映射;而在被动模式下,FPGA则作为从属器件,由相应的控制电路或微处理器提供配置所需的时序,实现配置数据的下载。1配置引脚

FPGA的配置引脚可分为两类:专用配置引脚和非专用配置引脚。专用配置引脚只有在配置时起作用,而非专用配置引脚在配置完成后则可以作为普通的I/O口使用。

专用的配置引脚有:配置模式脚M2、M1、M0;配置时钟CCLK;配置逻辑异步复位PROG,启动控制DONE及边界扫描TDI,TDO,TMS,TCK。非专用配置引脚有Din,D0:D7,CS,WRI TE,BUSY,INIT。

在不同的配置模式下,配置时钟CCLK可由FPGA内部产生,也可以由外部控制电路提供。

2 FPGA的配置模式

FPGA共有四种配置模式:从串模式(Slave Serial),主串模式(MasterSerial),从并模式(Slave Fa rallel/S e 1 e c tMap)以及边界扫描模式(Boundary-Scan)。具体的配置模式由模式选择引脚M2、M 1、M0决定。表1为不同的配置模式所对应的M2、M1、M0,配置时钟的方向以及相应的数据位宽。

3配置过程

(1)初始化

系统上电后,如果FPGA满足以下条件:Bank2 的I/O输出驱动电压Vcc0_2大于lv;器件内部的供电电压Vccint为2.5v,器件便会自动进行初始化。在系统上电的情况下,通过对PROG引脚

置低电子,便可以对FPGA进行重新配置。初始化过程完成后,DONE信号将会变低。

(2)清空配置存储器

在完成初始化过程后,器件会将INIT信号置低电平,同时开始清空配置存储器。在清空完配置存储器后,INIT信号将会重新被置为高电平。用户可以通过将PROG或INIT信号(1NIT为双向信号)置为低电平,从而达到延长清空配置存储器的时间,以确保存储器被清空的目的。

(3)加载配置数据

配置存储器的清空完成后,器件对配置模式脚M2、N1、M0进行采样,以确定用何种方式来加载配置数据。

(4)CRC错误检查

器件在加载配置数据的同时,会根据一定的算法产生一个CRC值,这个值将会和配置文件中内置的CRC值进行比较,如果两者不一致,则说明加载发生错误,INIT引脚将会被置低电平,加载过程被中断。此时若要进行重新配置,只需将PROG置为低电平即可。

(5)START-UP

START-UP阶段是FPGA由配置状态过渡到用户状态的过程。在START-UP完成后,FPGA便可实现用户编程的功能。在START-UP阶段中,FPGA会进行一下操作:

①将DONE信号置高电平,若DONE信号没有置高,则说明数据加载过程失败;

②在配置过程中,器件的所有I/O引脚均为三态,此时,全局三态信号GTS置低电平,这些I/O脚将会从三态切换到用户设置的状态;

③全局复位信号GSR置低电平,所有触发器进入工作状态;

④全局写允许信号GWE置低电平,所有内部RAM有效;

整个过程共有8个时钟周期C0-C7。在默认的情况下,这些操作都和配置时钟CCLK同步,在DONE信号置高电子之前,GTS,GSR,GWE都保持高电平。

4 SelectMap并行配置模式

Virtex系列FPGA是Xilinx公司的一款高密度,大容量的现场可编程门阵列,其最大容量可达1 00万门,最高工作频率可达200M,支持多达16种I/O标准,内置了4个BLOCKRAM。这些特性使它在数字图像处理,通信等领域得到了广泛的应用。

SelectMap模式是一种8位并行配置模式,它是Virtex系列FPGA最快的一种配置模式,其配置时钟最高可达66MHZ,每个配置时钟周期内有8位配置数据下载到FPGA内。在对配置速度要求较高的一些应用场合,一般使用SelectMap模式。

SelectMap端口是一个8位双向数据端口,通过它实现对Virtex的配置。利用SelectMap对Virt ex进行配置时,共有8个数据信号D0-D7和7个控制/状态信号,分别为:CCLK,PROG,DONE,INIT,CS,WRITE,BUSY。

对Virtex进行并行配置,应用最为广泛的接口电路便是CPLD+并行EPROM。

由于FPGA管脚内部有上拉电阻,因此,当管脚悬空时,便是高电平。

CPLD所要实现的功能模块包括:地址发生器,写控制寄存器,三态缓冲。其中,PROG为全局复位,DONE为全局三态控制,INIT和BUSY用来控制地址发生器;地址发生器的总线位宽由存储器的容量决定,若EPROM的容量为1MByte,则地址总线需要20位;在配置阶段,CS和WR ITE引脚必须置低电平。

对VIRTEX系列的FPGA而言,其配置时钟最高可达66MHZ,但是,在一般情况下,配置时钟是达不到66MHZ的,它由PROM的存储时间(tACC)和FPGA配置数据的建立时间(tS MDCC)决定的:晶振频率:1/(tACC+TS MDCC)。VIRTEX的TS MDCC为2.0ns,EPROM的存取时间通常为l 00ns,在这种情况下,配置时钟为9.6MHZ,要远远低于66MHZ,因此,提高配置速度关键是要选用存取速度快的EPROM。

5串行菊花链配置方式

串行菊花链配置方式是指将配置数据从串行PROM顺序下载到主FPGA器件和从FPGA器件中。配置时钟CCLK由主FPGA器件提供。

主器件将会被首先配置,在主器件配置完成前,其Dout引脚是没有数据输出的,从器件处于空闲状态。在主器件配置完成后,其Din,Dout便形成直通状态,配置数据通过主器件的Dout进入从器件的Din,对从器件进行配置。

由于菊花链配置方式要求只能有一个用于下载的位流文件,因此,需要在软件开发环境中利用PROM文件生成工具将将主器件和从器件的配置位流文件合成为一个文件。

主器件在配置完成后,并不立即启动,进入工作状态。只有菊花链中所有FPGA的DONE引脚都被置为高电平时,即所有的配置数据都下载到相应的FPGA中,各个器件才会启动,其各自的全局三态结束GTS、全局复位GSR、全局写允许GWE才会置低电平。因此,虽然主从器件的配置是有先后顺序的,但基本上它们是同时进入工作状态的。6结束语

使用并行EPROM对FPGA进行配置时,速度相对较快,存储容量较大;而在一些对空间较为敏感,速度要求不太高的应用中,利用串行方法进行配置,可以减小电路板的面积,同时可以简化系统结构。

相关文档