首页> 中国专利> 一种星载SRAM型FPGA配置与刷新控制的IP核

一种星载SRAM型FPGA配置与刷新控制的IP核

摘要

本发明公开了一种星载SRAM型FPGA配置与刷新控制的IP核,用于在外部的处理器控制下读取FPGA配置文件,对单个或多个FPGA进行在轨配置与刷新控制,该IP核包括:配置文件读取及状态输出模块、数据存储解析模块、使能控制模块和配置刷新顶层模块;配置文件读取及状态输出模块,用于读取FPGA配置文件,接收处理器指令,还用于输出FPGA的刷新状态;数据存储解析模块,用于读取FPGA配置文件并解码发送至配置刷新顶层模块;使能控制模块,用于生成配置使能信号和刷新使能信号并发送至配置刷新顶层模块;配置刷新顶层模块,用于生成配置控制命令和刷新控制命令,并发送至指定的FPGA,还用于读取FPGA的刷新状态。

著录项

  • 公开/公告号CN112527350A

    专利类型发明专利

  • 公开/公告日2021-03-19

    原文格式PDF

  • 申请/专利权人 中国科学院国家空间科学中心;

    申请/专利号CN202011420884.8

  • 发明设计人 周莉;董文涛;杨根;安军社;

    申请日2020-12-08

  • 分类号G06F8/65(20180101);G06F13/28(20060101);

  • 代理机构11472 北京方安思达知识产权代理有限公司;

  • 代理人杨青;李彪

  • 地址 100190 北京市海淀区中关村南二条1号

  • 入库时间 2023-06-19 10:19:37

说明书

技术领域

本发明涉及航空、航天电子综合化技术领域,特别涉及一种星载SRAM型FPGA配置与刷新控制的IP核。

背景技术

FPGA因其功能配置时的多样性与重复性,海量数据处理时的灵活性与高效性,被广泛的应用到航天器电子系统中,承担空间环境下的数字信号处理、图像处理等任务,其中Xilinx公司的SRAM型Virtex各系列FPGA在性能和容量上更具优势,且可根据不同的功能要求进行重配置。

然而,SRAM工艺的FPGA受空间辐射影响较大。内部配置存储器的逻辑状态常常由于高能粒子的撞击而翻转(单粒子翻转),可能导致航天器信息的丢失或者功能中断。由于空间环境的特殊性,可靠性成为航天器的重要指标,容错设计在航天器电子系统中必不可少。

除三模冗余设计外,配置、刷新(Scrubbing)、回读是航天中针对SRAM型FPGA单粒子翻转常用的三大技术。刷新理论上来说也属于部分重配置(Partial Reconfiguration),Xilinx公司给出的官方文档中,就将刷新等同于主动重配置(active reconfiguration)。并非所有的SRAM工艺FPGA都支持这种功能,必须具备特定的工艺。目前Xilinx公司的Virtex各系列FPGA均支持刷新。

刷新就是指在FPGA已经上电配置成功工作以后,不事先擦除已配置的逻辑,就直接重新写入配置数据的操作。刷新实际上是一种SEU发生后的恢复措施,因此它需要TMR、容错编码等的配合才能达到良好的效果。Xilinx公司发布的基于“TMR+Scrubbing”的容错方案在许多卫星中得到广泛的使用。

配置或重加载是当FPGA发生功能失效时采取的一种功能恢复的有效措施。

Select MAP配置方式有8位配置数据和7位控制信号,具体信息如表1所示。在控制信号准备完成后,配置位流在每个时钟上升沿同时写入8bits的配置数据。D0引脚是每个配置字节的最高位(MSB);相对的,D7引脚是最低位(LSB)。为了在完成上电配置过程后,仍能对FPGA进行Scrubbing和回读操作,需要保留D[7:0]八位数据接口和BUSY、INIT_B、RDWR_B、CS_B管脚不被用作普通I/O接口。如图1所示为配置方式时序图。

表1 Virtex-II系列FPGA Select MAP模式配置管脚

目前国内有一些SRAM FPGA的刷新设计,存在支持的刷新FPGA芯片种类少、支持的刷新FPGA芯片数量少、软件不可配置、可扩展性差、可靠性待验证的问题。

发明内容

