《基于SRAM结构的FPGA器件实现快速高效的PPA数据配置.docx》由会员分享,可在线阅读,更多相关《基于SRAM结构的FPGA器件实现快速高效的PPA数据配置.docx(5页珍藏版)》请在第一文库网上搜索。
1、基于SRAM结构的FPGA器件实现快速高效的PPA数据配置(来源:微计算机信息,方耀湘,黎福海,胡跃辉)在当今变化的市场环境中,尤晶是否便于现场升级、便于灵活使用,已成为产品进入市场的关键因素。而基于S幽1结构的FPGA器件的出现,为系统设计者动态改变运行电路中的逻辑功能创造了条件,也为现场升级等奠定了基础。但由于SRAM的掉电易失性,系统每次上电时,必须重新配置数据,只有在数据配置正确的情况下系统才能正常工作。在实际项目应用中,采用SST89V564微处理器对FPGA进行快速高效的PPA数据配置,不仅可以完成对FPGA的上电启动配置,同时利用其IAP技术还可以在FPGA配置完以后,通过修改微
2、处理器中的配置数据和参数来实现系统的在线升级。1. FPGA的PPA配置过程FPGA的在线配置方式一般有两类:一是通过谴电缆由计算机直接对其进行配置;二是通过微处理器对其进行配置。前者调试时非常方便,在应用现场是很不现实的,只适合产品的调试,而一般实际产品中采用微处理器对FPGA进行配置。FPGA器件PPA配置时序如图1所示,其中nCS和CS两个片选信号只需用一个,当选用nCS作为片选信号控制配置,CS接高电平。其配置过程为微处理器在nCONFIG引脚上产生一个最少21s的低脉冲,等待直至nSTATUS和CONF_DONE变低。此时将nCONFIG置高,nSTATUS会在nCONFIG跳高后4
3、s内跳高,则表示FPGA可以配置了。配置成功时,FPGA器件释放CONF_DONE信号,由外部将其拉高。如果微处理器检测到该信号为高,则表明配置尿功;否则,要对其重新配置。2. 基本硬件组成3. 1SST89V564RD及接口设计SST89V564RD是SST公司的8位集成SUPERF1ASH存储器的51兼容MCU,带有IK字节片内RAM和72K字节片内SUPERF1ASH0其片内FIaSh分成B1ockO(64K字节)和B1ock1(8K字节)两块,BIOCkO和B1oCkI低8K地址相同,程序运行时,可通过设置特功能寄存器SFCF对低8K字节的F1aSh程序存储块进行切换,以使程序运行在B
4、1oCkO或B1ock1o微处理器与FPGA的接口电路如图2所示。图1ITA归武时序图2强处理器接H电路2.2SST89V564RD微处理器片内F1aSh应用划分SST89V564RD微处理器片内F1aSh两块(64K+8K)中,B1oCk1分成64个扇区,每个扇区包括128个字节,总共8K字节;BIoCkO分成512个扇区,每个扇区包括128个字节,总共64K字节2。微处理器两块F1aSh地址应用划分为:B1OCko中,低地址段0x0000-OX1FFF存放对BIoCkI进行擦写的IAP程序,高地址段0x2000OXFFFF存放FPGA配置数据。B1OCkI的所有空间用来存放上电启动时对FP
5、GA进行配置以及配置完后的IAP操作程序。微处理器默认下从B1OCk1启动。当程序运行在IAP命令状态时,可以通过设置特功能寄存器SFCF使程序运行在BIoCkO或B1ock1,来对另一F1aSh块进行擦写或升级。由于B1OCko和B1oCkI的低8K字节的地址相同,因此在编程应用程序到FIaSh中时,编程器将B1OCk1的地址定义在OXIOooOOXI1FFF地址段,在编译程序时需要将BIOCk1的程序定位在OXIooOOOXIIFFF之间才能正确烧写。3 .软件设计微处理器状态流程如图3所示,在上电启动时,微处理器从B1OCkI启动,读取B1OCk1中0x2000开始的配置数据,完成对FP
6、GA的配置。配置完成以后,微处理器处于IAP状态,既可以通过串口IAP指令来对B1oCkO高地址段的FPGA配置数据进行擦写或升级,也可以通过串口IAP指令切换微处理器跳到B1oCkO中低地址段运行,来对B1OCkI中的程序进行擦写或升级。由于B1OCkO中低地址段存放的只是对BIoCk1进行擦写的IAP程序,因此无需擦写或升级该部分程序。升级只限于当更改FPGA逻辑功能时升级B1ockO高地址段的配置数据,或者更改了FPGA芯片时更改B1OCkI中的配置数据参数以及B1oCkO中高地址段的配置数据。当程序运行在B1oCko中,要切换到B1oCkI运行重新配置FPGA时,将产生复位信号,复位微
7、处理器和FPGA使微处理器重新对FPGA进行配置。硬件电路的设计只提供了接口工作的内核和基础,只有在软件的控制下,接口才能发挥作用,硬件电路与软件程序是紧密相关的。本设计中FPGA采用A1tera公司的EPF10K10ATC144-3,含有576个逻辑单元和6144个RAM位,其配置数据大小为1500OBy拄s,微处理器给EPF1oK1oATe144-3的配置程序如下:unsignedcharFpgaConfig(void)(unsignedintIConfigDataByteCount;unsignedcharcode*PConfigDataAddress;pConfigDataddress
8、=0x2000;/FPG配置数据的起始地址nCONFIG=0;whi1e(nSTATUS=1)|(CONFIG_DONE=1);nCONFIG=1;whi1e(CnSTATUS-O);iConfIgDataByteCount=0;CFG_CS_=0;whi1e(CONFIG_DONE=0)whi1e(RDYnBUSY=0);FPGA_CFG_ADDRESS=*pConfIgDataAddress;pConfigDataddress+;iConfigDataByteCount+;if(iConfigDataByteCount0x3A98)!I(nSTATUS=O)/EPF10K10ATC144-
9、3配置数据为0x3A98(15000)字节,升级成相同封装和引脚的/EPF10K30TC144-3时,只需将0x3A98改成0xC63E(50750)即可CFGCS=1;returnERROR;CFG_CS_=1;returnSUCCESS;在不更改硬件板的条件下,若更改FPGA芯片升级系统,升级成含有1728个逻辑单元和12288个RAM位的EPF1oK30ATCI44-3芯片时,由于与EPF1oK1OATC144-3具有相同的封装和引脚排列3,因此硬件上可以直接更换FPGA芯片来升级,而软件上只需将B1OCk1程序中对FPGA配置的数据大小参数15000改成50750(见上程序注释)。而升级芯片的配置数据,则直接通过串口IAP将配置数据写入BIOCkO高地址段即可。因此,能非常方便的在线完成FPGA内部逻辑甚至更换FPGA芯片时的系统升级。4 .结论本文给出了基于SST89V564RD处理器的FPGA被动并行异步配置的软硬件实现,该方法充分利用了SST89V564RD的IAP技术以及分块大容量的F1ash存储技术,能快速、方便、灵活地对对FPGA的内部逻辑功能进行在线升级,还可以完成在升级相同封装和引脚的FPGA芯片时,进行整个系统的在线升级。本方法也适合于其他类似的微处理器。责任gt