CN102185606A - 一种减少数字逻辑电路面积的方法 - Google Patents

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

Info

Publication number
CN102185606A
CN102185606A CN2011100521645A CN201110052164A CN102185606A CN 102185606 A CN102185606 A CN 102185606A CN 2011100521645 A CN2011100521645 A CN 2011100521645A CN 201110052164 A CN201110052164 A CN 201110052164A CN 102185606 A CN102185606 A CN 102185606A
Authority
CN
China
Prior art keywords
product term
product
function
term
hamming
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011100521645A
Other languages
English (en)
Other versions
CN102185606B (zh
Inventor
王伦耀
夏银水
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ningbo University
Original Assignee
Ningbo University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ningbo University filed Critical Ningbo University
Priority to CN 201110052164 priority Critical patent/CN102185606B/zh
Publication of CN102185606A publication Critical patent/CN102185606A/zh
Application granted granted Critical
Publication of CN102185606B publication Critical patent/CN102185606B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明公开了一种减少数字逻辑电路面积的方法,通过利用异或操作的特性,生成特定的乘积项添加到被优化函数中,由于新的乘积项的加入,可以使原来逻辑不相邻的乘积项因添加项的插入而逻辑相邻,从而实现逻辑的优化,其优点在于判明存在广义海明距为2的二个乘积项后,并不马上将这二个乘积项构成一个异或表达式,而是先产生相应的添加项,然后通过相应的评估方法来判断添加项是否适合函数的简化。因为逻辑函数的复杂程度与对应的数字电路的复杂程度密切有关,简单的逻辑函数往往对应着较小的电路面积,通过简化逻辑函数的方法达到了减少数字逻辑电路面积的目的。

Description

一种减少数字逻辑电路面积的方法
技术领域
本发明涉及数字逻辑电路优化方法,尤其是涉及一种减少数字逻辑电路面积的方法。
背景技术
集成电路设计中一个非常重要的环节是电路的逻辑综合与优化。在逻辑综合和优化中,其中一项指标就是如何控制集成电路的面积。考虑到逻辑函数的复杂程度与对应的数字电路的复杂程度密切有关,简单的逻辑函数往往对应着较小的电路面积,因此常常可以通过对逻辑函数的简化来减少逻辑电路的面积。
数字电路的逻辑函数表示既可以用基于AND/OR/NOT运算的布尔逻辑来实现,也可以用基于AND/XOR逻辑来实现。然而目前几乎所有的涉及数字电子设计自动化软件(Electronic Design Automation,EDA)工具均是基于布尔逻辑发展而来的。并且在逻辑函数综合和优化的学术研究领域,相关的研究内容也是彼此分开的。或者将逻辑函数用单纯的布尔逻辑来表示;或者就是通过极性变换,实现逻辑函数的优化。上述这种彼此分开的做法意味着对那些适于用AND/XOR逻辑实现的函数如果用单纯布尔逻辑来实现将无法得到逻辑函数最优化。同样,对于那些适于用布尔逻辑实现的函数若用AND/XOR逻辑来实现同样得不到逻辑函数的最优化。事实上,对于大部分逻辑电路而言,它们很难用单纯的一种逻辑来达到满意的优化结果。在更多的情况下,一个电路是上述两种逻辑的混合体。即电路的一部分结构适合用布尔逻辑来表示,而另外一部分则适合用AND/XOR逻辑来实现。
以往也有将上述两种逻辑函数结合的方法来表达数字电路,但仅仅限于搜索传统意义上海明距为2的乘积项对的搜索。如假设输入变量为a,b,c,d的逻辑函数f的表达式为:
Figure 153384DEST_PATH_IMAGE001
                 (1)
与式(1)对应的采用二输入逻辑门实现的电路可以表示为图1。
通过搜索狭义海明距为2的两个乘积项,如(
Figure 292241DEST_PATH_IMAGE002
),再用异或操作来实现函数f的化简,如:
Figure 813352DEST_PATH_IMAGE003
                    (2)
与式(2)对应的采用二输入逻辑门实现的电路如图2所示。
图1电路 图2电路
逻辑与门 10 6
逻辑或门 3 2
逻辑异或门 0 1
表1
表1为图1所示电路与图2所示电路的比较情况。从表1中可以发现,将逻辑函数
Figure 328647DEST_PATH_IMAGE004
中适合AND/XOR逻辑进行优化的部分电路进行单独优化后,能减少数字电路所需的元件,从而减少数字电路的面积。但是即便对图1所示电路采用了如式(2)所示的方法简化,还有进一步的减小的可能。
发明内容
本发明所要解决的技术问题是提供一种减少数字逻辑电路面积的方法。通过利用广义海明距搜索适合“异或”逻辑实现的逻辑乘积项,并用“异或”逻辑实现这些逻辑乘积项对应的逻辑,从而实现减少与该逻辑函数对应的数字逻辑电路面积的目的。
本发明解决上述技术问题所采用的技术方案为:一种减少数字逻辑电路面积的方法,待优化的逻辑函数定义为ff优化后的函数定义为
Figure 986025DEST_PATH_IMAGE005
 f的乘积项的集合定义为
Figure 295783DEST_PATH_IMAGE006
;若
Figure 304190DEST_PATH_IMAGE006
中含有w个乘积项,其中任意一个乘积项定义为
Figure 357597DEST_PATH_IMAGE007
Figure 633595DEST_PATH_IMAGE008
表示乘积项
Figure 114255DEST_PATH_IMAGE007
的维数,即对于一个含有n个变量的函数,如果逻辑函数f的某个乘积项
Figure 672276DEST_PATH_IMAGE007
含有m个变量,m≤n,则
Figure 201477DEST_PATH_IMAGE007
的维数为
Figure 895764DEST_PATH_IMAGE009
;并且令
Figure 750587DEST_PATH_IMAGE005
的初始值为“0”;具体步骤为:
步骤A.定义广义海明距:对于一个给定的含有n个变量的逻辑函数f,它的任意两个乘积项为
Figure 530324DEST_PATH_IMAGE010
,其中ij都不大于w;乘积项
Figure 925534DEST_PATH_IMAGE007
Figure 677589DEST_PATH_IMAGE011
之间的广义海明距表示各输入变量在
Figure 500051DEST_PATH_IMAGE007
Figure 203303DEST_PATH_IMAGE011
中取值的差异;广义海明距大小等于同时符合下面2个条件的变量的个数:①、变量在
Figure 402203DEST_PATH_IMAGE007
Figure 8765DEST_PATH_IMAGE011
中都出现;②、变量在
Figure 2129DEST_PATH_IMAGE007
Figure 694141DEST_PATH_IMAGE011
中取值形式为互补;
步骤B.在乘积项的集合
Figure 431153DEST_PATH_IMAGE006
中任选一个乘积项
Figure 954538DEST_PATH_IMAGE007
;找出与乘积项
Figure 322066DEST_PATH_IMAGE007
广义海明距为2的所有乘积项,复制这些乘积项,得到一个与
Figure 999909DEST_PATH_IMAGE007
的广义海明距都为2的乘积项集合,定义为
步骤C.令乘积项集合
Figure 856187DEST_PATH_IMAGE006
对应的逻辑函数为
Figure 191353DEST_PATH_IMAGE013
,在
Figure 857958DEST_PATH_IMAGE012
中任选一个乘积项
Figure 874456DEST_PATH_IMAGE011
,由
Figure 372433DEST_PATH_IMAGE007
Figure 144080DEST_PATH_IMAGE011
分别生成的二个添加乘积项,定义为
Figure 413442DEST_PATH_IMAGE015
;其中生成的方法如下:①、按照广义海明距的定义,确定导致
Figure 765926DEST_PATH_IMAGE007
Figure 646157DEST_PATH_IMAGE011
的广义海明距为2的两个变量的位置,记为
Figure 84092DEST_PATH_IMAGE016
Figure 442392DEST_PATH_IMAGE017
;②、比较
Figure 914962DEST_PATH_IMAGE007
Figure 28411DEST_PATH_IMAGE011
的维数,选取维数较小的乘积项来产生添加乘积项,如果乘积项
Figure 891325DEST_PATH_IMAGE007
和乘积项
Figure 115633DEST_PATH_IMAGE011
的维数一样,则任取一个;③、第一个添加乘积项
Figure 177130DEST_PATH_IMAGE014
等于将选中的乘积项中的第位变量取反;第二个添加乘积项
Figure 310226DEST_PATH_IMAGE015
等于将选中的乘积项的第
Figure 275908DEST_PATH_IMAGE017
位变量取反;对
Figure 457490DEST_PATH_IMAGE014
进行如下运算
Figure 647163DEST_PATH_IMAGE018
,并将
Figure 484669DEST_PATH_IMAGE019
添加到函数
Figure 50780DEST_PATH_IMAGE013
中,得到
Figure 352448DEST_PATH_IMAGE020
Figure 650705DEST_PATH_IMAGE021
;对
Figure 37824DEST_PATH_IMAGE015
执行如下运算
Figure 843844DEST_PATH_IMAGE022
,并将添加到函数中,得到
Figure 78013DEST_PATH_IMAGE024
Figure 251506DEST_PATH_IMAGE025
步骤D.定义函数
Figure 199870DEST_PATH_IMAGE026
,并令
Figure 167826DEST_PATH_IMAGE027
;用公知布尔函数二级优化方法优化
Figure 263958DEST_PATH_IMAGE028
,得到优化结果为
Figure 913245DEST_PATH_IMAGE029
,并判断
Figure 778433DEST_PATH_IMAGE029
是否具有如下特性:
(1)、
Figure 917291DEST_PATH_IMAGE029
是否比更加简单;
(2)、定义
Figure 186653DEST_PATH_IMAGE030
Figure 109609DEST_PATH_IMAGE031
Figure 419368DEST_PATH_IMAGE029
的二个乘积项;判断添加的乘积项是否同时仅被
Figure 481182DEST_PATH_IMAGE030
Figure 320962DEST_PATH_IMAGE031
包含;
如果同时具有上面(1)和(2)两个特征,则从集合
Figure 801622DEST_PATH_IMAGE006
中删去被乘积项
Figure 31746DEST_PATH_IMAGE030
Figure 888844DEST_PATH_IMAGE031
完全覆盖的乘积项,并将函数
Figure 19348DEST_PATH_IMAGE005
更新成为
Figure 670910DEST_PATH_IMAGE032
,删除
Figure 716226DEST_PATH_IMAGE026
,删除
Figure 49118DEST_PATH_IMAGE012
,并执行步骤E;否则用公知布尔函数二级优化方法优化
Figure 597911DEST_PATH_IMAGE033
,得到优化结果为
Figure 623636DEST_PATH_IMAGE034
,并判断
Figure 890669DEST_PATH_IMAGE034
是否具有如下特性:
(3)、
Figure 89570DEST_PATH_IMAGE034
是否比
Figure 430552DEST_PATH_IMAGE013
更加简单;
(4)、定义
Figure 689495DEST_PATH_IMAGE035
Figure 443825DEST_PATH_IMAGE036
Figure 617055DEST_PATH_IMAGE034
的二个乘积项;判断添加的乘积项
Figure 140440DEST_PATH_IMAGE023
是否同时仅被
Figure 507967DEST_PATH_IMAGE035
Figure 484014DEST_PATH_IMAGE036
包含;如果同时具有上面(3)和(4)两个特征,则从集合中删去被乘积项
Figure 605870DEST_PATH_IMAGE035
Figure 941037DEST_PATH_IMAGE036
完全覆盖的乘积项,并将函数
Figure 669958DEST_PATH_IMAGE005
更新成为
Figure 686456DEST_PATH_IMAGE037
,删除
Figure 184433DEST_PATH_IMAGE026
,删除,并执行步骤E;如果乘积项
Figure 342937DEST_PATH_IMAGE038
不符合特征(1)和(2)或者乘积项
Figure 225442DEST_PATH_IMAGE023
不符合特征(3)和(4),则从集合
Figure 515609DEST_PATH_IMAGE012
中删去乘积项
Figure 458158DEST_PATH_IMAGE011
,然后执行步骤C寻找另外一个和
Figure 833775DEST_PATH_IMAGE007
的广义海明距为2的乘积项;如果比较了
Figure 254392DEST_PATH_IMAGE012
中的所有乘积项都没有符合特征(1)和(2)或者符合特征(3)和(4),则将乘积项
Figure 726962DEST_PATH_IMAGE007
Figure 512515DEST_PATH_IMAGE006
中删除,并将函数
Figure 437746DEST_PATH_IMAGE005
更新为,删除
Figure 425348DEST_PATH_IMAGE026
,删除
Figure 709699DEST_PATH_IMAGE012
,执行步骤E;
步骤E. 如果
Figure 59909DEST_PATH_IMAGE006
中包含的乘积项的个数大于1,则执行步骤B到步骤D;如果
Figure 822329DEST_PATH_IMAGE006
中只包含了1个乘积项
Figure 3911DEST_PATH_IMAGE040
,则原逻辑函数f的最终简化结果为;如果
Figure 296670DEST_PATH_IMAGE006
为空集,则得到原逻辑函数f的最终简化结果
Figure 800463DEST_PATH_IMAGE005
与现有技术相比,本发明的优点在于:1)原来传统意义上的海明距仅仅是本发明提出的广义海明距的一个特例;2)当发现存在广义海明距为2的二个乘积项后,并不马上将这二个乘积项构成一个异或表达式,而是先产生添加项,然后通过相应的评估方法来判断添加项是否适合函数的简化。这种方法与传统方法相比的最大优点在于它不但能通过计算机搜索到传统方法可以找到的适合构成异或表达式的乘积项,而且能找到传统方法无法找到适合构成异或表达式的乘积项。因为逻辑函数的复杂程度与对应的数字电路的复杂程度密切有关,简单的逻辑函数往往对应着较小的电路面积,因此,可以通过简化逻辑函数的方法达到了减少数字逻辑电路面积的目的。
附图说明
图1为与逻辑函数
Figure 836552DEST_PATH_IMAGE001
对应的用二输入逻辑门实现的电路图。
图2为与逻辑函数
Figure 462706DEST_PATH_IMAGE042
对应的用二输入逻辑门实现的电路图。
图3为与使用本发明化简后逻辑函数
Figure 286043DEST_PATH_IMAGE043
对应的用二输入逻辑门实现的电路图。
图4为以4变量为例用传统方法与本发明方法都能搜索到的适合构成异或表达式的乘积项的卡诺图;该图例显示了可以构成“异或”逻辑的三种情况。
图5为以4变量为例用传统方法与本发明方法所得到的逻辑函数简化结果的差异对比的卡诺图。其中图5(a),(b)为采用传统简化的卡诺图,图5(a)和(b)中画圈的乘积项可以构成“异或”逻辑;图5(c)为采用本发明方法简化的卡诺图;
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
实施例:
一种减少数字逻辑电路面积的方法,待优化的逻辑函数定义为ff优化后的函数定义为f op  f的乘积项的集合定义为S p ;若S p 中含有w个乘积项,其中任意一个乘积项定义为p i  D pi 表示乘积项p i 的维数,即对于一个含有n个变量的函数,如果逻辑函数f的某个乘积项p i 含有m个变量,m≤n,则p i 的维数为D pi =(n-m);并且令f op 的初始值为“0”具体步骤为:
步骤A.定义广义海明距:对于一个给定的含有n个变量的逻辑函数f,它的任意两个乘积项为
Figure 390265DEST_PATH_IMAGE010
,其中ij都不大于w;乘积项p i p j 之间的广义海明距表示各输入变量在p i p j 中取值的差异;广义海明距大小等于符合下面2个条件的变量的个数:①、变量在p i p j 中都出现;②、变量在p i p j 中取值形式为互补;在本实施案例中,用数字“1”表示原变量,“0”表示反变量,“4”表示该变量在乘积项中没有出现。并定义“1”的取反为“0”,“0”的取反为“1”,“4”的取反为“4”。这样乘积项
Figure 546440DEST_PATH_IMAGE044
分别可以用一维数组array-p i 和array-p j 来表示了。另外,定义一维数组array-DH ij 表示数组array-p i 与array-p j 的和。表2表示了数组array-DH ij 中每一位上所有可能的取值。根据广义海明距的定义可以推得,乘积项p i p j 广义海明距的大小就是数组array-DH ij 中,“1”的个数。
表2: 
+ 0 1 4
0 0 1 4
1 1 2 5
4 4 5 8
步骤B.在乘积项的集合
Figure 281178DEST_PATH_IMAGE006
中任选一个乘积项
Figure 890014DEST_PATH_IMAGE007
;找出与乘积项广义海明距为2的所有乘积项,复制这些乘积项,得到一个与
Figure 11871DEST_PATH_IMAGE007
的广义海明距都为2的乘积项集合,定义为
Figure 979827DEST_PATH_IMAGE012
步骤C.令乘积项集合
Figure 13642DEST_PATH_IMAGE006
对应的逻辑函数为
Figure 459666DEST_PATH_IMAGE013
,在中任选一个乘积项
Figure 165509DEST_PATH_IMAGE011
,由
Figure 748937DEST_PATH_IMAGE007
Figure 936336DEST_PATH_IMAGE011
分别生成的二个添加乘积项,定义为
Figure 921610DEST_PATH_IMAGE014
Figure 231368DEST_PATH_IMAGE015
;其中生成的方法如下:①、按照广义海明距的定义,确定导致
Figure 293182DEST_PATH_IMAGE011
的广义海明距为2的两个变量的位置,记为
Figure 132962DEST_PATH_IMAGE016
Figure 551305DEST_PATH_IMAGE017
;②、比较
Figure 137062DEST_PATH_IMAGE011
的维数,选取维数较小的乘积项来产生添加乘积项,如果乘积项和乘积项
Figure 482910DEST_PATH_IMAGE011
的维数一样,则任取一个;③、第一个添加乘积项
Figure 465909DEST_PATH_IMAGE014
等于将选中的乘积项中的第位变量取反;第二个添加乘积项等于将选中的乘积项的第
Figure 435636DEST_PATH_IMAGE017
位变量取反;对进行如下运算
Figure 573674DEST_PATH_IMAGE018
,并将添加到函数
Figure 501495DEST_PATH_IMAGE013
中,得到
Figure 426464DEST_PATH_IMAGE020
Figure 429055DEST_PATH_IMAGE021
;对
Figure 890123DEST_PATH_IMAGE015
执行如下运算,并将
Figure 296014DEST_PATH_IMAGE023
添加到函数
Figure 774400DEST_PATH_IMAGE013
中,得到
Figure 753037DEST_PATH_IMAGE025
步骤D.定义函数,并令
Figure 498456DEST_PATH_IMAGE027
;用公知布尔函数二级优化方法优化
Figure 456089DEST_PATH_IMAGE028
,得到优化结果为
Figure 962157DEST_PATH_IMAGE029
,并判断
Figure 178375DEST_PATH_IMAGE029
是否具有如下特性:
(1)、
Figure 998563DEST_PATH_IMAGE029
是否比
Figure 351047DEST_PATH_IMAGE013
更加简单;
(2)、定义
Figure 28016DEST_PATH_IMAGE030
Figure 403634DEST_PATH_IMAGE031
Figure 89830DEST_PATH_IMAGE029
的二个乘积项;判断添加的乘积项
Figure 234504DEST_PATH_IMAGE019
是否同时仅被
Figure 784171DEST_PATH_IMAGE030
Figure 709402DEST_PATH_IMAGE031
包含;
如果同时具有上面(1)和(2)两个特征,则从集合
Figure 933710DEST_PATH_IMAGE006
中删去被乘积项
Figure 198469DEST_PATH_IMAGE030
Figure 482820DEST_PATH_IMAGE031
完全覆盖的乘积项,并将函数
Figure 567451DEST_PATH_IMAGE005
更新成为
Figure 595450DEST_PATH_IMAGE032
,删除
Figure 777032DEST_PATH_IMAGE026
,删除
Figure 169968DEST_PATH_IMAGE012
,并执行步骤E;否则用公知布尔函数二级优化方法优化
Figure 69790DEST_PATH_IMAGE033
,得到优化结果为,并判断
Figure 108208DEST_PATH_IMAGE034
是否具有如下特性:
(3)、
Figure 734362DEST_PATH_IMAGE034
是否比
Figure 793585DEST_PATH_IMAGE013
更加简单;
(4)、定义
Figure 319561DEST_PATH_IMAGE036
Figure 54299DEST_PATH_IMAGE034
的二个乘积项;判断添加的乘积项
Figure 663135DEST_PATH_IMAGE023
是否同时仅被
Figure 571048DEST_PATH_IMAGE035
Figure 519412DEST_PATH_IMAGE036
包含;如果同时具有上面(3)和(4)两个特征,则从集合中删去被乘积项
Figure 19718DEST_PATH_IMAGE035
Figure 731323DEST_PATH_IMAGE036
完全覆盖的乘积项,并将函数
Figure 862090DEST_PATH_IMAGE005
更新成为
Figure 938630DEST_PATH_IMAGE037
,删除
Figure 256479DEST_PATH_IMAGE026
,删除,并执行步骤E;如果乘积项
Figure 694730DEST_PATH_IMAGE038
不符合特征(1)和(2)或者乘积项
Figure 4489DEST_PATH_IMAGE023
不符合特征(3)和(4),则从集合
Figure 747317DEST_PATH_IMAGE012
中删去乘积项
Figure 800724DEST_PATH_IMAGE011
,然后执行步骤C寻找另外一个和
Figure 640504DEST_PATH_IMAGE007
的广义海明距为2的乘积项;如果比较了中的所有乘积项都没有符合特征(1)和(2)或者符合特征(3)和(4),则将乘积项
Figure 115402DEST_PATH_IMAGE007
Figure 706921DEST_PATH_IMAGE006
中删除,并将函数
Figure 604469DEST_PATH_IMAGE005
更新为
Figure 256031DEST_PATH_IMAGE039
,删除
Figure 973451DEST_PATH_IMAGE026
,删除,执行步骤E;
步骤E. 如果
Figure 183032DEST_PATH_IMAGE006
中包含的乘积项的个数大于1,则执行步骤B到步骤D;如果
Figure 943178DEST_PATH_IMAGE006
中只包含了1个乘积项
Figure 210211DEST_PATH_IMAGE040
,则原逻辑函数f的最终简化结果为
Figure 409111DEST_PATH_IMAGE041
;如果
Figure 514208DEST_PATH_IMAGE006
为空集,则得到原逻辑函数f的最终简化结果
Figure 507572DEST_PATH_IMAGE005
图4至图6以4变量为例说明了本发明在搜索模式上与传统方法的异同点。图中字母“a”表示用本发明的方法添加上去的乘积项。图4为符合传统意义上海明距为2的二个乘积项的卡诺图简化方法。图4显示了3种符合传统海明距为2的情况。图5为传统方法与本方法搜索结果的比较。以图5(a)为例,假设待优化函数f原始的乘积项的集合为{},按照传统海明距定义,乘积项
Figure 202176DEST_PATH_IMAGE046
Figure 725561DEST_PATH_IMAGE047
的海明距为2,可以转化为“异或”表达式达到简化函数的目的,于是得到:
Figure 827509DEST_PATH_IMAGE048
;但是,如果函数f的乘积项的集合如图5(b)所示,即{
Figure 69135DEST_PATH_IMAGE049
},由于这3个乘积项不符合传统意义的海明距定义,因此不能进一步简化,即;但如果采用本方法,无论函数的乘积项构成是{
Figure 925412DEST_PATH_IMAGE045
},还是{
Figure 526158DEST_PATH_IMAGE049
},其最终都可以得到如图5(c)所示的简化结果,即
Figure 425719DEST_PATH_IMAGE051
;图5(c)中字母“a”对应的部分为添加的乘积项。图6是在4变量情况下,用传统海明距方法不能简化,但用本方法能进行逻辑简化的例子。
本方法通过添加特定乘积项的方法,将原来不相邻的乘积项通过新增加的乘积项连接起来,达到逻辑相邻,使得在电路面积优化上取得更好的结果。下面以图6(b)为例说明具体处理过程:
定义图6(b)逻辑函数为
Figure 770112DEST_PATH_IMAGE052
,即
Figure 2510DEST_PATH_IMAGE053
Figure 711841DEST_PATH_IMAGE052
优化后的函数定义为
Figure 662479DEST_PATH_IMAGE005
Figure 482667DEST_PATH_IMAGE052
的乘积项的集合定义为
Figure 835151DEST_PATH_IMAGE006
,即
Figure 777700DEST_PATH_IMAGE054
;并且令
Figure 153317DEST_PATH_IMAGE005
的初始值为“0”具体步骤为
1)、先取
Figure 839514DEST_PATH_IMAGE006
中第一个乘积项当作
Figure 46504DEST_PATH_IMAGE007
,即
Figure 596172DEST_PATH_IMAGE055
,在
Figure 521402DEST_PATH_IMAGE006
中找到与
Figure 683393DEST_PATH_IMAGE007
广义海明距为2的乘积项,只有一个为
Figure 10470DEST_PATH_IMAGE056
,所以得到
Figure 29241DEST_PATH_IMAGE057
2)、此时集合
Figure 379451DEST_PATH_IMAGE006
对应的逻辑函数就是,即
Figure 981968DEST_PATH_IMAGE058
。由于集合
Figure 616211DEST_PATH_IMAGE012
中只有一个乘积项,所以添加项由乘积项
Figure 618540DEST_PATH_IMAGE055
Figure 920209DEST_PATH_IMAGE056
来产生。按照步骤A的方法,得到的另外一种表示:
Figure 605585DEST_PATH_IMAGE059
,显然p i p 的对应array-DH ij ={1,5,4,1}。因此2个添加项可以通过取反乘积项p i 中第0位或第3位的变量来获得,即
Figure 975386DEST_PATH_IMAGE060
,其中p i 的第1位变量y没有出现在乘积项中。得到
Figure 866299DEST_PATH_IMAGE062
;进一步得到
Figure 320731DEST_PATH_IMAGE064
Figure 331412DEST_PATH_IMAGE065
Figure 299369DEST_PATH_IMAGE066
Figure 831719DEST_PATH_IMAGE067
3)定义函数
Figure 543323DEST_PATH_IMAGE026
,并令
Figure 346194DEST_PATH_IMAGE027
。由于此时
Figure 485051DEST_PATH_IMAGE068
,所以
Figure 68479DEST_PATH_IMAGE069
。优化
Figure 521457DEST_PATH_IMAGE070
,得到优化后的结果
Figure 241152DEST_PATH_IMAGE071
。显然在属于
Figure 550910DEST_PATH_IMAGE029
的乘积项中,找不到2个乘积项
Figure 559317DEST_PATH_IMAGE030
,使得
Figure 888722DEST_PATH_IMAGE019
同时仅被
Figure 369382DEST_PATH_IMAGE030
Figure 927403DEST_PATH_IMAGE031
包含;即添加项
Figure 456604DEST_PATH_IMAGE060
不满足特征(2),所以放弃。优化
Figure 150891DEST_PATH_IMAGE072
,得到优化后的结果为
Figure 5714DEST_PATH_IMAGE073
,乘积项
Figure 785451DEST_PATH_IMAGE074
Figure 180660DEST_PATH_IMAGE075
分别对应步骤D中的
Figure 755178DEST_PATH_IMAGE036
。考虑到表达式
Figure 458430DEST_PATH_IMAGE034
Figure 657330DEST_PATH_IMAGE013
简单,并且乘积项
Figure 326209DEST_PATH_IMAGE076
同时仅被
Figure 257256DEST_PATH_IMAGE074
Figure 11585DEST_PATH_IMAGE075
所包含,因此满足步骤D中的特征(3)和(4)。所以函数
Figure 686280DEST_PATH_IMAGE005
可以更新成为。由于
Figure 639510DEST_PATH_IMAGE006
中的4个乘积项
Figure 818818DEST_PATH_IMAGE078
都被
Figure 93942DEST_PATH_IMAGE074
Figure 737413DEST_PATH_IMAGE075
完全覆盖,所以这4个乘积项都可以删除,这样
Figure 237719DEST_PATH_IMAGE006
就变成了空集,因此在步骤E中就可以得到逻辑函数f的最终优化结果就是
Figure 254216DEST_PATH_IMAGE079
。对于这个函数,如果通过寻找传统海明距为2的乘积项的方法是无法化简到
Figure 752194DEST_PATH_IMAGE079
这个程度的。
4)、为了对本方法在减少电路面积方面的作用有一个直观的了解,现仍然以式(1)为例,采用本方法可以得到式(3)的表示形式。
Figure 523841DEST_PATH_IMAGE080
                             (3)
