CN111950217A - Sram型fpga故障检测中关键帧地址范围定位方法 - Google Patents

Sram型fpga故障检测中关键帧地址范围定位方法 Download PDF

Info

Publication number
CN111950217A
CN111950217A CN202010604753.9A CN202010604753A CN111950217A CN 111950217 A CN111950217 A CN 111950217A CN 202010604753 A CN202010604753 A CN 202010604753A CN 111950217 A CN111950217 A CN 111950217A
Authority
CN
China
Prior art keywords
frame
configuration
address
type fpga
field
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
Application number
CN202010604753.9A
Other languages
English (en)
Other versions
CN111950217B (zh
Inventor
陈禾
谢愚
谢宜壮
毛创安
陈亮
龙腾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Institute of Technology BIT
Original Assignee
Beijing Institute of Technology BIT
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Institute of Technology BIT filed Critical Beijing Institute of Technology BIT
Priority to CN202010604753.9A priority Critical patent/CN111950217B/zh
Publication of CN111950217A publication Critical patent/CN111950217A/zh
Application granted granted Critical
Publication of CN111950217B publication Critical patent/CN111950217B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了SRAM型FPGA故障检测中关键帧地址范围定位方法,涉及抗SRAM型FPGA单粒子翻转容错技术领域。该方法能够减少回读检测的配置帧数目,提高故障检测速度的方法。包括如下步骤:步骤一、对SRAM型FPGA芯片的帧结构进行解析。步骤二、对SRAM型FPGA芯片生成的调试比特流进行解析,推导出SRAM型FPGA的配置帧结构,获得所有配置帧的地址。步骤三、使用布局约束技术将用户设计约束在配置存储器上的预设位置范围内,依据配置帧的地址,在预设位置范围内的配置帧中查找确定关键帧地址范围;关键帧为包含关健位的配置帧,关键位为实现用户逻辑电路的配置位。步骤四、利用确定的关键帧地址范围执行故障检测。

Description

SRAM型FPGA故障检测中关键帧地址范围定位方法
技术领域
本发明涉及抗SRAM型FPGA单粒子翻转容错技术领域,具体涉及SRAM型FPGA故障检测中关键帧地址范围定位方法。
背景技术
随着航天事业的蓬勃发展,SRAM型FPGA凭借低成本、高性能及可重构特性在卫星等航天器上得到了广泛应用。然而工作于太空中的SARM型FPGA易发生单粒子翻转,降低了航天器的可靠性和使用寿命。近年来,随着器件特征尺寸的减小和工作频率的提升,又增加了SRAM型FPGA对单粒子翻转的敏感性。因为配置存储器是SRAM型FPGA中数量最多的存储单元,且配置存储器中存放着决定用户电路功能的配置文件,一旦配置存储器发生单粒子翻转,就会破坏配置文件,从而改变用户电路功能,带来灾难性的影响。因此,针对SRAM型FPGA进行容错设计是目前空间应用的一个难点和热点。
目前针对SRAM型FPGA主要的容错设计方法是回读刷新。回读刷新指的是在SARM型FPGA正常工作时通过配置访问接口读出配置存储器中的配置数据,与存储在外部存储器中的黄金副本进行逐位对比。如果两者不同,说明配置存储器发生了单粒子翻转。检测到SEU后,回读刷新控制器被触发,进而对配置存储器进行刷新以纠正SEU。但是回读刷新需要回读全部的配置数据来检测故障,其故障检测时间长、故障检测效率不高。
因此目前亟需一种能够减少回读检测的配置帧数目,提高故障检测速度的方法。
发明内容
有鉴于此,本发明提供了SRAM型FPGA故障检测中关键帧地址范围定位方法,能够减少回读检测的配置帧数目,提高故障检测速度的方法。
为达到上述目的,本发明的技术方案包括如下步骤:
步骤一、对SRAM型FPGA芯片的帧结构进行解析。
步骤二、对SRAM型FPGA芯片生成的调试比特流进行解析,推导出SRAM型FPGA的配置帧结构,获得所有配置帧的地址。
步骤三、使用布局约束技术将用户设计约束在配置存储器上的预设位置范围内,依据配置帧的地址,在预设位置范围内的配置帧中查找确定关键帧地址范围;关键帧为包含关健位的配置帧,关键位为实现用户逻辑电路的配置位。
步骤四、利用确定的关键帧地址范围执行故障检测。
进一步地,步骤一、对SRAM型FPGA芯片的帧结构进行解析,具体为:
每个配置帧中包含次地址字段、列地址字段、行地址字段、半区选择字段、资源类型字段以及保留字段。
其中帧地址的[31:26]为保留字段;[25:23]为资源类型字段,共有3位,资源类型字段为“000”时代表选择的资源类型是CLB、IOB、CLK、BRAM和DSP资源;资源类型字段为“001”时,代表的资源类型是BRAM的内容;资源类型字段为“010”代表的资源类型是CFG_CLB;[22]为半区选择字段;[21:17]为行地址字段;[16:7]为列地址字段;[7:0]为次地址字段。
进一步地,步骤二、对SRAM型FPGA芯片生成的调试比特流文件进行解析,推导出SRAM型FPGA的配置帧结构,获得所有配置帧的地址;具体为:
SRAM型FPGA芯片生成的调试比特流文件结构包括文件头、配置寄存器操作指令以及帧内容。
文件头为SRAM型FPGA芯片的型号信息。
配置寄存器操作指令包括读写操作,检测标志位、提取标志位以及其他寄存器操作指令。
帧内容包括第0帧~第n帧数据信息;第i帧数据信息包括第i帧数据长度、第i帧数据内容以及第i帧的帧地址;其中第i帧数据长度和第i帧数据内容写入FDRI寄存器,即帧数据输入寄存器;第i帧的帧地址写入LOUT寄存器。
解析调试比特流文件,提取帧内容中的每一帧的帧地址,提取得到的帧地址按照顺序进行排列即可得到所有配置帧的地址。
有益效果:
本发明通过解析配置存储器结构和调试比特流结构,确定SRAM型FPGA关键帧的地址范围,可以大大减少回读检测的配置帧数目,提高了故障检测速度,因而大幅地减少了故障检测时间。
附图说明
图1为本发明实施例中SRAM型FPGA配置存储器结构示意图;
图2为本发明实施例中帧地址寄存器的组成示意图;
图3为本发明实施例中调试比特流文件结构示意图;
图4为本发明实施例中调试比特流内容举例示意图。
图5为本发明实施例提供的SRAM型FPGA故障检测中关键帧地址范围定位方法流程图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
本发明实施例中,用于实现用户逻辑电路的配置位为关键位,反之为非关键位,同时称包含关键位的配置帧为关键帧,不包含关键位的配置帧为非关键帧。关键帧中的配置位并不一定全部用于实现用户逻辑,因此关键帧中既有关键位又有非关键位,但非关键帧中一定只有非关键位。如果单粒子翻转发生在配置存储器中的关键位,则用户的电路结构就会遭到破坏,导致用户电路出错。
因此在SRAM型FPGA故障检测中如何快速、准确地定位关键帧地址范围是提高故障检测速度的有效途径。
本发明实施例提供的SRAM型FPGA故障检测中关键帧地址范围定位方法,其主要流程如图5所示,包括如下步骤:
步骤一、对SRAM型FPGA芯片的帧结构进行解析。
对SRAM型FPGA芯片的帧结构进行初步解析,得出SRAM型FPGA大致的帧结构,如图1所示。SRAM型FPGA的配置存储器结构被划分为上下两个半区,上半区的编号是0,下半区的编号是1,每一个半区又可以分成不同数目的行,这由具体的器件型号决定。行的编号从0开始,从中间分别向器件的两端递增,从某种意义上来说上下半区互为镜像。每个半区的行都被分为相同数量的列,上半区和下半区具有的列的数量有可能相同,也有可能不同,这由具体的器件型号决定的。这些资源列都具有特定的功能,对于不同的器件其资源的类型也不同,常见的资源列有IOB列、GCLK列、CLB列、BRAM列、DSP列和GTX列。资源列的编号也是从零开始,从左到右依次递增。配置帧是配置存储器最小的可寻址的单元,其高度为一个时钟域(一行),对配置存储器的读/写操作都必须以配置帧为单位,Xilinx 7系列FPGA中每一帧都由101个32位的字组成。在配置存储器中每种类型的资源列均包含一定数量的配置帧,其包含的配置帧数目由资源列的类型决定,并且不同系列的器件即使资源列的类型相同,其包含的配置帧数目也不一定相同。
每个配置帧都有一个唯一的地址,称之为物理帧地址,该地址可以分为5部分,分别是资源类型、半区选择、行地址、列地址和次地址,其组成结构如图2所示。
帧地址的[31:26]为保留字段。
[25:23]为资源类型字段,共有3位,资源类型字段为“000”时代表选择的资源类型是CLB、IOB、CLK、BRAM和DSP资源;资源类型字段为“001”时,代表的资源类型是BRAM的内容;资源类型字段为“010”代表的资源类型是CFG_CLB,若为混合粒度刷新容错系统,没有涉及到BRAM内容和CFG_CLB的刷新,可不考虑资源类型为“001”和“010”的配置帧。
[22]为半区选择字段,“0”为选择上半区,“1”为选择下半区。
[21:17]为行地址字段,用来选择要访问的行。
[16:7]为列地址字段,用来选择要访问的列。
[7:0]为次地址字段,其含义是选择访问特定资源列中的某一帧。
步骤二、对SRAM型FPGA芯片生成的调试比特流进行解析,推导出SRAM型FPGA的配置帧结构,获得所有配置帧的地址。
本发明实施例中
SRAM型FPGA芯片生成的调试比特流文件结构包括文件头、配置寄存器操作指令以及帧内容。
文件头为SRAM型FPGA芯片的型号信息。
配置寄存器操作指令包括读写操作,检测标志位、提取标志位以及其他寄存器操作指令。
帧内容包括第0帧~第n帧数据信息;第i帧数据信息包括第i帧数据长度、第i帧数据内容以及第i帧的帧地址;其中第i帧数据长度和第i帧数据内容写入FDRI寄存器,即帧数据输入寄存器;第i帧的帧地址写入LOUT寄存器。
解析调试比特流文件,提取帧内容中的每一帧的帧地址,提取得到的帧地址按照顺序进行排列即可得到所有配置帧的地址。
本发明实施例中,对型号为XC7K325TFFG900的SRAM型FPGA的配置帧结构进行分析,通过解析调试比特流来推导出XC7K325TFFG900的配置帧结构。调试比特流的文件结构如图3所示,其由四部分组成,除了文件头、配置寄存器操作指令以及帧内容之外,第四部分还包含一个配置寄存器操作指令。其中FDRI为帧数据输入寄存器,LOUT称为LegancyOutput Register,作为串行调试时菊花链的数据输出。第三部分给出的0x30004065表示向FDRI寄存器写入101个字,即一帧数据;0x30010001表示的是向LOUT寄存器写入帧地址。
调试比特流文件的部分信息如图4所示,其数据格式为16进制。其中0x30010001表示要向LOUT寄存器写入当前帧的帧地址,0x00000006即为要写入的帧地址,0x30004065为要写入的数据长度,为101个字,即为一帧数据长度。由图中下部的划线部分可知,下一次要写入的帧地址为0x00000007。因此可以以0x30010001这个数据为标志,在检测到该标志时就提取该标志后的帧地址,然后将提取得到的帧地址按照顺序进行排列即可得到所有的配置帧地址。
最终解析得到XC7K325TFFG900芯片的帧结构如表1所示。
资源类型 每列帧数 列个数 总帧数
IOB 42 10 420
GCLK 30 24 720
CLB 36 523 18828
BRAM 28 45 1260
DSP 28 42 1176
GTX 32 4 128
BRAM内容 128 45 5760
步骤三、使用布局约束技术将用户设计约束在配置存储器上的预设位置范围内,依据配置帧的地址,在预设位置范围内的配置帧中查找确定关键帧地址范围;关键帧为包含关健位的配置帧,关键位为实现用户逻辑电路的配置位。
使用布局约束技术将用户设计约束在配置存储器上的特定位置,实现对关键帧范围的确定。如果对用户的设计不加以约束,则用户设计的布局布线就会比较松散,关键位就会大量地分散在不同地配置帧中,导致关键帧数目过大,并且也无法得知关键位的位置,也就无法确定关键帧的地址范围。因此,本文采用Xilinx公司的布局约束技术,对设计进行合理的布局约束,使设计的布局布线出现在特定的地方,从而确定关键帧的地址范围。而且,这样布线也更紧凑,映射的关键位也集中在特定的区域的配置帧中,因而能够大大减少关键帧的数目。在本发明一个具体实例中,使用布局约束技术之后,用户设计占据的配置帧地址范围分别为0x00020100~0x00020B23、0x00040100~0x00040B23和0x00060100~0x00060B23,关键帧的数目一共是2172帧,因此只需要回读检测2172帧配置数据即可。相比于传统的回读检测方式,减少了90%的回读数据量,大幅地减少了故障检测时间。
步骤四、利用确定的关键帧地址范围执行故障检测。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (3)

1.SRAM型FPGA故障检测中关键帧地址范围定位方法,其特征在于,包括如下步骤:
步骤一、对所述SRAM型FPGA芯片的帧结构进行解析;
步骤二、对所述SRAM型FPGA芯片生成的调试比特流进行解析,推导出所述SRAM型FPGA的配置帧结构,获得所有配置帧的地址;
步骤三、使用布局约束技术将用户设计约束在配置存储器上的预设位置范围内,依据配置帧的地址,在所述预设位置范围内的配置帧中查找确定关键帧地址范围;所述关键帧为包含关健位的配置帧,所述关键位为实现用户逻辑电路的配置位;
步骤四、利用确定的关键帧地址范围执行故障检测。
2.如权利要求1所述的方法,其特征在于,所述步骤一、对所述SRAM型FPGA芯片的帧结构进行解析,具体为:
每个配置帧中包含次地址字段、列地址字段、行地址字段、半区选择字段、资源类型字段以及保留字段;
其中帧地址的[31:26]为保留字段;[25:23]为资源类型字段,共有3位,资源类型字段为“000”时代表选择的资源类型是CLB、IOB、CLK、BRAM和DSP资源;资源类型字段为“001”时,代表的资源类型是BRAM的内容;资源类型字段为“010”代表的资源类型是CFG_CLB;[22]为半区选择字段;[21:17]为行地址字段;[16:7]为列地址字段;[7:0]为次地址字段。
3.如权利要求1所述的方法,其特征在于,所述步骤二、对所述SRAM型FPGA芯片生成的调试比特流文件进行解析,推导出所述SRAM型FPGA的配置帧结构,获得所有配置帧的地址;具体为:
所述SRAM型FPGA芯片生成的调试比特流文件结构包括文件头、配置寄存器操作指令以及帧内容;
所述文件头为所述SRAM型FPGA芯片的型号信息;
所述配置寄存器操作指令包括读写操作,检测标志位、提取标志位以及其他寄存器操作指令;
所述帧内容包括第0帧~第n帧数据信息;第i帧数据信息包括第i帧数据长度、第i帧数据内容以及第i帧的帧地址;其中第i帧数据长度和第i帧数据内容写入FDRI寄存器,即帧数据输入寄存器;第i帧的帧地址写入LOUT寄存器,即帧数据输出寄存器;
解析所述调试比特流文件,提取所述帧内容中的每一帧的帧地址,提取得到的帧地址按照顺序进行排列即可得到所有配置帧的地址。
CN202010604753.9A 2020-06-29 2020-06-29 Sram型fpga故障检测中关键帧地址范围定位方法 Active CN111950217B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010604753.9A CN111950217B (zh) 2020-06-29 2020-06-29 Sram型fpga故障检测中关键帧地址范围定位方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010604753.9A CN111950217B (zh) 2020-06-29 2020-06-29 Sram型fpga故障检测中关键帧地址范围定位方法

Publications (2)

Publication Number Publication Date
CN111950217A true CN111950217A (zh) 2020-11-17
CN111950217B CN111950217B (zh) 2022-10-14

Family

ID=73337867

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010604753.9A Active CN111950217B (zh) 2020-06-29 2020-06-29 Sram型fpga故障检测中关键帧地址范围定位方法

Country Status (1)

Country Link
CN (1) CN111950217B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112698994A (zh) * 2020-12-15 2021-04-23 电子科技大学 一种用于fpga内部资源测试的部分位流回读技术
CN114696837A (zh) * 2022-02-18 2022-07-01 电子科技大学 面向fpga安全分析的位流解压缩方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7036059B1 (en) * 2001-02-14 2006-04-25 Xilinx, Inc. Techniques for mitigating, detecting and correcting single event upset effects in systems using SRAM-based field programmable gate arrays
CN101561477A (zh) * 2009-05-15 2009-10-21 中国人民解放军国防科学技术大学 现场可编程逻辑门阵列中单粒子翻转的检测方法及装置
CN102509561A (zh) * 2011-09-29 2012-06-20 中国航天科技集团公司第五研究院第五一三研究所 一种sram型fpga配置区仿真故障注入方法
CN104484214A (zh) * 2014-12-30 2015-04-01 华中科技大学 一种sram型fpga的配置、刷新与程序上注一体化系统
CN105630619A (zh) * 2014-12-30 2016-06-01 航天恒星科技有限公司 一种帧序列处理方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7036059B1 (en) * 2001-02-14 2006-04-25 Xilinx, Inc. Techniques for mitigating, detecting and correcting single event upset effects in systems using SRAM-based field programmable gate arrays
CN101561477A (zh) * 2009-05-15 2009-10-21 中国人民解放军国防科学技术大学 现场可编程逻辑门阵列中单粒子翻转的检测方法及装置
CN102509561A (zh) * 2011-09-29 2012-06-20 中国航天科技集团公司第五研究院第五一三研究所 一种sram型fpga配置区仿真故障注入方法
CN104484214A (zh) * 2014-12-30 2015-04-01 华中科技大学 一种sram型fpga的配置、刷新与程序上注一体化系统
CN105630619A (zh) * 2014-12-30 2016-06-01 航天恒星科技有限公司 一种帧序列处理方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CHUANG-AN MAO 等: "An Automated Fault Injection Platform for Fault Tolerant FFT Implemented in SRAM-Based FPGA", 《2018 31ST IEEE INTERNATIONAL SYSTEM-ON-CHIP CONFERENCE (SOCC)》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112698994A (zh) * 2020-12-15 2021-04-23 电子科技大学 一种用于fpga内部资源测试的部分位流回读技术
CN114696837A (zh) * 2022-02-18 2022-07-01 电子科技大学 面向fpga安全分析的位流解压缩方法
CN114696837B (zh) * 2022-02-18 2023-03-07 电子科技大学 面向fpga安全分析的位流解压缩方法

Also Published As

Publication number Publication date
CN111950217B (zh) 2022-10-14

Similar Documents

Publication Publication Date Title
Agarwal et al. A process-tolerant cache architecture for improved yield in nanoscale technologies
Agarwal et al. Process variation in embedded memories: failure analysis and variation aware architecture
CN109858195B (zh) 一种sram型fpga上必要位单粒子翻转故障的在线仿真系统
CN111950217B (zh) Sram型fpga故障检测中关键帧地址范围定位方法
CN109542670B (zh) 基于错误快速定位的fpga软错误刷新方法以及刷新器
CN107945827B (zh) 一种基于Virtex5器件的位流文件解析方法及定时刷新方法
CN103337258B (zh) 一种覆盖静态和动态故障的存储器测试方法
KR20210044158A (ko) 열 멀티플렉싱 기술
US8436646B1 (en) Reconfigurable logic block with user RAM
US9298875B2 (en) Semiconductor circuit design method, memory compiler and computer program product
US6848084B1 (en) Method and apparatus for verification of memories at multiple abstraction levels
Li et al. An error detection and correction scheme for RAMs with partial-write function
Xie et al. Soft error mitigation and recovery of SRAM-based FPGAs using brain-inspired hybrid-grained scrubbing mechanism
US9690890B1 (en) Creating and using a wide-bus data structure to represent a wide-bus in an integrated circuit (IC) design
US9652573B1 (en) Creating and using a wide-gate data structure to represent a wide-gate in an integrated circuit (IC) design
US9697314B1 (en) Identifying and using slices in an integrated circuit (IC) design
US11670363B2 (en) Multi-tier memory architecture
JP3862882B2 (ja) 回路データ縮約方法及び回路シミュレーション方法
US11056183B2 (en) Multi-port memory circuitry
US10354032B2 (en) Optimizing an integrated circuit (IC) design comprising at least one wide-gate or wide-bus
US10157253B2 (en) Multi-bit-mapping aware clock gating
JP2003256495A (ja) 消費電力計算装置及び方法
Ullah et al. Recovery time and fault tolerance improvement for circuits mapped on SRAM-based FPGAs
CN112631544A (zh) 单粒子翻转数据的实时分类标记方法及系统、设备
CN112466379B (zh) 存储器位映射关系确定方法、装置、处理器芯片及服务器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant