自动模拟故障注入的制作方法

文档序号:17262809发布日期:2019-03-30 09:47阅读:245来源:国知局
自动模拟故障注入的制作方法

本发明涉及模拟电路中的故障注入的领域。



背景技术:

功能安全性是系统安全性的一部分,并且取决于系统如何响应其输入而操作。电路的功能安全性取决于各种电路组件对输入的响应。测试可以用于检查系统对意外错误的响应。对于电路的功能安全性认证,故障注入用于对实际芯片中可能发生的故障进行建模,然后评估电路响应(例如,通过标记错误和/或进入安全状态)。对于电路的测试平台认证,故障注入用于对设计中的错误进行建模,以查看测试平台是否检测到错误。如果测试平台没有标记错误,则验证测试策略中存在漏洞。

故障注入通常在数字电路上进行,其中故障容易被测量为不正确的二进制值(例如,1或0)。模拟电路中的故障注入更加困难。特别是,模拟故障注入非常慢。此外,由于模拟输出可能具有许多可能的值,并且模拟故障可能导致电路行为变化,因此很难确定模拟故障中的故障构成。传统的模拟故障注入方法需要大量的手动工作,并且非常特定于电路。有一些后硅模拟故障注入方法,但这些方法限制了可以注入的故障类型和延迟认证结果直到流片后。因此,模拟故障注入通常在有限的个案基础上来执行。



技术实现要素:

公开了自动和可定制的模拟故障注入系统和方法。特别地,用于在模拟电路中运行故障注入以满足功能安全性产品要求的方法包括确定要考虑的故障列表,为电路创建故障网表,运行故障仿真以及报告检测结果。还公开了一种用于使任何模拟设计块的故障注入流程自动化的工具。

根据一些实施方式,用于自动模拟故障注入的方法包括创建用于注入模拟电路的故障模型列表,将第一故障占位符添加到模拟电路,通过用来自故障模型列表的第一故障模型替换第一故障占位符来运行故障仿真,以及确定是否检测到第一故障模型。在各种示例中,创建故障模型列表包括指定定制故障类型。在一些示例中,第一故障占位符是具有零伏的电压源。

在一些实施方式中,该方法还包括生成检测结果的报告。根据一些实施方式,该方法还包括创建故障位置列表,以及将第二故障占位符添加到故障位置列表上的每个故障位置。在一些实施方式中,该方法还包括将短故障占位符添加到模拟电路,其中短故障占位符是故障短路。在各种实施方式中,该方法还包括在子电路端口处添加多个第二故障占位符。

根据一些实施方式,用于自动模拟故障注入的系统包括用于注入模拟电路的故障模型列表,用于添加到模拟电路的多个故障占位符,以及配置成通过用来自故障模型列表的第一故障模型替换多个故障占位符中的一些故障占位符来运行故障仿真的处理器,其中,处理器还被配置为确定是否检测到第一故障模型。在一些示例中,故障模型列表包括定制故障类型。在一些示例中,多个故障占位符各自是具有零伏的电压源。

在一些实施方式中,处理器进一步经配置以生成检测结果的报告。在一些实施方式中,处理器还被配置为创建故障位置列表,并且将多个故障占位符的故障占位符添加到故障位置列表上的每个故障位置。根据一些实施方式,该系统还包括用于添加到模拟电路的短故障占位符,其中短故障占位符是开路。

根据一些实施方式,提供了一个或多个非暂态计算机可读介质,其上存储有指令,当在机器上执行时,指令使机器创建用于注入模拟电路的故障模型列表,将第一故障占位符添加到模拟电路,通过用来自故障模型列表中的第一故障模型替换第一故障占位符来运行故障仿真,并确定是否检测到第一故障模型。在一些示例中,创建故障模型列表包括指定定制故障类型。在一些示例中,第一故障占位符是具有零伏的电压源。

在一些实施方式中,指令在机器上执行时使机器生成检测结果的报告。在一些实施方式中,指令在机器上执行时使机器创建故障位置列表,并将第二故障占位符添加到故障位置列表上的每个故障位置。在一些实施方式中,指令在机器上执行时使机器将短故障占位符添加到模拟电路,其中短故障占位符是故障短路。在一些实施方式中,指令在机器上执行时使机器在子电路端口处添加多个第二故障占位符。

附图说明

为了更完整地理解本公开及其特征和优点,结合附图参考以下描述,其中相同的附图标记表示相同的部分,在附图中:

图1是例示说明根据本公开的一些实施例的用于自动模拟故障检测的方法的流程图;

图2是示出根据本公开的一些实施例的具有and门的示例测试平台的图示;

图3是例示说明图2中and门的模拟电路的图示;

图4是例示说明根据本公开的一些实施例的包括故障注入占位符的模拟电路的图示;

图5是例示说明根据本公开的一些实施例的包括短故障占位符的模拟电路的图示;

图6a和图6b是例示说明根据本公开的一些实施例的故障占位符的图示;