与式(3)对应的电路见图3。
表3列出了与式(2)对应的数字电路(如图2所示)和式(3)对应的数字电路(如图3所示)的比较结果。 
图2电路 图3电路
逻辑与门 6 2
逻辑或门 2 0
逻辑异或门 1 1
表3
从表3可知无论是使用的门的种类,还是门的数量,本发明的方法在减少电路的面积上获得明显的改进。

Claims (1)

1.一种减少数字逻辑电路面积的方法,其特征在于待优化的逻辑函数定义为ff优化后的函数定义为                                                
Figure 2011100521645100001DEST_PATH_IMAGE001
 f的乘积项的集合定义为
Figure 208350DEST_PATH_IMAGE002
;若
Figure 411186DEST_PATH_IMAGE002
中含有w个乘积项,其中任意一个乘积项定义为
Figure 2011100521645100001DEST_PATH_IMAGE003
Figure 480642DEST_PATH_IMAGE004
表示乘积项
Figure 957760DEST_PATH_IMAGE003
的维数,即对于一个含有n个变量的函数,如果逻辑函数f的某个乘积项
Figure 226541DEST_PATH_IMAGE003
含有m个变量,m≤n,则
Figure 789109DEST_PATH_IMAGE003
的维数为;并且令
Figure 272043DEST_PATH_IMAGE001
的初始值为“0”;具体步骤为:
步骤A.定义广义海明距:对于一个给定的含有n个变量的逻辑函数f,它的任意两个乘积项为
Figure 872176DEST_PATH_IMAGE006
,其中ij都不大于w;乘积项
Figure 110259DEST_PATH_IMAGE003
Figure 2011100521645100001DEST_PATH_IMAGE007
之间的广义海明距表示各输入变量在
Figure 284758DEST_PATH_IMAGE003
Figure 636629DEST_PATH_IMAGE007
中取值的差异;广义海明距大小等于同时符合下面2个条件的变量的个数:①、变量在
Figure 822760DEST_PATH_IMAGE003
Figure 231744DEST_PATH_IMAGE007
中都出现;②、变量在和中取值形式为互补; 
步骤B.在乘积项的集合中任选一个乘积项
Figure 293001DEST_PATH_IMAGE003
;找出与乘积项
Figure 544990DEST_PATH_IMAGE003
广义海明距为2的所有乘积项,复制这些乘积项,得到一个与
Figure 569447DEST_PATH_IMAGE003
的广义海明距都为2的乘积项集合,定义为
步骤C.令乘积项集合
Figure 864655DEST_PATH_IMAGE002
对应的逻辑函数为
Figure 2011100521645100001DEST_PATH_IMAGE009
,在
Figure 477427DEST_PATH_IMAGE010
中任选一个乘积项
Figure 989179DEST_PATH_IMAGE007
,由
Figure 483615DEST_PATH_IMAGE003
Figure 498844DEST_PATH_IMAGE007
分别生成的二个添加乘积项,定义为
Figure 2011100521645100001DEST_PATH_IMAGE011
;其中生成的方法如下:①、按照广义海明距的定义,确定导致
Figure 219249DEST_PATH_IMAGE003
Figure 517375DEST_PATH_IMAGE007
的广义海明距为2的两个变量的位置,记为
Figure DEST_PATH_IMAGE013
Figure 780254DEST_PATH_IMAGE014
;②、比较
Figure 59794DEST_PATH_IMAGE003
Figure 295208DEST_PATH_IMAGE007
的维数,选取维数较小的乘积项来产生添加乘积项,如果乘积项
Figure 69129DEST_PATH_IMAGE003
和乘积项
Figure 58951DEST_PATH_IMAGE007
的维数一样,则任取一个;③、第一个添加乘积项
Figure 512322DEST_PATH_IMAGE011
等于将选中的乘积项中的第
Figure 158067DEST_PATH_IMAGE013
位变量取反;第二个添加乘积项
Figure 719368DEST_PATH_IMAGE012
等于将选中的乘积项的第位变量取反;对
Figure 266597DEST_PATH_IMAGE011
进行如下运算
Figure DEST_PATH_IMAGE015
,并将
Figure 651835DEST_PATH_IMAGE016
添加到函数
Figure 954509DEST_PATH_IMAGE009
中,得到
Figure 2011100521645100001DEST_PATH_IMAGE017
;对
Figure 640062DEST_PATH_IMAGE012
执行如下运算
Figure 2011100521645100001DEST_PATH_IMAGE019
,并将
Figure 371651DEST_PATH_IMAGE020
添加到函数
Figure 353382DEST_PATH_IMAGE009
中,得到
Figure 2011100521645100001DEST_PATH_IMAGE021
Figure 362183DEST_PATH_IMAGE022
步骤D.定义函数
Figure 2011100521645100001DEST_PATH_IMAGE023
,并令
Figure 449962DEST_PATH_IMAGE024
;用公知布尔函数二级优化方法优化
Figure 2011100521645100001DEST_PATH_IMAGE025
,得到优化结果为
Figure 747476DEST_PATH_IMAGE026
,并判断
Figure 267319DEST_PATH_IMAGE026
是否具有如下特性:
(1)、
Figure 940746DEST_PATH_IMAGE026
是否比
Figure 168070DEST_PATH_IMAGE009
更加简单; 
(2)、定义
Figure 2011100521645100001DEST_PATH_IMAGE027
Figure 684371DEST_PATH_IMAGE028
Figure 7905DEST_PATH_IMAGE026
的二个乘积项;判断添加的乘积项
Figure 476451DEST_PATH_IMAGE016
是否同时仅被
Figure 46978DEST_PATH_IMAGE027
Figure 863624DEST_PATH_IMAGE028
包含;
如果同时具有上面(1)和(2)两个特征,则从集合
Figure 915150DEST_PATH_IMAGE002
中删去被乘积项
Figure 563169DEST_PATH_IMAGE027
Figure 117648DEST_PATH_IMAGE028
完全覆盖的乘积项,并将函数
Figure 221257DEST_PATH_IMAGE001
更新成为
Figure 2011100521645100001DEST_PATH_IMAGE029
,删除,删除
Figure 717015DEST_PATH_IMAGE010
,并执行步骤E;否则用公知布尔函数二级优化方法优化
Figure 230343DEST_PATH_IMAGE030
,得到优化结果为
Figure 2011100521645100001DEST_PATH_IMAGE031
,并判断
Figure 270850DEST_PATH_IMAGE031
是否具有如下特性:
(3)、
Figure 601861DEST_PATH_IMAGE031
是否比
Figure 224472DEST_PATH_IMAGE009
更加简单; 
    (4)、定义
