基于图编码的组合逻辑电路的自动合成方法

文档序号:7525665阅读:239来源:国知局
专利名称:基于图编码的组合逻辑电路的自动合成方法
技术领域
本发明属于组合逻辑电路设计领域。具体涉及一种基于“图”编码的组合逻辑电路的自动合成方法。

背景技术
组合逻辑电路是一种输出端子的值仅基于当前输入端子的值的逻辑电路。传统的组合逻辑电路的合成主要靠设计者个人的知识和相关的经验人工设计。但人工设计往往得不到最优的组合逻辑电路。
随着进化硬件(EHW)的迅速发展,大量的从生物学中借鉴过来的人工智能算法被成功地引入到数字电路自动设计领域。如GA算法,作为一种具有开创意义的寻找最优解或近似最优解的算法,已被应用在组合逻辑电路设计中并成功实现了一些较小规模的组合逻辑电路的自动合成。GA将组合逻辑电路编码成一个定长或变长的串结构,串中的每一位均表示电路中的某一元件或元件间的电气连接。种群中的个体(组合逻辑电路)通过交叉、变异等算子进行变异,并随着遗传代数的增加,逐步优化至生成设计要求的目标电路。组合逻辑电路自动合成领域另一重大的进展是GP算法的发现及引入。GP与GA最大的不同之处在于GP采用树形数据结构表示组合逻辑电路。在GP算法中,树型结构中的叶子节点表示电路中的输入端子,而树型结构中的父节点表示电路中的逻辑元件。电路亦通过交叉、变异等算子变异种群中的个体。相对于GA而言,GP表现出了更强的搜索能力和电路最优化能力。一些其他的人工智能算法也相继诞生并均被应用于组合逻辑电路的设计中。例如蚁群算法、注入式的遗传算法等等,但这些算法所采用的组合逻辑电路编码方式与GA和GP相似。不可否认的是,相对于传统的人工设计而言,这些新颖的人工智能算法能遍历更大的搜索空间,因此能生成更多的符合设计要求的目标电路。
最近,一种新的基于进化“图”的人工智能算法(EGG)被提出。EGG使用“图”结构表示电路并通过交叉和变异两种算子对“图”直接进行操作。尽管EGG能表示复杂的电路结构,但是EGG算法中的操作算子却需要进一步地优化。首先,EGG的变异算子仅仅改变“图”中部分顶点的值,因此变异算子并不涉及“图”结构的优化;其次,EGG的交叉算子是对两个已知图形结构的交换,因此这一算子也不能丰富某一种群中的图形结构多样性。由于这两种算子的局限性,EGG算法中种群多样性仅仅决定于种群初始化过程,而非变异过程。
综合分析目前组合逻辑电路的表示方法,主要有以下不足一是很多方法限制了电路结构的多样性,这些方法只能生成一些特定结构的电路;二是很多方法有很复杂的映射规则,在从编码映射到电路的过程中需要花费很多运算时间。


