基于追踪编码和遗传算法的电路结构优化方法与流程

文档序号:16693735发布日期:2019-01-22 19:14阅读:217来源:国知局
基于追踪编码和遗传算法的电路结构优化方法与流程

本发明涉及电路优化领域,尤其是基于追踪编码和遗传算法的电路结构优化方法。



背景技术:

随着集成电路制造工艺水平的不断提高,电路的规模和复杂程度日益增加,基于经验知识和设计规则的电路设计方法已越发显得吃力。而从遗传算法借鉴而来的可进化硬件发明,为我们展示了一种全新的电路进化设计方法,它利用进化计算技术配置电路的内部结构以获得预期的电路功能。

目前,针对这方面的电路结构优化,一般只考虑了遗传算法本身所带来的变革影响,却并未清楚如何设定好待进化电路,即无法了解到待进化电路的整体电路特征,这样在基于遗传算法进化时也就无法细致针对到电路中的具体器件及其参数,显然这样得到的结果是不准确的,很难符合工程师的预期目标。



技术实现要素:

为了解决上述问题,本发明的目的是提供基于追踪编码和遗传算法的电路结构优化方法,方便了解到电路中各器件及其参数,以便于对其可分别进行遗传算法的衍化,有利于提高优化精确率。

为了弥补现有技术的不足,本发明采用的技术方案是:

基于追踪编码和遗传算法的电路结构优化方法,包括以下步骤:

s1、对电路中各器件及其参数进行追踪编码,从而获得初代种群;

s2、对初代种群中所有染色体依次进行选择、交叉和变异操作,从而获得下一代种群;

s3、对下一代种群进行解码仿真,从而获得每个染色体的适应度;比较全部染色体的适应度是否均满足设置要求的适应度函数,若是,则输出该种群以作为电路优化结构,否则返回至步骤s2。

进一步,所述步骤s1中,对电路中的器件及其参数进行追踪编码,从而获得初代种群,包括:

s11、设置器件集、电路连接指令集和器件个数集并创建全局移动点,所述全局移动点初始化为输入端;

s12、随机从器件集中取出器件并从电路连接指令集中取出指令,组合该器件和指令,从而使全局移动点根据指令变化,以将器件添加到电路之中;

s13、判断电路中器件个数是否满足器件个数集的设置要求,若是,则将全局移动点连接到输出端,从而获得初代种群,否则返回至步骤s12。

进一步,所述步骤s3中,对下一代种群进行解码仿真,从而获得每个染色体的适应度,包括:对下一代种群进行解码,将解码所得信息写入到netlist文件中,并调用hspice对下一代种群中的所有染色体进行仿真,从而得到所有染色体的适应度。

进一步,所述步骤s2中的选择操作包括轮盘选择、锦标赛选择和排序选择中的一种或多种。

进一步,所述步骤s2中的交叉操作包括单点交叉、两点交叉、算术交叉、线性交叉操作和基于方向的交叉中的一种或多种。

进一步,所述步骤s2中的变异操作包括均匀变异、高斯变异、动态变异和基于方向的变异中的一种或多种。

本发明的有益效果是:采用追踪编码方法得到待进化电路的初始器件及其参数,即获取初代种群,从而可分别针对每个电路中的器件来执行遗传算法的衍化,即获取到下一代种群,由于衍化范围大,不存在遗漏情况,因此可以尽快地达到优化目的,提高优化精确率;并且,最后通过判断其每个染色体(即每个器件)的适应度与人为所要求的适应度函数是否匹配,来决定是否重新执行遗传算法的衍化,直至满足要求,则得到所需的优化电路结构,这样循环设置保证电路是处于不断优化之中的,也能够提高优化精确率。因此,本发明步骤简洁,设计合理,方便了解到电路中各器件及其参数,能够对电路进行精确优化,有利于提高优化精确率。

附图说明

下面结合附图给出本发明较佳实施例,以详细说明本发明的实施方案。

图1是本发明的步骤流程图;

