CN104572326A - 一种基于回读自重构的SoPC芯片容错方法 - Google Patents
一种基于回读自重构的SoPC芯片容错方法 Download PDFInfo
- Publication number
- CN104572326A CN104572326A CN201410789605.3A CN201410789605A CN104572326A CN 104572326 A CN104572326 A CN 104572326A CN 201410789605 A CN201410789605 A CN 201410789605A CN 104572326 A CN104572326 A CN 104572326A
- Authority
- CN
- China
- Prior art keywords
- gpio
- pin
- processor
- sparc
- fpga
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Abstract
一种基于回读自重构的SoPC芯片容错方法,针对传统的辐射加固的FPGA在太空中每天会发生多次粒子翻转的问题,提供了一种在不增加SoPC芯片面积的前提下,基于回读自重构的方式实现芯片的自主故障检测及故障修复的方法。本发明方法首先读取FPGA配置存储器中的配置数据和Flash中存储的原始配置数据,然后将两者逐位进行比较,通过比较文件格式上的差异能够验证回读的配置数据是否发生了故障并定位故障,最后根据原始配置文件将故障纠正。本发明方法在不增加外围检测设备和检测电路的情况下完成了故障检测、故障判读、故障修复,提高了SoPC芯片在外太空环境应用中的可靠性,推动了SoPC芯片的发展。
Description
技术领域
本发明涉及一种国产SoPC(Programing System on Chip)芯片BM3109的智能化自主容错和故障修复,特别是一种基于回读自重构的SoPC芯片容错方法,使得SoPC芯片能够在外太空环境下,具有自主故障检测和修复的能力。
背景技术
传统的辐射加固的FPGA在太空中每天会发生多次粒子翻转(SEU),比如LEO轨道的XQVR300型FPGA每天平均翻转2.05次,而98度倾斜轨道的XQR4036XL在太阳耀斑异常时每天翻转多达148.5次。为了适应恶劣的空间环境,传统的星载电子设备一般采用冗余的方法来提高系统的可靠性,比如双机备份、三机备份等多种冗余方案,然而冗余方案大都针对已知的故障模式设计的,对于复杂的和未知的故障处理则缺乏有效的办法。另外即使采用三模冗余TMR的机制,最多也只能容纳一个故障,当存在两个或者两个以上的故障时,会因为数据仲裁器无法给出正确的仲裁结果而导致错误的发生。三模冗余的方式只能过滤故障,并不能对出现的故障进行修复。同时,片上卫星自身体积极小,采用冗余的设计方案必将导致体积的增加,与片上卫星的设计理念相悖。
发明内容
本发明解决的技术问题是:克服现有技术的不足,提供了一种在不增加SoPC芯片面积的前提下,基于回读自重构的方式实现芯片的自主故障检测及故障修复的方法,提高了SoPC芯片在外太空环境应用中的可靠性。
本发明的技术解决方案是:一种基于回读自重构的SoPC芯片容错方法,包括如下步骤:
(1)将FPGA的模式选择引脚M0、M1、M2均连接到FPGA的GND端;
(2)将SPARC V8处理器的GPIO-PIO48引脚连接到FPGA的IO_D7引脚,GPIO-PIO49引脚连接到FPGA的IO_D6引脚,GPIO-PIO50引脚连接到FPGA的IO_D5引脚,GPIO-PIO51引脚连接到FPGA的IO_D4引脚,GPIO-PIO52引脚连接到FPGA的IO_D3引脚,GPIO-PIO53引脚连接到FPGA的IO_D2引脚,GPIO-PIO54引脚连接到FPGA的IO_D1引脚,GPIO-PIO55引脚连接到FPGA的IO_D0引脚,GPIO-PIO62连接到FPGA的IO_WRITE引脚,GPIO-PIO63引脚连接到FPGA的IO_CS引脚,GPIO-PIO61引脚连接到FPGA的GCLK引脚,GPIO-PIO56引脚连接到FPGA的INIT引脚,GPIO-PIO58引脚连接到FPGA的DONE引脚,GPIO-PIO60引脚连接到FPGA的IO_DOUT_BUSY引脚,GPIO-PIO57引脚连接到FPGA的PROGRAM引脚;
(3)将SPARC V8处理器地址线Ai接到FLASH的地址线PAi-1,i=1,2,3,,,22,数据线Dj,j=16,17,18,,,31,连接到FLASH的数据线DQg,g=0,1,2,,,15,写控制信号端连接到FLASH的WE端,复位控制信号端连接到FLASH的PRESET端,片选控制信号端连接到FLASH的CE端,读控制信号端连接到FLASH的OE端;
(4)将SPARC V8处理器地址线Ai接到SDRAM的地址线PAi-1,数据线Dj,连接到SDRAM的数据线DQk,k=0,1,2,,,31,写控制信号端连接到SDRAM的SDWEN端,复位控制信号端连接到FLASH的SDRASN端,片选控制信号端连接到SDRAM的SDCS0端,字节控制信号端BE0连接到SDDQM0,字节控制信号端BE1连接到SDDQM1,字节控制信号端BE2连接到SDDQM2,字节控制信号端BE3连接到SDDQM3;
(5)设置SPARC V8处理器GPIO-PIO63引脚为输出,向SPARC V8处理器GPIO-PIO63的数据寄存器写入“0”,经过1个时钟周期后,设置SPARCV8处理器GPIO-PIO62脚为输出,并向SPARC V8处理器GPIO-PIO62的数据寄存器写入“0”;
(6)设置SPARC V8处理器的GPIO-PIO61引脚为输出,向SPARC V8处理器的GPIO-PIO61的数据寄存器写入“1”,下一个时钟周期向SPARC V8处理器的GPIO-PIO61的数据寄存器写入“0”,向SPARC V8处理器的GPIO-PIO61的数据寄存器写入“1”和“0”交替进行,并同时执行步骤(7)-步骤(8);
(7)设置SPARC V8处理器的GPIO-PIO63引脚为输出,向SPARC V8处理器GPIO-PIO63的数据寄存器写入“0”,设置SPARC V8处理器的GPIO-PIO62脚为输出,并向SPARC V8处理器GPIO-PIO62的数据寄存器写入“0”,设置SPARC V8处理器的GPIO-PIO57引脚为输出,并向SPARC V8处理器的GPIO-PIO57的数据寄存器写入“1”;
(8)根据Xilinx手册,生成回读命令数组,从回读命令数组中依次取出数据,当CCLK信号为高电平时,以2进制的格式,从高到低写入SPARC V8处理器的GPIO-PIO48、GPIO-PIO49、GPIO-PIO50、GPIO-PIO51、GPIO-PIO52、GPIO-PIO53、GPIO-PIO54、GPIO-PIO55,直至回读命令数组被全部遍历,当回读命令数组被全部遍历时,转入步骤(9);所述回读命令数组包括同步字、写入到FAR寄存器、起始帧地址、写入到CMD寄存器、包数据RCFG、从FDRO寄存器中读出、数据字;
(9)设置SPARC V8处理器GPIO-PIO62引脚与GPIO-PIO63引脚均为输出,并分别向SPARC V8处理器GPIO-PIO62的数据寄存器与GPIO-PIO63的数据寄存器写入“1”,设置SPARC V8处理器GPIO-PIO48、GPIO-PIO49、GPIO-PIO50、GPIO-PIO51、GPIO-PIO52、GPIO-PIO53、GPIO-PIO54、GPIO-PIO55引脚为输入,再次设置SPARC V8处理器GPIO-PIO62引脚与GPIO-PIO63引脚均为输出,并分别向SPARC V8处理器GPIO-PIO62的数据寄存器与GPIO-PIO63的数据寄存器写入“1”,设置SPARC V8处理器的GPIO-PIO61引脚为输出,向SPARC V8处理器的GPIO-PIO61的数据寄存器写入“0”,下一个时钟周期向SPARC V8处理器的GPIO-PIO61的数据寄存器写入“1”;
(10)设置SPARC V8处理器GPIO-PIO62引脚为输出,向SPARC V8处理器GPIO-PIO62的数据寄存器写入“1”,设置SPARC V8处理器GPIO-PIO63引脚为输出,向SPARC V8处理器GPIO-PIO63的数据寄存器写入“0”;
(11)设置SPARC V8处理器的GPIO-PIO61引脚为输出,向SPARC V8处理器的GPIO-PIO61的数据寄存器写入“1”,下一个时钟周期向SPARC V8处理器的GPIO-PIO61的数据寄存器写入“0”,向SPARC V8处理器的GPIO-PIO61的数据寄存器写入“1”和“0”交替进行,并同时执行步骤(12)-步骤(13);
(12)设置SPARC V8处理器的GPIO-PIO63引脚为输出,向SPARC V8处理器GPIO-PIO63的数据寄存器写入“0”,设置SPARC V8处理器的GPIO-PIO62脚为输出,并向SPARC V8处理器GPIO-PIO62的数据寄存器写入“1”,设置SPARC V8处理器的GPIO-PIO57引脚为输出,并向SPARC V8处理器的GPIO-PIO57的数据寄存器写入“1”;
(13)当CCLK信号为高电平时,以2进制的格式从SPARC V8处理器的GPIO-PIO48、GPIO-PIO49、GPIO-PIO50、GPIO-PIO51、GPIO-PIO52、GPIO-PIO53、GPIO-PIO54、GPIO-PIO55读取数据,直至FPGA中的数据全部读出,得到回读数据;所述回读数据为多个CLB数据帧组成的数据帧数组;
(14)设置SPARC V8处理器GPIO-PIO62引脚与GPIO-PIO63引脚均为输出,并分别向SPARC V8处理器GPIO-PIO62的数据寄存器与GPIO-PIO63的数据寄存器写入“1”;
(15)将回读得到的数据帧数组与存储在FLASH中的原始有效配置数据进行比较,如果数据出现不一致,则根据不一致的数据所在数据帧的帧标识得到故障帧的行、列坐标信息,如果数据没有出现不一致,则FPGA数据没有发生粒子翻转;
(16)在ISE10.1开发环境任意生成的.bit文件并送至FLASH中,对SPARC V8处理器、FLASH、FPGA进行上电,SPARC V8处理器从FLASH中读取.bit文件,按照.bit文件格式和Virtex芯片的配置格式生成配置信息数组;
(17)设置SPARC V8处理器的GPIO-PIO57引脚为输出,向GPIO-PIO57引脚的数据寄存器中写入“1”,然后向SPARC V8处理器的GPIO-PIO57引脚的数据寄存器中写入“0”,设置SPARC V8处理器的GPIO-PIO56引脚为输入,监测FPGA的INIT引脚的电压变化;
(18)如果INIT引脚由低电平变为高电平,则转入步骤(19);如果FPGA的INIT引脚为高电平,则重复步骤(16)-步骤(17),直至FPGA的INIT引脚出现由低电平向高电平的跳变后转步骤(19);
(19)设置SPARC V8处理器GPIO-PIO63引脚为输出,然后向SPARCV8处理器GPIO-PIO62的数据寄存器写入“0”,一个时钟周期后设置SPARCV8处理器GPIO-PIO62脚为输出,并向SPARC V8处理器GPIO的数据寄存器写入“0”;
(20)设置SPARC V8处理器的GPIO-PIO61引脚为输出,向SPARC V8处理器的GPIO-PIO61的数据寄存器写入“1”,下一个时钟周期向SPARC V8处理器的GPIO-PIO61的数据寄存器写入“0”,向SPARC V8处理器的GPIO-PIO61的数据寄存器写入“1”和“0”交替进行,并同时执行步骤(21)-步骤(22);
(21)设置SPARC V8处理器的GPIO-PIO63引脚为输出,向SPARC V8处理器GPIO-PIO62的数据寄存器写入“0”,设置SPARC V8处理器的GPIO-PIO62脚为输出,并向SPARC V8处理器GPIO的数据寄存器写入“0”,设置SPARC V8处理器的GPIO-PIO57引脚为输出,并向SPARC V8处理器的GPIO-PIO57的数据寄存器写入“1”;
(22)从配置信息数组中依次取出数据,在FPGA的GCLK信号为高电平时,以2进制的格式从高到低写入SPARC V8处理器的GPIO-PIO48、GPIO-PIO49、GPIO-PIO50、GPIO-PIO51、GPIO-PIO52、GPIO-PIO53、GPIO-PIO54、GPIO-PIO55,同时持续监控FPGA的IO_DOUT_BUSY引脚,如果IO_DOUT_BUSY引脚为高电平,则持续向GPIO-PIO48、GPIO-PIO49、GPIO-PIO50、GPIO-PIO51、GPIO-PIO52、GPIO-PIO53、GPIO-PIO54、GPIO-PIO55的数据寄存器中写入当前配置数据,直至IO_DOUT_BUSY信号输出为低电平,如果IO_DOUT_BUSY为低电平,则转入步骤(23);
(23)设置SPARC V8处理器GPIO-PIO62引脚为输出,向SPARC V8处理器GPIO-PIO62的数据寄存器写入“1”,然后设置SPARC V8处理器GPIO-PIO63引脚为输出,向SPARC V8处理器GPIO-PIO63的数据寄存器写入“1”;
(24)配置SPARC V8处理器GPIO-PIO58引脚为输入,持续检测FPGA的DONE控制信号的输出,如果DONE控制信号电平为高,则软配置电路完成,如果DONE控制信号电平不为高,则继续等待,直至DONE信号为高,当等待时间超出设定的阈值时,则重复执行(16)至(23)直至DONE信号为高。
所述的同步字为0xAA99 5566h、写入到FAR寄存器为0x3000 2001h、起始帧地址为0x0000 0000h、写入到CMD寄存器为0x3000 8001h、包数据RCFG为0x0000 0000h、从FDRO寄存器中读出为0x2800 6000h、数据字为0x4800 cb07h。
本发明与现有技术相比的优点在于:
(1)本发明方法使SoPC芯片具有了自主在轨故障监测和修复的能力。采用传统SoPC的设计及实现方法,当芯片随航天器进入外太空环境后,只能采取冗余手段进行故障的过滤,在出现故障后,没有有效的手段进行修复,本发明方法可以使SoPC芯片自主实现故障的监测及恢复的能力;
(2)本发明方法更加智能化,传统的故障恢复手段常采用专用配置芯片在SOPC芯片运行一段时间后,对SoPC芯片执行刷新操作来实现故障的屏蔽,整个执行过程中都是按照既定时间进行盲目刷新操作,即使SOPC中并不存在错误或故障。这将导致系统频繁的进行数据保护和逻辑重构,增加了系统的可靠性和实时性。而本发明方法是在识别到故障后再进行故障修复,因此更加智能化;
(3)本发明方法具有更小体积,传统的故障恢复手段采用外部专用配置芯片,而本发明方法实现的故障检测和故障恢复都在SOPC芯片内部实现,有效地减少了系统的体积和功耗;
(4)本发明方法可靠性更高。传统的故障恢复手段采用外部专用配置芯片,配置芯片和SoPC芯片的连接是在板级上进行实现,数据通路很容易暴露在空间辐射下,本发明方法在芯片内部实现故障检测和恢复,有利于抗辐加固设计的实现,同时防止了配置芯片在飞行过程中因振动造成的焊点脱落的问题,可靠性更高。
附图说明
图1为本发明方法故障定位操作示意图;
图2为本发明方法自重构操作示意图;
图3为本发明方法SoPC芯片自重构操作示意图。
具体实施方式
本发明对国产SoPC芯片BM3109的自主化容错设计进行研究,寻求在不增加SoPC芯片面积的前提下,基于“回读-重构”的方式,实现芯片的自主故障检测及故障修复。通过突破此项关键技术,将有利提高SoPC芯片在外太空环境应用中的可靠性,有利于推动国产SoPC芯片的发展。本发明为国产SoPC芯片BM3109提供一种自主容错和故障恢复的能力,在不增加外围检测设备和检测电路的情况下,基于“回读-自重构”的容错机制,使BM3109能够在空间环境下,自主完成故障检测、故障判读、故障修复。
故障检测:启动配置BM3109中Flash的控制引脚,在时钟CCLK的控制下,同时读取BM3109中FPGA配置存储器中的配置数据和Flash中存储的原始配置数据,并将两者逐位进行比较。当发现两者数据不匹配时,向V8处理器发送故障信号;
故障判读:配置数据的验证是通过将回读的配置数据与下载到FPGA中的原始配置数据进行比较来实现的,基于比较文件格式上的差异能够验证回读的配置数据是否发生了故障;
故障修复:FPGA的功能故障主要是因FPGA中配置信息的反转造成,需要根据原始配置文件将其纠正。
下面对基于回读自重构的SoPC芯片自容错方法详细说明。
1硬件连接
(1)模式配置接口硬件连接
将FPGA的模式选择引脚M0、M1、M2均连接到GND端;
(2)回读接口硬件连接
将SPARC V8处理器的GPIO-PIO48引脚连接到FPGA的IO_D7引脚,GPIO-PIO49引脚连接到FPGA的IO_D6引脚,GPIO-PIO50引脚连接到FPGA的IO_D5引脚,GPIO-PIO51引脚连接到FPGA的IO_D4引脚,GPIO-PIO52引脚连接到FPGA的IO_D3引脚,GPIO-PIO53引脚连接到FPGA的IO_D2引脚,GPIO-PIO54引脚连接到FPGA的IO_D1引脚,GPIO-PIO55引脚连接到FPGA的IO_D0引脚,GPIO-PIO62连接到FPGA的IO_WRITE引脚,GPIO-PIO63引脚连接到FPGA的IO_CS引脚,GPIO-PIO61引脚连接到FPGA的GCLK引脚;如表所示
(3)FLASH接口硬件连接
将SPARC V8处理器地址线Ai接到FLASH的地址线PAi-1,i=(1,2,3,,,22),数据线Dj,j=(16,17,18,,,31),连接到FLASH的数据线DQg,g=(0,1,2,,,15),写控制信号端连接到FLASH的WE端,复位控制信号端连接到FLASH的PRESET端,片选控制信号端连接到FLASH的CE端,读控制信号端连接到FLASH的OE端;
(4)SDRAM接口硬件连接
将SPARC V8处理器地址线Ai接到SDRAM的地址线PAi-1,i=(1,2,3,,,22),数据线Dj,j=(16,17,18,,,31),连接到SDRAM的数据线DQk,k=(0,1,2,,,31),写控制信号端连接到SDRAM的SDWEN端,复位控制信号端连接到FLASH的SDRASN端,片选控制信号端连接到SDRAM的SDCS0端,字节控制信号BE0、BE1、BE2、BE3,依次连接到SDDQM0、SDDQM1、SDDQM2、SDDQM3;
(5)自重构接口硬件连接
将SPARC V8处理器的GPIO-PIO56引脚连接到FPGA的INIT引脚,GPIO-PIO58引脚连接到FPGA的DONE引脚,GPIO-PIO60引脚连接到FPGA的IO_DOUT_BUSY引脚,GPIO-PIO57引脚连接到FPGA的PROGRAM引脚;
2回读功能实现
(21)根据Xilinx手册,生成回读命令数组。如表所示
数据类型 | 数据值 |
同步字 | 0xAA99 5566h |
写入到FAR寄存器 | 0x3000 2001h |
起始帧地址 | 0x0000 0000h |
写入到CMD寄存器 | 0x3000 8001h |
包数据RCFG | 0x0000 0000h |
从FDRO寄存器中读出 | 0x2800 6000h |
数据字 | 0x4800 cb07h |
(22)配置SPARC V8处理器GPIO-PIO63引脚为输出,向SPARC V8处理器GPIO-PIO63的数据寄存器写入“0”,使FPGA的IO_CS输入为低电平;
(23)经过1个时钟周期后,配置SPARC V8处理器GPIO-PIO62脚为输出,并向SPARC V8处理器GPIO-PIO62的数据寄存器写入“0”,使FPGA的IO_WRITE引脚为低电平;
(24)遍历回读命令数组并根据回读命令数组,连续配置SPARC V8处理器中的GPIO寄存器使GPIO组中的15个引脚生成时钟信号、读写控制信号、片选控制信号、配置使能信号、八路数据信号,送至FPGA。
a.通过周期性配置SPARC V8处理器GPIO-PIO61引脚寄存器,通过控制寄存器和数据寄存器的变化来为FPGA的时钟信号GCLK提供输入。每间隔1个时钟周期,交替的令SPARC V8处理器的GPIO-PIO61管脚输出“1”和“0”。每一个交替周期内,由三部分操作构成:配置SPARC V8处理器的GPIO-PIO61引脚为输出;向SPARC V8处理器的GPIO-PIO61的数据寄存器写入“1”,使FPGA的GCLK输入为高电平;下一个时钟周期向SPARC V8处理器的GPIO-PIO61的数据寄存器写入“0”,使FPGA的GCLK输入为低电平。
b.配置SPARC V8处理器的GPIO-PIO63引脚为输出,向SPARC V8处理器GPIO-PIO63的数据寄存器写入“0”,使FPGA的IO_CS输入为低电平;配置SPARC V8处理器的GPIO-PIO62脚为输出,并向SPARC V8处理器GPIO-PIO62的数据寄存器写入“0”,使FPGA的IO_WRITE引脚为低电平;配置SPARC V8处理器的GPIO-PIO57引脚为输出,并向SPARC V8处理器的GPIO-PIO57的数据寄存器写入“1”,使FPGA的PROGRAM引脚为高电平。
c.从回读命令数组中依次取出数据,在CCLK信号为高电平时,以2进制的格式,从高到低写入SPARC V8处理器的GPIO-PIO48、GPIO-PIO49、GPIO-PIO50、GPIO-PIO51、GPIO-PIO52、GPIO-PIO53、GPIO-PIO54、GPIO-PIO55,使FPGA的8路IO_D7、IO_D6、IO_D5、IO_D4、IO_D3、IO_D2、IO_D1、IO_D0信号接收到回读命令。重复执行此过程,直至回读命令数组被全部遍历。
(25)配置SPARC V8处理器GPIO-PIO62引脚为输出,向SPARC V8处理器GPIO-PIO62的数据寄存器写入“1”,使FPGA的IO_WRITE引脚输入为高电平;配置SPARC V8处理器GPIO-PIO63引脚为输出,向SPARC V8处理器GPIO-PIO63的数据寄存器写入“1”,使FPGA的IO_CS引脚输入为高电平;
(26)配置SPARC V8处理器GPIO-PIO48、GPIO-PIO49、GPIO-PIO50、GPIO-PIO51、GPIO-PIO52、GPIO-PIO53、GPIO-PIO54、GPIO-PIO55引脚为输入,以读取FPGA数据。
(27)配置SPARC V8处理器GPIO-PIO62引脚为输出,向SPARC V8处理器GPIO-PIO62的数据寄存器写入“1”,使FPGA的IO_WRITE引脚输入为高电平;配置SPARC V8处理器GPIO-PIO63引脚为输出,向SPARC V8处理器GPIO-PIO63的数据寄存器写入“1”,使FPGA的IO_CS引脚输入为高电平;配置SPARC V8处理器的GPIO-PIO61引脚为输出;向SPARC V8处理器的GPIO-PIO61的数据寄存器写入“0”,使FPGA的GCLK输入为低电平;下一个时钟周期向SPARC V8处理器的GPIO-PIO61的数据寄存器写入“1”,使FPGA的GCLK输入为高电平。
(28)配置SPARC V8处理器GPIO-PIO62引脚为输出,向SPARC V8处理器GPIO-PIO62的数据寄存器写入“1”,使FPGA的IO_WRITE引脚输入为高电平;配置SPARC V8处理器GPIO-PIO63引脚为输出,向SPARC V8处理器GPIO-PIO63的数据寄存器写入“0”,使FPGA的IO_CS引脚输入为低电平;
(29)根据回读长度,连续配置SPARC V8处理器中的GPIO寄存器使GPIO组中的15个引脚生成时钟信号、读写控制信号、片选控制信号、配置使能信号、八路数据信号,送至FPGA。
a.通过周期性配置SPARC V8处理器GPIO-PIO61引脚寄存器,通过控制寄存器和数据寄存器的变化来为FPGA的时钟信号GCLK提供输入。每间隔1个时钟周期,交替的令SPARC V8处理器的GPIO-PIO61管脚输出“1”和“0”。每一个交替周期内,由三部分操作构成:配置SPARC V8处理器的GPIO-PIO61引脚为输出;向SPARC V8处理器的GPIO-PIO61的数据寄存器写入“1”,使FPGA的GCLK输入为高电平;下一个时钟周期向SPARC V8处理器的GPIO-PIO61的数据寄存器写入“0”,使FPGA的GCLK输入为低电平。
b.配置SPARC V8处理器的GPIO-PIO63引脚为输出,向SPARC V8处理器GPIO-PIO63的数据寄存器写入“0”,使FPGA的IO_CS输入为低电平;配置SPARC V8处理器的GPIO-PIO62脚为输出,并向SPARC V8处理器GPIO-PIO62的数据寄存器写入“1”,使FPGA的IO_WRITE引脚为高电平;配置SPARC V8处理器的GPIO-PIO57引脚为输出,并向SPARC V8处理器的GPIO-PIO57的数据寄存器写入“1”,使FPGA的PROGRAM引脚为高电平。
c.从FPGA依次取出数据,在CCLK信号为高电平时,以2进制的格式,从SPARC V8处理器的GPIO-PIO48、GPIO-PIO49、GPIO-PIO50、GPIO-PIO51、GPIO-PIO52、GPIO-PIO53、GPIO-PIO54、GPIO-PIO55读取数据,从而获取FPGA的8路IO_D7、IO_D6、IO_D5、IO_D4、IO_D3、IO_D2、IO_D1、IO_D0数据。重复执行此过程,直至FPGA数据全部读出。
(210)配置SPARC V8处理器GPIO-PIO62引脚为输出,向SPARC V8处理器GPIO-PIO62的数据寄存器写入“1”,使FPGA的IO_WRITE引脚输入为高电平;配置SPARC V8处理器GPIO-PIO63引脚为输出,向SPARC V8处理器GPIO-PIO63的数据寄存器写入“1”,使FPGA的IO_CS引脚输入为高电平;回读完成。
通过数据接口回读得到的总字节数共计207900,由2747个CLB帧构成,其中每帧有80个字节,共有197920个字节,其中,填充字节数为9980个。
(211)通过故障检测机制监测到故障后,需要对故障进行定位和分析。由于芯片在空间轨道上运行,无法使用现有的故障检测设备施加测试向量,芯片内部亦不支持自检测电路。内部配置存储器被分成若干块,每一块的配置信息以“帧”为最小配置单位。实际写入配置存储器的位流的部分被称作“数据帧”。将回读得到的数据帧数组与存储在外部存储器中的原始有效配置数据进行比较,当数据出现不一致时,说明配置出现错误,而不一致的数据所在的数据帧即为故障帧。确定了具体故障帧后,可根据故障帧的帧标识,通过确定的行、列地址计算公式计算得到包括故障帧行、列坐标信息,通过对故障帧中错误数据位置的解读,亦可判断出现故障的区域特征,如图1所示。
(212)由于FPGA中配置信息的反转导致的故障需要根据原始配置文件将其纠正。通过V8处理器中,使用GPIO接口,采用SoPC芯片自主重构软配置方法,从FLASH中读取原始配置文件,并通过软配置接口,对FPGA进行重新配置,执行一次全局重构时间仅为40ms左右。由此,即可在不增加外置电路和其他一些设备的前提下,纠正SoPC芯片内部的软故障。
SoPC芯片自主重构软配置方法通过在SoPC芯片BM3109内部,构建配置数据链路,实现SoPC芯片的自主重构。SoPC芯片BM3109根据外界环境的变化和任务的需求,从芯片内部的存储空间内读取FPGA的配置文件,经软配置接口将配置数据加载到FPGA中,自重构操作如图2所示,SoPC芯片自重构操作如图3所示。其中,BM3109包括外部存储器FLASH、SPARC V8处理器和FPGA。
3、软配置过程
(31)将ISE10.1环境任意生成的.bit文件到外部存储器FLASH中。对SPARC V8处理器、FLASH、FPGA芯片进行上电,上电完成后,SPARC V8处理器从FLASH中读取.bit文件,参照Xilinx公司.bit文件格式,去掉用文件的头部无效信息,提取有效数据信息,并按照Xilinx Virtex芯片的配置格式,生成配置数组。
(32)配置SPARC V8处理器的GPIO-PIO57引脚为输出,先向GPIO-PIO57引脚的数据寄存器中写入“1”,使FPGA芯片的PROGRAM引脚输入为高电平。一个时钟周期后,向SPARC V8处理器的GPIO-PIO57引脚的数据寄存器中写入“0”,使FPGA的PROGRAM引脚输入为低电平来启动复位配置逻辑。
(33)2us后,配置SPARC V8处理器的GPIO-PIO56为输入,使其持续监测FPGA的INIT引脚的电压变化,当INIT引脚变由低电平变为高电平时,即GPIO-PIO56的输入由“0”变为“1”时,表示清空FPGA内部寄存器操作完成;如果FPGA的INIT引脚为高电平,则重复步骤(31)-步骤(32),直至FPGA的INIT引脚出现由低电平向高电平的跳变;
(34)配置SPARC V8处理器GPIO-PIO63引脚为输出,向SPARC V8处理器GPIO-PIO62的数据寄存器写入“0”,使FPGA的IO_CS输入为低电平;
(35)经过1个时钟周期后,配置SPARC V8处理器GPIO-PIO62脚为输出,并向SPARC V8处理器GPIO的数据寄存器写入“0”,使FPGA的IO_WRITE引脚为低电平;
(36)遍历配置信息数组并根据配置信息数组,连续配置SPARC V8处理器中的GPIO寄存器使GPIO组中的15个引脚生成时钟信号、读写控制信号、片选控制信号、配置使能信号、八路数据信号,送至FPGA,其中15路信号如表所示。
a.通过周期性配置SPARC V8处理器GPIO-PIO61引脚寄存器,通过控制寄存器和数据寄存器的变化来为FPGA的时钟信号GCLK提供输入。每间隔1个时钟周期,交替的令SPARC V8处理器的GPIO-PIO61管脚输出“1”和“0”。每一个交替周期内,由三部分操作构成:配置SPARC V8处理器的GPIO-PIO61引脚为输出;向SPARC V8处理器的GPIO-PIO61的数据寄存器写入“1”,使FPGA的GCLK输入为高电平;下一个时钟周期向SPARC V8处理器的GPIO-PIO61的数据寄存器写入“0”,使FPGA的GCLK输入为低电平。
b.配置SPARC V8处理器的GPIO-PIO63引脚为输出,向SPARC V8处理器GPIO-PIO62的数据寄存器写入“0”,使FPGA的IO_CS输入为低电平;配置SPARC V8处理器的GPIO-PIO62脚为输出,并向SPARC V8处理器GPIO的数据寄存器写入“0”,使FPGA的IO_WRITE引脚为低电平;配置SPARC V8处理器的GPIO-PIO57引脚为输出,并向SPARC V8处理器的GPIO-PIO57的数据寄存器写入“1”,使FPGA的PROGRAM引脚为高电平。
c.从配置信息数组中依次取出数据,在CCLK信号为高电平时,以2进制的格式,从高到低写入SPARC V8处理器的GPIO-PIO48、GPIO-PIO49、GPIO-PIO50、GPIO-PIO51、GPIO-PIO52、GPIO-PIO53、GPIO-PIO54、GPIO-PIO55,使FPGA的8路IO_D7、IO_D6、IO_D5、IO_D4、IO_D3、IO_D2、IO_D1、IO_D0信号接收到配置数据。重复执行此过程,直至配置信息数组被全部遍历。
d.执行(c)过程中,持续监控FPGA的IO_DOUT_BUSY引脚,若IO_DOUT_BUSY为高电平时,此时的配置数据将不能够被FPGA识别,需要持续向GPIO-PIO48、GPIO-PIO49、GPIO-PIO50、GPIO-PIO51、GPIO-PIO52、GPIO-PIO53、GPIO-PIO54、GPIO-PIO55的数据寄存器中写入当前配置数据,直至IO_DOUT_BUSY信号输出为低电平。
(37)配置SPARC V8处理器GPIO-PIO62引脚为输出,向SPARC V8处理器GPIO-PIO62的数据寄存器写入“1”,使FPGA的IO_WRITE引脚输入为高电平;配置SPARC V8处理器GPIO-PIO63引脚为输出,向SPARC V8处理器GPIO-PIO63的数据寄存器写入“1”,使FPGA的IO_CS引脚输入为高电平;
(38)配置SPARC V8处理器GPIO-PIO58引脚为输入,持续检测FPGA的DONE控制信号的输出,如果电平为高说明配置完成,否则继续等待,直至DONE信号为高。若等待时间超出1s的阈值,则重复执行(31)至(37)。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
Claims (2)
1.一种基于回读自重构的SoPC芯片容错方法,其特征在于包括如下步骤:
(1)将FPGA的模式选择引脚M0、M1、M2均连接到FPGA的GND端;
(2)将SPARC V8处理器的GPIO-PIO48引脚连接到FPGA的IO_D7引脚,GPIO-PIO49引脚连接到FPGA的IO_D6引脚,GPIO-PIO50引脚连接到FPGA的IO_D5引脚,GPIO-PIO51引脚连接到FPGA的IO_D4引脚,GPIO-PIO52引脚连接到FPGA的IO_D3引脚,GPIO-PIO53引脚连接到FPGA的IO_D2引脚,GPIO-PIO54引脚连接到FPGA的IO_D1引脚,GPIO-PIO55引脚连接到FPGA的IO_D0引脚,GPIO-PIO62连接到FPGA的IO_WRITE引脚,GPIO-PIO63引脚连接到FPGA的IO_CS引脚,GPIO-PIO61引脚连接到FPGA的GCLK引脚,GPIO-PIO56引脚连接到FPGA的INIT引脚,GPIO-PIO58引脚连接到FPGA的DONE引脚,GPIO-PIO60引脚连接到FPGA的IO_DOUT_BUSY引脚,GPIO-PIO57引脚连接到FPGA的PROGRAM引脚;
(3)将SPARC V8处理器地址线Ai接到FLASH的地址线PAi-1,i=1,2,3,,,22,数据线Dj,j=16,17,18,,,31,连接到FLASH的数据线DQg,g=0,1,2,,,15,写控制信号端连接到FLASH的WE端,复位控制信号端连接到FLASH的PRESET端,片选控制信号端连接到FLASH的CE端,读控制信号端连接到FLASH的OE端;
(4)将SPARC V8处理器地址线Ai接到SDRAM的地址线PAi-1,数据线Dj,连接到SDRAM的数据线DQk,k=0,1,2,,,31,写控制信号端连接到SDRAM的SDWEN端,复位控制信号端连接到FLASH的SDRASN端,片选控制信号端连接到SDRAM的SDCS0端,字节控制信号端BE0连接到SDDQM0,字节控制信号端BE1连接到SDDQM1,字节控制信号端BE2连接到SDDQM2,字节控制信号端BE3连接到SDDQM3;
(5)设置SPARC V8处理器GPIO-PIO63引脚为输出,向SPARC V8处理器GPIO-PIO63的数据寄存器写入“0”,经过1个时钟周期后,设置SPARCV8处理器GPIO-PIO62脚为输出,并向SPARC V8处理器GPIO-PIO62的数据寄存器写入“0”;
(6)设置SPARC V8处理器的GPIO-PIO61引脚为输出,向SPARC V8处理器的GPIO-PIO61的数据寄存器写入“1”,下一个时钟周期向SPARC V8处理器的GPIO-PIO61的数据寄存器写入“0”,向SPARC V8处理器的GPIO-PIO61的数据寄存器写入“1”和“0”交替进行,并同时执行步骤(7)-步骤(8);
(7)设置SPARC V8处理器的GPIO-PIO63引脚为输出,向SPARC V8处理器GPIO-PIO63的数据寄存器写入“0”,设置SPARC V8处理器的GPIO-PIO62脚为输出,并向SPARC V8处理器GPIO-PIO62的数据寄存器写入“0”,设置SPARC V8处理器的GPIO-PIO57引脚为输出,并向SPARC V8处理器的GPIO-PIO57的数据寄存器写入“1”;
(8)根据Xilinx手册,生成回读命令数组,从回读命令数组中依次取出数据,当CCLK信号为高电平时,以2进制的格式,从高到低写入SPARC V8处理器的GPIO-PIO48、GPIO-PIO49、GPIO-PIO50、GPIO-PIO51、GPIO-PIO52、GPIO-PIO53、GPIO-PIO54、GPIO-PIO55,直至回读命令数组被全部遍历,当回读命令数组被全部遍历时,转入步骤(9);所述回读命令数组包括同步字、写入到FAR寄存器、起始帧地址、写入到CMD寄存器、包数据RCFG、从FDRO寄存器中读出、数据字;
(9)设置SPARC V8处理器GPIO-PIO62引脚与GPIO-PIO63引脚均为输出,并分别向SPARC V8处理器GPIO-PIO62的数据寄存器与GPIO-PIO63的数据寄存器写入“1”,设置SPARC V8处理器GPIO-PIO48、GPIO-PIO49、GPIO-PIO50、GPIO-PIO51、GPIO-PIO52、GPIO-PIO53、GPIO-PIO54、GPIO-PIO55引脚为输入,再次设置SPARC V8处理器GPIO-PIO62引脚与GPIO-PIO63引脚均为输出,并分别向SPARC V8处理器GPIO-PIO62的数据寄存器与GPIO-PIO63的数据寄存器写入“1”,设置SPARC V8处理器的GPIO-PIO61引脚为输出,向SPARC V8处理器的GPIO-PIO61的数据寄存器写入“0”,下一个时钟周期向SPARC V8处理器的GPIO-PIO61的数据寄存器写入“1”;
(10)设置SPARC V8处理器GPIO-PIO62引脚为输出,向SPARC V8处理器GPIO-PIO62的数据寄存器写入“1”,设置SPARC V8处理器GPIO-PIO63引脚为输出,向SPARC V8处理器GPIO-PIO63的数据寄存器写入“0”;
(11)设置SPARC V8处理器的GPIO-PIO61引脚为输出,向SPARC V8处理器的GPIO-PIO61的数据寄存器写入“1”,下一个时钟周期向SPARC V8处理器的GPIO-PIO61的数据寄存器写入“0”,向SPARC V8处理器的GPIO-PIO61的数据寄存器写入“1”和“0”交替进行,并同时执行步骤(12)-步骤(13);
(12)设置SPARC V8处理器的GPIO-PIO63引脚为输出,向SPARC V8处理器GPIO-PIO63的数据寄存器写入“0”,设置SPARC V8处理器的GPIO-PIO62脚为输出,并向SPARC V8处理器GPIO-PIO62的数据寄存器写入“1”,设置SPARC V8处理器的GPIO-PIO57引脚为输出,并向SPARC V8处理器的GPIO-PIO57的数据寄存器写入“1”;
(13)当CCLK信号为高电平时,以2进制的格式从SPARC V8处理器的GPIO-PIO48、GPIO-PIO49、GPIO-PIO50、GPIO-PIO51、GPIO-PIO52、GPIO-PIO53、GPIO-PIO54、GPIO-PIO55读取数据,直至FPGA中的数据全部读出,得到回读数据;所述回读数据为多个CLB数据帧组成的数据帧数组;
(14)设置SPARC V8处理器GPIO-PIO62引脚与GPIO-PIO63引脚均为输出,并分别向SPARC V8处理器GPIO-PIO62的数据寄存器与GPIO-PIO63的数据寄存器写入“1”;
(15)将回读得到的数据帧数组与存储在FLASH中的原始有效配置数据进行比较,如果数据出现不一致,则根据不一致的数据所在数据帧的帧标识得到故障帧的行、列坐标信息,如果数据没有出现不一致,则FPGA数据没有发生粒子翻转;
(16)在ISE10.1开发环境任意生成的.bit文件并送至FLASH中,对SPARC V8处理器、FLASH、FPGA进行上电,SPARC V8处理器从FLASH中读取.bit文件,按照.bit文件格式和Virtex芯片的配置格式生成配置信息数组;
(17)设置SPARC V8处理器的GPIO-PIO57引脚为输出,向GPIO-PIO57引脚的数据寄存器中写入“1”,然后向SPARC V8处理器的GPIO-PIO57引脚的数据寄存器中写入“0”,设置SPARC V8处理器的GPIO-PIO56引脚为输入,监测FPGA的INIT引脚的电压变化;
(18)如果INIT引脚由低电平变为高电平,则转入步骤(19);如果FPGA的INIT引脚为高电平,则重复步骤(16)-步骤(17),直至FPGA的INIT引脚出现由低电平向高电平的跳变后转步骤(19);
(19)设置SPARC V8处理器GPIO-PIO63引脚为输出,然后向SPARCV8处理器GPIO-PIO62的数据寄存器写入“0”,一个时钟周期后设置SPARCV8处理器GPIO-PIO62脚为输出,并向SPARC V8处理器GPIO的数据寄存器写入“0”;
(20)设置SPARC V8处理器的GPIO-PIO61引脚为输出,向SPARC V8处理器的GPIO-PIO61的数据寄存器写入“1”,下一个时钟周期向SPARC V8处理器的GPIO-PIO61的数据寄存器写入“0”,向SPARC V8处理器的GPIO-PIO61的数据寄存器写入“1”和“0”交替进行,并同时执行步骤(21)-步骤(22);
(21)设置SPARC V8处理器的GPIO-PIO63引脚为输出,向SPARC V8处理器GPIO-PIO62的数据寄存器写入“0”,设置SPARC V8处理器的GPIO-PIO62脚为输出,并向SPARC V8处理器GPIO的数据寄存器写入“0”,设置SPARC V8处理器的GPIO-PIO57引脚为输出,并向SPARC V8处理器的GPIO-PIO57的数据寄存器写入“1”;
(22)从配置信息数组中依次取出数据,在FPGA的GCLK信号为高电平时,以2进制的格式从高到低写入SPARC V8处理器的GPIO-PIO48、GPIO-PIO49、GPIO-PIO50、GPIO-PIO51、GPIO-PIO52、GPIO-PIO53、GPIO-PIO54、GPIO-PIO55,同时持续监控FPGA的IO_DOUT_BUSY引脚,如果IO_DOUT_BUSY引脚为高电平,则持续向GPIO-PIO48、GPIO-PIO49、GPIO-PIO50、GPIO-PIO51、GPIO-PIO52、GPIO-PIO53、GPIO-PIO54、GPIO-PIO55的数据寄存器中写入当前配置数据,直至IO_DOUT_BUSY信号输出为低电平,如果IO_DOUT_BUSY为低电平,则转入步骤(23);
(23)设置SPARC V8处理器GPIO-PIO62引脚为输出,向SPARC V8处理器GPIO-PIO62的数据寄存器写入“1”,然后设置SPARC V8处理器GPIO-PIO63引脚为输出,向SPARC V8处理器GPIO-PIO63的数据寄存器写入“1”;
(24)配置SPARC V8处理器GPIO-PIO58引脚为输入,持续检测FPGA的DONE控制信号的输出,如果DONE控制信号电平为高,则软配置电路完成,如果DONE控制信号电平不为高,则继续等待,直至DONE信号为高,当等待时间超出设定的阈值时,则重复执行(16)至(23)直至DONE信号为高。
2.根据权利要求1所述的一种基于回读自重构的SoPC芯片容错方法,其特征在于:所述的同步字为0xAA995566h、写入到FAR寄存器为0x30002001h、起始帧地址为0x00000000h、写入到CMD寄存器为0x30008001h、包数据RCFG为0x00000000h、从FDRO寄存器中读出为0x28006000h、数据字为0x4800cb07h。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410789605.3A CN104572326B (zh) | 2014-12-18 | 2014-12-18 | 一种基于回读自重构的SoPC芯片容错方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410789605.3A CN104572326B (zh) | 2014-12-18 | 2014-12-18 | 一种基于回读自重构的SoPC芯片容错方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104572326A true CN104572326A (zh) | 2015-04-29 |
CN104572326B CN104572326B (zh) | 2017-12-01 |
Family
ID=53088466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410789605.3A Active CN104572326B (zh) | 2014-12-18 | 2014-12-18 | 一种基于回读自重构的SoPC芯片容错方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104572326B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105608048A (zh) * | 2015-12-21 | 2016-05-25 | 北京时代民芯科技有限公司 | 一种星载dsp软件任务动态重构电路及重构方法 |
CN105653411A (zh) * | 2015-12-28 | 2016-06-08 | 哈尔滨工业大学 | 支持局部永久故障恢复的多核处理器芯片可重构系统 |
CN106843191A (zh) * | 2016-12-18 | 2017-06-13 | 航天恒星科技有限公司 | Fpga在轨维护方法及装置 |
CN107908418A (zh) * | 2017-12-12 | 2018-04-13 | 上海赛治信息技术有限公司 | 光纤通道节点卡的逻辑程序升级方法及光纤通道总线设备 |
CN109902836A (zh) * | 2019-02-01 | 2019-06-18 | 京微齐力(北京)科技有限公司 | 人工智能模块的故障容错方法及系统芯片 |
CN111338833A (zh) * | 2020-02-19 | 2020-06-26 | 北京航空航天大学 | 一种基于bram检测的动态自适应sram型fpga系统容错方法 |
CN113704167A (zh) * | 2021-07-19 | 2021-11-26 | 上海交通大学 | 物联网智能感知终端系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508807A (zh) * | 2011-11-08 | 2012-06-20 | 北京时代民芯科技有限公司 | 一种基于sparc v8处理器的总线结构 |
CN102779079A (zh) * | 2011-05-12 | 2012-11-14 | 中国科学院空间科学与应用研究中心 | 一种用于长期在轨工作的星载sram型fpga的配置方法及系统 |
US8716876B1 (en) * | 2011-11-11 | 2014-05-06 | Altera Corporation | Systems and methods for stacking a memory chip above an integrated circuit chip |
-
2014
- 2014-12-18 CN CN201410789605.3A patent/CN104572326B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102779079A (zh) * | 2011-05-12 | 2012-11-14 | 中国科学院空间科学与应用研究中心 | 一种用于长期在轨工作的星载sram型fpga的配置方法及系统 |
CN102508807A (zh) * | 2011-11-08 | 2012-06-20 | 北京时代民芯科技有限公司 | 一种基于sparc v8处理器的总线结构 |
US8716876B1 (en) * | 2011-11-11 | 2014-05-06 | Altera Corporation | Systems and methods for stacking a memory chip above an integrated circuit chip |
Non-Patent Citations (1)
Title |
---|
蔡一茂等: "基于国产SoPC平台的外部总线的设计与实现", 《微电子学与计算机》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105608048A (zh) * | 2015-12-21 | 2016-05-25 | 北京时代民芯科技有限公司 | 一种星载dsp软件任务动态重构电路及重构方法 |
CN105608048B (zh) * | 2015-12-21 | 2018-09-11 | 北京时代民芯科技有限公司 | 一种星载dsp软件任务动态重构电路及重构方法 |
CN105653411A (zh) * | 2015-12-28 | 2016-06-08 | 哈尔滨工业大学 | 支持局部永久故障恢复的多核处理器芯片可重构系统 |
CN105653411B (zh) * | 2015-12-28 | 2019-01-18 | 哈尔滨工业大学 | 支持局部永久故障恢复的多核处理器芯片可重构系统 |
CN106843191A (zh) * | 2016-12-18 | 2017-06-13 | 航天恒星科技有限公司 | Fpga在轨维护方法及装置 |
CN107908418A (zh) * | 2017-12-12 | 2018-04-13 | 上海赛治信息技术有限公司 | 光纤通道节点卡的逻辑程序升级方法及光纤通道总线设备 |
CN109902836A (zh) * | 2019-02-01 | 2019-06-18 | 京微齐力(北京)科技有限公司 | 人工智能模块的故障容错方法及系统芯片 |
CN111338833A (zh) * | 2020-02-19 | 2020-06-26 | 北京航空航天大学 | 一种基于bram检测的动态自适应sram型fpga系统容错方法 |
CN111338833B (zh) * | 2020-02-19 | 2022-02-01 | 北京航空航天大学 | 一种基于bram检测的动态自适应sram型fpga系统容错方法 |
CN113704167A (zh) * | 2021-07-19 | 2021-11-26 | 上海交通大学 | 物联网智能感知终端系统 |
CN113704167B (zh) * | 2021-07-19 | 2024-03-19 | 上海交通大学 | 物联网智能感知终端系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104572326B (zh) | 2017-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104572326A (zh) | 一种基于回读自重构的SoPC芯片容错方法 | |
US11714717B2 (en) | Method of correcting errors in a memory array and method of screening weak bits in the same | |
CN106463179B (zh) | 利用存储器控制器处理数据错误事件的方法、装置和系统 | |
US11403170B2 (en) | Method and device for monitoring data error status in a memory | |
CN105760250A (zh) | 一种具有码流纠检错功能的单粒子加固fpga配置电路 | |
US10078565B1 (en) | Error recovery for redundant processing circuits | |
CN103500125B (zh) | 一种基于fpga的抗辐射的数据处理系统及方法 | |
CN101930052A (zh) | Sram型fpga数字时序电路在线检测容错系统及方法 | |
CN108511029B (zh) | 一种fpga中双端口sram阵列的内建自测和修复系统及其方法 | |
CN111176908A (zh) | 一种基于三模冗余的程序在轨加载刷新方法 | |
WO2017131700A1 (en) | Row repair of corrected memory address | |
CN109491821A (zh) | 抗单粒子翻转的加固系统及方法 | |
CN105653411A (zh) | 支持局部永久故障恢复的多核处理器芯片可重构系统 | |
CN103871479A (zh) | 嵌入式存储器测试系统 | |
CN100368997C (zh) | 一种静态数据存储的纠错编码装置 | |
CN104750577B (zh) | 面向片上大容量缓冲存储器的任意多位容错方法及装置 | |
TWI765368B (zh) | 具有資料保護架構之記憶體裝置 | |
CN105068969B (zh) | 用于数字信号处理平台架构的单粒子效应防护系统及方法 | |
CN103389921A (zh) | 信号处理电路以及使用了该信号处理电路的试验装置 | |
JP3139738B2 (ja) | 論理回路 | |
CN111856991B (zh) | 对单粒子翻转具备五级防护的信号处理系统和处理方法 | |
CN112181735B (zh) | Fpga芯片内定值及参数单粒子效应的检错装置及方法 | |
CN208351451U (zh) | 一种星载嵌入式软件容错启动系统 | |
CN111785310A (zh) | 一种用于抗单粒子翻转的fpga加固系统及方法 | |
US11929134B2 (en) | Indicating a status of a memory built-in self-test |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |