本发明涉及涉及一种蕴含逻辑表示方法,具体是一种数字电路逻辑函数的最佳蕴含逻辑表示方法。
背景技术:
1971年,蔡少棠教授在电路理论及对称性原理的基础上推测一种新型的基本电路元件,并将其称为“忆阻器”,即有记忆性的电阻。随后,hp(惠普公司)实验室在开发替代晶体管开关的分子级产品时开发出纳米忆阻器,并利用双忆阻器的开关特性实现了实质蕴含(materialimplication,imp,逻辑表达式
先前研究者们通过利用学术逻辑综合工具abc得到电路的蕴含逻辑表示,首先读入一个电路并存储为以“and,inv”为基本运算集的逻辑图形结构(and-invertergraphs,aig),再通过映射得到仅以“imp”为基本运算集的逻辑图形结构。然而这种方法得到的结果并不是最佳,因为在aig中的反相器一对一映射时需要一个实质蕴含逻辑操作来实现,这种情况会造成冗余。
技术实现要素:
本发明所要解决的技术问题是,针对现有技术的不足,利用基于布尔可满足性(satisfiability,sat)的精确综合算法来求解数字电路逻辑函数的最佳蕴含逻辑表达式,得到一种数字电路逻辑函数的最佳蕴含逻辑表示方法,本发明方法能够有效降低以实质蕴含为基本运算集的逻辑图形结构中结点的数目,当被运用于忆阻器电路中时,可减少忆阻器的数目,降低忆阻器电路的设计成本,同时丰富逻辑综合中实质蕴含逻辑的研究方法。
本发明解决上述技术问题所采用的技术方案为:一种数字电路逻辑函数的最佳蕴含逻辑表示方法,包括以下步骤:
步骤①、定义布尔变量
定义三个布尔变量:xit、ghi和sijk,其中xit表示数字电路中第i个逻辑门xi在数字电路逻辑函数真值表第t行中的取值;如果逻辑门xi的输出为数字电路中第h个原始输出gh,则布尔变量ghi的值为true,否则为false;如果逻辑门xi的两个输入分别是xj和xk,并且逻辑门xi执行实质蕴含逻辑运算,则布尔变量sijk的值为true,否则为false;其中,j和k的取值范围为:1≤j<i,0≤k<i,j≠k;
步骤②、将蕴含逻辑中的约束问题转换成合取范式公式,即cnf公式
以仅含“imp”运算的逻辑图形结构作为逻辑函数表示,即以“imp”为基本运算集的逻辑图形结构中除了原始输入和原始输出外,每个逻辑门均执行实质蕴含逻辑操作,由此得到蕴含逻辑中的主要约束条件为:
式(1)中,符号“→”代表实质蕴含逻辑运算,符号
利用tseytin变换方法将数字电路中的逻辑门转换为cnf公式的描述形式,得到蕴含逻辑门
(xit→(xjt→xkt))∧((xjt→xkt)→xit)(2)
式(2)中,符号“∧”代表合取(即逻辑与),只有蕴含逻辑门真值表中的赋值组合才满足式(2),结合式(2)和等式
将式(3)转换为cnf的形式,利用
对于式(4)中含有的nor逻辑门
利用tseytin变换方法将式(4)中含有的nor逻辑门
综上所述,针对实质蕴含逻辑的主要cnf约束条件公式有:
为确保数字电路中的原始输出gh必为逻辑门xi的输出,定义约束条件公式为:
vighi(8)
式(8)中“v”代表逻辑或;
为确保数字电路中的逻辑门xi必有两个输入xj和xk,定义约束条件公式为:
vj,ksijk(9)
式(9)中,j≠k,j≠0;
为将数字电路的原始输出值约束至指定的逻辑门,定义约束条件公式为:
式(10)中
步骤③:在步骤②得到的约束条件的基础上,首先设定需要的实质蕴含逻辑门数为0,编码得到cnf约束文件;将得到的cnf约束文件传送给sat求解器;
步骤④:sat求解器对收到的cnf约束文件中的布尔变量进行赋值,寻找满足式(7)~(10)的值均为true的一组布尔变量赋值;
如果sat求解器找到这样一组布尔变量赋值,则返回的结果为sat,表示找到了最优解;否则,使需要的实质蕴含逻辑门数加1,重新编码和求解,直至sat求解器返回的结果为sat。
与现有技术相比,本发明具有如下优点:
1、本发明公开了一种数字电路逻辑函数的最佳蕴含逻辑表示方法,利用基于布尔可满足性(satisfiability,sat)的精确综合算法来求解数字电路逻辑函数的最佳蕴含逻辑表达式。本发明方法不通过其他逻辑结构变换等中间步骤,而是直接从数字电路逻辑函数中得到最佳的实质蕴含逻辑表达形式。本发明方法首先根据定义的布尔变量来描述蕴含逻辑中的约束条件,得到以合取范式(conjunctionnormalform,cnf)表示的约束文件,设置不同的实质蕴含逻辑操作数,编码得到cnf约束文件,再将cnf约束文件传送给sat求解器,直到sat求解器找到满足约束条件的布尔变量赋值并返回代表最优解的结果sat,从而确保找到数字电路逻辑函数的最佳蕴含逻辑表示形式。
2、本发明方法在整个求解过程中,确保数字电路逻辑函数功能一致的前提下,得到一个数字电路逻辑函数的最佳蕴含逻辑表示形式。本发明方法在所有的三输入数字电路逻辑函数(共
附图说明
图1为由双忆阻器组成的实质蕴含逻辑电路的结构;
图2为由双忆阻器组成的实质蕴含逻辑电路的逻辑函数真值表;
图3为针对示例的数字电路,现有通过aig一对一映射得到以“imp”为基本运算集的逻辑图形结构示意图;
图4为针对示例的数字电路,本发明方法得到的以“imp”为基本运算集的逻辑图形结构。
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
图1和图2所示分别为实质蕴含逻辑电路相应的逻辑电路结构和逻辑函数真值表。将一个常规电阻器和两个并联的忆阻器p、q串联,形成一个数字开关电路,该混合电路可以形成实质蕴含操作。忆阻器p、q的初始阻态为逻辑门的输入,忆阻器q同时作为逻辑门的输出,通过电压vset、vcond的共同作用,忆阻器q的阻态改变,作为逻辑门的输出,最后的结果被写入忆阻器q存储起来。
以一个布尔表达式为
对于布尔表达式为
步骤①、定义布尔变量
定义三个布尔变量:xit、ghi和sijk,如图4所示,该数字电路的原始输入为x1(即变量a)、x2(即变量b)、x3(即变量c),中间逻辑门为x4、x5、x6,原始输出为g1;
步骤②、将蕴含逻辑中的约束问题转换成合取范式公式,即cnf公式
得到针对实质蕴含逻辑的约束条件公式有:
其中4≤i≤6,1≤j<i,0≤k<i,h=1,0≤t≤7;
步骤③:在步骤②得到的约束条件的基础上,首先设定需要的实质蕴含逻辑门数为0,编码得到cnf约束文件;将得到的cnf约束文件传送给sat求解器;
步骤④:sat求解器对收到的cnf约束文件中的布尔变量进行赋值,寻找满足式上述约束条件公式值均为true的一组布尔变量赋值;
如果sat求解器找到这样一组布尔变量赋值,则返回的结果为sat,表示找到了最优解;否则,使需要的实质蕴含逻辑门数加1,重新编码和求解,直至sat求解器返回的结果为sat。最后得到的结果见图4。
以上简单数字电路中,逻辑门x4、x5、x6均为实质蕴含逻辑门,其蕴含逻辑门真值表为:
t=76543210
x4t=10111011
x5t=11110100
x6t=00001011
在布尔变量ghi中,g16为1,其余的ghi为0;在布尔变量sijk中,s421、s543、s650为1,其余的sijk为0。
对于所有的三输入数字电路逻辑函数(共
在图3中naig((00001011)2)=5;图4中nimg((00001011)2)=3,结点数目减少了两个。因此,本发明方法能有效降低以“imp”为基本运算集的逻辑图形结构中结点的数目,得到数字电路逻辑函数的最佳蕴含逻辑表达式,当被运用于忆阻器电路中时,可为忆阻器电路的设计减少成本,同时丰富逻辑综合中实质蕴含逻辑的研究方法。
表1
1.一种数字电路逻辑函数的最佳蕴含逻辑表示方法,其特征在于,包括以下步骤:
步骤①、定义布尔变量
定义三个布尔变量:xit、ghi和sijk,其中xit表示数字电路中第i个逻辑门xi在数字电路逻辑函数真值表第t行中的取值;如果逻辑门xi的输出为数字电路中第h个原始输出gh,则布尔变量ghi的值为true,否则为false;如果逻辑门xi的两个输入分别是xj和xk,并且逻辑门xi执行实质蕴含逻辑运算,则布尔变量sijk的值为true,否则为false;其中,j和k的取值范围为:1≤j<i,0≤k<i,j≠k;
步骤②、将蕴含逻辑中的约束问题转换成合取范式公式,即cnf公式
以仅含“imp”运算的逻辑图形结构作为逻辑函数表示,即以“imp”为基本运算集的逻辑图形结构中除了原始输入和原始输出外,每个逻辑门均执行实质蕴含逻辑操作,由此得到蕴含逻辑中的主要约束条件为:
式(1)中,符号“→”代表实质蕴含逻辑运算,符号
利用tseytin变换方法将数字电路中的逻辑门转换为cnf公式的描述形式,得到蕴含逻辑门
(xit→(xjt→xkt))∧((xjt→xkt)→xit)(2)
式(2)中,符号“∧”代表合取,只有蕴含逻辑门真值表中的赋值组合才满足式(2),结合式(2)和等式
将式(3)转换为cnf的形式,利用
对于式(4)中含有的nor逻辑门
利用tseytin变换方法将式(4)中含有的nor逻辑门
综上所述,针对实质蕴含逻辑的主要cnf约束条件公式有:
为确保数字电路中的原始输出gh必为逻辑门xi的输出,定义约束条件公式为:
vighi(8)
式(8)中“v”代表逻辑或;
为确保数字电路中的逻辑门xi必有两个输入xj和xk,定义约束条件公式为:
vj,ksijk(9)
式(9)中,j≠k,j≠0;
为将数字电路的原始输出值约束至指定的逻辑门,定义约束条件公式为:
式(10)中
步骤③:在步骤②得到的约束条件的基础上,首先设定需要的实质蕴含逻辑门数为0,编码得到cnf约束文件;将得到的cnf约束文件传送给sat求解器;
步骤④:sat求解器对收到的cnf约束文件中的布尔变量进行赋值,寻找满足式(7)~(10)的值均为true的一组布尔变量赋值;
如果sat求解器找到这样一组布尔变量赋值,则返回的结果为sat,表示找到了最优解;否则,使需要的实质蕴含逻辑门数加1,重新编码和求解,直至sat求解器返回的结果为sat。
技术总结