主权项 |
一种数字电路故障的快速检测方法,其特征在于定义待测电路对应的逻辑函数为f;电路输入变量数定义为m,输出变量数定义为n;定义p<sub>i</sub>,p<sub>j</sub>为属于f的任意一对乘积项;规定乘积项中的任一变量,用“0”表示该变量以反变量形式出现,“1”表示该变量以原量形式出现,“‑”表示该变量不出现;定义[p<sub>i</sub>]<sub>k</sub>为乘积项p<sub>i</sub>第k位的取值;定义H为f的布尔差分运算标志;H包含m位;定义[H]<sub>k</sub>为H的第k位的取值,0≤k≤(m‑1);规定[H]<sub>k</sub>的取值只能为“1”或者“0”;[H]<sub>k</sub>为“1”表示乘积项p<sub>i</sub>第k位的变量需要布尔差分运算,[H]<sub>k</sub>为“0”表示乘积项p<sub>i</sub>第k位的变量不需要进行布尔差分运算;用Χ<sub>k</sub>(p<sub>i</sub>,H)表示乘积项p<sub>i</sub>与H之间的第k位“位异或”运算,并规定当[H]<sub>k</sub>=1时,<img file="FDA0001172912670000011.GIF" wi="368" he="69" />其他情况下,Χ<sub>k</sub>(p<sub>i</sub>,H)=[p<sub>i</sub>]<sub>k</sub>;定义<img file="FDA0001172912670000012.GIF" wi="150" he="71" />表示p<sub>i</sub>,p<sub>j</sub>之间的不相交锐积运算,<img file="FDA0001172912670000013.GIF" wi="486" he="69" />其中“∩”表示p<sub>i</sub>与p<sub>j</sub>的逻辑“与”运算;本发明的具体步骤为:步骤①.定义三个空的集合C<sub>1</sub>,C<sub>2</sub>和C<sub>3</sub>,并根据逻辑函数f对变量的布尔差分关系得到布尔差分标志H;步骤②.判断f的逻辑表达式是否为多个乘积项之“或”形式,如果不是,将f展开为乘积项之“或”形式;将构成f的所有乘积项分别同时存储于集合C<sub>1</sub>,集合C<sub>2</sub>和集合C<sub>3</sub>中;步骤③.在集合C<sub>2</sub>中任取一个乘积项p′<sub>i</sub>,将p′<sub>i</sub>与H之间逐位进行“位异或”运算,即将p′<sub>i</sub>的第k位值[p′<sub>i</sub>]<sub>k</sub>用Χ<sub>k</sub>(p′<sub>i</sub>,H)进行替换,0≤k≤(m‑1);步骤④.判断集合C<sub>2</sub>中是否所有的乘积项都与布尔差分标志H完成“位异或”运算,如果是,执行步骤⑤,否则执行步骤③;步骤⑤.在集合C<sub>1</sub>中任取一个乘积项,记为p<sub>i</sub>″,在集合C<sub>2</sub>中任取一个乘积项,记为p″<sub>j</sub>,进行<img file="FDA0001172912670000014.GIF" wi="208" he="73" />运算,运算结果存储于集合C<sub>1</sub>中,并在集合C<sub>1</sub>中删除p″<sub>i</sub>;步骤⑥.判断集合C<sub>1</sub>中的任何乘积项是否与C<sub>2</sub>中的任何乘积项都不相交,如果是,执行步骤⑦,否则执行步骤⑤;步骤⑦.在集合C<sub>2</sub>中任取一个乘积项,记为p″<sub>v</sub>,在集合C<sub>3</sub>中任取一个乘积项,记为p″<sub>w</sub>,并进行<img file="FDA0001172912670000021.GIF" wi="186" he="67" />运算,运算结果存储于集合C<sub>2</sub>中,并在集合C<sub>2</sub>中删除p″<sub>v</sub>;步骤⑧.判断集合C<sub>2</sub>中的任何乘积项是否与集合C<sub>3</sub>中的任何乘积项都不相交,如果是,执行步骤⑨,否则执行步骤⑦;步骤⑨:将集合C<sub>1</sub>和集合C<sub>2</sub>的乘积项进行逻辑“或”运算,就得到逻辑电路的布尔差分结果;步骤⑩:根据步骤⑨中得到的布尔差分结果,结合基于布尔差分的电路测试理论,得到相应的测试矢量,实现待测电路故障的检测。 |