图7是例示说明根据本公开的一些实施例的模拟电路故障注入的图示;

图8a-图8f是例示说明根据本公开的一些实施例的故障模型的图示;

图9是例示说明根据本公开的一些实施例的具有输入和输出故障模型的模拟电路的图示;

图10a-图10c是例示说明根据本公开的一些实施例的开路、短路和瞬态故障模型的图示;

图11是例示说明根据本公开的一些实施例的定制故障模型的图示;

图12a-图12d是例示说明根据本公开的一些实施例的定制故障模型的图示;和

图13描绘了例示说明根据本公开的一些实施例的可以在用于模拟故障注入的计算系统中使用的示例性数据处理系统的框图。

具体实施方式

电路的行业标准功能安全性要求包括故障注入认证。故障注入认证在数字领域是一项众所周知的任务,但对于模拟电路则要复杂得多。与数字故障注入相比,模拟故障注入带来了一些新的挑战。首先,没有电路故障的标准化模型。在数字设计中,由于cmos逻辑的特性,任何类型的制造故障最终都会导致节点陷入逻辑高或逻辑低(1/0)。模拟故障没有等效模型:故障可能导致不同的电路行为,具体取决于设计的特性和故障本身。此外,模拟电路没有标准化的故障检测机制。此外,现有的模拟故障注入需要大量的手动工作。特别是,对于传统的模拟故障注入,对于每个要测试的模拟电路,都会创建定制测试平台来注入故障。这里讨论的系统和方法描述了用于对模拟电路执行故障注入认证的方法。另外,公开了一种自动化认证过程的工具。

模拟故障注入有几种不同的应用,包括功能安全性和测试平台认证。功能安全性是系统安全性的一部分,并且取决于系统如何响应其输入而操作。电路的功能安全性取决于各种电路组件对输入的响应。测试可以用于检查电路对意外错误的响应。特别地,通过将已知故障注入电路,可以观察到电路对故障的响应。通常,电路的安全性特征应检测注入的故障。

模拟故障注入的另一个应用是测试平台认证,它允许认证设计验证(dv)策略的质量。特别是,模拟故障注入可以用于在设计中注入故障(错误)。然后,可以测试系统以查看dv策略是否检测到注入的故障。如果dv策略未检测到注入的故障,则表明dv策略存在缺陷。一旦检测到dv缺陷,就可以校正它。

提供了用于模拟故障注入的系统和方法以增加模拟故障注入的效率。特别地,提供了用于模拟故障注入的标准化框架,包括故障类型库,以及用于自动化故障仿真生成和结果收集的系统和方法。为电路中的每个潜在故障节点提供故障模型库,以仿真设计中不同故障行为的影响。

模拟故障注入的另一个挑战是如何分析注入的故障的检测。对于数字故障,如果注入的故障将不正确的值传播到输出端口,则认为它被检测到。对于模拟电路,故障可能不会在输出端口创建大的改变,因此需要更精细的检测方法。在一些实施方式中,用于模拟电路的检测机制对于每个电路设计可以是唯一的。在一个示例中,用户创建自检验证测试平台,其在触发检测机制时将消息打印到仿真日志文件。

在一些实施方式中,当配置自动故障注入工具时,用户可以在日志文件中指定表明电路已检测到故障的消息或消息集。类似地,用户可以限定表明验证测试平台观察到由设计的功能安全性限制限定的不安全状况的日志文件消息。然后,自动化工具可以使用检测和不安全状况结果对故障仿真进行分类,以进行功能安全性分析。通过依靠自检验证测试平台观察检测结果,自动化系统保持灵活性,易于与电路使用的任何类型检测机制一起使用。

在其它实施方式中,当配置自动故障注入工具时,消息或消息集被自动地包括在日志文件中以表明电路已检测到故障。类似地,系统可以包括预加载的日志文件消息,以表明验证测试平台观察到由设计的功能安全性限制限定的不安全状况。然后,自动化工具可以使用检测和不安全状况结果对故障仿真进行分类,以进行功能安全性分析。通过依靠自检验证测试平台来确定检测结果,自动化系统是灵活的,并且可以与电路使用的任何类型的检测机制一起使用。

在另一示例中,记录无故障仿真输出值并将其与有故障仿真值进行比较。可以预先确定要标记为有故障的测试仿真值的容差值(与无故障仿真输出值相比),或者可以由用户设置。设置用于将测试仿真值标记为有故障的容差值会消除自检测试平台。然而,在一些示例中,设置用于将测试仿真值标记为有故障的容差值为模型复杂检测机制提供了较小的灵活性。

图1示出了根据本公开的一个实施例的用于模拟故障注入的方法100。方法100包括创建用于注入模拟电路的故障模型列表(步骤102),将第一故障占位符添加到模拟电路(步骤104),运行故障仿真(步骤106),以及确定是否检测到故障(步骤108)。该方法还可以包括报告检测结果。

