CN102185606A - 一种减少数字逻辑电路面积的方法 - Google Patents
一种减少数字逻辑电路面积的方法 Download PDFInfo
- 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
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的表达式为:
与式(1)对应的采用二输入逻辑门实现的电路可以表示为图1。
与式(2)对应的采用二输入逻辑门实现的电路如图2所示。
图1电路 | 图2电路 | |
逻辑与门 | 10 | 6 |
逻辑或门 | 3 | 2 |
逻辑异或门 | 0 | 1 |
表1
发明内容
本发明所要解决的技术问题是提供一种减少数字逻辑电路面积的方法。通过利用广义海明距搜索适合“异或”逻辑实现的逻辑乘积项,并用“异或”逻辑实现这些逻辑乘积项对应的逻辑,从而实现减少与该逻辑函数对应的数字逻辑电路面积的目的。
本发明解决上述技术问题所采用的技术方案为:一种减少数字逻辑电路面积的方法,待优化的逻辑函数定义为f,f优化后的函数定义为; f的乘积项的集合定义为;若中含有w个乘积项,其中任意一个乘积项定义为;表示乘积项的维数,即对于一个含有n个变量的函数,如果逻辑函数f的某个乘积项含有m个变量,m≤n,则的维数为;并且令的初始值为“0”;具体步骤为:
步骤A.定义广义海明距:对于一个给定的含有n个变量的逻辑函数f,它的任意两个乘积项为,其中i和j都不大于w;乘积项和之间的广义海明距表示各输入变量在和中取值的差异;广义海明距大小等于同时符合下面2个条件的变量的个数:①、变量在和中都出现;②、变量在和中取值形式为互补;
步骤C.令乘积项集合对应的逻辑函数为,在中任选一个乘积项,由和分别生成的二个添加乘积项,定义为和;其中生成的方法如下:①、按照广义海明距的定义,确定导致和的广义海明距为2的两个变量的位置,记为和;②、比较和的维数,选取维数较小的乘积项来产生添加乘积项,如果乘积项和乘积项的维数一样,则任取一个;③、第一个添加乘积项等于将选中的乘积项中的第位变量取反;第二个添加乘积项等于将选中的乘积项的第位变量取反;对进行如下运算,并将添加到函数中,得到,;对执行如下运算,并将添加到函数中,得到,;
如果同时具有上面(1)和(2)两个特征,则从集合中删去被乘积项和完全覆盖的乘积项,并将函数更新成为,删除,删除,并执行步骤E;否则用公知布尔函数二级优化方法优化,得到优化结果为,并判断是否具有如下特性:
(4)、定义和为的二个乘积项;判断添加的乘积项是否同时仅被和包含;如果同时具有上面(3)和(4)两个特征,则从集合中删去被乘积项和完全覆盖的乘积项,并将函数更新成为,删除,删除,并执行步骤E;如果乘积项不符合特征(1)和(2)或者乘积项不符合特征(3)和(4),则从集合中删去乘积项,然后执行步骤C寻找另外一个和的广义海明距为2的乘积项;如果比较了中的所有乘积项都没有符合特征(1)和(2)或者符合特征(3)和(4),则将乘积项从中删除,并将函数更新为,删除,删除,执行步骤E;
与现有技术相比,本发明的优点在于:1)原来传统意义上的海明距仅仅是本发明提出的广义海明距的一个特例;2)当发现存在广义海明距为2的二个乘积项后,并不马上将这二个乘积项构成一个异或表达式,而是先产生添加项,然后通过相应的评估方法来判断添加项是否适合函数的简化。这种方法与传统方法相比的最大优点在于它不但能通过计算机搜索到传统方法可以找到的适合构成异或表达式的乘积项,而且能找到传统方法无法找到适合构成异或表达式的乘积项。因为逻辑函数的复杂程度与对应的数字电路的复杂程度密切有关,简单的逻辑函数往往对应着较小的电路面积,因此,可以通过简化逻辑函数的方法达到了减少数字逻辑电路面积的目的。
附图说明
图4为以4变量为例用传统方法与本发明方法都能搜索到的适合构成异或表达式的乘积项的卡诺图;该图例显示了可以构成“异或”逻辑的三种情况。
图5为以4变量为例用传统方法与本发明方法所得到的逻辑函数简化结果的差异对比的卡诺图。其中图5(a),(b)为采用传统简化的卡诺图,图5(a)和(b)中画圈的乘积项可以构成“异或”逻辑;图5(c)为采用本发明方法简化的卡诺图;
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
实施例:
一种减少数字逻辑电路面积的方法,待优化的逻辑函数定义为f,f优化后的函数定义为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,它的任意两个乘积项为,其中i和j都不大于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”。这样乘积项分别可以用一维数组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 |
步骤C.令乘积项集合对应的逻辑函数为,在中任选一个乘积项,由和分别生成的二个添加乘积项,定义为和;其中生成的方法如下:①、按照广义海明距的定义,确定导致和的广义海明距为2的两个变量的位置,记为和;②、比较和的维数,选取维数较小的乘积项来产生添加乘积项,如果乘积项和乘积项的维数一样,则任取一个;③、第一个添加乘积项等于将选中的乘积项中的第位变量取反;第二个添加乘积项等于将选中的乘积项的第位变量取反;对进行如下运算,并将添加到函数中,得到,;对执行如下运算,并将添加到函数中,得到,;
如果同时具有上面(1)和(2)两个特征,则从集合中删去被乘积项和完全覆盖的乘积项,并将函数更新成为,删除,删除,并执行步骤E;否则用公知布尔函数二级优化方法优化,得到优化结果为,并判断是否具有如下特性:
(4)、定义和为的二个乘积项;判断添加的乘积项是否同时仅被和包含;如果同时具有上面(3)和(4)两个特征,则从集合中删去被乘积项和完全覆盖的乘积项,并将函数更新成为,删除,删除,并执行步骤E;如果乘积项不符合特征(1)和(2)或者乘积项不符合特征(3)和(4),则从集合中删去乘积项,然后执行步骤C寻找另外一个和的广义海明距为2的乘积项;如果比较了中的所有乘积项都没有符合特征(1)和(2)或者符合特征(3)和(4),则将乘积项从中删除,并将函数更新为,删除,删除,执行步骤E;
图4至图6以4变量为例说明了本发明在搜索模式上与传统方法的异同点。图中字母“a”表示用本发明的方法添加上去的乘积项。图4为符合传统意义上海明距为2的二个乘积项的卡诺图简化方法。图4显示了3种符合传统海明距为2的情况。图5为传统方法与本方法搜索结果的比较。以图5(a)为例,假设待优化函数f原始的乘积项的集合为{},按照传统海明距定义,乘积项和的海明距为2,可以转化为“异或”表达式达到简化函数的目的,于是得到:;但是,如果函数f的乘积项的集合如图5(b)所示,即{},由于这3个乘积项不符合传统意义的海明距定义,因此不能进一步简化,即;但如果采用本方法,无论函数的乘积项构成是{},还是{},其最终都可以得到如图5(c)所示的简化结果,即;图5(c)中字母“a”对应的部分为添加的乘积项。图6是在4变量情况下,用传统海明距方法不能简化,但用本方法能进行逻辑简化的例子。
本方法通过添加特定乘积项的方法,将原来不相邻的乘积项通过新增加的乘积项连接起来,达到逻辑相邻,使得在电路面积优化上取得更好的结果。下面以图6(b)为例说明具体处理过程:
2)、此时集合对应的逻辑函数就是,即。由于集合中只有一个乘积项,所以添加项由乘积项和来产生。按照步骤A的方法,得到的另外一种表示:,显然p i 和p j 的对应array-DH ij ={1,5,4,1}。因此2个添加项可以通过取反乘积项p i 中第0位或第3位的变量来获得,即和,其中p i 的第1位变量y没有出现在乘积项中。得到,;进一步得到,;,。
3)定义函数,并令。由于此时,所以。优化,得到优化后的结果。显然在属于的乘积项中,找不到2个乘积项和,使得同时仅被和包含;即添加项不满足特征(2),所以放弃。优化,得到优化后的结果为,乘积项和分别对应步骤D中的和。考虑到表达式比简单,并且乘积项同时仅被和所包含,因此满足步骤D中的特征(3)和(4)。所以函数可以更新成为。由于中的4个乘积项都被和完全覆盖,所以这4个乘积项都可以删除,这样就变成了空集,因此在步骤E中就可以得到逻辑函数f的最终优化结果就是。对于这个函数,如果通过寻找传统海明距为2的乘积项的方法是无法化简到这个程度的。
4)、为了对本方法在减少电路面积方面的作用有一个直观的了解,现仍然以式(1)为例,采用本方法可以得到式(3)的表示形式。
与式(3)对应的电路见图3。
表3列出了与式(2)对应的数字电路(如图2所示)和式(3)对应的数字电路(如图3所示)的比较结果。
图2电路 | 图3电路 | |
逻辑与门 | 6 | 2 |
逻辑或门 | 2 | 0 |
逻辑异或门 | 1 | 1 |
表3
从表3可知无论是使用的门的种类,还是门的数量,本发明的方法在减少电路的面积上获得明显的改进。
Claims (1)
1.一种减少数字逻辑电路面积的方法,其特征在于待优化的逻辑函数定义为f,f优化后的函数定义为 ; f的乘积项的集合定义为;若中含有w个乘积项,其中任意一个乘积项定义为;表示乘积项的维数,即对于一个含有n个变量的函数,如果逻辑函数f的某个乘积项含有m个变量,m≤n,则的维数为;并且令的初始值为“0”;具体步骤为:
步骤A.定义广义海明距:对于一个给定的含有n个变量的逻辑函数f,它的任意两个乘积项为,其中i和j都不大于w;乘积项和之间的广义海明距表示各输入变量在和中取值的差异;广义海明距大小等于同时符合下面2个条件的变量的个数:①、变量在和中都出现;②、变量在和中取值形式为互补;
步骤C.令乘积项集合对应的逻辑函数为,在中任选一个乘积项,由和分别生成的二个添加乘积项,定义为和;其中生成的方法如下:①、按照广义海明距的定义,确定导致和的广义海明距为2的两个变量的位置,记为和;②、比较和的维数,选取维数较小的乘积项来产生添加乘积项,如果乘积项和乘积项的维数一样,则任取一个;③、第一个添加乘积项等于将选中的乘积项中的第位变量取反;第二个添加乘积项等于将选中的乘积项的第位变量取反;对进行如下运算,并将添加到函数中,得到,;对执行如下运算,并将添加到函数中,得到,;
如果同时具有上面(1)和(2)两个特征,则从集合中删去被乘积项和完全覆盖的乘积项,并将函数更新成为,删除,删除,并执行步骤E;否则用公知布尔函数二级优化方法优化,得到优化结果为,并判断是否具有如下特性:
(4)、定义和为的二个乘积项;判断添加的乘积项是否同时仅被和包含;如果同时具有上面(3)和(4)两个特征,则从集合中删去被乘积项和完全覆盖的乘积项,并将函数更新成为,删除,删除,并执行步骤E;如果乘积项不符合特征(1)和(2)或者乘积项不符合特征(3)和(4),则从集合中删去乘积项,然后执行步骤C寻找另外一个和的广义海明距为2的乘积项;如果比较了中的所有乘积项都没有符合特征(1)和(2)或者符合特征(3)和(4),则将乘积项从中删除,并将函数更新为,删除,删除,执行步骤E;
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)
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)
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)
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 | 宁波大学 | 一种减少数字逻辑电路面积的方法 |
-
2011
- 2011-03-04 CN CN 201110052164 patent/CN102185606B/zh not_active Expired - Fee Related
Patent Citations (4)
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)
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 |