发明内容
本发明旨在克服上述技术不足,目的是提供一种可生成任意结构形式、映射简单和编码效率高的基于“图”编码的组合逻辑电路的自动合成方法。
为实现上述发明目的,本发明采用的技术方案是 第一步用“有向图”(简称“图”)表示组合逻辑电路,“图”G记作(V,E),V是“图”的顶点的集合,E是“图”的边的集合。其中 “图”的顶点分为输入顶点、输出顶点和中间顶点,输入顶点、输出顶点和中间顶点分别用VIN、VOUT和VMID表示;在进化过程中,VMID允许添加、删除或修改,VIN、VOUT禁止添加、删除或修改;VIN、VOUT分别表示组合逻辑电路的输入和输出端子;VMID表示组合逻辑电路中逻辑门的类型;逻辑门包括与门、或门、非门和异或门四种基本的逻辑门,其中与门、或门和异或门是两输入一输出的逻辑门,非门是一输入一输出的逻辑门。
“图”的边为有向边,表示逻辑门之间的连接。一条有向边e∈E仅能起始于某一顶点的输出端子并终止于另一顶点的输入端子,有向边中箭头表示信号流的方向,一条有向边被描述为Name[A-B];其中A、B分别是起始点A和终止点B,符号Ei(v)和Eo(v)分别表示连接至顶点v的输入端子的有向边集和输出端子的有向边集。
第二步设定目标组合逻辑电路的真值表和最大循环次数。
第三步模板组合逻辑电路是由一个两输入一输出的逻辑门、两个输入端子和一个输出端子组成的组合逻辑单元;种群中任意一个个体是一个组合逻辑电路的“图”编码形式,个体是在模板组合逻辑电路的基础上随机产生。个体产生的过程是向模板组合逻辑电路中随机添加新顶点,添加新顶点的个数和位置是随机的,在随机添加的新顶点和模板组合逻辑电路中的顶点之间添加有向边,直到该“图”满足规定的输入输出顶点数且不含环状结构为止。
个体产生的过程重复进行N次,N是大于等于1的整数,N个不同的个体表示N个不同的组合逻辑电路,从而形成种群P。
第四步评估种群P中所有个体所表示的组合逻辑电路的性能,即每个个体亲和力的计算。每个个体的亲和力等于它的功能亲和力与性能亲和力的和 Affinity=FV+PV(1) 式(1)中Fv是个体的功能亲和力; Pv是个体的性能亲和力。
功能亲和力Fv的计算公式为 式(2)中M是组合逻辑电路输入的个数; N是组合逻辑电路输出的个数; fvij的定义如下
式(3)中fj(xi)表示当输入为真值表的第i行时组合逻辑电路第j个输出端子的值; xi是真值表第i个变量; Pij表示真值表第i行第j个输出值。
性能亲和力Pv的计算公式为
式(4)中r表示组合逻辑电路的逻辑门数。
第五步将种群P中的N个体按照亲和力的大小降序排列,亲和力高的n(n<N)个个体被选中,形成临时种群PS,临时种群PS中的个体同样按照亲和力的大小降序排列。
第六步临时种群PS被克隆(复制),克隆后的个体形成克隆种群PC,克隆种群PC中第i个个体被克隆的份数与第i个个体的亲和力成正比 Ni=round(β*n/i)(5) 式(5)中Ni是第i个个体被克隆的份数; β是克隆因子; n是临时种群PS中的个体数; i是该个体在临时种群PS中的序号; round是四舍五入取整函数。
第七步克隆种群PC中的个体被随机选中进行变异操作,个体被选中的条件如下 if rand(1)<RM (6) 式(6)中RM是变异的概率,0<RM≤1; rand(1)随机产生一个0~1范围内的实数。
选中的个体被随机选中的操作算子所修改,选中的操作算子为以下待选的操作算子中的全部或部分 a、添加边操作算子; b、删除边操作算子; c、修改边操作算子; d、添加顶点操作算子; e、删除顶点操作算子; f、串联操作算子; g、反串联操作算子。
选中的操作算子的个数由下式决定 No=RAND(L)(7) 式(7)中L是操作算子类型的总数; RAND(x)返回一个整数r∈

对克隆种群PC中的个体修改后,形成变异种群PM,克隆种群PC和变异种群PM中的个体数目相同。
第八步评估变异种群PM中的个体,评估的过程与第四步相同。
第九步将评估后的变异种群PM中的个体首先按照亲和力的大小降序排列,然后从中选出m(m<N)个亲和力高的个体形成重选种群PR,若重选种群PR中的个体亲和力高于种群P中的个体亲和力,则种群P中的亲和力低的个体将被替换,形成次新种群PN。
第十步按照第三步所述的产生新个体的过程,随机产生d(d<N)个新个体,再替换次新种群PN中d个亲和力低的个体,形成新种群PT;然后对新种群PT按照第四步所述的过程进行评估。
重复执行上述步骤中的第五步~第十步,依此循环,直到达到最大的循环次数;达到最大的循环次数称为一次合成实验,重复合成实验M次,最后自动合成出一个满足真值表要求的个体的“图”编码和对应的组合逻辑电路。
在上述技术方案中 所述的添加边操作算子的执行过程是随机选择两个不同的顶点,例如v1、v2∈V,在这两个顶点之间增加一条有向边,并修改顶点v1,v2的值。
所述的删除边操作算子的执行过程是随机选择两个不同的顶点,例如v3、v4∈V,在两个顶点之间随机删除一条边,例如e1∈Ei(v3)∩Eo(v4),并修改顶点v3、v4的值。
所述的修改边操作算子的执行过程是首先随机选取三个顶点,例如v5、v6、v7∈V,然后随机选取其中两个顶点v5和v6之间的有向边,例如e2,如果e2∈Ei(v5)∩Eo(v6),则将e2删除,并新增加一有向边e3[v7-v5],最后修改v6和v7的值。
所述的添加顶点操作算子的执行过程是随机选取一个顶点,例如v8∈V,然后添加一个新顶点,例如v9∈VMID,使v9的各个端子均与v8连接。
所述的删除顶点操作算子的执行过程是随机选中一个顶点,例如v10∈VMID,同时删除该顶点以及与该顶点相连接的所有有向边,最后修改所有与顶点v10连接的顶点的值。
所述的串联操作算子的执行过程是随机选中一条边,例如e4[vstart-vend],添加一个新顶点,例如v11∈VMID,同时e4[vstart-vend]被删除,两个新的有向边,例如e5[vstart-v11]∈Ei(v11)和e6[v11-vend]∈Eo(v11)被加入E。
所述的反串联操作算子的执行过程是随机删除一顶点v12及其Ei(v12)和Eo(v12),将一对有向边e7[vstart-v12]∈Ei(v12)和e8[v12-vend]∈Eo(v12)合并为一条新的有向边e9[vstart-vend]。
由于采用上述技术方案,本发明采用的基于“图”编码方法可以生成任意结构的组合逻辑电路,编码方便直接,并且将编码映射到组合逻辑电路的过程非常简单,因此编码效率高。且采用的克隆选择搜索算法,具有全局搜索的能力。此外,本发明设计了添加边、删除边、修改边、添加顶点、删除顶点、串联和反串联七种用于改变组合逻辑电路结构的操作算子,这些操作算子直接对“图”进行操作,具有保证不破坏电路连通性的特性。
因此,本发明具有高效自动生成任意组合逻辑电路、映射简单、编码效率高和能用“图”的结构表示组合逻辑电路的特点。



