您好,  [请登录] [QQ登录]  [支付宝登录[免费注册]

商品分类

分享到: 百度搜藏 搜狐微博 新浪微博 腾讯微博 QQ收藏 人人网 Facebook Twitter

利用Altera加强型配置片实现FPGA动态配置

发布日期:2011-05-14

在当今巨大数字电路计划中,大多采取以"嵌入衰落控制器+FPGA"为内核的体系布局此体系布局中FPGA配置服从和机动性的差别影响了产品的开周期和产品升级的易施性。

1. 小序

传统的FPGA配置方案(比方调试阶段的专用下载电缆方法。成品阶段的专用配置片方法)在本钱、服从、机动性方面都存在着明显不敷。针对如许的实际题目,基于嵌入衰落控制器与FPGA遍及共存于巨大数字体系的背景,鉴戒软件无线电"一机多能"的头脑,提出了一种对现有传统FPGA配置方案硬件电路稍做调解并增长部分软件成果。即可实现FPGA动态配置的方案。本文将在先容Altera公司Stratix系列FPGA配置模式、FPGA配置流程、加强型配置片内部事变原理的底子上给出利用EPCI6实现FPGA动态配置的方案。并给出软硬件接口电路。

2 FPGA配置方法

  可编程器件的配置方法分为主动配置和被动配置两类。主动配置由可编程器件引导配置进程,被动配置则由外部处理惩罚器控制配置进程。 根据配置数据线数,器件配置可分为并行配置和串行配置两类。串行配置以Bit(比特)为单位将配置数据载人可编程器件:而并行配置一样平常以Byte(字节)为单位向可编程器件加载配置数据。被动配置根据配置数据与时钟的干系可分为同步和异步两种方法。

  表1罗列了Altera公司常用FPGA(Stratix、Cyclone、APEXⅡ、APEX20K、Mercury、ACE XK、FLEXlOK和FLEX6000)的配置方法。

  3 FPGA配置流程

  FPGA的配置数据存储在内部SRAM单位中。由于SRAM失电后配置数据会丢失,因此每次上电时必须重新将配置数据写入SRAM中。这个进程称为FPGA的配置。FPGA配置进程如图1所示。表2为Stratix配置引脚定义。



    (1) 上电

  上电进程中FPGA内部状态机被复位,nSTA-TUS和CONF_DONE引脚由FPGA置为低电平,全部I/O引脚为三态且FPGA内部配置寄存器被清空。

  (2) 复位

  当nCONFIG或nSTATUS引脚为低电平常,FPGA进入复位状态。在此状态下,FPGA采样MSEL引脚的电平值,以确定采取的配置方法。同时nSTATUS和CONF_DONE引脚被拉低,全部I/O引脚三态并且FPGA内部配置寄存器被清空。

  (3) 配置

  当nCONFIG为高电平,nSTATUS被FPGA开释并由外部上拉电阻拉为高电平掉队入配置状态。此状态下配置数据在DCLK时钟的上升沿加载FP-GA。若精确吸取全部配置数据(CRC校验无误)。FPGA开释CONF_DONE引脚且当其被外部上拉电阻拉高掉队入初始化状态。

  (4) 初始化

  此状态下FPGA内部逻辑和寄存器被初始化:使能I/0缓冲,开释INIT_DONE引脚(可选)。

  (5) 用户模式

  在此状态下FPGA开始实行用户步伐。

  4加强型配置片事变原理

  Ahera公司加强型配置片支持在一块配置片上举行多块高密度PLD(Programmable Logic De-vice)配置。配置片重要由两大内核模块构成一控制器和Flash存储器。存储空间除用于存储配置数据外,未利用的部分可用于微处理惩罚器或PLD的外部存储器。下面将分别叙述加强型配置片的内核模块。

  4.1加强型配置片控制单位

  控制单位由以下子模块构成:

  (1) 上电复位电路(POR)

  在电源电压未到达必要的稳固电压时此模块将使配置片处于复位状态。有两种上电复位时间可选,100 mS,和2 mS,。配置片PORSEL引脚决定复位时间黑白。此引脚为低电平常复位时间为100 ms,反之为2 ms。

  (2) 内部振荡器(IOSC)

  内部振荡器有四种模式(四个差别频率),可通过编译FPGA代码在OuatrusⅡ软件中选择。
  (3) 时钟分频单位(CDU)

  时钟分频单位对内部振荡器孕育产生的时钟或外部输入时钟举行分频,得到配置片内部体系时钟SYSCLK和外部数据输出时钟DCLK。其内部有两个分频器,一个分频器的分频系数为N,孕育产生DCLK信号;另一个分频器的分频系数为M,孕育产生SYSCLK信号。其内部布局如图2所示。

  上电后配置片默认采取内部振荡器中A模式,振荡频率为8 MHzo此中,一个分频器分频系数为1。另一个分频器分频系数为2。

  (4)压缩引擎(PCU)

  加强型配置片支持数据压缩。数据压缩由QuatrusⅡ软件实现,解压由压缩引擎实现。压缩后的数据存储在内部Flash中。配置进程中压缩引擎解压从Flash读出的数据。这一特性极大地加强了配置片的有效利用空间。以EPCI6为例,通过数据压缩可存储30 Mbit数据。

  (5) PLD配置单位

  PLD配置单位认真传输解压后的数据到PLD。它支持四种并行配置模式,即可将解压数据按1比特、2比特、4比特或8比特输出。根据预先配置的配置模式,PLD配置单位将数据移位输出到有效数据引脚上。无用的数据引脚输出低电平。

  (6) JTAG接口单位(JIU)

  由于本文未采取JTAG实现FPGA动态配置,故此单位不做细致先容。

  4.2 Flash存储器

  差别配置片内部Flash容量差别。EPCI6有16Mbit容量,而EPC8、EPC4分别只有8 Mbit、4 Mbit,。Flash存储器分成三个块存储区,分别为启动块、参数块和配置数据块存储区。每个块存储区都有本身独立的掩护机制并能单独举行擦除。下面将分别叙述各个块的成果。

  (1) 启动块

  以EPC16为例,启动块大小为16 KB,可用它更换微处理惩罚器专用PROM,也可用于存储其他体系的数据。启动块的掩护机制由配置片RP引脚、WR引脚和块锁存位共同确定。

  (2)参数块

  参数块用来存储少量而需频繁更新的参数。EPCI6有6个参数块,每块为8 KB。参数块的掩护机制是由配置片RP引脚和块锁存位共同确定。

  (3) 配置数据块

  EPC片内Flash上除启动块和参数块之外的空间均为配置块存储区。可用于存储配置数据和作为用户的存储空间。EPC16有31块64 KB的配置块。和参数块一样,配置块的掩护机制也由配置片RP引脚和块锁存位共同确定。

  4.2.1 Flash内存映射

  EPCI6的内存映射分为两部分:配置控制器存储空间和用户存储空间。配置摔制器存储空间由控制器成果选择比特和8页配置数据构成。其肇始地点是08000h (在64 KB的启动块/参数块后)。08000h~0801Fh地点范畴是保存的控制器成果选择比特空间。图3是EPCI6内部Flash的存储空间映射。

  4.2.2页模式选择

  页模式选择成果使配置片最多可存储8页差别的PLD配置数据,并由用户选择页号配置差别的PLD。页模式选择必要由软件和硬件共同实现。硬件上通过设置配置片PGM[2:0]引脚(PGM[2]是最高位)电平决定页号。同时在用QuatrusⅡ编译步伐时修改编译文件的属性为所选择页号。第0页是默认的配置页。

  4.2.3配置片事变模式

  配置片有两种事变模式:正常模式和编程模式。

  (1) 正常模式

  正常模式是利用配置片内Flash中的压缩数据实现PLD配置。整个进程包括从Flash读出数据、数据解压和传输数据到PLD。

  上电时,上电复位电路(POR)孕育产生全部复位信号。该电路用10 MHz内部默认时钟复位配置片  内控制单位。在开始配置前,配置片采样PGM[2:0]引脚上的电平值以确定从Flash的配置块内读取配置数据的页号。控制单位根据Flash中的选择比特值重新配置体系内部时钟。以后开始从配置块内读出压缩数据。当配置片的OE引脚变为高电平常,压缩引擎(PCU)输出DCLK时钟,开始传输配置数据到PLD。

  当所选配置块内的末了一个比特从Flash读出后,配置片内部页计数器溢出,压缩引擎克制读Flash数据。若PLD精确吸取全部配置数据(PLD拉高nCONF_DONE引脚),nCS引脚将被拉高,阐明一次告成配置进程结束。若未精确吸取数据(PLD拉低nCONF_DONE引脚),上电复位电路拉低OE引脚并重新配置。配置结束,压缩引擎(PCU)克制输出DCLK时钟。

  (2) 编程模式

  当用JTAG通过配置片内JTAG接口单位举行配置PLD时,配置片处于编程模式。由于本文采取正常模式,故不细致叙述。

  5接口电路计划与实现

  图4、图5所示分别为笔者参加的某项目中与动态配置相干部分的框图和电路图。 



  如图4所示,为克制对传统配置电路做较大窜改。本动态配置方案未采取由:DSP直接动态配置FPGA的方法,而是将配置时序由配置片包袱。在FPGA处于用户模式时。若配置片nCONFIG引脚为低电平,将会触发FPGA重新举行一次配置。从而实现动态配置。

  详细进程为:

  (1)在FPGA处于用户模式时,配置片内Flash处于可读写状态。DSP将必要更新的代码在此模式下写入Flash相应的配置数据块内。

  (2)在FPGA内设置一个1比特位宽配置寄存器。DSP写入配置下令,当其值为1时。EPC_jTAG_nlNIT(FPGA的一个I/0)引脚配置O。由于此引脚连接FPGA的nCONFIG引脚,故FPGA将由用户模式进人复位状态,nSTATUS引脚输出低电平从而使配置片复位。复位结束后将开始启动一次新的配置。