现有技术中SRAM FPGA配置和刷新存在的可扩展性差的问题,本发明的目的在于克服上述现有技术的缺陷,提供一种星载SRAM型FPGA配置与刷新控制的IP核,具备扩展性和移植性强的特点。

为了实现上述目的,本发明提出了一种星载SRAM型FPGA配置与刷新控制的IP核,用于在外部的处理器控制下读取FPGA配置文件,对单个或多个SRAM型FPGA进行在轨配置与刷新控制,其特征在于,所述IP核包括:配置文件读取及状态输出模块、数据存储解析模块、使能控制模块和配置刷新顶层模块;所述配置文件读取及状态输出模块连接外部的处理器、控制寄存器或存储器,所述配置刷新顶层模块通过selectMAP总线接口与多个SRAM型FPGA连接;其中,

所述配置文件读取及状态输出模块,用于读取FPGA配置文件,用于接收外部的处理器指令并发送至使能控制模块,还用于输出每个FPGA的刷新状态至外部的处理器;

所述数据存储解析模块,用于从配置文件读取及状态输出模块读取FPGA配置文件并进行解码,将解码后的配置数据发送至配置刷新顶层模块;

所述使能控制模块,用于根据外部的处理器指令、输入的复位信号和同步信号,结合FPGA的类型分别生成配置使能信号和刷新使能信号并发送至配置刷新顶层模块;还用于接收FPGA的刷新状态进行存储并发送至配置文件读取及状态输出模块;

所述配置刷新顶层模块,用于根据配置使能信号和配置数据生成配置控制命令并通过selectMAP总线接口发送至指定的FPGA,根据刷新使能信号生成刷新控制命令,并通过selectMAP总线接口发送至指定的FPGA,还用于读取FPGA的刷新状态并发送至使能控制模块。

作为上述IP核的一种改进,所述FPGA配置文件由外部的处理器进行汉明编码,并由外部的处理器指定存储地址和长度后写入外部的存储器,每个FPGA对应一个FPGA配置文件。

作为上述IP核的一种改进,所述配置文件读取及状态输出模块包括APB总线单元、AXI总线单元、DMA单元和地址管理单元;其中,

所述APB总线单元,用于读取FPGA配置文件,用于接收外部的处理器指令并发送至使能控制模块,还用于向外部输出FPGA的刷新状态;

所述AXI总线单元,用于控制DMA单元;

所述DMA单元,用于在AXI总线单元的控制下读取FPGA配置文件;

所述地址管理单元,用于根据配置刷新顶层模块输出的读地址累加使能信号对DMA单元进行地址累加。

作为上述IP核的一种改进,所述AXI总线单元工作在master模式,根据外部的处理器指令主动发起读操作。

作为上述IP核的一种改进,所述数据存储解析模块包括多路选择器、缓冲FIFO、数据信号同步单元和ECC解码单元;其中,

所述多路选择器,用于选择从APB总线单元或DMA单元读取FPGA配置文件并发送至缓冲FIFO;

所述缓冲FIFO,用于缓存FPGA配置文件;

所述数据信号同步单元,用于从缓冲FIFO中读取FPGA配置文件并发送至ECC解码单元;

所述ECC解码单元,用于采用汉明码对FPGA配置文件进行解码,当解码无错误或者发生一位错误,经自动纠正后将解码后的配置数据发送至配置刷新顶层模块;当解码发生两位或两位以上错误,发出中断通知至外部的处理器。

作为上述IP核的一种改进,所述使能控制模块包括分频单元、复位同步单元和控制寄存器单元;其中,

所述分频单元,用于根据输入时钟频率设置分配系数,实现对刷新速度的控制;

所述复位同步单元,用于接收复位信号进行同步,并将同步后的复位信号发送至配置文件读取及状态输出模块、数据存储解析模块和配置刷新顶层模块;

所述控制寄存器单元,用于存储收到的处理器指令、分频值、DMA起始地址、DMA长度、DMA命令、刷新命令、待刷新的FPGA类型和个数以及刷新状态;还用于将FPGA的刷新状态发送至APB总线单元。

作为上述IP核的一种改进,所述控制寄存器单元包括FIFO输入寄存器、分频配置寄存器、DMA起始地址寄存器、DMA长度寄存器、DMA命令寄存器、刷新命令寄存器、刷新配置寄存器和刷新状态寄存器;其中,

所述FIFO输入寄存器,用于存储从APB总线单元接收的FPGA配置数据;