图1是本发明中的一种自动合成步骤流程图; 图2是实施例1的真值表; 图3是模板组合逻辑电路; 图4是实施例1自动合成的一种“图”的编码形式; 图5是图4所示“图”的编码形式所对应的组合逻辑电路图; 图6是实施例2的真值表; 图7是实施例2自动合成的一种“图”的编码形式; 图8是图7所示“图”的编码形式所对应的组合逻辑电路图; 图9是实施例3的真值表; 图10是实施例3自动合成的一种“图”的编码形式; 图11是图10所示“图”的编码形式所对应的组合逻辑电路图。

具体实施例方式 下面结合附图对本发明做进一步的描述,并非对本发明保护范围的限制。
实施例1一种基于“图”编码的三输入一输出组合逻辑电路的自动合成方法,该组合逻辑电路的自动合成步骤流程如图1所示 第一步用“有向图”(简称“图”)表示组合逻辑电路,“图”G记作(V,E),V是“图”的顶点的集合,E是“图”的边的集合。其中 “图”的顶点分为输入顶点、输出顶点和中间顶点,输入顶点、输出顶点和中间顶点分别用VIN、VOUT和VMID表示。在进化过程中,VMID允许添加、删除或修改;VIN、VOUT禁止添加、删除或修改;VIN、VOUT分别表示组合逻辑电路的输入和输出端子;VMID表示组合逻辑电路中逻辑门的类型;逻辑门包括与门、或门、非门和异或门四种基本的逻辑门,其中与门、或门和异或门是两输入一输出的逻辑门,非门是一输入一输出的逻辑门。
“图”的边为有向边,表示逻辑门之间的连接,一条有向边e∈E仅能起始于某一顶点的输出端子并终止于另一顶点的输入端子,有向边中箭头表示信号流的方向,一条有向边被描述为Name[A-B]。其中A、B分别是起始点A和终止点B,符号Ei(v)和Eo(v)分别表示连接至顶点v的输入端子的有向边集和输出端子的有向边集。
第二步设定如图2所示的目标组合逻辑电路真值表和最大循环次数为100。
第三步模板组合逻辑电路如图3所示,是由一个两输入一输出的逻辑门、两个输入端子和一个输出端子组成的组合逻辑单元;种群中任意一个个体是一个组合逻辑电路的“图”编码形式,个体是在模板组合逻辑电路的基础上随机产生。个体产生的过程是向模板组合逻辑电路中随机添加新顶点,添加新顶点的个数和位置是随机的,在随机添加的新顶点和模板组合逻辑电路中的顶点之间添加有向边,直到该“图”满足规定的输入顶点数为3、输出顶点数为1且不含环状结构的条件为止。
个体产生的过程重复进行50次,在模板组合逻辑电路基础上随机产生50个不同的个体,50个不同的个体表示50个不同的三输入一输出组合逻辑电路,形成种群P。
第四步评估种群P中所有个体所表示的三输入一输出组合逻辑电路的性能,即每个个体亲和力的计算。每个个体的亲和力等于它的功能亲和力与性能亲和力的和 Affinity=FV+PV(1) 式(1)中Fv是个体的功能亲和力; Pv是个体的性能亲和力。
功能亲和力Fv的计算公式为 式(2)中M是组合逻辑电路输入的个数,M=3; N是组合逻辑电路输出的个数,N=1; fvij的定义如下
式(3)中fi(xi)表示当输入为真值表的第i行时组合逻辑电路第j个输出端子的值; xi是真值表第i个变量; Pij表示真值表第i行第j个输出值。
性能亲和力Pv的计算公式为
式(4)中r表示组合逻辑电路的逻辑门数。
第五步将种群P中的50个个体按照亲和力的大小降序排列,亲和力高的10个个体被选中,形成临时种群PS,临时种群PS中的个体同样按照亲和力的大小降序排列。
第六步临时种群PS被克隆(复制),克隆后的个体形成克隆种群PC。克隆种群PC中第i个个体被克隆的份数与第i个个体的亲和力成正比 Ni=round(β*n/i)(5) 式(5)中Ni是第i个个体被克隆的份数; β是克隆因子,β=2; n是临时种群PS中的个体数,n=10; i是第i个个体在临时种群PS中的序号; round是四舍五入取整函数。
克隆种群PC中个体的总个数为 第七步克隆种群PC中的个体被随机选中进行变异操作,个体被选中的条件如下 if rand(1)<RM(6) 式(6)中RM是变异的概率,RM=0.5; rand(1)随机产生一个0~1范围内的实数; 选中的个体被随机选中的操作算子所修改,选中的操作算子为以下待选的操作算子中的全部或部分 a、添加边操作算子,其执行过程是随机选择两个不同的顶点,例如v1、v2∈V,在这两个顶点之间增加一条有向边,并修改顶点v1,v2的值。
b、删除边操作算子,其执行过程是随机选择两个不同的顶点,例如v3、v4∈V,在两个顶点之间随机删除一条边,例如e1∈Ei(v3)∩Eo(v4),并修改顶点v3、v4的值。
c、修改边操作算子,其执行过程是首先随机选取三个顶点,例如v5、v6、v7∈V,然后随机选取其中两个顶点v5和v6之间的有向边,例如e2,如果e2∈Ei(v5)∩Eo(v6),则将e2删除,并新增加一有向边e3[v7-v5],最后修改v6和v7的值。
d、添加顶点操作算子,其执行过程是随机选取一个顶点,例如v8∈V,然后添加一个新顶点,例如v9∈VMID,使v9的各个端子均与v8连接。
e、删除顶点操作算子,其执行过程是随机选中一个顶点,例如v10∈VMID,同时删除该顶点以及与该顶点相连接的所有有向边,最后修改所有与顶点v10连接的顶点的值。
f、串联操作算子,其执行过程是随机选中一条边,例如e4[vstart-vend],添加一个新顶点,例如v11∈VMID,同时e4[vstart-vend]被删除,两个新的有向边,例如e5[vstart-v11]∈Ei(v11)和e6[v11-vend]∈Eo(v11)被加入E。
g、反串联操作算子,其执行过程是随机删除一顶点v12及其Ei(v12)和Eo(v12),将一对有向边e7[vstart-v12]∈Ei(v12)和e8[v12-vend]∈Eo(v12)合并为一条新的有向边e9[vstart-vend]。
选中的操作算子的个数由下式决定 No=RAND(L)(7) 式(7)中L是操作算子类型的总数,L=7; RAND(x)返回一个整数r∈

