CN105718693B - 一种基于配置无关位的fpga电路逻辑覆盖优化方法 - Google Patents
一种基于配置无关位的fpga电路逻辑覆盖优化方法 Download PDFInfo
- Publication number
- CN105718693B CN105718693B CN201610059778.9A CN201610059778A CN105718693B CN 105718693 B CN105718693 B CN 105718693B CN 201610059778 A CN201610059778 A CN 201610059778A CN 105718693 B CN105718693 B CN 105718693B
- Authority
- CN
- China
- Prior art keywords
- configuration
- bit
- lut
- circuit
- logic
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
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)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明提供了一种基于配置无关位的FPGA电路逻辑覆盖优化方法,基于一个给定的电路,通过电路仿真,敏感度评估等方法,获得所有LUT中具有CDC特性的配置位,并以反向拓扑排序方法,对所有LUT中的无关位进行重新赋值,使发生在LUT扇入逻辑和互连中的单粒子翻转软错误得到有效地屏蔽,从而使由这类软错误引起的系统错误率降到最低。在不改变电路逻辑功能的情况下改变目标线网的信号概率,实现用户电路的逻辑优化。使用本发明可以提高FPGA中用户电路的可靠性,且不增加额外的电路资源开销。
Description
技术领域
本发明涉及一种基于信号概率的FPGA用户电路逻辑反转优化方法,特别是用于在空间辐射环境中提高FPGA中用户电路的可靠性,属于FPGA用户电路逻辑优化领域。
背景技术
FPGA因具有较高的逻辑密度、较短的开发周期和特有的灵活性等显著优点,使它在航空航天领域中应用的越来越广泛。然而,空间辐射环境中存在大量的高能粒子,这些高能粒子可以改变或者干扰FPGA内部配置存储器的信息,发生配置存储器的0/1翻转或者瞬态扰动,从而引起FPGA中的用户电路功能出错并导致整个系统运行异常。因此,由于高能粒子辐射和噪声干扰造成的FPGA用户电路的可靠性问题是FPGA在空间应用领域需要解决的重要技术问题。
三模冗余技术是目前为提高FPGA中用户电路的可靠性最常用的逻辑优化技术,它的原理是将用户电路复制为三个功能相同的电路模块,并由多数表决电路模块进行功能判别,其中任何一个用户电路模块受空间辐射而功能出错时都不会影响系统最终的功能。然而采用三模冗余技术会带来三倍以上用户电路资源的开销,在资源紧张、功耗要求较高的电子系统中并不适用。
发明内容
本发明要解决的技术问题为:克服现有技术不足,提供一种基于配置无关位的FPGA电路逻辑覆盖优化方法,在不改变电路逻辑功能的情况下对用户电路进行逻辑优化,提高FPGA中用户电路的可靠性,且不增加额外的电路资源开销。
本发明的技术方案为:一个基于配置无关位的FPGA电路逻辑覆盖优化方法,包括以下步骤:
(1)对FPGA电路施加仿真激励进行仿真,得到电路线网上所有LUT上配置位的逻辑敏感度;
(2)获取电路线网中所有LUT上具有可控无关集合特性的配置位,记为CDC配置位;
(3)根据步骤(2)得到的配置位,对所有LUT进行反向拓扑遍历,使用启发式策略对所有配置位进行配置,得到新的线网列表;
(4)对新的线网列表重复步骤(2)判断当前CDC配置位占所有配置位的比重是否小于预设的阈值,若小于则当前优化结束;否则执行步骤(3)。
所述的启发式策略具体如下:
(3.1)获取与指定CDC配置位的海明距离为1的所有配置位;对于n输入的LUT,每一个配置位的输入集合即配置字由n位组成。若有两个配置位对应的配置字按位比较,只有1位不同,则称这两个配置位之间的海明距离为1;
(3.2)根据步骤(1)中的逻辑敏感度,从(3.1)中获取的配 置位中挑选逻辑敏感度最高的配置位,将该配置位的配置逻辑赋给指定CDC配置位。
所述步骤(2)获取CDC配置位的步骤如下:
(2.1)将电路线网划分成电路子块,划分的原则为:一个电路子块中,对于n输入的LUT至少包括n个输入的LUT和1个输出LUT;
(2.2)对每个电路子块做如下处理:
遍历该电路子块中所有的输入集合,求出子块中不能被可产生的外界输入访问的配置位,记为CDC配置位。
本发明与现有技术相比的有益效果如下:
(1)本发明通过大量的研究发现目标FPGA内部线网逻辑特性只与该种FPGA的硬件架构有关,与其中的实现的何种用户电路无关;目标FPGA内部线网逻辑特性可由故障注入的方法获得。该方法使得电路的逻辑屏蔽能力和容错能力得到逐步的增强,通过重配置在多级逻辑中得以累积。利用电路上已经存在的无关位对电路的容错性进行优化。不具有任何布局布线上的额外开销。
(2)通过LUT进行反向拓扑遍历,即从输出到输入的顺序对每一个LUT中的CDC位进行重新配置。其原因是:当我们重新配置了某一个LUT中的CDC位来增强其扇入锥形的的容错能力时,其扇入锥形的敏感度会因为该位的逻辑变化而发生改变。通过反向拓扑,使得每一个LUT的敏感度评估都会在算法确定的最新配置位下产生,避免遍历过程中的相互干扰。
(3)本发明每一次的无关位获取,配置位配置等方式,都可以看作一个独立的步骤,对于电路的容错性有所提升,而采用迭代的方式进行是有必要的,由于CDC的配置位获取分块方式,即不能获取全部的CDC配置位而只能获取其真子集,因此,在每一次的重配置之后,都会产生新的CDC位,采用迭代的方法,也有可能帮助我们找到一些新的CDC位以便对电路进行进一步优化,不过迭代的次数不用太多,可以灵活的在迭代次数和性能效率之间进行选择。
附图说明
图1:本发明方法流程图。
图2:4LUT实现逻辑F1。
图3:4LUT实现逻辑F2。
图4:LUT错误及算法示意图
具体实施方式
本发明提出了一种基于配置无关位的FPGA电路逻辑覆盖优化方法,其流程如图1所示:基于一个给定的电路,通过划分电路子块方法,获得所有LUT中具有CDC特性的配置位。同时,根据具体激励和FPGA的结构描述,进行FPGA配置的软错误评估,以得到FPGA中的LUT配置位敏感度信息。以反向拓扑排序方法,对电路中的所有LUT中的无关位进行重新配置。通过,对于在重新配置过程中可能产生的新的无关位信息,通过LUT指派过程进行重新划分电路子块。并迭代无关位配置过程。使发生在LUT扇入逻辑和互连中的软错误可以得到有效地屏蔽,从而使由这类软错误引起的系统错 误率降到最低。在不改变电路逻辑功能的情况下改变目标线网的信号概率,实现用户电路的逻辑优化。使用本发明可以提高FPGA中用户电路的可靠性,且不增加额外的电路资源开销。该方法适用于以电路基本结构为LUT的SRAM型FGPA。具体步骤如下:
(1)对FPGA电路施加仿真激励进行仿真,得到电路线网上所有LUT上配置位的逻辑敏感度;
在给定的FPGA电路和有效的输入激励下,能够被访问并且输出的配置位集合称为有效位集合,而它的补集称为无关位集合。
仿真激励需遍历用户电路的所有输入组合,布局布线后仿真是指用户电路在特定FPGA架构上实现后的电路仿真,仿真输出结果应包括在特定FPGA架构上实现的用户电路的所有内部线网随仿真激励变化而产生的逻辑输出。
(2)获取电路线网中所有LUT上具有可控无关集合特性的配置位,记为CDC配置位;
(2.1)将电路线网划分成电路子块,划分的原则为:一个电路子块中,对于n输入的LUT至少包括n个输入的LUT和1个输出LUT;
(2.2)对每个电路子块做如下处理:
遍历该电路子块中所有的输入集合,求出子块中不能被可产生的外界输入访问的配置位,记为CDC配置位。
(3)根据步骤(2)得到的配置位,对所有LUT进行反向拓扑遍历,使用启发式策略对所有配置位进行配置,得到新的线网列表;
例如某LUT中有某一个CDC位c,在正常情况下,c是不会被访问到的,只有在c的输出在其扇区S发生软错误的情况下,c才能被访问到。对于n输出的LUT,其输入集合由n个配置位构成。如这些配置位跟c的索引按位比较只有1位是不同的,我们称配置位之间的海明距离为1。为了使得S中发生软错误导致的系统软错误率降到最低:在那些与c的输出海明距离为1的索引中进行选择,挑选出其中具有最高逻辑敏感度的的配置逻辑赋给c。从而使得c能够用以屏蔽对系统输出最敏感的配置位上的逻辑错误。具体概括如下:
(3.1)获取与指定CDC配置位的海明距离为1的所有配置位;对于n输入的LUT,每一个配置位的输入集合即配置字由n位组成。若有两个配置位对应的配置字按位比较,只有1位不同,则称这两个配置位之间的海明距离为1;
(3.2)根据步骤(1)中的逻辑敏感度,从(3.1)中获取的配置位中挑选逻辑敏感度最高的配置位,将该配置位的配置逻辑赋给指定CDC配置位。
反向拓扑遍历即从输出到输入的顺序对每一个LUT中的CDC位进行重新配置。其原因是:当我们重新配置了某一个LUT中的CDC位来增强其扇入锥形的的容错能力时,其扇入锥形的敏感度会因为该位的逻辑变化而发生改变。通过反向拓扑,使得每一个LUT的敏感度评估都会在算法确定的最新配置位下产生。
(4)对新的线网列表重复步骤(2)判断当前CDC配置位占所有配置位的比重是否小于预设的阈值,若小于则当前优化结束;否则 执行步骤(3)。阈值设置为:在某一次迭代中CDC配置位占所有配置位的比重跟第一次的比重相比,小于第一次比重的1%。通过大量的实践表明,迭代3次时,CDC配置位占比已经很小,所以,一般的迭代以3次为最佳,不过,迭代次数也可根据系统性能和效果之间进行平衡。
实施例
考虑一个电路的实例。在图2和图3的实例中,均采用了4输入的LUT实现电路逻辑,并且电路中实现了相同的电路逻辑和拓扑结构,只有在L4中的一个配置位(2’b11)中有所不同,我们详细的考察电路,可以发现该配置位是一个逻辑的CDC位。即在正常情况下,该位是不会被访问到的配置位。因此,可以认为图2和图3的实现方法等价。
如果考虑到L4扇入锥形内配置位可能发生的软错误,这两种配置使得错误有所不同,加入一个软错误使得L4的输入发生错误,从而使得本来访问2’b10或者2’b01的逻辑,错误的访问到了2’b11位。则在图2的情况下,可能会因为软错误,错误的输出0,而在图3的情况下,仍然可以正确的访问到输出1,所以我们认为,发生在图3中L4的配置字错误能够被屏蔽,从而降低电路错误率。
例如,在图4的情况下,对于CDC位(3’b111)我们考察跟其海明距离为1的所有配置位即:(3’b110),3’b101和3’b011这3个位置的情况,其中3’b011的错误率(逻辑敏感度)最高,因为我们应 该把CDC位的逻辑状态配置到跟3’b011的状态一致,即配置到1,从而使得CDC位能够用以屏蔽对系统输出最敏感的配置位上的逻辑错误。
在实际的使用过程中,对部分MCNC基准测试电路进行了实际测试,使用该方法能够使得电路因为软错误而产生系统错误的概率降低10-15%。在具体的试验分析中,能够得出结论:在使用一次迭代的算法时,能够达到整体效果的80-90%;迭代次数达到三次时,已经能够达到整体效果的99%以上;迭代次数在超过三次之后,能够取得的效果微乎其微。
本发明未详细描述的内容为本领域技术人员公知技术。
Claims (2)
1.一种基于配置无关位的FPGA电路逻辑覆盖优化方法,其特征在于包括以下步骤:
(1)对FPGA电路施加仿真激励进行仿真,得到电路线网上所有LUT上配置位的逻辑敏感度;
(2)获取电路线网中所有LUT上具有可控无关集合特性的配置位,记为CDC配置位;
(3)根据步骤(2)得到的配置位,对所有LUT进行反向拓扑遍历,使用启发式策略对所有配置位进行配置,得到新的线网列表;
(4)对新的线网列表重复步骤(2)判断当前CDC配置位占所有配置位的比重是否小于预设的阈值,若小于则当前优化结束;否则执行步骤(3);
所述的启发式策略具体如下:
(3.1)获取与指定CDC配置位的海明距离为1的所有配置位;对于n输入的LUT,每一个配置位的输入集合即配置字由n位组成;若有两个配置位对应的配置字按位比较,只有1位不同,则称这两个配置位之间的海明距离为1;
(3.2)根据步骤(1)中的逻辑敏感度,从(3.1)中获取的配置位中挑选逻辑敏感度最高的配置位,将该配置位的配置逻辑赋给指定CDC配置位。
2.根据权利要求1所述的一种基于配置无关位的FPGA电路逻辑覆盖优化方法,其特征在于:所述步骤(2)获取CDC配置位的步骤如下:
(2.1)将电路线网划分成电路子块,划分的原则为:一个电路子块中,对于n输入的LUT至少包括n个输入的LUT和1个输出LUT;
(2.2)对每个电路子块做如下处理:
遍历该电路子块中所有的输入集合,求出子块中不能被可产生的外界输入访问的配置位,记为CDC配置位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610059778.9A CN105718693B (zh) | 2016-01-28 | 2016-01-28 | 一种基于配置无关位的fpga电路逻辑覆盖优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610059778.9A CN105718693B (zh) | 2016-01-28 | 2016-01-28 | 一种基于配置无关位的fpga电路逻辑覆盖优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105718693A CN105718693A (zh) | 2016-06-29 |
CN105718693B true CN105718693B (zh) | 2018-12-21 |
Family
ID=56154207
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610059778.9A Active CN105718693B (zh) | 2016-01-28 | 2016-01-28 | 一种基于配置无关位的fpga电路逻辑覆盖优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105718693B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103000548A (zh) * | 2012-11-30 | 2013-03-27 | 北京时代民芯科技有限公司 | 一种利用fpga芯片进行集成电路制造工艺缺陷检测的方法 |
CN103699705A (zh) * | 2012-09-27 | 2014-04-02 | 中国科学院微电子研究所 | 一种用于fpga结构设计的系统及其方法 |
CN104185951A (zh) * | 2012-03-05 | 2014-12-03 | 索泰克公司 | 查找表架构 |
CN104268253A (zh) * | 2014-10-09 | 2015-01-07 | 中国科学院自动化研究所 | 一种基于查找表配置位统计的部分三模冗余方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012047735A2 (en) * | 2010-09-29 | 2012-04-12 | The Regents Of The University Of California | In-place resynthesis and remapping techniques for soft error mitigation in fpga |
-
2016
- 2016-01-28 CN CN201610059778.9A patent/CN105718693B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104185951A (zh) * | 2012-03-05 | 2014-12-03 | 索泰克公司 | 查找表架构 |
CN103699705A (zh) * | 2012-09-27 | 2014-04-02 | 中国科学院微电子研究所 | 一种用于fpga结构设计的系统及其方法 |
CN103000548A (zh) * | 2012-11-30 | 2013-03-27 | 北京时代民芯科技有限公司 | 一种利用fpga芯片进行集成电路制造工艺缺陷检测的方法 |
CN104268253A (zh) * | 2014-10-09 | 2015-01-07 | 中国科学院自动化研究所 | 一种基于查找表配置位统计的部分三模冗余方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105718693A (zh) | 2016-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhang et al. | FASER: Fast analysis of soft error susceptibility for cell-based designs | |
Tosun et al. | Reliability-centric high-level synthesis | |
EP3076298B1 (en) | Methods and apparatus for embedding an error correction code in memory cells | |
Beechu et al. | Hardware implementation of fault tolerance NoC core mapping | |
US10990731B1 (en) | Dynamic voltage drop analysis with improved coverage | |
CN104268253A (zh) | 一种基于查找表配置位统计的部分三模冗余方法 | |
US20220327271A1 (en) | Integrated circuit with peek and poke protection circuitry for multi-tenant usage model | |
He et al. | A hierarchical scrubbing technique for SEU mitigation on SRAM-based FPGAs | |
Benevenuti et al. | Comparing exhaustive and random fault injection methods for configuration memory on SRAM-based FPGAs | |
US9601217B1 (en) | Methods and circuitry for identifying logic regions affected by soft errors | |
Jing et al. | SEU fault evaluation and characteristics for SRAM-based FPGA architectures and synthesis algorithms | |
CN107783877A (zh) | 基于变异分析的硬件木马有效激活的测试向量生成方法 | |
Koblah et al. | A survey and perspective on artificial intelligence for security-aware electronic design automation | |
Sekanina | Evolutionary functional recovery in virtual reconfigurable circuits | |
CN105718693B (zh) | 一种基于配置无关位的fpga电路逻辑覆盖优化方法 | |
US11321513B1 (en) | DVD analysis that accounts for delays | |
JP6045351B2 (ja) | 検証装置及び検証方法 | |
CN105656474A (zh) | 一种基于信号概率的fpga用户电路逻辑反转优化方法 | |
Sterpone | Electronics system design techniques for safety critical applications | |
Pereira-Santos et al. | Exploring redundancy granularities to repair real-time FPGA-based systems | |
CN107315863B (zh) | 布局优化方法及装置、终端及存储介质 | |
US11531794B1 (en) | Voltage drop analysis using local circuit representation | |
Chang et al. | Fault-tolerant mesh-based NoC with router-level redundancy | |
US9600613B1 (en) | Block-level code coverage in simulation of circuit designs | |
JP5807887B1 (ja) | プログラマブルロジックデバイス、プログラマブルロジックデバイスのエラー検証方法、及びプログラマブルロジックデバイスの回路形成方法 |
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 |