一种减少数字逻辑电路面积的方法

文档序号:7525871阅读:242来源:国知局

专利名称::一种减少数字逻辑电路面积的方法
技术领域
:本发明涉及数字逻辑电路优化方法,尤其是涉及一种减少数字逻辑电路面积的方法。
背景技术
:集成电路设计中一个非常重要的环节是电路的逻辑综合与优化。在逻辑综合和优化中,其中一项指标就是如何控制集成电路的面积。考虑到逻辑函数的复杂程度与对应的数字电路的复杂程度密切有关,简单的逻辑函数往往对应着较小的电路面积,因此常常可以通过对逻辑函数的优化来减少逻辑电路的面积。数字电路的逻辑函数表示既可以用基于AND/OR/NOT运算的布尔逻辑来实现,也可以用基于AND/XOR逻辑来实现。然而目前,几乎所有的涉及数字电子设计自动化软件(ElectronicDesignAutomation,EDA)工具均是基于布尔逻辑发展而来的。并且在逻辑函数综合和优化的学术研究领域,相关的研究内容也是彼此分开的。或者将逻辑函数用单纯的布尔逻辑来表示;或者就是通过极性变换,实现逻辑函数的优化。上述这种彼此分开的做法意味着对那些适于用AND/XOR逻辑实现的函数如果用单纯布尔逻辑来实现将无法得到逻辑函数最优化。同样,对于那些适于用布尔逻辑实现的函数若用AND/XOR逻辑来实现同样得不到逻辑函数的最优化。事实上,对于大部分逻辑电路而言,它们很难用单纯的一种逻辑来达到满意的优化结果。在更多的情况下,一个电路是上述两种逻辑的混合体。即电路的一部分结构适合用布尔逻辑来表示,而另外一部分则适合用AND/XOR逻辑来实现。以往也有将上述两种逻辑函数结合的方法来表达数字电路,但仅仅限于搜索狭义海明距为2的乘积项对的搜索。如假设输入变量为a,b,c,d的逻辑函数/的表达式为/(a,6,c,rf)=a^a/+^crf+^6c+aa/(1)与式(i)对应的电路可以表示为图i。通过搜索狭义海明距为2的两个乘积项,如(^^,^5),再用异或操作来实现函数/的化简,如/(a,6,c,力=ac(6d)+a6c+act/(2)与式(2)对应的电路如图2所示。4图1电路图2电路比较结果逻辑与门1064逻辑或门321逻辑异或门01-1节点数26197表1表1为图1所示电路与图2所示电路的比较情况。从表1中可以发现,将逻辑函数/(。,^,力中适合AND/XOR逻辑进行优化的部分电路进行单独优化后,能减少数字电路所需的元件,从而减少数字电路的面积。但是即便对图l所示电路采用了如式(2)所示的方法简化,其缺点是最终的面积还是比较大,有待进一歩的减小。
发明内容本发明所要解决的技术问题是提供一种减少数字逻辑电路面积的方法,其利用广义海明距来增加适合"异或"逻辑实现的子集的搜索范围,并进一步优化该逻辑子集来实现相应逻辑函数的优化,从而实现减少与该逻辑函数对应的数字逻辑电路面积的目的。本发明解决上述技术问题所采用的技术方案为1、一种减少数字逻辑电路面积的方法,其特征在于待优化的逻辑函数定义为/;/的乘积项的集合定义为&;若Sp中含有W个乘积项,其中任意一个乘积项定义为/7,,Dp,表示乘积项/7,的维数,即对于一个含有w个变量的函数,如果逻辑函数/的某个乘积项^含有m个变量,m《",则/,的维数为Z^尸0WW);具体步骤为a.定义广义海明距对于一个给定的含有"个变量的函数,记任意两个乘积项A,巧,^y,其中z'和/都不大于w,令^表示乘积项/7,中第A:位的变量,^表示乘积项乃中第A位的变量,并令"1"表示原变量,"0"表示反变量,"-"表示该变量没有出现,在对应变量比较过程中,定义'-'='0',或'-'='1',则广义海明距定义为p,和^对应变量不相等的对数的个数;b.在乘积项的集合^中选中任一乘积项p,,找出与乘积项/7,广义海明距为2的所有乘积项,得到一个与A的广义海明距都为2的集合,定义为^6一S^c.在幼6—^中选出任意一个乘积项^,由p,和外分别生成的二个添加乘积项定义为p。则和凡m;其中生成的方法如下①、按照广义海明距的定义,确定导致A和乃海明距200910095992.X为2的二个对应变量的位置,并记为^和^;②、比较/7,和乃的维数,选取维数较小的乘积项来产生添加乘积项,如果乘积项A和乘积项乃的维数一样,则任取一个,这里假设乘积项A具有较小的维数;③、将乘积项A中第^位变量取反得到第一个添加乘积项A^i;将乘积项A第^位变量取反得到第二个添加乘积项/^必对进行如下运算K必,P副-,并将/7;添加到函数/中,使得/1'=/+/^1,《,=Spu/^1;对/^2执行如下运算;^2=;7。必2-/^201^,并将^必2添加到函数/中,使得/2'=/+/^必2,《,-SpU^必2;d.用公知布尔函数二级优化方法优化y;',并判断简化后的结果是否具有如下特性-(1)、//是否比/更加简单;(2)、定义a和为y;'的二个乘积项,&,&属于《,;判断添加的乘积项是否同时被&和a,包含;或者添加的乘积项/。drf2是否同时被二个乘积项"2和"2包含;如果同时满足上面(i)和(2)两个条件,则可以用y;'代替/;否则用公知布尔函数二级优化方法优化/2',并判断简化后的结果是否具有如下特性-(1)、/2'是否比/更加简单;(2)、定义/4和/^.2为/2'的二个乘积项,^2,;^2属于《2;判断添加的乘积项/7^2是否同时被a'2和,2包含;或者添加的乘积项;"2是否同时被二个乘积项A和X2包含;如果同时满足上面(1)和(2)两个条件,则可以用/2'代替/;否则从w6—Sp;中取出另外一个与/^广义海明距为2的乘积项外,执行步骤b到步骤d,直到找到一个符合条件(1)和(2)添加项;如果比较了中的所有乘积项都没有找到符合条件(1)和(2)的添加项,则保持/不变。e.对乘积项的集合&中剩下的乘积项,重复执行步骤a到步骤d,进一步简化/。与现有技术相比,本发明的优点在于判明存在广义海明距为2的二个乘积项后,并不马上将这二个乘积项构成一个异或表达式,而是先产生一个添加项p。必,然后通过相应的评估方法来判断添加项^必是否适合函数的简化。这种方法与传统方法相比的最大优点在于它不但能通过计算机搜索到传统方法可以找到的适合构成异或表达式的乘积项,而且能找到传统方法无法找到适合构成异或表达式的乘积项。因为逻辑函数的复6杂程度与对应的数字电路的复杂程度密切有关,简单的逻辑函数往往对应着较小的电路面积,通过简化逻辑函数的方法达到了减少数字逻辑电路面积的目的。图1为与逻辑函数/(W,c,rf)-^^+^^+^+c^对应的用二输入逻辑门实现的数字电路图2为与逻辑函数/(",^)=^(6*^+^+^/对应的用二输入逻辑门实现的数字电路图3为与使用本发明化简后逻辑函数/(,6^,力=^^对应的用二输入逻辑门实现的数字电路图4为以4变量为例用传统方法与本发明方法都能搜索到的适合构成异或表达式的乘积项的3模式的卡诺图5为以4变量为例用传统方法与本发明搜索结果的差异对比的卡诺图;图6为以4变量为例本发明方法能搜索到的卡诺图。具体实施例方式以下结合附图实施例对本发明作进一步详细描述。实施例一种减少数字逻辑电路面积的方法,其特征在于待优化的逻辑函数定义为/;/的乘积项的集合定义为&;若&中含有W个乘积项,其中任意一个乘积项定义为^,Z^表示乘积项p,的维数,即对于一个含有M个变量的函数,如果逻辑函数/的某个乘积项^含有m个变量,m《m则A的维数为Z)p产("-m);具体步骤为a.定义广义海明距对于一个给定的含有W个变量的函数,记任意两个乘积项;7,,/V/^/,其中/和/都不大于w,令&表示乘积项/7,中第A:位的变量,^表示乘积项乃中第A位的变量,并令"1"表示原变量,"0"表示反变量,"-"表示该变量没有出现,在对应变量比较过程中,定义'-'='0',或='1',则广义海明距定义为A和^对应变量不相等的对数的个数;b.在乘积项的集合&中选中任一乘积项A,找出与乘积项A广义海明距为2的所有乘积项,得到一个与A的广义海明距都为2的集合,定义为《^—C.在TO6一5^中选出任意一个乘积项A,由p,和/7/分别生成的二个添加乘积项定义为凡^和P。W;其中生成的方法如下①、按照广义海明距的定义,确定导致A和乃海明距7为2的二个对应变量的位置,并记为&和&;②、比较/7,和a的维数,选取维数较小的乘积项来产生添加乘积项,如果乘积项a和乘积项乃的维数一样,则任取一个,这里假设乘积项A具有较小的维数;③、将乘积项A中第Ai位变量取反得到第一个添加乘积项将乘积项a第fe位变量取反得到第二个添加乘积项;^^2;对p。rfrfl进行如下运算;^"。湖-p福。Sp,并将/7;添加到函数/中,使得,&=&up";对"。必2执行如下运算/7"2=;。必2-"。必2n&,并将"必2添加到函数/中,使得/2'=/+^必2,S;-^U/7;2;d.用公知布尔函数二级优化方法优化/;',并判断简化后的结果是否具有如下特性-(1)、y;'是否比/更加简单;(2)、定义;,;和;^为y;'的二个乘积项,A,丸,属于^;判断添加的乘积项p:,是否同时被和包含;或者添加的乘积项pa(W2是否同时被二个乘积项p,'2和《2包含;如果同时满足上面(i)和(2)两个条件,则可以用y;'代替/;否则用公知布尔函数二级优化方法优化/2',并判断简化后的结果是否具有如下特性(1)、/2'是否比/更加简单;(2)、定义;;2和^.2为/2'的二个乘积项,;^,;^属于S";判断添加的乘积项"必2是否同时被/;2和"2包含;或者添加的乘积项是否同时被二个乘积项A2和包含;如果同时满足上面(1)和(2)两个条件,则可以用/2'代替/|否则从w6—&,中取出另外一个与a广义海明距为2的乘积项^,执行步骤b到步骤d,直到找到一个符合条件(1)和(2)添加项;如果比较了中的所有乘积项都没有找到符合条件(1)和(2)的添加项,则保持/不变。e.对乘积项的集合Sp中剩下的乘积项,重复执行步骤a到步骤d,进一步简化/图4至图6以4变量为例说明了本发明在搜索模式上与传统方法的异同点。图中字母"a"表示用本发明的方法添加上去的乘积项。图4为传统方法能搜索到的适合构成异或表达式的乘积项的3种可能模式。图5为传统方式与本发明方法搜索结果的比较。图中虚线的圆圈表示传统方法找到的适合构成异或表达式的乘积项。实线圆圈为本发明方法找到的适合构成异或表达式的乘积项。图6是传统方法不能发现,但本发明方法能8搜索到的模式。实线圆圈为本发明方法找到的适合构成异或表达式的乘积项。本发明方法通过插入特定乘积项的方法,将原来不相邻的乘积项通过增加的乘积项连接起来,达到逻辑相邻,使得在电路面积优化上取得更好的结果。具体处理办法如下:1)、对输入的乘积项,利用公知的方法如收縮法,选拔法等方法生成这些乘积项的最小覆盖或无冗余覆盖。相应的乘积项集合记为&。然后针对Sp中的任何一个乘积项A利用广义海明距定义,找到与A广义海明距为2的乘积项,构成集合W6一&,。在W6一&,中的乘积项中又可以分成2类。一类是狭义海明距为2,即与乘积项A对应的变量或是相等,或是相反。如图4中所示。另一类海明距为2的乘积项指得是除与p,有2个对应的变量相反外,还存在有的变量在一个乘积项不出现,而另一个乘积项中存在对应变量。如图5(a)中所示,如果p,^",则A与另一个乘积项;的广义海明距为2就是属于这类。2)、生成添加项/^必。假设以图4(b)为例。设p,w^,用数字表示就是p产l-Ol,同理得乃-0-11。显然二个乘积项的第1和3变量不同,所以&=1,fe=3。考虑到A和乃的维数一样,所以可以通过修改/7,来产生2个添加项和;7。m。就是将a的第1位取反得到^必尸1-11。A^rf2可以通过取反A的第3位得至U:A必产0-01。事实上这2个添加项都符合条件,图4(b)只是显示了;7。^/24-11的情况,对应图4(b)上2个填上字母"a"的地方。另外也可以以图6(b)来说明情况。假设p产0-00,;广ll-l,显然可以初步得到2个添加项/。础=1-00和p。础-0-01。对于/^必产1-00,它满足步骤d中条件1,但不满足条件2,所以放弃。而对于尸。孤=0-01,它与Sp有交集,所以执行/^"。必-;^n、,得到/。舰=0101,就是图6(b)中标有"a"的这一格。假设原来的函数为/,则插入添加项后变为/'=/+;;^3)、再次利用公知的方法如收縮法,选拔法等方法生成这些乘积项的最小覆盖或无冗余覆盖。仍然以图6(b)为例,对/'=5"++x"++;;^v进行求无冗余覆盖后将得到/'=叾6",大大简化了函数,考虑到乘积项^^v被叾和;/v所包含,满足1$1=0,所以化简后的函数与原函数等价。对于这个函数,用传统的通过寻找海明距为2乘积项的方法是无法进行化简到/'=叾"这个程度的。4)、为了对本发明的方法在减少电路面积方面的作用有一个直观的了解,现仍然以式(1)为例,采用本发明的方法可以得到式(3)的表示形式。,c,rf)=^>^(3)与式(3)对应的电路见图6。表2列出了与式(2)对应的数字电路(如图2所示)和式(3)对应的数字电路(如图3所示)的比较结果。<table>tableseeoriginaldocumentpage10</column></row><table>表2从表2可知无论是使用的门的种类,门的个数还是节点数,本发明的方法在减少电路的面积上要明显好于传统的方法。权利要求1、一种减少数字逻辑电路面积的方法,其特征在于待优化的逻辑函数定义为f;f的乘积项的集合定义为Sp;若Sp中含有w个乘积项,其中任意一个乘积项定义为pi,Dpi表示乘积项pi的维数,即对于一个含有n个变量的函数,如果逻辑函数f的某个乘积项pi含有m个变量,m≤n,则pi的维数为Dpi=(n-m);具体步骤为a.定义广义海明距对于一个给定的含有n个变量的函数,记任意两个乘积项pi,pj,i≠j,其中i和j都不大于w,令xik表示乘积项pi中第k位的变量,xjk表示乘积项pj中第k位的变量,并令“1”表示原变量,“0”表示反变量,“-”表示该变量没有出现,在对应变量比较过程中,定义‘-’=‘0’,或‘-’=‘1’,则广义海明距定义为pi和pj对应变量不相等的对数的个数;b.在乘积项的集合Sp中选中任一乘积项pi,找出与乘积项pi广义海明距为2的所有乘积项,得到一个与pi的广义海明距都为2的集合,定义为sub_Spi;c.在sub_Spi中选出任意一个乘积项pj,由pi和pj分别生成的二个添加乘积项定义为padd1和padd2;其中生成的方法如下①、按照广义海明距的定义,确定导致pi和pj海明距为2的二个对应变量的位置,并记为k1和k2;②、比较pi和pj的维数,选取维数较小的乘积项来产生添加乘积项,如果乘积项pi和乘积项pj的维数一样,则任取一个,这里假设乘积项pi具有较小的维数;③、将乘积项pi中第k1位变量取反得到第一个添加乘积项padd1;将乘积项pi第k2位变量取反得到第二个添加乘积项padd2;对padd1进行如下运算并将添加到函数f中,使得对padd2执行如下运算并将添加到函数f中,使得d.用公知布尔函数二级优化方法优化并判断简化后的结果是否具有如下特性(1)、是否比f更加简单;(2)、定义和为的二个乘积项,属于判断添加的乘积项是否同时被和包含;或者添加的乘积项padd2是否同时被二个乘积项和包含;如果同时满足上面(1)和(2)两个条件,则可以用代替f;否则用公知布尔函数二级优化方法优化并判断简化后的结果是否具有如下特性(1)、是否比f更加简单;(2)、定义和为的二个乘积项,属于判断添加的乘积项是否同时被和包含;或者添加的乘积项是否同时被二个乘积项和包含;如果同时满足上面(1)和(2)两个条件,则可以用代替f;否则从sub_Spi中取出另外一个与pi广义海明距为2的乘积项pk,执行步骤b到步骤d,直到找到一个符合条件(1)和(2)添加项;如果比较了sub_Spi中的所有乘积项都没有找到符合条件(1)和(2)的添加项,则保持f不变。e.对乘积项的集合Sp中剩下的乘积项,重复执行步骤a到步骤d,进一步简化f。全文摘要本发明公开了一种减少数字逻辑电路面积的方法,通过利用异或操作1⊕1=0的特性,生成特定的乘积项添加到被优化函数中,由于新的乘积项的加入,可以使原来逻辑不相邻的乘积项因添加项的插入而逻辑相邻,从而实现逻辑的优化,其优点在于判明存在广义海明距为2的二个乘积项后,并不马上将这二个乘积项构成一个异或表达式,而是先产生一个添加项p<sub>add</sub>,然后通过相应的评估方法来判断添加项p<sub>add</sub>是否适合函数的简化。因为逻辑函数的复杂程度与对应的数字电路的复杂程度密切有关,简单的逻辑函数往往对应着较小的电路面积,通过简化逻辑函数的方法达到了减少数字逻辑电路面积的目的。文档编号H03K19/173GK101488745SQ20091009599公开日2009年7月22日申请日期2009年3月2日优先权日2009年3月2日发明者夏银水,王伦耀申请人:宁波大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1