所述分频配置寄存器,用于存储分频值,系统时钟除以2倍分频值为刷新时钟的速率;

所述DMA起始地址寄存器,用于存储DMA启动操作的起始地址;

所述DMA长度寄存器,用于存储DMA启动操作的长度;

所述DMA命令寄存器,用于存储启动标志、停止标志、结束标志、清除标志、总线空闲标志、FIFO有效标志;

所述刷新命令寄存器,用于存储配置使能和刷新使能;

所述刷新配置寄存器,用于通过低4位存储待刷新的FPGA类型,通过高8位存储待刷新的FPGA的片选号,待刷新的FPGA的个数小于等于24个;

所述刷新状态寄存器,用于存储FPGA的刷新状态。

作为上述IP核的一种改进,所述配置刷新顶层模块包括配置刷新指令生成单元和配置刷新执行单元;其中,

所述配置刷新指令生成单元,用于从控制寄存器的刷新命令寄存器中获取配置使能信号经译码生成配置指令,并发送至配置刷新执行单元,用于从控制寄存器的刷新命令寄存器中获取刷新使能信号,经译码生成刷新指令,并发送至配置刷新执行单元;所述刷新指令包括单次刷新指令和循环刷新指令;

所述配置刷新执行单元,用于根据配置指令和ECC解码单元解码后的配置数据生成配置控制命令并输出至selectMAP总线,用于根据刷新命令和ECC解码单元解码后的FPGA配置数据,生成刷新控制命令并输出至selectMAP总线,用于读取FPGA的刷新状态并发送至刷新状态寄存器,还用于发送读地址累加使能信号至地址管理单元;

作为上述IP核的一种改进,当配置或刷新未结束并且缓冲FIFO为空时,所述配置刷新执行单元停止输出刷新时钟,待缓冲FIFO不为空时,所述配置刷新执行单元继续输出刷新时钟。

与现有技术相比,本发明的优势在于:

1、本发明的IP核具有软件可配置、硬件可扩展的优点;

2、本发明的IP核具有可移植性强、实现简单、成本低的优点;

3、本发明的IP核能够对配置信息实现自动纠一检二功能,具有可靠性高的优点。

附图说明

图1是Select MAP的配置方式时序图;

图2是本发明的星载SRAM型FPGA配置与刷新控制IP核的系统组成图;

图3是本发明的星载SRAM型FPGA配置与刷新控制IP核的外围组成示意图。

具体实施方式

下面结合附图和实施例对本发明的技术方案进行详细的说明。

如图2所示,本申请提出了一种星载SRAM型FPGA配置与刷新控制的IP核,用于在外部的处理器控制下读取FPGA配置文件,对单个或多个SRAM型FPGA进行在轨配置与刷新控制,

1)IP核通过APB总线连接外部处理器,实现对IP核内部寄存器的控制;

2)IP核通过AXI总线和DMA或通过APB总线,访问外部存储器,实现对配置文件的读取;

3)IP核通过selectMAP总线接口实现对外部多个SRAM FPGA的配置和刷新;

4)软件可配置、硬件可扩展,可移植性强,可以移植到FPGA、ASIC或SOC芯片中实现SRAM型FPGA的控制和刷新功能。

如图3所示,为本发明的星载SRAM型FPGA配置与刷新控制IP核的外围组成示意图,本发明的IP核可以部署到FPGA、ASIC或者SOC中,图中与刷新功能相关的模块是处理器(CPU核)、APB总线、AXI总线、EMI接口、Nor flash和外部SRAM FPGA。SRAM FPGA是待加载或刷新的FPGA;Nor flash存储的是SRAM FPGA的配置文件;CPU核可以通过APB总线配置IP核中的寄存器从而控制SRAM FPGA的配置和刷新;EMI接口主要实现AXI或者APB总线对Nor flash数据的读取。FPGA的配置文件由CPU进行汉明编码后写入外部存储器,各FPGA的配置文件的地址和长度由CPU指定,支持单个或多个FPGA在轨更新,灵活性高。

下面对本发明中的IP核做进一步的说明。

IP核包括:配置文件读取及状态输出模块、数据存储解析模块、使能控制模块和配置刷新顶层模块;所述配置文件读取及状态输出模块连接外部的处理器、控制寄存器或存储器,所述配置刷新顶层模块通过selectMAP总线接口与多个SRAM型FPGA连接;