图2是本发明的待进化电路的结构示意图;

图3是本发明中mtn操作的原理示意图;

图4是本发明中器件的编码基因示意图;

图5是本发明的仿真结果图。

具体实施方式

参照图1-图5,本发明的基于追踪编码和遗传算法的电路结构优化方法,包括以下步骤:

s1、对电路中各器件及其参数进行追踪编码,从而获得初代种群;

s2、对初代种群中所有染色体依次进行选择、交叉和变异操作,从而获得下一代种群;

s3、对下一代种群进行解码仿真,从而获得每个染色体的适应度;比较全部染色体的适应度是否均满足设置要求的适应度函数,若是,则输出该种群以作为电路优化结构,否则返回至步骤s2。

具体地,采用追踪编码方法得到待进化电路的初始器件及其参数,即获取初代种群,从而可分别针对每个电路中的器件来执行遗传算法的衍化,即获取到下一代种群,由于衍化范围大,不存在遗漏情况,因此可以尽快地达到优化目的,提高优化精确率;并且,最后通过判断其每个染色体(即每个器件)的适应度与人为所要求的适应度函数是否匹配,来决定是否重新执行遗传算法的衍化,直至满足要求,则得到所需的优化电路结构,这样循环设置保证电路是处于不断优化之中的,也能够提高优化精确率。因此,本发明步骤简洁,设计合理,方便了解到电路中各器件及其参数,能够对电路进行精确优化,有利于提高优化精确率。

进一步,所述步骤s1中,对电路中的器件及其参数进行追踪编码,从而获得初代种群,包括:

s11、设置器件集、电路连接指令集和器件个数集并创建全局移动点,所述全局移动点初始化为输入端;

s12、随机从器件集中取出器件并从电路连接指令集中取出指令,组合该器件和指令,从而使全局移动点根据指令变化,以将器件添加到电路之中;

s13、判断电路中器件个数是否满足器件个数集的设置要求,若是,则将全局移动点连接到输出端,从而获得初代种群,否则返回至步骤s12,,具体可参照图2,图中初始节点则为全局移动点初始化端,结束节点则为输出端。

进一步,所述步骤s3中,对下一代种群进行解码仿真,从而获得每个染色体的适应度,包括:对下一代种群进行解码,将解码所得信息写入到netlist文件中,并调用hspice对下一代种群中的所有染色体进行仿真,从而得到所有染色体的适应度;由于hspice是本领域所常用的软件,因此就不再赘述。

进一步,所述步骤s2中的选择操作包括轮盘选择、锦标赛选择和排序选择中的一种或多种。

进一步,所述步骤s2中的交叉操作包括单点交叉、两点交叉、算术交叉、线性交叉操作和基于方向的交叉中的一种或多种。

进一步,所述步骤s2中的变异操作包括均匀变异、高斯变异、动态变异和基于方向的变异中的一种或多种。

下面详细说明本发明有关内容:

遗传算法起源于20世纪60年代,最早由美国michigan大学的holland教授提出,它是一种模拟生物在自然环境中的遗传和进化过程而形成的一种新型优化搜索算法,之后通过广大学者们的共同努力,使遗传算法的理论发明得到了不断地改进,广泛的应用在人类科技发展的各个领域。

本发明主要内容是基于遗传算法和追踪编码来进行cmos电路拓扑结构和参数的优化,即把电路编码成染色体的形式,借助于遗传算法对电路进行交叉、变异、选择等操作,以得到性能指标满足要求的电路。

相关术语说明如下:

基因(gene):即器件的信息,本发明中指的是器件的类型、节点信息和参数信息等;

染色体(chromesome):包含多个基因,即每个染色体包含了一个电路的全部器件信息;

种群(population):包含所有的染色体,即包含了不同的电路;

代(generation):每代的种群个数、染色体都可能是不一样的;

适应度(fitness):是指染色体对环境的适应情况,这里的适应度可通过hspice的输出文件.list文件中的性能参数进行适应转换后获得;