在一些实施方式中,方法100包括创建故障位置列表。创建故障模型列表(步骤102)可以包括创建故障模型列表以在故障位置列表中的每个位置处注入。在一些示例中,列表默认为在故障位置列表中的每个位置处注入每个故障模型。在其它示例中,缩小要在每个位置处注入的故障模型列表以减少仿真的数量。在各种示例中,故障选择过程基于功能安全性故障树分析(fta)和故障模式、效果和诊断分析(fmeda)结果中的一个或多个。在其它示例中,故障选择过程基于其它因素和/或分析。在一些实施方式中,自动生成潜在故障位置列表。在一些示例中,该列表包括所有潜在故障位置。

方法100可以包括为电路创建故障网表,包括故障占位符。电路网表包括电路中的电子组件和组件连接的节点。故障网表是电路网表的副本,其中包含潜在故障的占位符。潜在故障的占位符将添加到连接之间的位置。根据一些实施方式,占位符被添加在电路网表中的分层边界处。在一个示例中,占位符被添加到电路的子电路的输入/输出端口。在一些实施方式中,在内部节点上添加短故障。在一些示例中,所选节点短路到vdd或vss。在一些实施方式中,方法100还包括初始化故障数据库,以及创建要运行的故障仿真列表。

在一些实施方式中,对于故障注入应用,模拟故障注入系统在每个子电路端口处创建具有故障占位符的网表。在各种应用中,用户可以选择要注入用于仿真的故障。在一些实施方式中,用于将故障注入的特定子电路端口节点和要使用的故障模型列表是自动化的。在其它实施方式中,用户指定将故障注入的特定子电路端口节点中的一个或多个以及要使用的故障模型列表。对于故障仿真,用选定的故障模型替换故障占位符。

在一个实施方式中,故障库包括来自以下故障模型列表的一个或多个故障:

·卡在零-将节点连接到适当电压域的负电源

·卡在1-将节点连接到适当电压域的正电源

·开路-断开驱动节点

·短路-将节点连接到电路中的另一个节点

·瞬态故障-在短时间内连接到正或负电源电压

·漂移-将节点连接到随时间改变的电压

·振荡-将节点连接到振荡电压

·参数-按特定百分比改变组件参数值

该库还可以扩展为实现特定于设计的定制故障模型。特别是,可以将定制故障类型添加到库中。

运行故障仿真(步骤106)包括通过用来自故障模型列表中的故障模型替换故障占位符来运行每个所选故障的仿真。在步骤108,该方法包括确定是否检测到故障。因此,例如,当用第一故障模型替换第一故障占位符时,输出检测结果。在一些实施方式中,检测结果存储在结果数据库中。用每个输出检测结果更新结果数据库。

在一些实施方式中,方法100还包括创建故障认证报告。在一个示例中,在仿真设置期间,用来自故障库的模型替换占位符故障实例,并且将检测结果记录在结果数据库中。报告检测结果包括,一旦所有仿真完成,解析结果数据库并确定哪些故障未被检测到。使用检测结果和功能安全性安全失效分数(sff)创建报告以供用户分析。

提供了一种系统,用于自动化任何模拟块的模拟故障注入方法。在一个实施方式中,自动化系统使用仿真器和验证框架。在一个示例中,仿真器是spice(具有集成电路的仿真程序)仿真器。在一个示例中,验证框架是仿真启动器。在一些实施方式中,该系统用于在晶体管级网表中注入故障。晶体管级网表描述了所设计的电路。然而,由于晶体管级仿真可能很慢,因此可以开发电路的行为模型,以在更高的抽象级别对晶体管级电路的大多数(但不是全部)功能进行建模。在行为模型上运行仿真可以缩短仿真时间。因此,在一些实施方式中,该工具用于在行为模型网表中注入故障。

在一些示例中,该系统用于与verilog仿真器运行协同仿真,以在具有数字子块的设计内实现模拟块中的故障注入。verilog是硬件描述语言(hdl),并且verilog代码映射到硬件门。在其它示例中,该系统用于在具有模拟子块的数字设计中运行协同仿真。在一个示例中,模拟子块的目标是故障注入。在任一类型的协同仿真中,功能安全性检测机制可以存在于被测试块之外。因此,如本文所述的顶级仿真示出了故障注入的完整结果。

图2是示出根据本公开的一些实施例的具有and门的示例测试平台202的图示200,该and门包括nand门204和not门206。测试平台202具有第一输入208和第二输入210,它们都输入到nand门204。nand门204的输出被输入到not门206,而来自not门206的输出是来自测试平台202的输出212。第一电压214和第二电压216连接到第一输入208和第二输入210。在一个示例中,在测试平台202中,如果输出212不等于第一输入208and第二输入210(out!=in0&&in1),则标记错误。在另一示例中,在示例测试平台202中,如果输出212处的电压大于三(3)伏(v(out)>3v),则标记不安全错误。

