[发明专利]一种基于SAT的电路错误诊断方法有效
申请号: | 202110202215.1 | 申请日: | 2021-02-24 |
公开(公告)号: | CN112836456B | 公开(公告)日: | 2022-11-15 |
发明(设计)人: | 苏明;王灿灿;王刚;张青坡 | 申请(专利权)人: | 南开大学 |
主分类号: | G06F30/3315 | 分类号: | G06F30/3315 |
代理公司: | 天津创智睿诚知识产权代理有限公司 12251 | 代理人: | 王海滨;田阳 |
地址: | 300350*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 sat 电路 错误 诊断 方法 | ||
1.一种基于SAT的电路错误诊断方法,其特征在于,包括以下步骤:
步骤1,判断电路是否存在错误;
步骤1.1:将待诊断电路的网表结构、给定的观测集共同转化成CNF表达式;
步骤1.2:计算是否存在使得上述CNF表达式为真的解,将判断电路是否存在错误问题转化为SAT求解问题;若上述CNF表达式无解,则电路存在错误;
步骤2:定位电路错误;
将电路的网表结构划分成多个错误备选模块,对每个错误备选模块,在该模块的输出信号后插入一个异或门组成的选择电路,记插入的选择电路的选择信号为s,将原电路网表转化成了诊断架构;然后提取该诊断架构的CNF表达式,该表达式是将诊断架构中的每个门电路的CNF式子相与得到的;对CNF表达式进行SAT求解,根据所得解的形式判断该错误备选模块中是否有错误;
利用基来简化SAT求解,具体步骤包括:将CNF表达式按照与运算拆分成多个较为简短的布尔表达式;将拆分后的各个布尔表达式转化成GF(2)上的多变元多项式,分别记为f1,…,fm,计算CNF表达式的可满足性解等价于计算下述多元多项式方程组(1)的解,方程组(1)表达式为:
计算理想I=f1+1,…,fm+1的基G={g1,…,gM};方程组(1)等价于下述方程组(2),方程组(2)表达式为:
接下来计算多元多项式方程组(2)的解,所得解即为CNF表达式的可满足性解;
利用Buchberger算法计算理想I=f1+1,…,fm+1的基G={g1,…,gM};Buchberger算法如下:
输入:F={f1,f2,…fm},项序;
输出:G={g1,…,gM},G是理想f1,f2,…fm的基;
初始化:G=F,DF={{fi,fj}|fi≠fj,fi,fj∈G};
当作:
选择{f,g}∈DF,DF:=DF\{{f,g}},
r相对于G是既约的,
如果r≠0,则:
G:=G∪{r},
其中步骤就是计算多项式S(f,g)除以G中多项式的余多项式,多元多项式的除法算法如下:
输入:f,F={f1,f2,…fm},项序;
输出:r,u1,…,um,使得:
r相对F是既约的;
初始化:u1:=0,u2:=0,…,m∶=0,r:=0,h:=f;
当h≠0,作:
如果使得lp(fi)|lp(h),则选择具此性质的最小i,令:
否则:
r:=r+lt(h),
h:=h-lt(h),
为了提高计算效率,针对GF(2)上的多元多项式每次除法运算,将其转换成一次乘法运算:记要计算的多元多项式除法为f’/g’;选定项序为字典序;记f’除以g’的商多项式为q,余多项式为r,即f’=qg’+r;记g’中首项为lt(g’),记集合S为f’中能被lt(g’)整除的子项的集合,则有:
r=f′-qg′,
进而,多元多项式的除法运算f’/g’转换成一次乘法qg’运算;
针对转化后的GF(2)上多元多项式乘法qg’运算,采用karatsuba算法进行快速乘法运算。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南开大学,未经南开大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110202215.1/1.html,转载请声明来源钻瓜专利网。