适应度函数(fitnessfunction):计算染色体适应度值的映射关系,这里如果不需要对.lis文件获取的性能参数进行转换的话那么该值便是染色体的适应度值;

染色体选择操作:对初始化后的种群进行选择,比如轮盘法、锦标赛法和排序法等,均是本领域现有技术,就不再赘述;

染色体交叉操作:对选择出来的染色体进行交叉操作,即“染色体之间的交配”,如单点交叉、两点交叉、算术交叉、线性交叉以及基于方向的交叉等,均是本领域现有技术,就不再赘述;

染色体的变异操作:对交叉得到的染色体进行变异操作,即“基因的变异”,变异可以是均匀交叉、高斯变异、动态变异以及基于方向的变异等,均是本领域现有技术,就不再赘述;

追踪编码这种编码方式的主要思想是把电路生成过程编码进染色体。在编码过程中,有一个全局移动点,全局移动点随指令的变化而变化,每一个指令配合选出的器件都会添加入一个新的电路器件,当电路所含器件个数满足要求时则结束。全局移动点初始化为0即初始化为输入端,在电路生成完成后连接至输出端,然后根据编码规则对染色体解码后,即可得到各个器件的连接节点。

其次,本发明中电路编码过程的电路连接指令集包括:mtn,ctp,ctv,ctg,cto,ctb。

mtn(move-to-new):参照图3,添加一个新器件,输入端为全局移动点所在点,输出端为(全局移动点+1),即插入一个器件,并把全局移动点向后移动一位。

ctp(cast-to-previous):添加一个器件,输入端为全局移动点所在点,输出端为(全局移动点的步长);

ctv(cast-to-vdd):把一个节点接到vdd/vcc;

ctg(cast-to-ground):把一个节点接地;

cto(cast-to-output):把一个节点接到整个电路的输出端;

ctb(cast-to-bias):把一个节点接偏置电流。

参照图4,基因每一段的含义如下:

ins:instruction即指令,ins为电路连接指令集中随机选出的某一个指令;

type:即器件种类。根据预先设置的器件集,可能是电容、电感、电阻等两端口器件,也可能是mos管这种四端口器件。

node1-node4:当器件种类为两端口器件时,只需要两个节点信息,即把node1设为输入,node2设为输出,node3、node4设为空即可;

当器件种类为mos管这种四端口器件时,node1、node2、node3和node4分别代表漏极、栅极、源极和衬底。对于nmos,默认源极为incoming(器件输入端),漏极为outcoming(器件输出端);对于pmos,默认栅极为incoming,漏极为outcoming。incoming、outcoming并不固定,可以通过遗传操作(例如变异)来改变。对于mos管的非incoming和outcoming节点,采用ctp、ctvctg、cto、ctb操作指令即可确认其连接方式。

para1和para2表示参数信息,对于两端口器件如电阻,para1代表电阻大小,para2设为空;对于mos管,para1代表沟道长,para2代表沟道宽。参数需要在给定范围内随机生成,每个参数有最大值max,最小值min,则参数值为:

parai=(max-min)*λ

其中,λ为0到1的随机数。

在编码过程中,每次采用一条指令增加一个器件,当器件个数满足要求时即可完成编码得到一条完整染色体。

其中选择操作、交叉操作和变异操作的一种具体实现方式如下:

(1)选择操作:采用锦标赛选择操作,每次从种群中取出一定数量个体,然后选择其中最好的一个进入子代种群,重复该操作,直到新的种群规模达到原来的种群规模。具体的操作步骤如下:

确定每次选择的个体数量(以占种群中个体个数的百分比表示),一般选择2个;

从种群中随机选择若干个个体(每个个体入选概率相同)以构成组,根据每个个体的适应度值,选择其中适应度值最好的个体进入子代种群;

重复第二步骤,直到得到的个体构成新一代种群。

(2)交叉操作:选择单点交叉,随机选择父代种群中两个个体,随机确定交叉点,从两个父代个体中各取一段基因组成一个新的个体,完成交叉操作。