图3是例示说明图2中所示的测试平台202的晶体管级电路组件的图示300。如图示300中所示,测试平台202包括第一输入208和第二输入210、nand门204、not门206和输出212。对于图3中所示的模拟电路的故障注入,故障注入占位符被添加到模拟电路的子电路端口。

图4是例示说明根据本公开的一些实施例的图3的模拟电路的图示400,其包括故障注入占位符402、404、406、408、410和412。特别地,故障注入占位符402、404、406、408、410和412被添加到模拟电路的子电路端口。第一故障注入占位符402位于第一输入408和nand门204之间。第二故障注入占位符404位于第二输入410和nand门204之间。第三故障注入占位符406位于nand门204和not门206之间。第四故障注入占位符408位于not门206和not门输出306之间。第五故障注入占位符410位于not门输出306和电路输出212之间。因此,在图4中示出的示例中,添加了五个子电路故障占位符。

在图4中所示的示例电路中,第四占位符408和第五占位符410之间没有区别,因为两个节点都具有1的扇入和扇出(在第四占位符408和第五占位符410之间存在点对点连接)。因此,第四故障注入占位符408和第五故障注入占位符410是冗余的。但是,自动系统如上所述自动添加占位符,这可能导致冗余占位符,如图4中所示。

在另一个示例中,在更复杂的电路中,诸如图4中的节点306之类的节点在附接到输出节点(例如图4中的输出节点212)之前与其它电路系统组合。在这个更复杂的电路示例中,第五占位符(例如第五占位符410)具有馈送到其的另一个逻辑锥体,其与第四占位符(例如第四占位符408)区分开。

在故障仿真期间,故障占位符402、404、406、408、410被替换为选定的故障模型。在一些实施方式中,定制开关指定要使用的故障模型。根据一些实施方式,模拟故障注入系统创建要运行的故障仿真列表。在一个示例中,故障仿真列表是回归文件。

图5是例示说明根据本公开的一些实施例的图4的模拟电路的图示500,其包括短故障占位符502、504和506。在用户指定的节点之间添加第一502、第二504和第三506短故障占位符。短故障占位符是开路的故障模型,如参考图6b更详细地描述的。第一短故障占位符502位于第一输入208和第二输入210之间。第二短故障占位符504位于输出212和输入208、210之间。第三短故障占位符位于nand门204的vdd和节点304之间。

图6a是例示说明故障占位符的图示600,并且图6b是例示说明根据本公开的一些实施例的短故障占位符的图示650。如图6a中所示,故障占位符是具有零伏(默认为导线)的电压源。因此,在一些实施方式中,当故障占位符被添加到电路用于故障注入应用时,将零伏电压源添加到电路。在其它实施方式中,当故障占位符被添加到电路用于故障注入应用时,将零欧姆电阻器添加到电路。在各种实施方式中,仿真器取决于电路结构确定每个占位符是否添加零伏电压源或零欧姆电阻器。如图6b中所示,短故障占位符是故障短路,其默认为开路。当将短故障占位符添加到电路中用于故障注入应用时,向电路添加开路连接。

图7是例示说明根据本公开的一些实施例的模拟电路故障注入的图示700。特别地,在图7中,第一故障占位符402被实际故障替换。在各种示例中,故障可以是开路、短路、负电源输入、正电源输入和瞬态故障。在故障注入仿真期间,可以将其它故障(包括在说明书中讨论的故障)注入到电路202中。在一个示例中,使用参数故障,其中参数故障是电路组件值的改变超过10%。在一些示例中,电路组件是电阻器、电容器和晶体管中的一种。

图8a-图8f是例示说明根据本公开的一些实施例的故障模型的图示。在图8a-图8f中,故障占位符802可以用图示的故障模型800、810、820、830、840、850替换。图8a-图8f各自示出了故障模型800、810、820、830、840、850,并且故障模型800、810、820、830、840、850中的每一个包括第一节点804和第二节点806。故障模型800、810、820、830、840、850是插入第一节点804和第二节点806之间的故障。

图8a示出了输入卡在低的第一故障模型800。在图8a中,第一节点804是输入,并且第二节点806是输出。在第一故障模型800中,第一节点804具有开路连接,并且到第二节点806的输入在零伏处被卡住。在第一故障模型800中,到第二节点806的连接是负电源电压源808。在各种实施方式中,负电源电压源808可以是零电压或具有负电压值的电压源。在一些实施方式中,电压源808是vss源。在一些示例中,第一故障模型800将输入建模为卡在零。

图8b示出了输入卡在高的第二故障模型810。在图8b中,第一节点804是输入,并且第二节点806是输出。在第二故障模型810中,第一节点804具有开路连接,并且到第二节点806的输入以正电压卡住。在第二故障模型810中,到第二节点806的连接是正电压源812。在一些示例中,第二故障模型810将输入建模为卡在1。在各种实施方式中,正电压源812可以是1伏电压源、1.8伏电压源、3.3伏电压源或具有不同正电压值的电压源。

