- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SSD系统中多级FPGA在线升级电路设计和实现
SSD系统中多级FPGA在线升级电路设计和实现 摘 要: 为了解决多级FPGA在线自动升级与加载的技术难题,本文提出了利用其中一片FPGA实现自动更新的方案,设计了存储系统的逻辑方案,主要功能有:PCI-E接口的桥、多级FPGA在线系统升级、NANDFLASH的读写等操作控制、DDR2的读写等操作控制及校验与智能磨损平衡技术算法等,降低了硬件成本。
关键词: SSD FPGA 在线 升级电路
1.引言
目前,传统的FPGA升级与加载方式主要有两种[1]-[5]:一种是通过JTAG口直接加载配置文件到FPGA内部的SRAM中,但是由于SRAM掉电后数据将丢失,因此在下次重新上电时,需要重新通过JTAG加载线进行手动加载;另外一种是通过外置FLASH存储器件,首先将加载文件烧录到FLASH中,然后在每次上电时,利用FPGA的专用接口直接自动加载FLASH中的配置文件,克服第一种方法存在的每次上电都要手动加载的缺点[6]-[7]。对于单FPGA硬件系统来说,利用上述的第二种方法与网络接口的联合可以实现对单个FPGA的在线自动升级与加载,但是如果对于多级FPGA系统来说,为了保证下电后配置文件不丢失,采用上述第二种办法则需要在每个FPGA的外围都挂上一个NANDFLASH存储器,才能保证重新上电后能够自动加载,硬件成本较高。同时对FLASH中的配置文件的更新需要更多的外围器件支持。
本文利用一片FPGA并通过SPI接口与加载接口实施更新NORFLASH与其他四片FPGA加载的方案。设计了存储系统的逻辑方案,采用MLC结构的NANDFLASH颗粒作为存储单元,使用多片FPGA器件作为整个系统的逻辑控制核心。逻辑部分主要功能有:PCI-E接口的桥、多级FPGA在线系统升级、NANDFLASH的读写等操作控制、DDR2的读写等操作控制,以及校验与智能磨损平衡技术算法等,降低了硬件成本和系统复杂性。
2.多级FPGA在线自动升级与加载方案的电路结构
设计如图1所示的硬件系统的核心结构,由5片FPGA组成;其中的FPGA1采用xilinx公司的Virtex5系列的30T器件,内部包含PCI-EXPRESS endpoint IP核,利用IP核构成的总线节点实现FPGA1与内存和CPU之间的通信。其他四片FPGA2采用xilinx公司的SPARTAN6系列的150T器件。首先通过PCIE的IP核接口实现从内存中读取到新的加载文件,然后再进行并串的转换,通过SPI接口控制模块实现从SPI_NORFLASH中读取数据与下发擦除、读写状态寄存器等指令,更新了SPI_NORFLASH中的存储的文件,存储的文件内容包括FPGA1与FPGA2的配置文件存放地址不同。为了保证在升级或者加载失败时避免FPGA瘫痪,因此还需在FLASH空间里把上述两个文件内容实现备份,供发生意外所需。其次在SPI_NORFLASH文件更新成功后,FPGA1内部通过一些控制模块将SPI_NORFLASH中的数据读出,然后进行数据串并转换与并串转换,并将转换后的数据按照SPARTAN6 150T的串行SLAVE加载模式,加载到其他4片FPGA中,从而实现整个5片FPGA的在线自动升级与加载。
图1 多级FPGA在线升级与加载方案
3.多级FPGA在线自动升级与加载方案的模块化实现
在FPGA1内部为了实现在线自动升级与加载的功能,特设计了以下几个模块,包括PCI-E IP核的包装模块,SPI接口控制器模块SPI_CONTROLLER,以及对其他4片FPGA的加载控制模块UPDATA_CONTROLLER,这3个部分共同组成了整个在线自动升级与加载的控制模块如图2所示。其中PCI-E ENDPIONT模块主要是实现PCI-E IP所需要的各种接收与发送数据的时序与数据的封装,包括TLP帧的封装与解析并将数据传送给SPI_CONTROLLER模块。
图2 FPGA1内部部分结构框图
SPI_CONTROLLER模块需要将接收到的数据处理后才能通过SPI接口烧录到NORFLASH中。从总线上传送下来的数据为32位比特,其中包括8比特命令码和24比特的地址码或者32比特全为数据或者32比特中前8位为指令码,剩余24比特无效,等格式数据。由于外置的SPI_NORFLASH根据M25P128 FLASH器件的特点,特设计了SPI_CONTROLLER模块中的一些状态机,如图3所示,根据接收到指令状态机由空闲状态转移到解码状态,分析出32位比特数据中前8位是具体指令。根据解码后的分析并进行相关状态,模块内的其他部分小模块根据这些状态产生相关的时序与数据,待操作完成后,状态机跳转到操作完成等待状态,并随后跳转到空闲状态,从而完成整
文档评论(0)