0 引言
可重构体系结构已经成为FPGA系统开发的研究热点,并已有许多令人瞩目的研究成果及产品应用。FPGA可重构的应用为用户提供了方便的系统升级模式,同时也实现了基于相同硬件系统的不同工作模式功能。在当今快速发展的市场环境条件下,产品是否便于现场升级,是否便于灵活使用无疑是产品能否进入市场的关键因素,FPGA的可重构设计显得尤为重要。
目前,很多可重构的设计方式都采用单片机、CPLD等器件直接对FPGA器件进行编程配置,从而实现系统工作模式的可重构。本设计则通过开发CPLD先对FPGA的配置芯片EPCS进行编程配置,然后再由FPGA从EPCS配置芯片下载配置程序来实现可重构,并通过用户界面的简单操作来完成FPGA的工作方式重构,这种可重构方式结构简单,配置灵活,用户操作更加方便。本文首先介绍了FPGA常用的配置方式,然后详细阐述了基于对EPCS配置芯片在线编程的可重构设计方案。
1 FPGA的常用配置方式
FPGA器件有三类常用的配置下载方式。其中主动配置方式(AS)是由FPGA器件引导配置操作过程。它控制着外部存储器和初始化过程,可使用Altera串行配置器件来完成。期间FPGA器件处于主动地位,配置器件处于从属地位。配置数据通过DATA0引脚送入FPGA。配置数据被同步在DCLK输入上,1个时钟周期传送1位数据。
被动配置方式(PS)则是由外部计算机或控制器控制配置过程。在PS配置期间,配置数据从外部储存部件通过DATA0引脚送入FPGA。配置数据在DCLK上升沿锁存,1个时钟周期传送1位数据。
JTAG配置方式中的JTAG接口是一个业界标准,主要用于芯片测试等功能,它使用IEEE Std1149.1联合边界扫描接口引脚,支持JAM STAPL标准,可以使用Altera下载电缆或主控器来完成。FPGA在正常工作时,它的配置数据存储在SRAM中,关电后数据会消失,再次加电时必须重新下载配置程序。实验中通常用计算机或控制器进行调试,因此,可以使用PS。而在实用系统中,多数情况下必须由FPGA主动引导配置操作过程,这时,FPGA将主动从外围专用存储芯片中获得配置数据,而此芯片中的FPGA配置信息则用普通编程器将设计所得的pof格式文件烧录进去。
在做FPGA实验板时,通常采用AS+JTAG方式,这样可以用JTAG方式进行调试,而最后程序已经调试无误后,再用AS模式把程序烧到配置芯片中,这样操作有一个明显的优点,就是在AS模式不能下载的时候,可以利用Quartus自带的工具生成JTAG模式下可以利用的文件来验证配置芯片是否工作正常。
2 对EPCS在线编程的FPGA可重构配置
2.1 FPGA可重构简介
可重构体系结构指能够利用可重用的硬件资源,根据不同的应用要求,灵活改变自身的体系结构,以便为每个特定的应用需求提供与之相匹配的体系结构。可重构电路的设计可利用FPGA的可重配置特性。所谓可重配置,就是基于SRAM的FPGA在掉电后配置数据会自动丢失,再次上电后必须重新配置FPGA,FPGA才能正常工作。这样可以利用有限的硬件资源完成多种逻辑功能,这就是采用基于SRAM工艺的FPGA的可重构系统的可重构电路设计原理。
设计时,可以通过开发单片机或CPLD器件来控制FPGA配置不同的逻辑功能以实现重构系统。FPGA有一个专用的配置引脚nCONFIG,在FPGA正常工作过程中,如果此引脚上加一个低电平脉冲,那么,当FPGA检测到其上升沿后,FPAG将自动清除其内部的配置存储器,并进行重新配置,这样,FPGA才能工作。利用这一特性,设计时便可通过用户界面操作在FPGA的nCONFIG引脚上加一个低电平脉冲,随后发送数据,从而完成对FPGA的重新配置。
本设计是通过DSP处理器来接收PC主机的FPGA配置数据流,并开发CPLD器件以实现控制逻辑,最终把所需的FPGA配置数据流存储到支持AS配置模式的EPCS配置芯片中,并实现FPGA配置数据流的更新,从而达到FPGA的重新配置,实现整个系统的可重构。其可重构电路由DSP与CPLD串行通讯电路、CPLD读写EPCS配置芯片电路和EPCS配置FPGA电路组成。
2.2 EPCS配置器件
FPGA的串行配置芯片主要包括EPCS1,EPCS4,EPCS16,EPCS64,EPCS128等。它们的主要区别是容量不同,分别为1 M,4 M,16 M,64 M,128 M Bits的容量,可配置的FPGA器件也有所不同,用户可根据不同需求来选择。EPCS配置芯片的擦除或编程次数可以达到十万次左右,一般情况下足以满足用户需求。EPCS器件电平的选择包括3.3 V、2.5 V、1.8 V、1.5 V,主要可参考对应的FPGA所用I/O bank的VCCIO引脚电平的选择。