Figure 45054DEST_PATH_IMAGE032
Figure 635173DEST_PATH_IMAGE031
的二个乘积项;判断添加的乘积项
Figure 769876DEST_PATH_IMAGE020
是否同时仅被
Figure 246994DEST_PATH_IMAGE032
Figure 251859DEST_PATH_IMAGE033
包含;如果同时具有上面(3)和(4)两个特征,则从集合
Figure 953709DEST_PATH_IMAGE002
中删去被乘积项
Figure 685911DEST_PATH_IMAGE032
Figure 286044DEST_PATH_IMAGE033
完全覆盖的乘积项,并将函数
Figure 258548DEST_PATH_IMAGE001
更新成为
Figure 308413DEST_PATH_IMAGE034
,删除
Figure 657354DEST_PATH_IMAGE023
,删除
Figure 111994DEST_PATH_IMAGE010
,并执行步骤E;如果乘积项
Figure 2011100521645100001DEST_PATH_IMAGE035
不符合特征(1)和(2)或者乘积项
Figure 707929DEST_PATH_IMAGE020
不符合特征(3)和(4),则从集合
Figure 248020DEST_PATH_IMAGE010
中删去乘积项
Figure 322024DEST_PATH_IMAGE007
,然后执行步骤C寻找另外一个和
Figure 744085DEST_PATH_IMAGE003
的广义海明距为2的乘积项;如果比较了
Figure 261654DEST_PATH_IMAGE010
中的所有乘积项都没有符合特征(1)和(2)或者符合特征(3)和(4),则将乘积项中删除,并将函数
Figure 265141DEST_PATH_IMAGE001
更新为
Figure 140562DEST_PATH_IMAGE036
,删除
Figure 842195DEST_PATH_IMAGE023
,删除
Figure 572516DEST_PATH_IMAGE010
,执行步骤E;
步骤E. 如果
Figure 929741DEST_PATH_IMAGE002
中包含的乘积项的个数大于1,则执行步骤B到步骤D;如果
Figure 913746DEST_PATH_IMAGE002
中只包含了1个乘积项
Figure 2011100521645100001DEST_PATH_IMAGE037
,则原逻辑函数f的最终简化结果为;如果
Figure 197539DEST_PATH_IMAGE002
为空集,则得到原逻辑函数f的最终简化结果
Figure 335784DEST_PATH_IMAGE001
CN 201110052164 2011-03-04 2011-03-04 一种减少数字逻辑电路面积的方法 Expired - Fee Related CN102185606B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201110052164 CN102185606B (zh) 2011-03-04 2011-03-04 一种减少数字逻辑电路面积的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110052164 CN102185606B (zh) 2011-03-04 2011-03-04 一种减少数字逻辑电路面积的方法