图8c示出了将输出卡在零的第三故障模型820。在图8c中,第二节点806是输入,并且第一节点804是输出。在第三故障模型820中,第二节点806具有开路连接,并且到第一节点804的输入在零伏处被卡住。在第三故障模型820中,到第一节点804的输入处的连接是负电源电压源808。在各种实施方式中,负电源电压源808可以是零电压电压或具有负电压值的电压源。在一些实施方式中,电压源808是vss源。在一些示例中,第三故障模型820将输出建模为卡在零。

图8d示出了卡在1处的输出的第四故障模型830。在图8d中,第二节点806是输入,并且第一节点804是输出。在第四故障模型830中,到第一节点804的输入处的连接以正电压卡住,并且第二节点806具有开路连接。在第四故障模型830中,到第一节点804的输入处的连接是正电压源812。在各种实施方式中,正电压源812可以是1伏电压源,或者具有不同正电压值的电压源。

图8e示出了第五故障模型840,其示出了漂移故障。在图8e中,第一节点804是输入,并且第二节点806是输出。在第五故障模型840中,在第一804节点和第二806节点之间存在电压源842。在一个示例中,电压源842具有缓慢增加的漂移电压。在另一示例中,电压源842具有缓慢减小的漂移电压。将漂移电压加到原始信号电压,以仿真缓慢移离其理想值的信号。

图8f示出了第六故障模型850,其示出了振荡故障。在图8f中,第一节点804是输入,并且第二节点806是输出。在第六故障模型850中,在第一804节点和第二806节点之间存在周期性电压源852。周期性电压源852具有在vdd和vss之间振荡的电压。因此,输出节点806在卡在0和卡在1的状态之间交替。在各种实施方式中,电压源852可以是任何类型的电压源。在一个示例中,电压源852是正弦波电压源。在另一示例中,电压源852是三角波电压源。

另一种类型的故障模型是参数故障。代替将所示占位符替换为故障模型800、810、820、830、840、850,对于参数故障模型,选择现有电路组件参数,并指定参数值将被改变的量。在一个示例中,选择电阻器,并且增加电阻器值。在一个示例中,电阻器值增加10%。在另一示例中,选择晶体管,并且减小晶体管值。在一个示例中,晶体管值减半。在各种实施方式中,参数故障模型用于改变在组件的仿真器模型中限定的任何参数。

图9是例示说明根据本公开的一些实施例的具有输入故障模型908和输出故障模型910的模拟电路900的图示。根据一些实施方式,一次仅启用输入908和输出910故障模型中的一个。模拟电路900包括第一输入920和第二输入922、nand门904、not门906和输出920。第一输入920和第二输入922被输入到nand门904,并且来自nand门904的输出被输入到not门906。输出924从not门906输出。输入故障模型908位于第二输入922和nand门904之间的线上。在输入故障模型908中,第一节点912具有开路连接,并且到第二节点914的输入在零伏处被卡住。类似地,在输出故障模型910中,第三节点916具有开路连接,并且到第四节点918的输入在零伏处被卡住。如图9中所示,输入和输出故障模型是镜像的。“卡住”故障向下游传播。第一节点912和第四节点918都标记为端口“a”,并且端口a连接到子电路902边界端口。在一些实施方式中,用户指定端口的方向。

根据各种实施方式,自动故障注入系统自动在子电路边界处插入故障占位符。插入占位符时,系统会设置a和b节点的位置。在各种示例中,自动故障注入系统将电路端口视为输入、输出和输入/输出端口。在一些实施方式中,系统生成占位符,其中端口a连接到故障节点。

在一些示例中,参考图9,在每个节点处注入来自图8的四种类型的故障。在其它示例中,用户指定在每个节点处使用哪种类型的故障。例如,用户可以指定在节点922上注入输入类型故障并且在节点924上注入输出类型故障。

图10a、图10b和图10c分别是例示说明根据本公开的一些实施例的开路1000、短路1010和瞬态1020故障模型的图示。图10a示出了开路故障模型1000,其通过在第一端口1002和第二端口1004之间添加高电阻电阻器1008来仿真。在一个示例中,高电阻电阻器1008具有100兆欧的电阻。图10b示出了短故障模型1010。在一个示例中,短故障占位符是放置在端口a和端口b之间的零电压电压源,类似于图6a中所示的故障占位符。在另一示例中,通过在端口a和端口b之间添加小电阻电阻器1012来仿真短故障占位符。在一个示例中,小电阻电阻器1012具有1皮欧的电阻。图10c示出了瞬态故障模型1020,包括电压源1022以及第一1024和第二1026开关。第一开关1024连接第一端口1004和第二端口1006之间的导线。第二开关1026将电压源1022连接到第一端口1004和第二端口1006之间的导线。如图10c中所示,当第一开关1024闭合时,第二开关1026打开。当第一开关1024打开时,第二开关1026闭合。电压源1022可以是vdd源、vss源、卡在零模型、卡在1模型,或者它可以是生成高电压和低电压模式的电压源。在各种示例中,电压源1022创建周期性或用户限定的电压序列。电压源1022可以配置为生成任何选定类型的电压序列。

