CN110688271B - 一种应用于处理器芯片仿真验证的可控随机故障注入方法 - Google Patents
一种应用于处理器芯片仿真验证的可控随机故障注入方法 Download PDFInfo
- Publication number
- CN110688271B CN110688271B CN201910858595.7A CN201910858595A CN110688271B CN 110688271 B CN110688271 B CN 110688271B CN 201910858595 A CN201910858595 A CN 201910858595A CN 110688271 B CN110688271 B CN 110688271B
- Authority
- CN
- China
- Prior art keywords
- fault
- fault injection
- bit
- acquiring
- value
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/261—Functional testing by simulating additional hardware, e.g. fault simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/263—Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明涉及一种应用于处理器芯片仿真验证的可控随机故障注入方法,包括以下步骤:定义故障注入结构体;根据芯片的设计方案和设计代码,找到故障注入的设计信号路径和名称,通过仿真器支持的绑定方式与故障注入环境中的变量关联起来;监测并获取当前的退出指令编号,当所述退出指令编号在故障注入指令编号区间内时,获取记录的当前故障注入编号;获取数据位宽度size,使用伪随机数生成的方法,获得两个不同的随机数r0和r1,且随机数r0和r1取值范围在0到size‑1之间;根据不同的造错情况,采用随机数r0和r1选择数据位或信号位进行故障注入。本发明增强了故障处理流程验证的可控性、随机性和可扩展性。
Description
技术领域
本发明涉及处理器芯片仿真验证技术领域,特别是涉及一种应用于处理器芯片仿真验证的可控随机故障注入方法。
背景技术
随着处理器芯片设计规模的不断扩大和设计复杂程度的不断提高,处理器芯片的正确性验证变得日益复杂和困难。故障处理流程作为处理器可靠性的重要保障,其正确性的验证至为关键。在仿真验证阶段进行故障注入,可以在设计阶段对芯片的故障处理流程和可靠性进行分析,因此可以加快设计流程并降低设计成本。
在传统的处理器芯片仿真验证中,对于故障的正确性验证一般采用强制信号或修改特定设计的方法进行。强制信号的方法是利用仿真器命令在特定时刻强行修改设计的信号值,以达到触发故障的目的。修改特定设计的方法是在原有设计的基础上,人为修改设计代码插入故障,以达到验证故障处理流程的目的。
但是,强制信号和修改特定设计的方法在可扩展性、可控性和随机性方面表现较差,因为它们只能配合特定的激励运行,并且只能在特定的时刻和固定的信号位上造错,无法控制错误的时机,也难以找到隐藏于故障处理流程边界条件处的设计错误。
发明内容
本发明所要解决的技术问题是提供一种应用于处理器芯片仿真验证的可控随机故障注入方法,能够更充分验证处理器芯片故障处理流程。
本发明解决其技术问题所采用的技术方案是:提供一种应用于处理器芯片仿真验证的可控随机故障注入方法,包括以下步骤:
(1)定义故障注入结构体;
(2)根据芯片的设计方案和设计代码,找到故障注入的设计信号路径和名称,通过仿真器支持的绑定方式与故障注入环境中的变量关联起来;
(3)监测并获取当前的退出指令编号,当所述退出指令编号在故障注入指令编号区间内时,获取记录的当前故障注入编号;
(4)获取数据位宽度size,使用伪随机数生成的方法,获得两个不同的随机数r0和r1,且随机数r0和r1取值范围在0到size-1之间;
(5)根据不同的造错情况,采用随机数r0和r1选择数据位或信号位进行故障注入。
所述步骤(1)中的故障注入结构体的内部结构包括故障类型、故障注入起始指令编号、故障注入结束指令编号和故障注入次数。
所述步骤(3)和(4)之间还包括确定当前故障注入编号小于故障注入次数的步骤。
所述步骤(5)中的造错情况为造单错的情况时进行如下操作:获取数据第r0位当前的值;将数据第r0位的值进行取反操作;等待一个时钟节拍;将数据第r0位的值还原成原值。
所述步骤(5)中的造错情况为造多错的情况时进行如下操作:获取数据第r0位和第r1位当前的值;将数据第r0位和第r1位的值进行取反操作;等待一个时钟节拍;将数据第r0位和第r1位的值还原成原值。
所述步骤(5)中的造错情况为在n个信号位上随机选一个造错的情况时进行如下操作:获取第r0个信号位当前的值;将第r0个信号位的值进行取反操作;等待一个时钟节拍;将第r0个信号位的值还原成原值。
有益效果
由于采用了上述的技术方案,本发明与现有技术相比,具有以下的优点和积极效果:本发明通过监测退出指令编号控制故障注入的时机,因此可以在最合适的时间范围内注入故障,提高验证的效率和准确度,增强了故障处理流程验证的可控性。本发明通过伪随机数生成的方式确定故障注入的位置,配合大规模的回归测试,可以极大提高故障处理流程的验证强度,更有可能发现隐藏于故障处理流程边界条件中的设计错误,使得验证结果更为充分、可信,增强了故障处理流程验证的随机性。本发明通过控制故障注入时机以及增强故障注入的随机性,可以配合任意激励完成故障注入,提高了激励的可重用性,进一步提升了故障处理流程验证的效率,增强了故障处理流程验证的可扩展性。
附图说明
图1是故障注入结构体的内部结构图;
图2是故障注入运行环境示意图;
图3是可控的随机故障注入方法实现步骤流程图。
具体实施方式
下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
本发明的实施方式涉及一种应用于处理器芯片仿真验证的可控随机故障注入方法,具体包括以下步骤:
第一步:定义故障注入结构体,该故障结构体的内部结构如图1所示,其内部各个变量的涵义如下:
1)Fault_Type:故障类型,指示要注入的故障是何种类型,不同类型的故障会有不同的注入方式。
2)From_Palnum:故障注入起始指令编号,指示只有在当前运行的指令编号大于From_Palnum时,才能够进行故障注入。
3)End_Palnum:故障注入结束指令编号,指示只有在当前运行的指令编号小于End_Palnum时,才能够进行故障注入。一般End_Palnum的值要设置为比From_Palnum的值大。
4)Fault_Num:故障注入次数,指示故障注入次数不能超过Fault_Num的值。
第二步:根据芯片的设计方案和设计代码,找到故障注入的设计信号路径和名称,通过仿真器支持的绑定方式与故障注入环境中的变量关联起来。如图2中设计代码(DUT)与故障注入环境(ENV)之间的连线所示。
第三步:实现故障注入方法,该方法的参数是一个故障注入结构体实例(i_fi)。方法的流程图如图3所示,具体包含如下步骤:
1)监测并获取当前的退出指令编号cur_Palnum;
2)检查退出指令编号cur_Palnum是否大于故障注入结构体i_fi的起始指令编号i_fi.From_Palnum值,若是则转步骤3,否则转步骤22;
3)检查退出指令编号cur_Palnum是否小于故障注入结构体i_fi的结束指令编号i_fi.End_Palnum值,若是则转步骤4,否则转步骤23;
4)获取记录的当前故障注入编号值cur_Fault_Num;
5)检查当前故障注入编号值cur_Fault_Num是否小于故障注入结构体i_fi的故障注入次数i_fi.Fault_Num,若是则转步骤6,否则转步骤23;
6)获取数据位宽度size,如果是在n个信号位上随机选一个造错,则将size设置为n;
7)使用伪随机数生成的方法,获得两个不同的且在0到size-1之间的随机数r0和r1;
8)如果是造单错的情况,则转步骤9;如果是造多错的情况,则转步骤13;如果是在n个信号位上随机选一个造错的情况,则转步骤17;
9)获取数据第r0位当前的值ori_r0;
10)将数据第r0位设置为值~ori_r0(取反操作);
11)等待一个时钟节拍;
12)将数据第r0位设置为值ori_r0(还原成原值),之后转步骤21;
13)分别获取数据第r0位和第r1位当前的值ori_r0和ori_r1;
14)分别将数据第r0位和第r1位设置为值~ori_r0和~ori_r1(取反操作);
15)等待一个时钟节拍;
16)分别将数据第r0位和第r1位设置为值ori_r0和ori_r1(还原成原值),之后转步骤21;
17)获取第r0个信号位当前的值ori_r0;
18)将第r0个信号位设置为值~ori_r0(取反操作);
19)等待一个时钟节拍;
20)将第r0个信号位设置为值ori_r0(还原成原值),之后转步骤21;
21)将当前故障注入编号值cur_Fault_Num加1;
22)等待一个时钟节拍,转步骤1;
23)结束。
第四步:为待注入的故障类型编写一个故障注入序列(Sequence),在序列中定义好故障注入结构体实例i_fi,调用故障注入方法,并将i_fi作为故障注入方法的参数传入。
第五步:将待验证设计(DUT)、故障注入环境(ENV,包含故障注入结构体定义(FIStruct)、故障注入方法(FI Method)、故障注入序列(Sequence)等)和任意一个激励(Stimulus)一起在仿真器上运行(如图2所示),完成故障注入和故障处理流程的验证。
不难发现,本发明通过监测退出指令编号控制故障注入的时机,因此可以在最合适的时间范围内注入故障,提高验证的效率和准确度,增强了故障处理流程验证的可控性。本发明通过伪随机数生成的方式确定故障注入的位置,配合大规模的回归测试,可以极大提高故障处理流程的验证强度,更有可能发现隐藏于故障处理流程边界条件中的设计错误,使得验证结果更为充分、可信,增强了故障处理流程验证的随机性。本发明通过控制故障注入时机以及增强故障注入的随机性,可以配合任意激励完成故障注入,提高了激励的可重用性,进一步提升了故障处理流程验证的效率,增强了故障处理流程验证的可扩展性。
Claims (6)
1.一种应用于处理器芯片仿真验证的可控随机故障注入方法,其特征在于,包括以下步骤:
(1)定义故障注入结构体;
(2)根据芯片的设计方案和设计代码,找到故障注入的设计信号路径和名称,通过仿真器支持的绑定方式将所述设计代码与故障注入环境中的变量关联起来;
(3)监测并获取当前的退出指令编号,当所述退出指令编号在故障注入指令编号区间内时,获取记录的当前故障注入编号;
(4)获取数据位宽度size,使用伪随机数生成的方法,获得两个不同的随机数r0和r1,且随机数r0和r1取值范围在0到size-1之间;
(5)根据不同的造错情况,采用随机数r0和r1选择数据位或信号位进行故障注入。
2.根据权利要求1所述的应用于处理器芯片仿真验证的可控随机故障注入方法,其特征在于,所述步骤(1)中的故障注入结构体的内部结构包括故障类型、故障注入起始指令编号、故障注入结束指令编号和故障注入次数。
3.根据权利要求1所述的应用于处理器芯片仿真验证的可控随机故障注入方法,其特征在于,所述步骤(3)和(4)之间还包括确定当前故障注入编号小于故障注入次数的步骤。
4.根据权利要求1所述的应用于处理器芯片仿真验证的可控随机故障注入方法,其特征在于,所述步骤(5)中的造错情况为造单错的情况时进行如下操作:获取数据第r0位当前的值;将数据第r0位的值进行取反操作;等待一个时钟节拍;将数据第r0位的值还原成原值。
5.根据权利要求1所述的应用于处理器芯片仿真验证的可控随机故障注入方法,其特征在于,所述步骤(5)中的造错情况为造多错的情况时进行如下操作:获取数据第r0位和第r1位当前的值;将数据第r0位和第r1位的值进行取反操作;等待一个时钟节拍;将数据第r0位和第r1位的值还原成原值。
6.根据权利要求1所述的应用于处理器芯片仿真验证的可控随机故障注入方法,其特征在于,所述步骤(5)中的造错情况为在n个信号位上随机选一个造错的情况时进行如下操作:获取第r0个信号位当前的值;将第r0个信号位的值进行取反操作;等待一个时钟节拍;将第r0个信号位的值还原成原值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910858595.7A CN110688271B (zh) | 2019-09-11 | 2019-09-11 | 一种应用于处理器芯片仿真验证的可控随机故障注入方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910858595.7A CN110688271B (zh) | 2019-09-11 | 2019-09-11 | 一种应用于处理器芯片仿真验证的可控随机故障注入方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110688271A CN110688271A (zh) | 2020-01-14 |
CN110688271B true CN110688271B (zh) | 2023-06-23 |
Family
ID=69108954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910858595.7A Active CN110688271B (zh) | 2019-09-11 | 2019-09-11 | 一种应用于处理器芯片仿真验证的可控随机故障注入方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110688271B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112380084B (zh) * | 2020-12-05 | 2024-03-26 | 中国人民解放军32181部队 | 一种故障注入与仿真验证方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105528284A (zh) * | 2014-09-28 | 2016-04-27 | 华为技术有限公司 | 一种内核故障注入方法及电子设备 |
CN108363894A (zh) * | 2018-05-04 | 2018-08-03 | 西安电子科技大学 | 一种电路级单粒子效应仿真平台 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8051346B2 (en) * | 2009-02-25 | 2011-11-01 | Cisco Technology, Inc. | Fault injection |
-
2019
- 2019-09-11 CN CN201910858595.7A patent/CN110688271B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105528284A (zh) * | 2014-09-28 | 2016-04-27 | 华为技术有限公司 | 一种内核故障注入方法及电子设备 |
CN108363894A (zh) * | 2018-05-04 | 2018-08-03 | 西安电子科技大学 | 一种电路级单粒子效应仿真平台 |
Non-Patent Citations (1)
Title |
---|
故障注入通用仿真平台的研究与设计;姚文斌等;《系统仿真学报》;20160208(第02期);第315-321页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110688271A (zh) | 2020-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7644398B2 (en) | System and method for automatic test-case generation for software | |
US8589892B2 (en) | Verification of speculative execution | |
Lopez-Ongil et al. | Autonomous fault emulation: A new FPGA-based acceleration system for hardness evaluation | |
Svenningsson et al. | MODIFI: a MODel-implemented fault injection tool | |
RU2473115C2 (ru) | Способ автоматического генерирования сценария для проверки правильности функционального программного обеспечения системы, установленной на борту летательного аппарата, и устройство для применения способа | |
US20030046609A1 (en) | Method, system, and computer program product for automated test generation for non-deterministic software using state transition rules | |
Artho et al. | Model-based testing for verification back-ends | |
KR20100121226A (ko) | 오류 주입을 이용한 소프트웨어 신뢰성 테스트 시스템 및 방법 | |
US7228262B2 (en) | Semiconductor integrated circuit verification system | |
CN110688313B (zh) | 一种VxWorks操作系统下软件测试的故障注入方法 | |
US20090327824A1 (en) | Techniques for performing a logic built-in self-test in an integrated circuit device | |
CN107329889B (zh) | 一种c编译器自动化测试的方法 | |
US20170343607A1 (en) | Semiconductor device, electronic control system and method for evaluating electronic control system | |
CN111400997B (zh) | 一种基于同步执行的处理器核验证方法、系统及介质 | |
CN110688271B (zh) | 一种应用于处理器芯片仿真验证的可控随机故障注入方法 | |
CN110704314A (zh) | 一种嵌入式软件测试的故障注入方法 | |
Gaudesi et al. | On test program compaction | |
US20090112554A1 (en) | Test Bench, Method, and Computer Program Product for Performing a Test Case on an Integrated Circuit | |
TW201017459A (en) | Method and apparatus for debugging an electronic system design (ESD) prototype | |
JP2016031622A (ja) | ソフトウェア検証システムおよび制御装置 | |
CN116069635A (zh) | Soc系统的测试方法、装置、计算机设备及存储介质 | |
US10481969B2 (en) | Configurable system wide tests | |
US7231619B1 (en) | Extended model checking hardware verification | |
US20050108596A1 (en) | Method of verifying circuitry used for testing a new logic component prior to the first release of the component | |
KR20030082135A (ko) | 반도체 소자의 테스트 프로그램 에뮬레이터 및 에뮬레이션방법 |
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 |