Publications (2)

Publication Number Publication Date
CN102185606A true CN102185606A (zh) 2011-09-14
CN102185606B CN102185606B (zh) 2013-05-01

Family

ID=44571685

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110052164 Expired - Fee Related CN102185606B (zh) 2011-03-04 2011-03-04 一种减少数字逻辑电路面积的方法

Country Status (1)

Country Link
CN (1) CN102185606B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103259531A (zh) * 2012-02-17 2013-08-21 京微雅格(北京)科技有限公司 一种反相器消除的方法
CN106960072A (zh) * 2017-01-18 2017-07-18 宁波大学 数字组合逻辑电路输出发生线“或”短接故障的检测方法
CN106959413A (zh) * 2017-01-18 2017-07-18 宁波大学 数字组合逻辑电路输出发生线与短接故障的检测方法
CN107517055A (zh) * 2017-08-16 2017-12-26 宁波大学 一种cmos数字逻辑电路的设计方法
CN110880932A (zh) * 2019-11-12 2020-03-13 宁波大学 一种逻辑电路近似实现方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104778499B (zh) * 2015-04-20 2017-07-07 北京航空航天大学 一种混合极性Reed‑Muller逻辑电路的最佳极性搜索方法
CN110022202B (zh) * 2019-03-12 2020-10-27 中国科学院软件研究所 一种搜索s盒的最少硬件实现门数的方法和s盒电路结构

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040155676A1 (en) * 2003-02-11 2004-08-12 Sinan Kaptanoglu Fracturable incomplete look up table for area efficient logic elements
CN1924868A (zh) * 2005-09-02 2007-03-07 上海集成电路研发中心有限公司 一种缩小集成电路芯片面积的方法
CN101339571A (zh) * 2007-11-01 2009-01-07 复旦大学 一种vlsi布局规划中集中约束的实现方法
CN101488745A (zh) * 2009-03-02 2009-07-22 宁波大学 一种减少数字逻辑电路面积的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040155676A1 (en) * 2003-02-11 2004-08-12 Sinan Kaptanoglu Fracturable incomplete look up table for area efficient logic elements
CN1924868A (zh) * 2005-09-02 2007-03-07 上海集成电路研发中心有限公司 一种缩小集成电路芯片面积的方法
CN101339571A (zh) * 2007-11-01 2009-01-07 复旦大学 一种vlsi布局规划中集中约束的实现方法
CN101488745A (zh) * 2009-03-02 2009-07-22 宁波大学 一种减少数字逻辑电路面积的方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103259531A (zh) * 2012-02-17 2013-08-21 京微雅格(北京)科技有限公司 一种反相器消除的方法
CN106960072A (zh) * 2017-01-18 2017-07-18 宁波大学 数字组合逻辑电路输出发生线“或”短接故障的检测方法
CN106959413A (zh) * 2017-01-18 2017-07-18 宁波大学 数字组合逻辑电路输出发生线与短接故障的检测方法
CN106959413B (zh) * 2017-01-18 2019-04-16 宁波大学 数字组合逻辑电路输出发生线“与”短接故障的检测方法
CN106960072B (zh) * 2017-01-18 2019-08-06 宁波大学 数字组合逻辑电路输出发生线“或”短接故障的检测方法
CN107517055A (zh) * 2017-08-16 2017-12-26 宁波大学 一种cmos数字逻辑电路的设计方法
CN107517055B (zh) * 2017-08-16 2020-07-03 宁波大学 一种cmos数字逻辑电路的设计方法
CN110880932A (zh) * 2019-11-12 2020-03-13 宁波大学 一种逻辑电路近似实现方法
CN110880932B (zh) * 2019-11-12 2023-05-12 宁波大学 一种逻辑电路近似实现方法