图11是例示说明根据本公开的一些实施例的定制故障模型1102的图示1100。特别地,具有第一1104和第二1106节点的用户限定的故障模型可以替换故障占位符。因此,可以创建复杂的故障类型以包含在自动模拟故障检测系统中。这里讨论的系统和方法可以与任何电路设计一起使用,并且定制故障模型可以从简单到复杂变化。因此,有许多可能的定制故障模型。

图12a-图12d示出了根据本公开的一些实施例的若干可能的定制故障模型。图12a示出了设计用于对降低的信号电压建模的第一定制故障模型1200的示例。在定制故障模型1200中,电阻分压器放置在第一节点1204和第二节点1206之间,以降低第一节点1204处的信号上的电压。可以调节电阻器上的电阻值以控制改变量。

图12b示出了第二定制故障模型1210的示例,其被设计为对第一节点1204和第二节点1206之间的长导线延迟建模。长导线延迟包括在第一节点1204和第二节点1206之间的电阻器以及地与第二节点1206之间的电容器。长导线延迟的影响是当第一节点1204处的信号改变时,在第二节点1206处的信号改变之前存在延迟。取决于电阻器的电阻和电容器的电容来调节延迟的长度。

图12c示出了第三定制故障模型1220的示例,其包括连接到第二节点1206的第一电压源1222和第二电压源1224。第一电压源1222是vdd信号,并且第二电压源1224是随机噪声信号。因此,在定制故障模型1220中将额外的随机噪声添加到vdd信号。在定制故障模型的一个变型中,将额外的随机噪声添加到卡住的低压源。在另一个变型中,噪声被添加到另一种故障类型。

图12d示出了第四定制故障模型1230的示例,其包括在第一节点1204和第二节点1206之间的噪声源。在信号到达第二节点1206之前,噪声源将噪声添加到来自第一节点1204的信号。在一个示例中,第四定制故障模型1230用于对第一节点1204和第二节点1206之间的导线上的干扰进行建模。在其它实施方式中,使用不同的电路来对干扰进行建模。

在另一个定制故障模型中,在第一1204节点和第二1206节点之间存在采样和保持电路。采样和保持电路周期性地对第一节点1204的电压进行采样并保持电压直到下一个采样点。

根据各种实施方式,故障检测包括功能安全性模式和测试平台认证模式。功能安全性模式可以用于检测故障并生成不安全状况消息。可以在功能安全性模式中添加用户特定消息。在测试平台认证模式中,来自故障检测系统的通过/失败结果确定是否检测到故障。

在一些实施方式中,对于故障报告,故障检测结果存储在智能数据库中,并且创建故障报告以供用户分析。故障报告包括已测试故障的列表以及每个故障的检测结果。在一些示例中,在功能安全性模式中计算安全故障分数。

在一些实施方式中,除了上述功能安全性应用之外,该方法还可以用于模拟块的设计验证(dv)认证。dv认证可以用于分析用于验证设计块的dv测试平台的有效性。在此应用中,注入的故障代表设计中的潜在错误,并且检测过程示出了dv测试平台是否可以找到错误。如果注入的故障不会导致测试平台故障,则验证策略存在缺陷。与故障注入类似,dv认证具有用于数字设计的现有行业解决方案,但不适用于模拟电路。

根据一些实施方式,用于模拟故障注入的方法包括在仿真中强制选定节点处的值而不是将故障模型放置在网表中。在一些实施方式中,注入的故障类型的模型库可以限于所选择的故障类型,并且在一些实施方式中,代替使用模型库,可以选择所选数量的故障类型用于仿真。在一个示例中,选择开路和短路故障类型用于仿真。

在一些实施方式中,故障插入仿真持续超过初始诊断间隔。例如,如果spi接口被故障禁用,则设备输出不会改变。这被记录为安全检测到的故障。但是,由于改变输出的后续命令失败,因此可以认为故障不安全。在一个示例中,故障被临时标记为安全,等待较长诊断间隔的后续仿真。在另一个示例中,记录安全性间隔的计数。

在某些应用中,每种情况都会分析多个故障。因此,在一些实施方式中,将多个故障注入到电路中。

根据各种实施方式,可以被故障注入的模拟电路的类型包括转换器、模数转换器(adc)、数模转换器(dac)、非易失性存储器、放大器、电压到电流输出级、上电复位、振荡器、低压降(ldo)调节器、比较器、带隙基准、温度传感器和故障保护开关。在其它实施方式中,其它类型的模拟电路是故障注入的。另外,诸如数字i/o焊盘和降压dc-dc转换器之类的数字电路可以在模拟仿真中插入故障,其中存在电压和电流。

图13描绘了例示说明可以在如本文所述的用于模拟故障注入的计算系统中使用的示例性数据处理系统1300的框图。

