基于SRAM结构的FPGA器件实现快速高效的PPA数据配置_第1页
基于SRAM结构的FPGA器件实现快速高效的PPA数据配置_第2页
基于SRAM结构的FPGA器件实现快速高效的PPA数据配置_第3页
基于SRAM结构的FPGA器件实现快速高效的PPA数据配置_第4页
基于SRAM结构的FPGA器件实现快速高效的PPA数据配置_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于SRAM结构的FPGA器件实现快速高效的PPA数据配置(来源:微计算机信息,方耀湘,黎福海,胡跃辉)在当今变化的市场环境中,产品是否便于现场升级、便于灵活使用,已成为产品进入市场的关键因素。而基于SRAM结构的FPGA器件的出现,为系统设计者动态改变运行电路中的逻辑功能创造了条件,也为现场升级等奠定了基础。但由于SRAM的掉电易失性,系统每次上电时,必须重新配置数据,只有在数据配置正确的情况下系统才能正常工作。在实际项目应用中,采用SST89V564微处理器对FPGA进行快速高效的PPA数据配置,不仅可以完成对FPGA的上电启动配置,同时利用其IAP技术还可以在FPGA配置完以后,通过修改微处理器中的配置数据和参数来实现系统的在线升级。1.FPGA的PPA配置过程FPGA的在线配置方式一般有两类:一是通过下载电缆由计算机直接对其进行配置;二是通过微处理器对其进行配置。前者调试时非常方便,在应用现场是很不现实的,只适合产品的调试,而一般实际产品中采用微处理器对FPGA进行配置。FPGA器件PPA配置时序如图1所示,其中nCS和CS两个片选信号只需用一个,当选用nCS作为片选信号控制配置,CS接高电平。其配置过程为微处理器在nCONFIG引脚上产生一个最少21µs的低脉冲,等待直至nSTATUS和CONF_DONE变低。此时将nCONFIG置高,nSTATUS会在nCONFIG跳高后4µs内跳高,则表示FPGA可以配置了。配置成功时,FPGA器件释放CONF_DONE信号,由外部将其拉高。如果微处理器检测到该信号为高,则表明配置成功;否则,要对其重新配置。2.基本硬件组成2.1SST89V564RD及接口设计SST89V564RD是SST公司的8位集成SUPERFLASH存储器的51兼容MCU,带有1K字节片内RAM和72K字节片内SUPERFLASH。其片内Flash分成Block0(64K字节)和Block1(8K字节)两块,Block0和Block1低8K地址相同,程序运行时,可通过设置特功能寄存器SFCF对低8K字节的Flash程序存储块进行切换,以使程序运行在Block0或Block1。微处理器与FPGA的接口电路如图2所示。2.2SST89V564RD微处理器片内Flash应用划分SST89V564RD微处理器片内Flash两块(64K+8K)中,Block1分成64个扇区,每个扇区包括128个字节,总共8K字节;Block0分成512个扇区,每个扇区包括128个字节,总共64K字节[2]。微处理器两块Flash地址应用划分为:Block0中,低地址段0x0000~0x1FFF存放对Block1进行擦写的IAP程序,高地址段0x2000~0xFFFF存放FPGA配置数据。Block1的所有空间用来存放上电启动时对FPGA进行配置以及配置完后的IAP操作程序。微处理器默认下从Block1启动。当程序运行在IAP命令状态时,可以通过设置特功能寄存器SFCF使程序运行在Block0或Block1,来对另一Flash块进行擦写或升级。由于Block0和Block1的低8K字节的地址相同,因此在编程应用程序到Flash中时,编程器将Block1的地址定义在0x10000~0x11FFF地址段,在编译程序时需要将Block1的程序定位在0x10000~0x11FFF之间才能正确烧写。3.软件设计微处理器状态流程如图3所示,在上电启动时,微处理器从Block1启动,读取Block1中0x2000开始的配置数据,完成对FPGA的配置。配置完成以后,微处理器处于IAP状态,既可以通过串口IAP指令来对Block0高地址段的FPGA配置数据进行擦写或升级,也可以通过串口IAP指令切换微处理器跳到Block0中低地址段运行,来对Block1中的程序进行擦写或升级。由于Block0中低地址段存放的只是对Block1进行擦写的IAP程序,因此无需擦写或升级该部分程序。升级只限于当更改FPGA逻辑功能时升级Block0高地址段的配置数据,或者更改了FPGA芯片时更改Block1中的配置数据参数以及Block0中高地址段的配置数据。当程序运行在Block0中,要切换到Block1运行重新配置FPGA时,将产生复位信号,复位微处理器和FPGA使微处理器重新对FPGA进行配置。硬件电路的设计只提供了接口工作的内核和基础,只有在软件的控制下,接口才能发挥作用,硬件电路与软件程序是紧密相关的。本设计中FPGA采用Altera公司的EPF10K10ATC144-3,含有576个逻辑单元和6144个RAM位,其配置数据大小为15000Bytes,微处理器给EPF10K10ATC144-3的配置程序如下:unsignedcharFpgaConfig(void){unsignedintiConfigDataByteCount;unsignedcharcode*pConfigDataAddress;pConfigDataAddress=0x2000;//FPGA配置数据的起始地址nCONFIG=0;while((nSTATUS==1)||(CONFIG_DONE==1));nCONFIG=1;while((nSTATUS==0);iConfigDataByteCount=0;CFG_CS_=0;while(CONFIG_DONE==0){while(RDYnBUSY==0);FPGA_CFG_ADDRESS=*pConfigDataAddress;pConfigDataAddress++;iConfigDataByteCount++;if((iConfigDataByteCount》0x3A98)||(nSTATUS==0))//EPF10K10ATC144-3配置数据为0x3A98(15000)字节,升级成相同封装和引脚的//EPF10K30ATC144-3时,只需将0x3A98改成0xC63E(50750)即可{CFG_CS_=1;returnERROR;}}CFG_CS_=1;returnSUCCESS;}在不更改硬件板的条件下,若更改FPGA芯片升级系统,升级成含有1728个逻辑单元和12288个RAM位的EPF10K30ATC144-3芯片时,由于与EPF10K10ATC144-3具有相同的封装和引脚排列[3],因此硬件上可以直接更换FPGA芯片来升级,而软件上只需将Block1程序中对FPGA配置的数据大小参数15000改成50750(见上程序注释)。而升级芯片的配置数据,则直接通过串口IAP将配置数据写入Block0高地址段即可。因此,能非常方便的在线完成FPGA内部逻辑甚至更换FPGA芯片时的系统升级。4.结论本文给出了基于SST89V564R

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论