介绍一种基于静态随机存取存储器型现场可编程门阵列(SRAM-FPGA)在轨重构的方法,该重构设计可以完成目标FPGA的功能升级以及在轨实时刷新,工作稳定正常。
1.FPGA在轨重构方法
SRAM-FPGA的逻辑功能依赖于存储的配置数据,也就是说,更改星上存储的配置数据即可更改FPGA的功能。航天工程为保证可靠性,配置存储器一般使用PROM,这就导致FPGA的功能无法改变。如果在设备内预留一个“可写”的存储器作为FPGA的配置存储器,在轨时更改配置存储器内的程序,再重新加载FPGA,即可实现硬件逻辑功能的在轨重构。
星载设备内部设计重构控制电路,利用专用集成电路(ASIC)或微处理器对目标FPGA及其程序存储器进行管理和配置。通过遥控注入数据,然后由航天器上的软件或专用芯片进行操作控制,完成程序数据的解析、校验、存储、加载和刷新等工作。
对于需要频繁开关机的设备,要使用非易失性可编程存储器,如Flash芯片、EEPROM芯片,掉电后数据不丢失,可以长期存储配置程序。
资源紧张的应用环境下,设备的工作时间短,在设备通电情况下,使用SRAM等易失性存储器,通过处理器对FPGA完成加载。工作过程中要对FPGA进行刷新时,数据一直保存;不需要刷新时,数据即可删除。
2.配置数据的可靠传输
星地通信环节中,遥控信道具备良好的差错控制措施,其可靠性可以满足重构的需要,不需要增加额外的措施。星内通信环节中,不同FPGA的通信差错控制措施不同,需要根据具体的情况选择合理的方案。
配置数据的数据量一般较大,而遥控传输速率相对较低,传输时间会比较长。对于测控系统来说,执行一次重构的工程开销非常大,见上表。
为解决此问题,可以对配置数据采取分段格式化的方法,按照遥控体制及数据封装要求,在格式化的分段数据内提供接收确认和错误重传的通信协议,在发送过程中逐段完成数据检验,最终在航天器内完成整体配置文件组装及存储。发生误码的数据块单独重传,提高数据上注效率。较大的程序,可以支持多弧段分时注入。
3.配置数据的可靠存储
长寿命航天器上,长期存储的数据需要采取抗辐射设计及可靠性设计措施。首先,存储器芯片的可靠性、抗辐射性能一定要满足要求,一般选择使用非易失的存储器如EEPROM、Flash;其次,空间环境中易发生单粒子翻转效应,这就需要对存储器进行容错设计。容错设计常用的方法有两种:错误检测与纠正(Error Detection And Correction,EDAC)和三模冗余(Trip Module Redundancy,TMR)。
(1)EDAC采用扩展的汉明校验码完成自动纠正一位错检测任意两位错的功能。配置控制电路中增加EDAC电路,读写配置数据时通过检测编码的合法性来发现错误直至纠正错误。
(2)TMR设计利用三片配置存储器存储同一份配置数据,配置时,控制器从三片配置存储器中同时读出配置数据,并进行三取二表决,将表决后的数据加载到FPGA中作为配置数据。
两种方法都是利用存储空间的冗余解决数据的正确性。TMR设计需要实际配置数据规模3倍的存储空间,而EDAC要增加的存储器容量相对较少。这些增加可靠性的设计措施,会消耗存储资源,增加设计的复杂度,导致系统开销增大,因此要根据实际工程评估方案的合理性。
4.配置数据的压缩
数据压缩可以分为无损压缩和有损压缩。FPGA配置数据具有特定的格式,必须采用无损压缩。主流的压缩算法有算术编码、Huffman编码和基于字典的LZ系列压缩算法。系统设计时主要考虑3个因素:编码的压缩效率,解压缩的速度和实现复杂度。
5.工程设计
航天器电子系统中的处理设备多采用“CPU十FPGA"的架构。上图是一种常见的应用场景。需要重构的目标FPGA位于星上综合电子分系统某单机内部,设备工作统一由CPU模块控制,并与外部通信。待重构功能模块与CPU模块通过底板数据总线通信。为了实现在轨重构,采用反熔丝FPGA实现对目标FPGA重构控制。“重构控制芯片”完成目标FPGA在轨重构的核心工作。
标签:重构,配置,FPGA,SRAM,存储器,设计,数据 From: https://blog.csdn.net/weixin_43814535/article/details/144664420