(3)变异操作:在进行变异操作时,结合电路的特点,把变异分为三种,分别是:mos管输入输出节点的变异、ctp指令步长的变异和参数的变异。具体因为:

mos管输入输出节点的变异:对于四端口器件,因为有四个端口,在初始化时选择了两个端口作为输入输出端口,但输入输出端口是随机选择的,并不能保证它的正确性,所以需要变异操作来调整输入输出端口。

ctp指令步长的变异:ctp指令的步长决定了把器件添加在哪两个节点之间,器件添加的节点不同,所得到的电路性能也不同,所以需要变异操作来调整ctp指令的步长。

参数的变异:参数的变异采用随机数变异算子,按初始化的操作给参数赋一个新的随机值。

最后,优选地,参照图5,图中的fit_value指适应度,genenration指的是衍生代的数量,简称代数;在本发明中,采用五管运算放大器来验证优化效果,应用本发明优化出了一个五管运算放大器,以增益作为适应度值,适应度值随着代数的增加而不断优化。与人工设计的五管运放相比,人工设计的运放增益为48.5,而用本发明优化出的五管运放,在280代附近跑出了54.2的增益,可以看出增益得到优化,即优化效果是比较明显的。

基于追踪编码和遗传算法的电路结构优化装置,包括:

编码模块,用于对电路中各器件及其参数进行追踪编码,从而获得初代种群;

衍化模块,用于对初代种群中所有染色体依次进行选择、交叉和变异操作,从而获得下一代种群;

识别模块,用于对下一代种群进行解码仿真,从而获得每个染色体的适应度;比较全部染色体的适应度是否均满足设置要求的适应度函数,若是,则输出该种群以作为电路优化结构,否则返回至衍化模块。

具体地,采用追踪编码方法得到待进化电路的初始器件及其参数,即获取初代种群,从而可分别针对每个电路中的器件来执行遗传算法的衍化,即获取到下一代种群,由于衍化范围大,不存在遗漏情况,因此可以尽快地达到优化目的,提高优化精确率;并且,最后通过判断其每个染色体(即每个器件)的适应度与人为所要求的适应度函数是否匹配,来决定是否重新执行遗传算法的衍化,直至满足要求,则得到所需的优化电路结构,这样循环设置保证电路是处于不断优化之中的,也能够提高优化精确率。因此,本发明步骤简洁,设计合理,方便了解到电路中各器件及其参数,能够对电路进行精确优化,有利于提高优化精确率。

进一步,所述编码模块,包括:

分组模块,用于设置器件集、电路连接指令集和器件个数集并创建全局移动点,所述全局移动点初始化为输入端;

添加模块,用于随机从器件集中取出器件并从电路连接指令集中取出指令,组合该器件和指令,从而使全局移动点根据指令变化,以将器件添加到电路之中;

判断模块,用于判断电路中器件个数是否满足器件个数集的设置要求,若是,则将全局移动点连接到输出端,从而获得初代种群,否则返回至添加模块。

进一步,所述识别模块,对下一代种群进行解码仿真,从而获得每个染色体的适应度,包括:对下一代种群进行解码,将解码所得信息写入到netlist文件中,并调用hspice对下一代种群中的所有染色体进行仿真,从而得到所有染色体的适应度。

进一步,所述衍化模块中的选择操作包括轮盘选择、锦标赛选择和排序选择中的一种或多种。

进一步,所述衍化模块中的交叉操作包括单点交叉、两点交叉、算术交叉、线性交叉操作和基于方向的交叉中的一种或多种。

进一步,所述衍化模块中的变异操作包括均匀变异、高斯变异、动态变异和基于方向的变异中的一种或多种。

以上内容对本发明的较佳实施例和基本原理作了详细论述,但本发明并不局限于上述实施方式,熟悉本领域的技术人员应该了解在不违背本发明精神的前提下还会有各种等同变形和替换,这些等同变形和替换都落入要求保护的本发明范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1