本发明涉及一种数字组合逻辑电路短接故障的检测方法,尤其是涉及一种数字组合逻辑电路输出发生线“与”短接故障的检测方法。
背景技术:
随着集成电路集成度的不断增加,集成电路内部的连接变得越来越复杂,使得集成电路生产过程中的连接错误变得不可避免,从而导致集成电路逻辑功能错误。因而电路故障测试已成为集成电路设计与生成过程中一个非常重要的内容。由于现有的集成电路的结构非常复杂,因此人工手动完成一个电路故障测试已经变得越来越不可能,而更多的是借助计算机来完成电路故障测试工作,并已经成为电子设计自动化(eda,electronicsdesignautomation)中的一个重要内容。在电路故障测试中,可以借助计算机生成相应的测试输入,这些测试输入作用在待测集成电路的输入端,然后通过比对实际输出与预想中的设计结果的差别来判断集成电路是否存在逻辑功能错误。
以两个数字组合逻辑电路输出发生短接,且短接结果为线“与”的短接故障检测为例。图1给出了两个数字组合逻辑电路输出发生线“与”短接的示意图,图1中的两个方块表示两个数字组合逻辑电路,这两个数字组合逻辑电路的逻辑功能分别用f(x)和g(x)表示,f(x)的输出用f表示,g(x)的输出用g表示,这两个数字组合逻辑电路的n(n≥1)个输入变量集合用x表示,图1中的虚框表示因封装等原因使得虚框内电路不可见。从图1中可以看出,显然,当f和g没有发生短接时,f和f'的输出应该是一致的,但是考虑到电路在制造过程中,因为某种原因可能会使f被g短接,短接点为a,并且f与g短接后形成线“与”关系,即f变成了f'=f·g。为了判别是否存在这类的短接,导致电路逻辑功能错误,需要选择一些适当的测试输入组合t,当输入的n个输入变量集合为xt时,xt属于t,那么满足f(xt)的原来的输出f为1而g(xt)的输出g为0,这样只要存在电路f(x)和g(x)的输出为线“与”型短接时,就可以通过观察f'的值与预想中的f值是否一致,进而判断电路是否存在故障。
假设f(x)的电路如图2a所示,f(x)对应的逻辑表达式为
对于小电路,符合
虽然
技术实现要素:
本发明所要解决的技术问题是提供一种数字组合逻辑电路输出发生线“与”短接故障的检测方法,其通过利用数字组合逻辑电路对应的逻辑函数之间的不相交锐积操作,实现逻辑函数的逻辑“反”操作和逻辑函数之间的逻辑“与”操作,获得用于故障检测的测试输入组合,进而能够有效判断相应的短接故障,且适合两个大的数字组合逻辑电路输出发生线“与”短接故障的检测。
本发明解决上述技术问题所采用的技术方案为:一种数字组合逻辑电路输出发生线“与”短接故障的检测方法,其特征在于包括以下步骤:
①将待检测的两个数字组合逻辑电路分别记为f(x)和g(x);并设定f(x)展开有p个乘积项,f(x)表示为其p个乘积项的逻辑“或”形式,g(x)展开有q个乘积项,g(x)表示为其q个乘积项的逻辑“或”形式;其中,x表示f(x)和g(x)的输入变量集合,x中至少包含有1个输入变量,p≥1,q≥1;
②将f(x)的p个乘积项构成的集合记为cf(x),将g(x)的q个乘积项构成的集合记为cg(x);
③令u表示全集;然后对u与cg(x)进行两个布尔逻辑函数乘积项集合之间的不相交锐积运算,再将运算结果保存于集合
④对
⑤对
⑥将步骤⑤得到的测试输入组合加到f(x)和g(x)的输入端,若f(x)的输出值与预期值不一致,则判定f(x)和g(x)输出发生线“与”短接故障。
与现有技术相比,本发明的优点在于:本发明方法利用数字组合逻辑电路对应的逻辑函数之间的不相交锐积操作,实现逻辑函数的逻辑“反”操作和逻辑函数之间的逻辑“与”操作,本发明方法在生成测试输入组合时,不涉及待处理电路的卡诺图展开或最小项展开,因此本发明方法的处理速度与待处理电路的输入变量的数量没有直接关系,更适合两个大的数字组合逻辑电路输出发生线“与”短接故障的检测;另外,电路故障检测是现代电子设计自动化(eda)技术中一个重要内容,本发明方法适合在计算机上编程实现,使得本发明方法很容易与其他电子设计自动化技术实现整合。
附图说明
图1为两个数字组合逻辑电路输出发生线“与”短接的示意图;
图2a为两个数字组合逻辑电路中的其中一个数字组合逻辑电路f(x)的示例示意图;
图2b为两个数字组合逻辑电路中的另一个数字组合逻辑电路g(x)的示例示意图;
图2c为图2a所示的电路的输出f与图2b所示的电路的输出g发生线“与”短接的示意图;
图3a为图2b所示的电路的卡诺图;
图3b为图2b所示的电路的互补卡诺图;
图3c为图2a所示的电路的卡诺图;
图3d为图3b所示的卡诺图和图3c所示的卡诺图进行逻辑“与”的结果示意图;
图4为本发明方法的总体实现框图。
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
本发明提出的一种数字组合逻辑电路输出发生线“与”短接故障的检测方法,其总体实现框图如图4所示,其包括以下步骤:
①将待检测的两个数字组合逻辑电路分别记为f(x)和g(x);并设定f(x)展开有p个乘积项,f(x)表示为其p个乘积项的逻辑“或”形式,g(x)展开有q个乘积项,g(x)表示为其q个乘积项的逻辑“或”形式;其中,x表示f(x)和g(x)的输入变量集合,x中至少包含有1个输入变量,p≥1,q≥1。
②将f(x)的p个乘积项构成的集合记为cf(x),将cf(x)中的第i个乘积项记为
③令u表示全集;然后对u与cg(x)进行两个布尔逻辑函数乘积项集合之间的不相交锐积运算,再将运算结果保存于集合
④对
⑤对
⑥将步骤⑤得到的测试输入组合加到f(x)和g(x)的输入端,若f(x)的输出值与预期值不一致,则判定f(x)和g(x)输出发生线“与”短接故障。
以下为对本发明方法进行试验,以验证本发明方法的可行性与有效性。
假设x={x1,x2,x3,x4},x1,x2,x3,x4为x中的四个输入变量,并假设
表1给出了利用本发明方法用于两个数字组合逻辑电路输出发生线“与”短接故障的测试输入组合的生成。表1中的电路f(x)取自mcnc标准测试电路;电路g(x)为截取电路f(x)的展开表达式的前20项,然后随意修改部分乘积项得到;t/ms表示利用本发明方法生成ct的时间,单位为毫秒,“<1”表示生成ct的时间小于1毫秒。从表1中可以看出,本发明方法可以完成输入变量数为66的电路处理,而且处理速度均比较快。
表1本发明用于实验测试的结果