当前位置: 首页 > 专利查询>宁波大学专利>正文

一种组合逻辑电路等效性检测方法技术

技术编号:17467688 阅读:42 留言:0更新日期:2018-03-15 05:09
本发明专利技术公开了一种组合逻辑电路等效性检测方法,通过扩展余子式概念,将逻辑覆盖等效性检测问题分成分解成电路包含检测子问题,逐一求取其中一个电路表达式对另一个电路表达式各乘积项的余子式,然后在建立各乘积项余子式的香农结构图基础上判断其是否重言式,最后根据重言式判别结果确定两电路间是否覆盖等效关系;优点是通过求取乘积项余子式对逻辑函数进行分解和降阶处理,从而加快了覆盖等效性验证速度,可操作性和检测效率均较高,且不会出现内存爆炸问题,实验结构表明,本发明专利技术的方法稳定有效的,对EXPRESSO软件集成的三种算法所得电路的测试结果表明,与基于真值表和BDD的两种检测算法相比,具有明显的速度优势。

【技术实现步骤摘要】
一种组合逻辑电路等效性检测方法
本专利技术涉及一种检测方法,尤其是涉及一种组合逻辑电路等效性检测方法。
技术介绍
逻辑等效性检测以逻辑层表达式不同的2个组合电路等效性检验为目的,根据给定的2个组合电路的逻辑表达式,检测它们是否实现相同的逻辑功能。目前组合逻辑电路等效性检测方法主要有代数法、真值表判定法和功能性方法。代数法是检验组合逻辑电路等效性的一种直观方法,该方法采用逻辑代数的基本公式处理2个组合电路的逻辑表达式,若能得到相同的结果,则2个组合电路的逻辑表达式是逻辑等效的。但是,由于逻辑代数的基本公式数量较多,该方法中,基本公式选择、所选若干个基本公式的应用顺序以及所选的每个基本公式处理对象的选择等环节都存在多种可选方案,具体方案的选择与电路结构有直接关系,尚没有统一可行的指导路线可用。因此,采用代数法对组合逻辑电路等效性进行检测具有很大的盲目性,该方法可操作性差,且计算量和计算时间也随电路规模急剧增长,检测效率很低,在实际中很少单独采用。真值表判定法通过利用真值表来判定2个组合电路的逻辑表达式是否存在逻辑等效关系。该方法中,将2个组合电路的输入变量取值的所有可能组合逐一代入2个组合电路的逻辑表达式,然后根据结果是否都相同即可得出结论。虽然该方法相对于代数法,可操作性较高,但是很明显,当电路规模增大时,组合电路的输入变量取值也将急剧增加,该方法的时间开销将急剧增加,检测效率仍然较低。功能性方法是目前常用的组合逻辑电路等效性检测方法,该方法将2个组合电路表示成一种规范形式,如二进制决策图(BDD),若2个组合电路的规范形式同构则它们等效。该方法也不存在可操作性的问题,虽然相对于真值表判定法检测效率有所提高,但是仍不能满足目前超大规模电路的需求,而且该方法在某些输入变量顺序下会面临内存爆炸的问题。
技术实现思路
本专利技术所要解决的技术问题是提供一种可操作性和检测效率均较高,且不会出现内存爆炸问题的组合逻辑电路等效性检测方法。本专利技术解决上述技术问题所采用的技术方案为:一种组合逻辑电路等效性检测方法,包括以下步骤:(1)将待检测的两个组合电路记为a和b,其中,a的逻辑表达式为:b的逻辑表达式为:其中,n为组合电路a和b的变量数,∑为求和运算符号,p为组合电路a的乘积项的数量,q为组合电路b的乘积项的数量,ai为组合电路a的第i个乘积项,ai=xi'1xi'2…xi'k…xi'n,k为大于等于1且小于等于n的整数,xi'k为乘积项ai第k位的文字变量,表示对应输入变量xk在乘积项ai第k位的出现形式,xi'k∈{0,1,-},当xi'k=0时,xk以其反变量的形式出现在乘积项ai第k位,当xi'k=1时,xk以其原变量xk的形式出现在乘积项ai第k位,当xi'k=-时,表示xk的值恒为1,xk不出现在乘积项ai第k位中;bj为组合电路b的第j个乘积项,bj=y'j1y'j2…y'jh…y'jn,h为大于等于1且小于等于n的整数,y'jh为乘积项bj第h位的文字变量,表示对应输入变量yh在乘积项bj第h位的出现形式,y'jh∈{0,1,-},当y'jh=0时,yh以其反变量yh的形式出现在乘积项bj第h位,当y'jh=1时,yh以其原变量yh的形式出现在乘积项bj第h位,当y'jh=-时,表示yh的值恒为1,yh不出现在乘积项bj第h位;(2)判断组合电路a是否包含组合电路b,具体过程为:A.设定变量f,初始化变量f,令变量f=1;B.设定变量u,初始化变量u,令u=1;设定变量t,初始化变量t,令变量t=1;C.将组合电路a对组合电路b的第f个乘积项bf的余子函数表示为af(x1,x2,…,xn),将组合电路a的第t个乘积项at对组合电路b的第f个乘积项bf的余子式记为D.令xt”k为第k位的文字变量,表示对应输入变量xk在第k位的出现形式,xt”k∈{0,1,-,NULL},当xt”k=0时,xk以其反变量的形式出现在第k位,当xt”k=1时,xk以原变量其xk的形式出现在第k位,当xt”k=-时,表示xk的值恒为1,xk不出现在第k位,当xt”k=NULL时,表示xk的值恒为0;按照以下规则依次对的第u位文字变量xt”u进行赋值:若xt'u=y'fu,则令xt”u=-;若xt'u≠y'fu,且xt'u=-,y'fu=0,则令xt”u=-;若xt'u≠y'fu,且xt'u=-,y'fu=1,则令xt”u=-;若xt'u≠y'fu,且xt'u=0,y'fu=1,则令xt”u=NULL;若xt'u≠y'fu,且xt'u=1,y'fu=0,则令xt”u=NULL;若xt'u≠y'fu,且xt'u=0,y'fu=-,则令xt”u=0;若xt'u≠y'fu,且xt'u=1,y'fu=-,则令xt”u=1;E.判断xt”u的值是否为NULL,如果xt”u的值为NULL,则直接令得到组合电路a的第t个乘积项at对组合电路b的第f个乘积项bf的余子式的表达式,然后进入步骤F;否则,判断u的当前值是否等于n,如果u的当前值等于n,则表明的第1位~第n位文字变量全部赋值完成,将第1位~第n位文字变量全部赋值完成的的表达式作为组合电路a的第t个乘积项at对组合电路b的第f个乘积项bf的余子式的表达式,然后进入步骤F,如果u的当前值不等于n,则采用u的当前值加1后的值去更新u,然后重复步骤D和步骤E;F.判断的第1位文字变量~第n位文字变量的值是否都为-,如果是,表明的值恒为1,则直接令af(x1,x2,…,xk,…,xn)=1,得到组合电路a对组合电路b的第f个乘积项bf的余子函数af(x1,x2,…,xn)的表达式,然后进入步骤G,如果否,则判断t的当前值是否等于p,如果等于,则令得到组合电路a对组合电路b的第f个乘积项bf的余子函数af(x1,x2,…,xn)的表达式,然后进入步骤G,如果不等于p,则采用t的当前值加1后的值去更新t,,并重复步骤D~步骤F;G.判定组合电路a对组合电路b的第f个乘积项bf的余子函数af(x1,x2,…,xn)的表达式是否为重言式,具体过程为:G-1.首先判断余子函数af(x1,x2,…,xn)的表达式的值是否为0,如果余子函数af(x1,x2,…,xn)的表达式的值为0,则余子函数af(x1,x2,…,xn)的表达式不是重言式,组合电路a不包含组合电路b,组合电路a和组合电路b不是逻辑等效关系,检测完成;如果余子函数af(x1,x2,…,xn)的表达式的值不为0,则进入步骤G-2,对余子函数af(x1,x2,…,xn)的表达式的值是否为1进行判断;G-2.如果余子函数af(x1,x2,…,xn)的表达式的值是1,则余子函数af(x1,x2,…,xn)的表达式是重言式,进入步骤G-6,如果余子函数af(x1,x2,…,xn)的表达式的值不是1,则进入步骤G-3;G-3.从余子式中随机选取一个未被选取过的不等于0的余子式,将其记为v为整数且1≤v≤p,从的表达式中随机选取一个不等于-的文字变量,将其记为x'v's,s为大于等于1且小于等于n的整数,将x'v's对应的变量xs作为拆分变量,根据香农展开定理计算余子函数af(x1,x2,…,xn)的表达式对xs的原变量xs的余子式,将得到的余子式本文档来自技高网
...