如图13中所示,数据处理系统1300可以包括通过系统总线1306耦合到存储器元件1304的至少一个处理器1302。这样,数据处理系统可以将程序代码存储在存储器元件1304内。此外,处理器1302可以通过系统总线1306执行从存储器元件1304访问的程序代码。在一个方面,数据处理系统可以实现为适合于存储和/或执行程序代码的计算机。然而,应当理解,数据处理系统1300可以以包括处理器和能够执行本说明书中描述的功能的存储器的任何系统的形式实现。

存储器元件1304可以包括一个或多个物理存储器设备,例如本地存储器1308和一个或多个大容量存储设备1310。本地存储器通常可以指随机存取存储器或通常在实际执行程序代码期间使用的(一个或多个)其它非持久性存储器设备。大容量存储设备可以实现为硬盘驱动器或其它持久性数据存储设备。处理系统1300还可以包括一个或多个高速缓冲存储器(未示出),其提供至少一些程序代码的临时存储,以便减少在执行期间必须从大容量存储设备1310取出程序代码的次数。

被描绘为输入设备1312和输出设备1314的输入/输出(i/o)设备可选地可以耦合到数据处理系统。输入设备的示例可以包括但不限于键盘、诸如鼠标的指示设备等。输出设备的示例可以包括但不限于监视器或显示器、扬声器等。输入和/或输出设备可以直接或通过中间i/o控制器耦合到数据处理系统。

在实施例中,输入和输出设备可以实现为组合的输入/输出设备(在图13中示出,其中虚线围绕输入设备1312和输出设备1314)。这种组合设备的示例是触敏显示器,有时也称为“触摸屏显示器”或简称为“触摸屏”。在这样的实施例中,可以通过物理对象(例如,触摸屏显示器上或附近的用户的触笔或手指)的移动来提供对设备的输入。

网络适配器1316也可以耦合到数据处理系统,以使其能够通过中间私有或公共网络耦合到其它系统、计算机系统、远程网络设备和/或远程存储设备。网络适配器1316可以包括:数据接收器,用于接收由所述系统、设备和/或网络发送到数据处理系统1300的数据;以及数据发送器,用于将数据从数据处理系统1300发送到所述系统、设备和/或网络。调制解调器、电缆调制解调器和以太网卡是可以与数据处理系统1300一起使用的不同类型的网络适配器的示例。

如图13中所示,存储器元件1304可以存储应用1318。在各种实施例中,应用1318可以存储在本地存储器1308、一个或多个大容量存储设备1310中,或者与本地存储器和大容量存储设备分开。应当理解,数据处理系统1300还可以执行可以促进应用1318的执行的操作系统(图13中未示出)。以可执行程序代码的形式实现的应用1318可以由数据处理系统1300执行,例如由处理器1302执行。响应于执行应用,数据处理系统1300可以被配置为执行本文描述的一个或多个操作或方法步骤。

在另一方面,数据处理系统1300可以表示客户端数据处理系统。在那种情况下,应用1318可以表示客户端应用,该客户端应用在被执行时配置数据处理系统1300以执行本文中参考“客户端”描述的各种功能。客户端的示例可以包括但不限于个人计算机、便携式计算机、移动电话等。

本领域技术人员将认识到,虽然元件1302-1318在图13中示出为分开的元件,但在其它实施例中,它们的功能可以在较少数量的单个元件中实现或分布在更多数量的组件上。

本发明的各种实施例可以实现为与计算机系统一起使用的程序产品,其中程序产品的(一个或多个)程序限定实施例的功能(包括本文描述的方法)。在一个实施例中,(一个或多个)程序可以包含在各种非暂态计算机可读存储介质上,其中,如本文所使用的,表述“非暂态计算机可读存储介质”包括所有计算机可读介质,唯一的例外是暂态的传播信号。在另一个实施例中,(一个或多个)程序可以包含在各种暂态计算机可读存储介质上。说明性计算机可读存储介质包括但不限于:(i)其上永久存储信息的不可写存储介质(例如,计算机内的只读存储器设备,例如cd-rom驱动器可读取的cd-rom盘、rom芯片或任何类型的固态非易失性半导体存储器);以及(ii)存储可变信息的可写存储介质(例如,闪存存储器、软盘驱动器内的软盘或硬盘驱动器或任何类型的固态随机存取半导体存储器)。计算机程序可以在这里描述的处理器1302上运行。

变型和实施方式

在上述实施例的讨论中,电容器、时钟、dff、分频器、电感器、电阻器、放大器、积分器、开关、数字核心、晶体管和/或其它组件可以容易地被替换、替代或以其它方式修改,以便适应特定的电路系统需求。此外,应该注意,互补电子设备、硬件、软件等的使用为实现本公开的教导提供了同样可行的选择。

在一个示例实施例中,附图的电路可以被实现为独立模块(例如,具有相关组件和被配置为执行特定应用或功能的电路系统的设备)或者被实现为插件模块到电子设备的特定应用的硬件中。

