发明名称 一种减少数字逻辑电路面积的方法
摘要 本发明公开了一种减少数字逻辑电路面积的方法,通过利用异或操作<img file="dest_path_image001.GIF" wi="52" he="17" />的特性,生成特定的乘积项添加到被优化函数中,由于新的乘积项的加入,可以使原来逻辑不相邻的乘积项因添加项的插入而逻辑相邻,从而实现逻辑的优化,其优点在于判明存在广义海明距为2的二个乘积项后,并不马上将这二个乘积项构成一个异或表达式,而是先产生相应的添加项,然后通过相应的评估方法来判断添加项是否适合函数的简化。因为逻辑函数的复杂程度与对应的数字电路的复杂程度密切有关,简单的逻辑函数往往对应着较小的电路面积,通过简化逻辑函数的方法达到了减少数字逻辑电路面积的目的。
申请公布号 CN102185606A 申请公布日期 2011.09.14
申请号 CN201110052164.5 申请日期 2011.03.04
申请人 宁波大学 发明人 王伦耀;夏银水
分类号 H03K19/173(2006.01)I 主分类号 H03K19/173(2006.01)I
代理机构 宁波奥圣专利代理事务所(普通合伙) 33226 代理人 邱积权
主权项 1.一种减少数字逻辑电路面积的方法,其特征在于待优化的逻辑函数定义为<i>f</i>,<i>f</i>优化后的函数定义为<img file="2011100521645100001DEST_PATH_IMAGE001.GIF" wi="24" he="26" />;<i> f</i>的乘积项的集合定义为<img file="208350DEST_PATH_IMAGE002.GIF" wi="21" he="26" />;若<img file="411186DEST_PATH_IMAGE002.GIF" wi="21" he="26" />中含有w个乘积项,其中任意一个乘积项定义为<img file="2011100521645100001DEST_PATH_IMAGE003.GIF" wi="18" he="25" />;<img file="480642DEST_PATH_IMAGE004.GIF" wi="26" he="26" />表示乘积项<img file="957760DEST_PATH_IMAGE003.GIF" wi="18" he="25" />的维数,即对于一个含有<i>n</i>个变量的函数,如果逻辑函数<i>f</i>的某个乘积项<img file="226541DEST_PATH_IMAGE003.GIF" wi="18" he="25" />含有<i>m</i>个变量,<i>m≤n</i>,则<img file="789109DEST_PATH_IMAGE003.GIF" wi="18" he="25" />的维数为<img file="2011100521645100001DEST_PATH_IMAGE005.GIF" wi="89" he="26" />;并且令<img file="272043DEST_PATH_IMAGE001.GIF" wi="24" he="26" />的初始值为“0”;具体步骤为:步骤A.定义广义海明距:对于一个给定的含有<i>n</i>个变量的逻辑函数<i>f</i>,它的任意两个乘积项为<img file="872176DEST_PATH_IMAGE006.GIF" wi="81" he="26" />,其中<i>i</i>和<i>j</i>都不大于w;乘积项<img file="110259DEST_PATH_IMAGE003.GIF" wi="18" he="25" />和<img file="2011100521645100001DEST_PATH_IMAGE007.GIF" wi="21" he="26" />之间的广义海明距表示各输入变量在<img file="284758DEST_PATH_IMAGE003.GIF" wi="18" he="25" />和<img file="636629DEST_PATH_IMAGE007.GIF" wi="21" he="26" />中取值的差异;广义海明距大小等于同时符合下面2个条件的变量的个数:①、变量在<img file="822760DEST_PATH_IMAGE003.GIF" wi="18" he="25" />和<img file="231744DEST_PATH_IMAGE007.GIF" wi="21" he="26" />中都出现;②、变量在<img file="768905DEST_PATH_IMAGE003.GIF" wi="18" he="25" />和中取值形式为互补;步骤B.在乘积项的集合<img file="986784DEST_PATH_IMAGE002.GIF" wi="21" he="26" />中任选一个乘积项<img file="293001DEST_PATH_IMAGE003.GIF" wi="18" he="25" />;找出与乘积项<img file="544990DEST_PATH_IMAGE003.GIF" wi="18" he="25" />广义海明距为2的所有乘积项,复制这些乘积项,得到一个与<img file="569447DEST_PATH_IMAGE003.GIF" wi="18" he="25" />的广义海明距都为2的乘积项集合,定义为<img file="251402DEST_PATH_IMAGE008.GIF" wi="59" he="26" />;步骤C.令乘积项集合<img file="864655DEST_PATH_IMAGE002.GIF" wi="21" he="26" />对应的逻辑函数为<img file="2011100521645100001DEST_PATH_IMAGE009.GIF" wi="18" he="25" />,在<img file="477427DEST_PATH_IMAGE010.GIF" wi="60" he="26" />中任选一个乘积项<img file="989179DEST_PATH_IMAGE007.GIF" wi="21" he="26" />,由<img file="483615DEST_PATH_IMAGE003.GIF" wi="18" he="25" />和<img file="498844DEST_PATH_IMAGE007.GIF" wi="21" he="26" />分别生成的二个添加乘积项,定义为<img file="2011100521645100001DEST_PATH_IMAGE011.GIF" wi="36" he="25" />和<img file="485779DEST_PATH_IMAGE012.GIF" wi="37" he="25" />;其中生成的方法如下:①、按照广义海明距的定义,确定导致<img file="219249DEST_PATH_IMAGE003.GIF" wi="18" he="25" />和<img file="517375DEST_PATH_IMAGE007.GIF" wi="21" he="26" />的广义海明距为2的两个变量的位置,记为<img file="DEST_PATH_IMAGE013.GIF" wi="17" he="25" />和<img file="780254DEST_PATH_IMAGE014.GIF" wi="18" he="25" />;②、比较<img file="59794DEST_PATH_IMAGE003.GIF" wi="18" he="25" />和<img file="295208DEST_PATH_IMAGE007.GIF" wi="21" he="26" />的维数,选取维数较小的乘积项来产生添加乘积项,如果乘积项<img file="69129DEST_PATH_IMAGE003.GIF" wi="18" he="25" />和乘积项<img file="58951DEST_PATH_IMAGE007.GIF" wi="21" he="26" />的维数一样,则任取一个;③、第一个添加乘积项<img file="512322DEST_PATH_IMAGE011.GIF" wi="36" he="25" />等于将选中的乘积项中的第<img file="158067DEST_PATH_IMAGE013.GIF" wi="17" he="25" />位变量取反;第二个添加乘积项<img file="719368DEST_PATH_IMAGE012.GIF" wi="37" he="25" />等于将选中的乘积项的第<img file="832205DEST_PATH_IMAGE014.GIF" wi="18" he="25" />位变量取反;对<img file="266597DEST_PATH_IMAGE011.GIF" wi="36" he="25" />进行如下运算<img file="DEST_PATH_IMAGE015.GIF" wi="164" he="26" />,并将<img file="651835DEST_PATH_IMAGE016.GIF" wi="36" he="25" />添加到函数<img file="954509DEST_PATH_IMAGE009.GIF" wi="18" he="25" />中,得到<img file="2011100521645100001DEST_PATH_IMAGE017.GIF" wi="92" he="25" />,<img file="34768DEST_PATH_IMAGE018.GIF" wi="108" he="26" />;对<img file="640062DEST_PATH_IMAGE012.GIF" wi="37" he="25" />执行如下运算<img file="2011100521645100001DEST_PATH_IMAGE019.GIF" wi="169" he="26" />,并将<img file="371651DEST_PATH_IMAGE020.GIF" wi="37" he="25" />添加到函数<img file="353382DEST_PATH_IMAGE009.GIF" wi="18" he="25" />中,得到<img file="2011100521645100001DEST_PATH_IMAGE021.GIF" wi="96" he="25" />,<img file="362183DEST_PATH_IMAGE022.GIF" wi="108" he="26" />;步骤D.定义函数<img file="2011100521645100001DEST_PATH_IMAGE023.GIF" wi="24" he="26" />,并令<img file="449962DEST_PATH_IMAGE024.GIF" wi="60" he="26" />;用公知布尔函数二级优化方法优化<img file="2011100521645100001DEST_PATH_IMAGE025.GIF" wi="21" he="24" />,得到优化结果为<img file="747476DEST_PATH_IMAGE026.GIF" wi="28" he="26" />,并判断<img file="267319DEST_PATH_IMAGE026.GIF" wi="28" he="26" />是否具有如下特性:(1)、<img file="940746DEST_PATH_IMAGE026.GIF" wi="28" he="26" />是否比<img file="168070DEST_PATH_IMAGE009.GIF" wi="18" he="25" />更加简单;(2)、定义<img file="2011100521645100001DEST_PATH_IMAGE027.GIF" wi="22" he="25" />和<img file="684371DEST_PATH_IMAGE028.GIF" wi="25" he="26" />为<img file="7905DEST_PATH_IMAGE026.GIF" wi="28" he="26" />的二个乘积项;判断添加的乘积项<img file="476451DEST_PATH_IMAGE016.GIF" wi="36" he="25" />是否同时仅被<img file="46978DEST_PATH_IMAGE027.GIF" wi="22" he="25" />和<img file="863624DEST_PATH_IMAGE028.GIF" wi="25" he="26" />包含;如果同时具有上面(1)和(2)两个特征,则从集合<img file="915150DEST_PATH_IMAGE002.GIF" wi="21" he="26" />中删去被乘积项<img file="563169DEST_PATH_IMAGE027.GIF" wi="22" he="25" />和<img file="117648DEST_PATH_IMAGE028.GIF" wi="25" he="26" />完全覆盖的乘积项,并将函数<img file="221257DEST_PATH_IMAGE001.GIF" wi="24" he="26" />更新成为<img file="2011100521645100001DEST_PATH_IMAGE029.GIF" wi="106" he="26" />,删除<img file="11228DEST_PATH_IMAGE023.GIF" wi="24" he="26" />,删除<img file="717015DEST_PATH_IMAGE010.GIF" wi="60" he="26" />,并执行步骤E;否则用公知布尔函数二级优化方法优化<img file="230343DEST_PATH_IMAGE030.GIF" wi="21" he="24" />,得到优化结果为<img file="2011100521645100001DEST_PATH_IMAGE031.GIF" wi="29" he="26" />,并判断<img file="270850DEST_PATH_IMAGE031.GIF" wi="29" he="26" />是否具有如下特性:(3)、<img file="601861DEST_PATH_IMAGE031.GIF" wi="29" he="26" />是否比<img file="224472DEST_PATH_IMAGE009.GIF" wi="18" he="25" />更加简单;(4)、定义<img file="45054DEST_PATH_IMAGE032.GIF" wi="25" he="25" />和<img file="2011100521645100001DEST_PATH_IMAGE033.GIF" wi="26" he="26" />为<img file="635173DEST_PATH_IMAGE031.GIF" wi="29" he="26" />的二个乘积项;判断添加的乘积项<img file="769876DEST_PATH_IMAGE020.GIF" wi="37" he="25" />是否同时仅被<img file="246994DEST_PATH_IMAGE032.GIF" wi="25" he="25" />和<img file="251859DEST_PATH_IMAGE033.GIF" wi="26" he="26" />包含;如果同时具有上面(3)和(4)两个特征,则从集合<img file="953709DEST_PATH_IMAGE002.GIF" wi="21" he="26" />中删去被乘积项<img file="685911DEST_PATH_IMAGE032.GIF" wi="25" he="25" />和<img file="286044DEST_PATH_IMAGE033.GIF" wi="26" he="26" />完全覆盖的乘积项,并将函数<img file="258548DEST_PATH_IMAGE001.GIF" wi="24" he="26" />更新成为<img file="308413DEST_PATH_IMAGE034.GIF" wi="109" he="26" />,删除<img file="657354DEST_PATH_IMAGE023.GIF" wi="24" he="26" />,删除<img file="111994DEST_PATH_IMAGE010.GIF" wi="60" he="26" />,并执行步骤E;如果乘积项<img file="2011100521645100001DEST_PATH_IMAGE035.GIF" wi="34" he="25" />不符合特征(1)和(2)或者乘积项<img file="707929DEST_PATH_IMAGE020.GIF" wi="37" he="25" />不符合特征(3)和(4),则从集合<img file="248020DEST_PATH_IMAGE010.GIF" wi="60" he="26" />中删去乘积项<img file="322024DEST_PATH_IMAGE007.GIF" wi="21" he="26" />,然后执行步骤C寻找另外一个和<img file="744085DEST_PATH_IMAGE003.GIF" wi="18" he="25" />的广义海明距为2的乘积项;如果比较了<img file="261654DEST_PATH_IMAGE010.GIF" wi="60" he="26" />中的所有乘积项都没有符合特征(1)和(2)或者符合特征(3)和(4),则将乘积项<img file="410744DEST_PATH_IMAGE003.GIF" wi="18" he="25" />从<img file="104418DEST_PATH_IMAGE002.GIF" wi="21" he="26" />中删除,并将函数<img file="265141DEST_PATH_IMAGE001.GIF" wi="24" he="26" />更新为<img file="140562DEST_PATH_IMAGE036.GIF" wi="65" he="26" />,删除<img file="842195DEST_PATH_IMAGE023.GIF" wi="24" he="26" />,删除<img file="572516DEST_PATH_IMAGE010.GIF" wi="60" he="26" />,执行步骤E;步骤E. 如果<img file="929741DEST_PATH_IMAGE002.GIF" wi="21" he="26" />中包含的乘积项的个数大于1,则执行步骤B到步骤D;如果<img file="913746DEST_PATH_IMAGE002.GIF" wi="21" he="26" />中只包含了1个乘积项<img file="2011100521645100001DEST_PATH_IMAGE037.GIF" wi="21" he="25" />,则原逻辑函数<i>f</i>的最终简化结果为<img file="961730DEST_PATH_IMAGE038.GIF" wi="66" he="26" />;如果<img file="197539DEST_PATH_IMAGE002.GIF" wi="21" he="26" />为空集,则得到原逻辑函数<i>f</i>的最终简化结果<img file="335784DEST_PATH_IMAGE001.GIF" wi="24" he="26" />。
地址 315211 浙江省宁波市江北区风华路818号