【技术保护点】
一种组合逻辑电路等效性检测方法,其特征在于包括以下步骤:(1)将待检测的两个组合电路记为a和b,其中,组合电路a的逻辑表达式为:

【技术特征摘要】
1.一种组合逻辑电路等效性检测方法,其特征在于包括以下步骤:(1)将待检测的两个组合电路记为a和b,其中,组合电路a的逻辑表达式为:b的逻辑表达式为:其中,n为组合电路a和组合电路b的变量数,∑为求和运算符号,p为组合电路a的乘积项的数量,q为组合电路b的乘积项的数量,ai为组合电路a的第i个乘积项,ai=x′i1x′i2…x′ik…x′in,k为大于等于1且小于等于n的整数,x′ik为乘积项ai第k位的文字变量,表示对应输入变量xk在乘积项ai第k位的出现形式,x′ik∈{0,1,-},当x′ik=0时,xk以其反变量的形式出现在乘积项ai第k位,当x′ik=1时,xk以其原变量xk的形式出现在乘积项ai第k位,当x′ik=-时,表示xk的值恒为1,xk不出现在乘积项ai第k位中;bj为组合电路b的第j个乘积项,bj=y'j1y'j2…y'jh…y'jn,h为大于等于1且小于等于n的整数,y'jh为乘积项bj第h位的文字变量,表示对应输入变量yh在乘积项bj第h位的出现形式,y'jh∈{0,1,-},当y'jh=0时,yh以其反变量的形式出现在乘积项bj第h位,当y'jh=1时,yh以其原变量yh的形式出现在乘积项bj第h位,当y'jh=-时,表示yh的值恒为1,yh不出现在乘积项bj第h位;(2)判断组合电路a是否包含组合电路b,具体过程为:A.设定变量f,初始化变量f,令变量f=1;B.设定变量u,初始化变量u,令u=1;设定变量t,初始化变量t,令变量t=1;C.将组合电路a对组合电路b的第f个乘积项bf的余子函数表示为af(x1,x2,…,xn),将组合电路a的第t个乘积项at对组合电路b的第f个乘积项bf的余子式记为D.令x″tk为第k位的文字变量,表示对应输入变量xk在第k位的出现形式,x″tk∈{0,1,-,NULL},当x″tk=0时,xk以其反变量的形式出现在第k位,当x″tk=1时,xk以原变量其xk的形式出现在第k位,当x″tk=-时,表示xk的值恒为1,xk不出现在第k位,当x″tk=NULL时,表示xk的值恒为0;按照以下规则依次对的第u位文字变量x″tu进行赋值:若xt'u=y'fu,则令x″tu=-;若x′tu≠y'fu,且x′tu=-,y'fu=0,则令x″tu=-;若x′tu≠y'fu,且x′tu=-,y'fu=1,则令x″tu=-;若x′tu≠y'fu,且x′tu=0,y'fu=1,则令x″tu=NULL;若x′tu≠y'fu,且x′tu=1,y'fu=0,则令x″tu=NULL;若x′tu≠y'fu,且x′tu=0,y'fu=-,则令x″tu=0;若x′tu≠y'fu,且x′tu=1,y'fu=-,则令x″tu=1;E.判断x″tu的值是否为NULL,如果x″tu的值为NULL,则直接令得到组合电路a的第t个乘积项at对组合电路b的第f个乘积项bf的余子式的表达式,然后进入步骤F;否则,判断u的当前值是否等于n,如果u的当前值等于n,则表明的第1位~第n位文字变量全部赋值完成,将第1位~第n位文字变量全部赋...

【专利技术属性】
技术研发人员:张会红汪鹏君张跃军陈治文
申请(专利权)人:宁波大学
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1