对克隆种群PC中的个体修改后,形成变异种群PM,克隆种群PC和变异种群PM中的个体数目相同。
第八步评估变异种群PM中的59个个体,评估的过程与第四步相同。
第九步将评估后的变异种群PM中的59个个体首先按照亲和力的大小降序排列,然后从中选出10个亲和力高的个体形成重选种群PR,若重选种群PR中的个体亲和力高于种群P中的个体亲和力,则种群P中的亲和力低的个体将被替换,形成次新种群PN。
第十步按照第三步所述的产生新个体的过程,随机产生10个新个体,再替换次新种群PN中10个亲和力低的个体,形成新种群PT;然后对新种群PT按照第四步所述的过程进行评估。
重复执行上述步骤中的第五步~第十步,依此循环,直到达到最大的循环次数100次,以上步骤执行完最大循环次数100次以后称为一次合成实验。
重复进行1000次合成实验,成功合成目标电路613次,失败387次;其中仅含有4个逻辑门的最优组合逻辑电路238次;除此之外,在成功合成出目标电路的实验中,本方法平均只需要29.33代就能完成目标电路的自动合成,成功概率为61.3%,获得最优组合逻辑电路的成功概率为23.8%。自动合成出一个满足真值表要求的个体的“图”编码如图4所示,对应的组合逻辑电路如图5所示。
实施例2一种基于“图”编码的四输入一输出组合逻辑电路的自动合成方法,该组合逻辑电路的自动合成步骤流程如图1所示 第一步同实施例1第一步。
第二步设定如图6所示的目标组合逻辑电路真值表和最大循环次数为100。
第三步模板组合逻辑电路如图3所示,是由一个两输入一输出的逻辑门、两个输入端子和一个输出端子组成的组合逻辑单元;种群中任意一个个体是一个组合逻辑电路的“图”编码形式,个体是在模板组合逻辑电路的基础上随机产生。个体产生的过程是向模板组合逻辑电路中随机添加新顶点,添加新顶点的个数和位置是随机的,在随机添加的新顶点和模板组合逻辑电路中的顶点之间添加有向边,直到该“图”满足规定的输入顶点数为4、输出顶点数为1且不含环状结构的条件为止。
个体产生的过程重复进行200次,在模板组合逻辑电路基础上则随机产生200个不同的个体,200个不同的个体表示200个不同的四输入一输出组合逻辑电路,形成种群P。
第四步评估种群P中所有个体所表示的四输入一输出组合逻辑电路的性能,即每个个体亲和力的计算。每个个体的亲和力等于它的功能亲和力与性能亲和力的和 Affinity=FV+PV(1) 式(1)中Fv是个体的功能亲和力; Pv是个体的性能亲和力。
功能亲和力Fv的计算公式为 式(2)中M是组合逻辑电路输入的个数,M=4; N是组合逻辑电路输出的个数,N=1; fvij的定义如下
式(3)中fi(xi)表示当输入为真值表的第i行时组合逻辑电路第j个输出端子的值; xi是真值表第i个变量; Pij表示真值表第i行第j个输出值。
性能亲和力Pv的计算公式为
式(4)中r表示组合逻辑电路的逻辑门数。
第五步将种群P中的200个个体按照亲和力的大小降序排列,亲和力高的80个个体被选中,形成临时种群PS,临时种群PS中的个体同样按照亲和力的大小降序排列。
第六步临时种群PS被克隆(复制),克隆后的个体形成克隆种群PC。克隆种群PC中第i个个体被克隆的份数与第i个个体的亲和力成正比 Ni=round(β*n/i)(5) 式(5)中Ni是第i个个体被克隆的份数; β是克隆因子,β=2; n是临时种群PS中的个体数,n=80; i是第i个个体在临时种群PS中的序号; round是四舍五入取整函数。
克隆种群PC中个体的总个数为 第七步同实施例1第七步。
第八步评估变异种群PM中的793个个体,评估的过程与第四步相同。
第九步将评估后的变异种群PM中的793个个体首先按照亲和力的大小降序排列,然后从中选出80个亲和力高的个体形成重选种群PR,若重选种群PR中的个体亲和力高于种群P中的个体亲和力,则种群P中的亲和力低的个体被替换,形成次新种群PN。
第十步按照第三步所述的产生新个体的过程,随机产生80个新个体,再替换次新种群PN中80个亲和力低的个体,形成新种群PT;然后对新种群PT按照第四步所述的过程进行评估。
重复执行上述步骤中的第五步~第十步,依此循环,直到达到最大的循环次数100次,以上步骤执行完最大循环次数100次以后称为一次合成实验。
重复进行500次合成实验,此方法成功合成目标电路206次,失败294次;其中仅含有7个逻辑门的最优组合逻辑电路87次;除此之外,在成功合成出目标电路的实验中,本方法平均只需要48.95代就能完成目标电路的自动合成,成功概率为41.2%,获得最优组合逻辑电路的成功概率为17.4%。自动合成出一个满足目标真值表要求的个体的“图”编码如图7所示,对应的组合逻辑电路图如图8所示。
实施例3一种基于“图”编码的四输入三输出组合逻辑电路的自动合成方法,该组合逻辑电路的自动合成步骤流程如图1所示 第一步同实施例1第一步。
第二步设定如图9所示的目标组合逻辑电路真值表和最大循环次数为500。
第三步模板组合逻辑电路如图3所示,是由一个两输入一输出的逻辑门、两个输入端子和一个输出端子组成的组合逻辑单元;种群中任意一个个体是一个组合逻辑电路的“图”编码形式,个体是在模板组合逻辑电路的基础上随机产生。个体产生的过程是向模板组合逻辑电路中随机添加新顶点,添加新顶点的个数和位置是随机的,在随机添加的新顶点和模板组合逻辑电路中的顶点之间添加有向边,直到该“图”满足规定的输入顶点数为4、输出顶点数为3且不含环状结构的条件为止。
个体产生的过程重复进行500次,在模板组合逻辑电路基础上则随机产生500个不同的个体,500个不同的个体表示500个不同的四输入三输出组合逻辑电路,形成种群P。
第四步评估种群P中所有个体所表示的四输入三输出组合逻辑电路的性能,即每个个体亲和力的计算。每个个体的亲和力等于它的功能亲和力与性能亲和力的和 Affinity=FV+PV(1) 式(1)中Fv是个体的功能亲和力; Pv是个体的性能亲和力。
功能亲和力Fv的计算公式为 式(2)中M是组合逻辑电路输入的个数,M=4; N是组合逻辑电路输出的个数,N=3; fvij的定义如下
式(3)中fi(xi)表示当输入为真值表的第i行时组合逻辑电路第j个输出端子的值; xi是真值表第i个变量; Pij表示真值表第i行第j个输出值。
性能亲和力Pv的计算公式为
式(4)中r表示组合逻辑电路的逻辑门数。
第五步将种群P中的500个个体按照亲和力的大小降序排列,亲和力高的200个个体被选中,形成临时种群PS,临时种群PS中的个体同样按照亲和力的大小降序排列。
第六步临时种群PS被克隆(复制),克隆后的个体形成克隆种群PC。克隆种群PC中第i个个体被克隆的份数与第i个个体的亲和力成正比 Ni=round(β*n/i)(5) 式(5)中Ni是第i个个体被克隆的份数; β是克隆因子,β=2; n是临时种群PS中的个体数,n=200; i是第i个个体在临时种群PS中的序号; round是四舍五入取整函数。
克隆种群PC中个体的总个数为 第七步同实施例1第七步。
第八步评估变异种群PM中的2348个个体,评估的过程与第四步相同。
第九步将评估后的变异种群PM中的2348个个体首先按照亲和力的大小降序排列,然后从中选出200个亲和力高的个体形成重选种群PR,若重选种群PR中的个体亲和力高于种群P中的个体亲和力,则种群P中的亲和力低的个体被替换,形成次新种群PN。
第十步按照第三步所述的产生新个体的过程,随机产生200个新个体,再替换次新种群PN中200个亲和力低的个体,形成新种群PT;然后对新种群PT按照第四步所述的过程进行评估。
重复执行上述步骤中的第五步~第十步,依此循环,直到达到最大的循环次数500次,以上步骤执行完最大循环次数500次以后称为一次合成实验。
重复进行500次合成实验,此方法成功合成目标电路84次,失败416次;其中仅含有10个逻辑门的最优组合逻辑电路17次;除此之外,在成功合成出目标电路的实验中,本方法平均只需要196.50代就能完成目标电路的自动合成,成功概率为16.8%,获得最优组合逻辑电路的成功概率为3.4%.。自动合成出一个满足目标真值表要求的个体的“图”编码如图10所示,对应的组合逻辑电路图如图11所示。
具体实施方式
采用的基于“图”编码方法可以生成任意结构的组合逻辑电路,编码方便直接,并且将编码映射到组合逻辑电路的过程非常简单,因此编码效率高。且采用的克隆选择搜索算法,具有全局搜索的能力,此外,本具体实施方式
设计了添加边、删除边、修改边、添加顶点、删除顶点、串联和反串联七种用于改变组合逻辑电路结构的操作算子,这些操作算子可以直接对“图”进行操作,具有不破坏电路连通性的特性。
因此,本具体实施方式
具有高效自动生成任意组合逻辑电路、映射简单、编码效率高和能用“图”的结构表示组合逻辑电路的特点。
权利要求
1、一种基于“图”编码的组合逻辑电路的自动合成方法,其特征在于该组合逻辑电路的自动合成步骤为
第一步用“有向图”表示组合逻辑电路,“图”G记作(V,E),V是“图”的顶点的集合,E是“图”的边的集合;
第二步设定目标组合逻辑电路的真值表和最大循环次数;
第三步模板组合逻辑电路是由一个两输入一输出的逻辑门、两个输入端子和一个输出端子组成的组合逻辑单元;种群中任意一个个体是一个组合逻辑电路的“图”编码形式,个体是在模板组合逻辑电路的基础上随机产生;个体产生的过程是向模板组合逻辑电路中随机添加新顶点,添加新顶点的个数和位置是随机的;在随机添加的新顶点和模板组合逻辑电路中的顶点之间添加有向边,直到该“图”满足规定的输入输出顶点数且不含环状结构为止;
个体产生的过程重复进行N次,N个不同的个体表示N个不同的组合逻辑电路,从而形成种群P;
第四步评估种群P中所有个体所表示的组合逻辑电路的性能,即每个个体亲和力的计算,每个个体的亲和力等于它的功能亲和力与性能亲和力的和
Affinity=FV+PV(1)
式(1)中Fv是个体的功能亲和力;
Pv是个体的性能亲和力;
功能亲和力Fv的计算公式为
式(2)中M是组合逻辑电路输入的个数;
N是组合逻辑电路输出的个数;
fvij的定义如下
式(3)中fj(xi)表示当输入为真值表的第i行时组合逻辑电路第j个输出端子的值;
xi是真值表第i个变量;
Pij表示真值表第i行第j个输出值;
性能亲和力Pv的计算公式为
式(4)中r表示组合逻辑电路的逻辑门数;
第五步将种群P中的N个个体按照亲和力的大小降序排列,亲和力高的n(n<N)个个体被选中,形成临时种群PS,临时种群PS中的个体同样按照亲和力的大小降序排列;
第六步临时种群PS被克隆,克隆后的个体形成克隆种群PC,克隆种群PC中第i个个体被克隆的份数与第i个个体的亲和力成正比
Ni=round(β*n/i)(5)
式(5)中Ni是第i个个体被克隆的份数;
β是克隆因子;
n是临时种群PS中的个体数;
i是该个体在临时种群PS中的序号;
round是四舍五入取整函数;
第七步克隆种群PC中的个体被随机选中进行变异操作,个体被选中的条件如下
if rand(1)<RM (6)
式(6)中RM是变异的概率,0<RM≤1;
rand(1)随机产生一个0~1范围内的实数;
选中的个体被随机选中的操作算子所修改,选中的操作算子为以下待选的操作算子中的全部或部分
a、添加边操作算子;
b、删除边操作算子;
c、修改边操作算子;
d、添加顶点操作算子;
e、删除顶点操作算子;
f、串联操作算子;
g、反串联操作算子;
选中的操作算子的个数由下式决定
No=RAND(L) (7)
式(7)中L是操作算子类型的总数;
RAND(x)返回一个整数r∈

