一种针对FPGA块RAM抗单粒子多位翻转的加固系统

文档序号:35998789发布日期:2023-11-16 11:28阅读:80来源:国知局
一种针对

本发明涉及航空、航天数据处理,特别涉及一种针对fpga块ram抗单粒子多位翻转的加固系统。


背景技术:

1、fpga具有可编程逻辑运算、高性能、可重构、高集成度的优势,已成为星载数据系统的核心元器件。然而fpga内部存储器、寄存器等资源的逻辑状态,在太空辐射环境下极易发生单粒子效应,导致电路逻辑和功能发生改变,是影响卫星安全和任务的重要因素。

2、随着复杂空间任务对在轨数据处理、运算能力要求越来越高,需要应用更高性能的fpga,比如xilinx的7系列fpga。而90nm以下的此类器件对空间单粒子效应更敏感。由于fpga制作工艺尺寸的几何级变小,如65nm、28nm、16nm工艺,fpga内部的高密集存储部件块ram,发生单粒子翻转事件时,更多的以多位翻转(multi bit upset,简称mbu)为主。mbu是在轨使用高性能fpga需要解决的关键问题。

3、根据研究发现,单次辐射引起的mbu并不是均匀地分布在各个字中,而是具有一定的错误图样。当错误数较多时,mbu将影响上下相邻两个字,以包含“田”字形的图样为主;当错误数较小时,图像主要为“l”和“田”字形,错误图样如图1所示。


技术实现思路

1、现有技术中多位纠错码算法复杂延时高、仅数据交织可靠性不强等的缺点,本发明的目的在于克服现有技术缺陷,提出了一种针对fpga块ram抗单粒子多位翻转的加固方法。

2、为了实现上述目的,本发明提出了一种针对fpga块ram抗单粒子多位翻转的加固系统,用于对星载fpga块ram发生多位翻时进行检测和纠正,所述系统包括:

3、若干个抗mbu控制器,每个抗mbu控制器对应一个用户ram模块,所述用户ram模块包括一个或多个fpga块ram;所述抗mbu控制器包括:控制寄存器组、ecc编码模块、交织模块、用户侧读写控制模块、自刷新控制模块、解交织模块和ecc解码模块,其中,

4、所述控制寄存器组,用于抗mbu控制器的控制和状态记录;

5、所述ecc编码模块,用于根据用户待存储的数据位宽进行ecc编码;

6、所述交织模块,用于对ecc编码后的数据进行数据交织;

7、所述用户侧读写控制模块,用于将数据交织后的数据通过块ram的a端口输入块ram进行分块存储,还用于通过块ram的a端口读出数据进入解交织模块;

8、所述自刷新控制模块,用于在块ram空闲时通过块ram的b端口进行自刷新;还用于对块ram进行读写碰撞控制;

9、所述解交织模块,用于实现数据的解交织;

10、所述ecc解码模块,用于对解交织后的数据进行ecc解码。

11、作为上述系统的一种改进,所述块ram的a端口和b端口均为读写端口,a端口的优先级高于b端口。

12、作为上述系统的一种改进,所述控制寄存器组包括:配置寄存器、中断使能寄存器、错误计数寄存器、ecc出错地址寄存器、ecc出错类型寄存器、ecc状态清除寄存器和ecc出错数据寄存器。

13、作为上述系统的一种改进,所述ecc编码模块的处理过程包括:

14、根据用户待存储的数据位宽,8位数据进行汉明码(8,5)编码,16位数据进行汉明码(16,6)编码,32位数据进行汉明码(32,7)编码,64位数据进行汉明码(64,8)编码。

15、作为上述系统的一种改进,所述交织模块的处理过程具体包括:

16、采用4个数据交织存储的方法,将4个ecc编码后的数据按低地址0-3顺序存储,并将地址0和1上的偶数位与地址2和3上的偶数位交换,再通过块ram的a端口写入块ram进行分块存储。

17、作为上述系统的一种改进,所述块ram的分块存储具体包括:

18、对于用户待存储的数据位宽:

19、8位数据经ecc编码和交织处理后的数据使用一个16位宽的块ram存储;

20、16位数据经ecc编码和交织处理后的数据使用一个16位宽的块ram存储分高低地址存储;

21、32位数据经ecc编码和交织处理后的数据使用一个32位宽的块ram存储有效位,使用一个8位宽的块ram存储编码位;

22、64位数据经ecc编码和交织处理后的数据使用两个36位宽的块ram存储。

23、作为上述系统的一种改进,所述块ram的读写操作具体包括:

24、步骤s1)上电后,自动进行块ram初始化,块ram全部写0;

25、步骤s2)当用户读/写使能信号有效时,用户侧读写控制模块根据地址从块ram的a端口读出数据,由解交织模块进行解交织,再由ecc解码模块进行ecc解码;

26、步骤s3)当ecc解码正确,若是读操作,根据地址输出数据;若是写操作,将待写入数据和读出数据合并成一个相应位宽的数据后,由ecc编码模块进行ecc编码,再由交织模块进行数据交织后由用户侧读写控制模块根据地址通过a端口写入数据;

27、步骤s4)当ecc解码错误,根据ecc报错类型,若是一位错,控制寄存器组记录现场,ecc纠错,转至步骤s3);

28、步骤s5)当ecc解码错误,根据ecc报错类型,若是不可纠错,控制寄存器组记录现场,通知用户,根据中断使能寄存器,确定是否对外输出中断。

29、作为上述系统的一种改进,所述自刷新控制模块的自刷新处理过程包括:

30、步骤t1)从块ram的b端口按低地址到高地址的顺序依次读出;

31、步骤t2)由解交织模块进行解交织,再由ecc解码模块进行ecc解码;

32、步骤t3)判断ecc解码是否正确,若ecc解码无错,地址加1,继续读下一地址,并转至步骤t1);

33、若发生一位错误,记录出错类型、错误计数、数据和地址,根据提示的数据错误位置修改数据并通过b端口写回原地址,地址加1,继续读取下一地址,转至步骤t1);

34、若出现多位错误,记录现场,通知用户,并根据控制寄存器组的中断使能寄存器,判断是否对外输出中断。

35、作为上述系统的一种改进,所述自刷新控制模块的读写碰撞控制具体包括:

36、当块ram的a端口和b端口同时对块ram的同一地址读写时,发生读写碰撞,b端口采用读写握手机制,等待a端口操作完成,再进行b端口的操作。

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

38、1、本发明的针对fpga块ram抗单粒子多位翻转的加固系统,将多位翻转转换为多个单位翻,通过组合逻辑实现汉明编译码,具有延时短、逻辑简单的优点;

39、2、本发明的针对fpga块ram抗单粒子多位翻转的加固系统,利用块ram空闲状态进行自刷新,若发生错误自动写回,且进行了ram读写碰撞设计,具有可靠性高的优点;

40、3、本发明的针对fpga块ram抗单粒子多位翻转的加固系统,针对8位、16位、32位和64位数据宽度,根据特点提出分块存储的方法,具有效率高、资源利用率高的优点。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1