还必须注意,本文概述的所有规范、维度和关系(例如,处理器的数量、逻辑操作等)仅出于示例和教导的目的而提供。在不脱离本公开的精神或所附权利要求的范围的情况下,可以显着地改变这样的信息。该说明书仅适用于一个非限制性示例,因此,它们应被解释为如此。在前面的描述中,已经参考特定处理器和/或组件布置描述了示例实施例。在不脱离所附权利要求的范围的情况下,可以对这些实施例进行各种修改和改变。因此,说明书和附图应被视为说明性的而非限制性的。

在某些情况下,这里讨论的特征可以应用于为医疗系统、科学仪器、无线和有线通信、雷达、工业过程控制、音频和视频装备、电流感测、仪器(可以是高度精确的)以及其它基于数字处理的系统而设计的电路。

此外,上面讨论的某些实施例可以在用于医学成像、患者监测、医疗仪器和家庭医疗保健的数字信号处理技术中提供。这可以包括肺部监视器、加速度计、心率监视器、起搏器等。其它应用可以涉及用于安全性系统的汽车技术(例如,稳定性控制系统、驾驶员辅助系统、制动系统、信息娱乐和任何类型的内部应用)。此外,动力总成系统(例如,混合动力和电动车辆)可以在电池监测、控制系统、报告控制、维护活动等中使用高精度数据转换产品。

在其它示例性场景中,本公开的教导可以适用于包括有助于驱动生产率、能量效率和可靠性的过程控制系统的工业市场。在消费者应用中,上面讨论的信号处理电路的教导可以用于图像处理、自动聚焦和图像稳定(例如,用于数字静态照相机、便携式摄像机等)。其它消费者应用可以包括用于家庭影院系统、dvd录像机和高清电视的音频和视频处理器。其它消费者应用可涉及高级触摸屏控制器(例如,用于任何类型的便携式媒体设备)。因此,这些技术可以很容易地成为智能手机、平板电脑、安全系统、pc、游戏技术、虚拟现实、仿真训练等的一部分。

注意,利用本文提供的众多示例,可以根据两个、三个、四个或更多个电子组件来描述交互。然而,这仅出于清楚和示例的目的而进行。应该理解,系统可以以任何合适的方式合并。沿着类似的设计替代方案,附图中的所示组件、模块和元件中的任何一个可以以各种可能的配置组合,所有这些配置都明显在本说明书的宽范围内。在某些情况下,仅通过参考有限数量的电气元件来描述给定流程集的一个或多个功能可能更容易。应当理解,附图及其教导的电路易于扩展,并且可以容纳大量组件,以及更复杂/精密的布置和配置。因此,所提供的示例不应限制范围或抑制可能应用于无数其它架构的电路的广泛教导。

注意,在本说明书中,对“一个实施例”、“示例实施例”、“实施例”、“另一个实施例”、“一些实施例”、“各种实施例”、“其它实施例”、“替代实施例”等中包括的各种特征(例如,元件、结构、模块、组件、步骤、操作、特性等)的引用旨在表示任何这样的特征包括在本公开的一个或多个实施例中,但是可以或可以不是必须在相同的实施例中组合。

同样重要的是要注意,在适当的情况下可以删除或去除一些操作,或者可以在不脱离本公开的范围的情况下显着地修改或改变这些操作。此外,这些操作的时序可能会大大改变。出于示例和讨论的目的提供了前述操作流程。本文描述的实施例提供了实质的灵活性,因为可以提供任何合适的布置、时间顺序、配置和时序机制而不脱离本公开的教导。

其它说明、示例和实施方式

注意,上述装置的所有可选特征也可以关于本文描述的方法或过程来实现,并且示例中的细节可以在一个或多个实施例中的任何地方使用。

在第一示例中,提供了一种系统(其可以包括任何合适的电路系统,分频器、电容器、电阻器、电感器、adc、dff、逻辑门、软件、硬件、链路等),其可以是任何类型的计算机的一部分,其可以进一步包括耦合到多个电子组件的电路板。该系统可以包括用于使用第一时钟将数据从数字核心计时到宏的第一数据输出的装置,第一时钟是宏时钟;用于使用第二时钟将数据从宏的第一数据输出计时到物理接口的装置,第二时钟是物理接口时钟;用于使用宏时钟将来自数字核的第一复位信号计时到宏的复位输出的装置,第一复位信号输出用作第二复位信号;用于使用第三时钟对第二复位信号进行采样的装置,其提供大于第二时钟速率的时钟速率,以生成采样的复位信号;以及用于响应于采样的复位信号的转变,将第二时钟复位为物理接口中的预定状态的装置。

在这些实例(上文)中的“用于...的装置”可以包括(但不限于)使用本文所讨论的任何合适的组件,以及任何合适的软件、电路系统、集线器、计算机代码、逻辑、算法、硬件、控制器、接口、链路、总线、通信路径等。在第二示例中,该系统包括存储器,该存储器还包括机器可读指令,该机器可读指令在被执行时使系统执行上述任何活动。

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