对克隆种群PC中的个体修改后,形成变异种群PM,克隆种群PC和变异种群PM中的个体数目相同;
第八步评估变异种群PM中的个体,评估的过程与第四步相同;
第九步将评估后的变异种群PM中的个体首先按照亲和力的大小降序排列,然后从中选出m(m<N)个亲和力高的个体形成重选种群PR,若重选种群PR中的个体亲和力高于种群P中的个体亲和力,则种群P中的亲和力低的个体将被替换,形成次新种群PN;
第十步按照第三步所述的产生新个体的过程,随机产生d(d<N)个新个体,再替换次新种群PN中d个亲和力低的个体,形成新种群PT,然后对新种群PT按照第四步所述的过程进行评估;
重复执行上述步骤中的第五步~第十步,依此循环,直到达到最大的循环次数;以上步骤执行完最大循环次数以后称为一次合成实验,重复上述合成实验M次,最后自动合成出一个满足真值表要求的个体的“图”编码和对应的组合逻辑电路。
2、根据权利要求1所述的基于“图”编码的组合逻辑电路的自动合成方法,其特征在于所述的“图”的顶点分为输入顶点、输出顶点和中间顶点,输入顶点、输出顶点和中间顶点分别用VIN、VOUT和VMID表示;在进化过程中,VMID允许添加、删除或修改,VIN、VOUT禁止添加、删除或修改,VIN、VOUT分别表示组合逻辑电路的输入和输出端子,VMID表示组合逻辑电路中逻辑门的类型;逻辑门包括与门、或门、非门和异或门四种基本的逻辑门,其中与门、或门和异或门是两输入一输出的逻辑门,非门是一输入一输出的逻辑门。
3、根据权利要求1所述的基于“图”编码的组合逻辑电路的自动合成方法,其特征在于所述的“图”的边为有向边,表示逻辑门之间的连接,一条有向边e∈E仅能起始于某一顶点的输出端子并终止于另一顶点的输入端子,有向边中箭头表示信号流的方向,一条有向边被描述为Name[A-B];其中A、B分别是起始点A和终止点B,符号Ei(v)和Eo(v)分别表示连接至顶点v的输入端子的有向边集和输出端子的有向边集。
4、根据权利要求1所述的基于“图”编码的组合逻辑电路的自动合成方法,其特征在于所述的添加边操作算子的执行过程是随机选择两个不同的顶点v1、v2∈V,在这两个顶点之间增加一条有向边,并修改顶点v1,v2的值。
5、根据权利要求1所述的基于“图”编码的组合逻辑电路的自动合成方法,其特征在于所述的删除边操作算子的执行过程是随机选择两个不同的顶点v3、v4∈V,在两个顶点之间随机删除一条边e1∈Ei(v3)∩Eo(v4),并修改顶点v3、v4的值。
6、根据权利要求1所述的基于“图”编码的组合逻辑电路的自动合成方法,其特征在于所述的修改边操作算子的执行过程是首先随机选取三个顶点v5、v6、v7∈V,然后随机选取其中两个顶点v5和v6之间的有向边e2,如果e2∈Ei(v5)∩Eo(v6),则将e2删除,并新增加一有向边e3[v7-v5],最后修改v6和v7的值。
7、根据权利要求1所述的基于“图”编码的组合逻辑电路的自动合成方法,其特征在于所述的添加顶点操作算子的执行过程是随机选取一个顶点v8∈V,然后添加一个新顶点v9∈VMID,使v9的各个端子均与v8连接。
8、根据权利要求1所述的基于“图”编码的组合逻辑电路的自动合成方法,其特征在于所述的删除顶点操作算子的执行过程是首先随机选中一个顶点v10∈VMID,同时删除该顶点以及与该顶点相连接的所有有向边,最后修改所有与顶点v10连接的顶点的值。
9、根据权利要求1所述的基于“图”编码的组合逻辑电路的自动合成方法,其特征在于所述的串联操作算子的执行过程是随机选中一条边e4[vstart-vend],添加一个新顶点v11∈VMID,同时e4[vstart-vend]被删除,两个新的有向边e5[vstart-v11]∈Ei(v11)和e6[v11-vend]∈Eo(v11)被加入E。
10、根据权利要求1所述的基于“图”编码的组合逻辑电路的自动合成方法,其特征在于所述的反串联操作算子的执行过程是随机删除一顶点v12及其Ei(v12)和Eo(v12),将一对有向边e7[vstart-v12]∈Ei(v12)和e8[v12-vend]∈Eo(v12)合并为一条新的有向边e9[vstart-vend]。
全文摘要
本发明涉及一种基于“图”编码的组合逻辑电路的自动合成方法。其方案是用“有向图”表示组合逻辑电路,设定组合逻辑电路的真值表和最大循环次数,随机产生N个个体形成种群P,评估种群P中所有个体的性能,选亲和力高的n个个体形成临时种群PS,对临时种群PS克隆形成克隆种群PC,对克隆种群PC修改形成变异种群PM,评估变异种群PM,选出m个亲和力高的个体形成重选种群PR,替换种群P中亲和力低的个体形成次新种群PN,随机产生d个新个体替换次新种群PN中亲和力低的个体形成新种群PT;对新种群PT按种群P的评估方法进行评估,依此循环,直到最大循环次数为止。本发明具有高效自动生成任意组合逻辑电路和编码效率高的特点。
文档编号H03K19/00GK101576735SQ20091006198
公开日2009年11月11日 申请日期2009年5月5日 优先权日2009年5月5日
发明者甘朝晖, 纲 史, 涛 尚, 旻 蒋, 朱平平, 蒋恋华 申请人:武汉科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1