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引脚电平的选择。
EPCS芯片的内部结构框图如图1所示,EPCS配置器件与所配置的FPGA器件的连接引脚有时钟输入管脚DCLK。可为串行数据的传送提供时钟,一般由FPGA发送;其次是串行数据输出管脚DATA,用于向FPGA传送配置数据;第三是主动串行数据输入管脚ASDI,负责接收来自FPGA的不同字符串以实现对EPCS的读写控制;另外,还有片选信号nCS。
上位机通过下载线用Quartus软件工具对EPCS配置芯片进行配置程序的烧写操作,其配置文件必须为pof文件格式。在所设计的系统文件编译完成后,Quartus软件就可以生成烧写所需的pof格式文件。
2.3 可重构系统设计
本设计主要是通过DSP的串口向CPLD器件发送控制命令以及要进行配置的数据包,CPLD解析命令后再执行相应的操作,以完成EPCS配置芯片所需的下载时序及配置数据。当EPCS配置芯片的数据下载完成后,再进行FPGA从配置芯片下载新的系统配置程序过程。一般情况下,在系统上电后,FPGA都要马上从EPCS配置芯片中下载配置文件。在对EPCS配置芯片进行控制时,首先要让FPGA释放对EPCS配置芯片的控制,而且,在对EPCS配置芯片写数据的操作完成后,又要将控制权交与FPGA,以便FPGA能够下载最后一次完成的配置程序。本系统的可重构原理图如图2所示。
FPGA可重构系统中,DSP通过一个串口与CPLD进行通信,串口由数据信号线BDX、帧信号线BFSX以及时钟信号线BCLKX组成,所有的控制命令和程序数据都是通过这三条信号来传送的。FPGA器件的CONF_DONE信号线、nSTATUS信号线和nCONFIG信号线均需要用大小为10kΩ的电阻上拉,而nCE信号线则需用10kΩ的下拉电阻。CPLD器件通过nCONFIG信号线和nCE信号线对EPCS配置芯片的控制权进行控制或释放。当系统上电后,CPLD器件首先对EPCS配置芯片表现为释放状态,而FPGA则执行EPCS配置芯片的数据读取操作,即FPGA的配置过程是:FPGA通过nCSO管脚置EPCS配置芯片的nCS信号线为低电平,并通过ASDO管脚向EPCS发送控制命令和地址,然后在DCLK的上升沿,由配置芯片通过DATA0信号线将配置程序和数据发送到FPGA,在程序发送完毕以后,CONF_DONE由低电平变为高电平,随后进行FPGA初始化并进入工作状态。
当需要进行系统重构时,可由上位机向DSP器件发送控制命令以进行系统的重构操作。系统重构的流程图如图3所示,整个过程包括以下几个步骤:
(1)上位机发送重构命令后,由DSP通过串口向CPLD器件发送控制选通命令字符串,命令经CPLD器件解析后将nCONFIG信号线置为低电平,并将nCE信号线置为高电平,从而取得对EPCS配置器件的nCS、DCLK、ASDI、DATA管脚的掌控权。此时,FPGA可释放对EPCS的掌控权,但不读取EPCS的配置程序数据。
(2)主机通过仪器接口向DSP器件发送所需要的重构数据,并存储在DSP器件的数据存储区内。经实验分析,Quartus软件生成的pof格式文件数据并不能直接写入EPCS配置芯片,而是需要进行一定方式的格式转换,然后才能重新组合成需要下载到EPCS配置芯片的数据流。所以,需要在DSP内做一步数据转换的操作。
(3)在对EPCS配置芯片进行数据写入以前,先要将其内部的原有数据擦除掉。所以,这一步的任务是向EPCS配置芯片发送控制命令,并打开写使能,随后发送擦除命令,将EPCS原有数据擦除。要注意的是,擦除时间必须大于3 s,否则不能完成擦除操作。
(4)为了确认擦除操作是否已操作成功,可以执行一次读状态控制命令。读状态命令也需要先打开写使能,再发送读状态命令。如果擦除过程正在进行,则DATA信号线上会返回0000 0001的数据,擦除操作完成后,DATA信号线上将返回0000 0000的数据,此时便可以进行下一步的工作。
(5)当确认擦除操作完成后,就可以进行EPCS配置芯片的数据写入操作了。数据的写入需要按帧依次写入到对应的存储地址,数据存储的首地址为0000 0000。
(6)所需的配置数据流发送完毕后,可发送控制命令以使CPLD器件释放对EPCS配置芯片的控制权,即置nCS、DCLK、ASDI、DATA信号线为高阻状态,并将nCONFIG信号线由低电平置为高电平,nCE信号线置为由高电平置为低电平。一旦FPGA器件接手EPCS配置芯片的控制权,在检测到nCONFIG信号线的上升沿后,FPGA将下载EPCS配置芯片内的数据进行重新配置,此过程与系统上电时的配置过程相同。经过上述一系列的操作,便可实现一次FP-GA的重构过程。
2.4 系统设计特点
本文所述的FPGA可重构设计方案可以在系统不关电的情况下进行重构过程,这样就不会影响系统其它部分电路正在进行的工作,极大地方便了用户的实际应用。当一次用户所需的配置完成后,系统下次上电后就会自动执行最后一次所重构的工作模式,不必每次上电进行重构工作。
3 可重构设计的验证
图4所示是按照本系统设计的步骤要求,在数字化仪平台上对可重构系统进行全面测试的部分重构波形变化图,以此完成对主控逻辑功能的FPGA器件EP1C6Q24017的功能重构实验验证。
图4中所有波形图的上面位置显示的均为时钟信号波形,其中图4 (a)所示是打开EPCS配置芯片写使能时,发送控制字的时序图,图中下面位置的波形为ASDO数据线上的信号,指示写使能控制字为“06”;图4(b)所示是读写使能的状态时序图,图中下面位置的波形为DATA0数据线上读取的信号,指示状态寄存器为“02”;图4(c)所示是对EPCS配置芯片进行擦除操作的时序图,图中下面位置的波形为ASDO数据线上的信号,指示擦除控制字为“C7”;图4(d)所示是读擦除操作的状态时序图,图中下面位置的波形为DATA0数据线上读取的信号,指示状态寄存器为“03”;图4(e)所示是对EPCS配置芯片进行写数据操作的时序图,图中下面位置的波形为ASDO数据线上的信号,指示写数据命令为“02”;图4(f)所示是向EPCS配置芯片传输数据过程的部分波形图,图中下面位置为ASDO数据线上的数据信号。
在满足上述时序要求的条件下,当EPCS配置芯片的数据写入完成后,FPGA即可进入配置文件所设计的工作模式,设计实验结果完全符合预期的重构目标。经过反复测试,该重构方式功能正常,能稳定地完成系统所设计的不同重构工作。
4 结束语
利用文本的方法对基于EPCS在线编程的FP-GA进行可重构设计,其硬件电路比较简单,成本低,同时不需要增加太多的硬件资源(比如大容量的存储器件等),而且配置过程灵活方便,用户只需要一个相应的配置文件数据包,即可完成系统重构功能。故此,这种FPGA的可重构设计具备广泛的应用前景。