Also Published As

Publication number Publication date
CN102185606B (zh) 2013-05-01

Similar Documents

Publication Publication Date Title
CN102185606A (zh) 一种减少数字逻辑电路面积的方法
Kilts Advanced FPGA design: architecture, implementation, and optimization
US9292644B2 (en) Row based analog standard cell layout design and methodology
CN101488745A (zh) 一种减少数字逻辑电路面积的方法
Pishvaie et al. High-performance CMOS (4: 2) compressors
CN103236837B (zh) 一种数字逻辑电路的子电路提取方法
CN102323964A (zh) 一种数字电路网表数据的处理方法
US20210056175A1 (en) Synergistic design method for fabricating integrated circuit
US7512911B1 (en) Method for creating a parameterized cell library dual-layered rule system for rapid technology migration
CN114611439A (zh) 一种降低电路动态功耗的方法
Marshal et al. Fault resistant coplanar QCA full adder-subtractor using clock zone-based crossover
Chang et al. Type-matching clock tree for zero skew clock gating
Azimi et al. Ternary DDCVSL: a combined dynamic logic style for standard ternary logic with single power source
Moon et al. Design and allocation of loosely coupled multi-bit flip-flops for power reduction in post-placement optimization
US20040143799A1 (en) Method of resolving missing graphical symbols in computer-aided integrated circuit design
Motaqi et al. Detailed implementation of asynchronous circuits on commercial FPGAs
US8555232B2 (en) Wire routing using virtual landing pads
CN109408873B (zh) 一种多维阵列信号控制方法、装置及计算机可读存储介质
CN113515908A (zh) 驱动矩阵及其生成方法、门电路信息的表示方法、图
Metku et al. Novel area-efficient null convention logic based on cmos and gate diffusion input (Gdi) hybrid
CN102385648A (zh) 一种芯片设计中减少拥塞的方法和系统
Fathi et al. Design and performance analysis of an ultra‐high‐speed 5‐2 compressor
Jiang et al. Theory of expansion Boolean algebra and its applications in CMOS VLSI digital systems
CN106125877A (zh) 用于智能地交换电路单元的方法和智能单元交换器
De Feyter The embedding in AG (3, q) of (0, 2)-geometries containing a planar net

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130501

Termination date: 20160304

CF01 Termination of patent right due to non-payment of annual fee