配置文件读取及状态输出模块包括APB总线单元、AXI总线单元、DMA单元和地址管理单元;其中,

APB总线单元,用于读取FPGA配置文件,用于接收外部的处理器指令并发送至使能控制模块,还用于向外部输出FPGA的刷新状态;APB总线单元连接IP核外部的处理器和内部的控制寄存器模块,可以实现外部的处理器对整个IP核的控制;所述APB总线单元也可以直接读取外部存储FPGA配置文件的存储器,将读到的配置文件数据经过多路选择器写入缓冲FIFO。

AXI总线单元通过控制DMA单元对外部存储FPGA配置文件的存储器进行读操作,按照DMA相关寄存器给出的DMA起始地址、长度,DMA单元将读到的配置文件数据经过多路选择器写入缓冲FIFO。AXI总线单元工作在master模式,根据指令主动发起读操作,并将读到的数据写入缓冲FIFO。

地址管理单元,根据配置刷新执行单元输出的读地址累加使能进行地址累加,当刷新结束后,地址清0;下次启动新的刷新时,执行新的地址。

数据存储解析模块包括多路选择器、缓冲FIFO、数据信号同步单元和ECC解码单元;其中,

多路选择器,用于选择从APB总线单元或DMA单元读取FPGA配置文件并发送至缓冲FIFO;多路选择器是当配置成DMA取数模式时,选择的是DMA通道。

缓冲FIFO,用于缓存FPGA配置文件;

数据信号同步单元,用于从缓冲FIFO中读取FPGA配置文件并发送至ECC解码单元;

ECC解码单元,数据信号同步单元读取缓冲FIFO中的数据,进行ECC解码,并将解码后的数据送到配置刷新执行单元。ECC解码采用的是(8,6)汉明码,能够自动纠正读取配置信息中的一位错误,当发生两位或两位以上错误时能发出中断,通知CPU。

使能控制模块包括分频单元、复位同步单元和控制寄存器单元;其中,

分频单元,用于根据输入时钟频率设置分配系数,实现对刷新速度的控制;

复位同步单元,用于接收复位信号进行同步,并将同步后的复位信号发送至IP核中的其余单元;

控制寄存器单元组成如表2所示,共包括8个寄存器:

1)Data_in是FIFO输入寄存器,APB写该寄存器即将数据写入缓冲FIFO中;

2)Div_cfg是分频配置寄存器,系统时钟除以2倍该寄存器值,即为刷新时钟的速率;

3)Dma_source是DMA起始地址寄存器,启动DMA操作时需要配置该地址;

4)Dma_cnt是DMA长度寄存器,启动DMA操作时需要配置该地址;

5)Dma_cmd是DMA命令寄存器,包括启动、停止、结束标志、清除标志、总线空闲、FIFO有效等控制和状态位,启动DMA操作时需要配置该地址;

6)Smap_cmd是刷新命令寄存器,包括配置使能和刷新使能两位,可以配成单次刷新或者循环刷新;

7)Smap_cfg是刷新配置寄存器,低4位代表刷新FPGA的类型(如XC2V3000,XC4VSX55等),高8位代表刷新FPGA的片选号,可以扩展成24片。

8)status是刷新状态寄存器,代表刷新的状态是否正常。

表2寄存器列表

配置刷新顶层模块包括配置刷新指令生成单元和配置刷新执行单元;其中,

配置刷新指令生成单元将控制寄存器中的配置值进行时钟同步,并将同步后的配置值译码生成指令给配置刷新执行单元,可以配成单次刷新或者循环刷新。

配置刷新执行单元根据配置刷新指令生成单元生成的指令和ECC解码单元解码后的数据,生成SRAM FPGA的配置或刷新逻辑输出到selectMAP总线。该单元的可靠性设计是,当配置或刷新未结束且缓冲FIFO空时,配置刷新执行单元不输出刷新时钟,待FIFO不为空时再继续输出刷新时钟,继续刷新。

本发明的IP核能够实现多片多类型的SRAM FPGA的分时加载和刷新,刷新的片数由selectMAP总线的片选管脚数和内部控制寄存器实现可配置,目前设计是支持8个SRAMFPGA分时周期刷新,可以根据项目需求进行扩展,可以扩展成24片。

最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号