一种电路设计方法和系统
文献发布时间:2024-04-18 20:02:40
技术领域
本发明涉及模拟集成电路技术领域,尤其涉及一种电路设计方法和系统。
背景技术
模拟集成电路在电路系统设计中发挥着重要作用,其中各CMOS(互补金属氧化物半导体)管的宽(W)、长(L)、数量(M)等电路参数对于电路性能具有重要影响,优化这些参数可以提高电路性能并降低功耗。目前,传统的电路参数优化方法依赖人工经验和试错,这些方法不仅效率低,而且容易出错,这限制了电路参数优化的应用范围和效果。现有技术中,电路设计方法效率低、电路参数的精确度低。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本发明实施例提供了一种电路设计方法和系统,有效地提高了效率和电路参数的精确度。
一方面,本发明实施例提供了一种电路设计方法,包括以下步骤:
初始化第一电路参数、动态步长因子和动态方向因子;
对所述第一电路参数进行编码,得到第一基因编码,所述第一基因编码用于将解空间划分为三维网格空间;
根据所述第一基因编码、所述三维网格空间、所述动态步长因子和负反馈信息素,计算第一适应度值;
根据所述第一基因编码和在所述第一适应度值下的第二基因编码,更新所述动态方向因子;
根据更新后的所述动态方向因子,判断是否更新所述动态步长因子;
根据更新后的所述动态步长因子和更新后的所述动态方向因子,更新所述第一电路参数,直至所述动态步长因子满足预设要求;
根据更新后的所述第一电路参数进行电路设计。
在一些实施例中,所述对所述第一电路参数进行编码,得到第一基因编码,包括:
从所述第一电路参数中提取三项子参数;
分别对三项所述子参数进行二进制编码,得到对应的二进制数;
对三项所述二进制数进行组合,得到所述第一基因编码。
在一些实施例中,所述根据所述第一基因编码、所述三维网格空间、所述动态步长因子和负反馈信息素,计算第一适应度值,包括:
对所述第一基因编码进行仿真处理,得到第一电路性能集;
根据电路性能范围值,计算所述第一电路性能集中每项电路性能的性能权重、惩罚系数和违反程度值;
根据所述第一基因编码、所述动态步长因子和预设数量个方向向量,在所述三维网格空间中计算对应的第三基因编码;
对多个所述第三基因编码进行组合,得到基因序列;
根据所述负反馈信息素,对所述基因序列进行删除处理,所述删除处理用于删除所述基因序列中附带有所述负反馈信息素的第三基因编码,所述附带有所述负反馈信息素为所述第三基因编码在所述三维网格空间中的位置存在所述负反馈信息素;
对删除处理后的所述基因序列中每个第三基因编码进行仿真处理,得到对应的第二电路性能集;
根据所述第一电路性能集、所述性能权重、所述惩罚系数和所述违反程度值,对每项所述第二电路性能集进行适应度处理,计算对应的第二适应度值;
从多项所述第二适应度值中选取一项值最大的适应度值作为所述第一适应度值。
在一些实施例中,在计算得到所述第一适应度值后,所述方法还包括以下步骤:
将所述第一适应度值对应的第三基因编码作为所述第二基因编码;
在所述三维网格空间中所述第二基因编码的位置释放所述负反馈信息素。
在一些实施例中,所述根据电路性能范围值,计算电路性能的违反程度值,包括:
若所述电路性能范围值包括上限值和下限值,则根据性能值、所述上限值和所述下限值,计算所述违反程度值;
若所述电路性能范围值包括预设约束值,则根据所述性能值和所述预设约束值,计算所述违反程度值,所述预设约束值用于表征所述电路性能在预设范围内的最优值。
在一些实施例中,所述适应度处理的执行步骤包括:
根据电路性能属性、所述第一电路性能集和所述第二电路性能集,计算目标函数值;
根据所述性能权重、所述惩罚系数、所述违反程度值和所述目标函数值,计算所述第二适应度值。
在一些实施例中,所述根据电路性能属性、所述第一电路性能集和所述第二电路性能集,计算目标函数值,包括:
从所述第一电路性能集中选取一项电路性能作为优化前电路性能值;
从所述第二电路性能集中选取一项电路性能作为优化后电路性能值,所述优化后电路性能值与所述优化前电路性能值的性能指标相同,所述第二电路性能集中的性能个数与所述第一电路性能集中的性能个数相等;
根据所述电路性能属性、所述优化前电路性能值和所述优化后电路性能值,计算所述目标函数值。
在一些实施例中,所述根据所述性能权重、所述惩罚系数、所述违反程度值和所述目标函数值,计算所述第二适应度值,包括:
根据所述性能权重、所述惩罚系数、所述违反程度值和所述目标函数值,通过所述第二适应度值计算公式计算所述第二适应度值,所述第二适应度值计算公式如下:
式中,Fit
在一些实施例中,所述根据所述动态方向因子,判断是否更新所述动态步长因子,包括:
若更新前的动态方向因子和更新后的所述动态方向因子相等,则增加所述动态步长因子的步长值;
若更新前的动态方向因子和更新后的所述动态方向因子不相等,则不更新所述动态步长因子。
另一方面,本发明实施例提供了一种电路设计系统,包括:
第一模块,用于初始化第一电路参数、动态步长因子和动态方向因子;
第二模块,用于对所述第一电路参数进行编码,得到第一基因编码,所述第一基因编码用于将解空间划分为三维网格空间;
第三模块,用于根据所述第一基因编码、所述三维网格空间、所述动态步长因子和负反馈信息素,计算第一适应度值;
第四模块,用于根据所述第一基因编码和在所述第一适应度值下的第二基因编码,更新所述动态方向因子;
第五模块,用于根据更新后的所述动态方向因子,判断是否更新所述动态步长因子;
第六模块,用于根据更新后的所述动态步长因子和更新后的所述动态方向因子,更新所述第一电路参数,直至所述动态步长因子满足预设要求;
第七模块,用于根据更新后的所述第一电路参数进行电路设计。
本发明所具有的有益效果如下:
本发明首先初始化第一电路参数、动态步长因子和动态方向因子,对第一电路参数进行编码,得到第一基因编码,然后计算第一适应度值,再根据第一基因编码和在第一适应度值下的第二基因编码,更新动态方向因子,更新动态步长因子,更新第一电路参数,直至动态步长因子满足预设要求,最后根据更新后的第一电路参数进行电路设计,实现了电路设计,提高了效率和电路参数的精确度。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一种电路设计方法的流程图;
图2为本发明实施例一种更新第一电路参数整体流程的示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图和具体实施例对本发明做进一步的详细说明。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
在本发明的描述中,若干的含义是一个以上,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
除非另有定义,本发明实施例所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本发明实施例中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
如图1所示,本发明实施例提供了一种电路设计方法,本实施例的方法可应用于电路设计软件对应的后台处理器、服务器或云端设备。在应用过程中,本实施例的方法包括但不限于以下步骤:
步骤S11、初始化第一电路参数、动态步长因子和动态方向因子。
在本实施例中,可以初始化第一电路参数、动态步长因子和动态方向因子。其中,第一电路参数可以以模拟集成电路中的各MOS管的宽(W)、沟道长(L)、MOS管的并联数量(M)为优化对象。动态步长因子和动态方向因子用于在解空间中寻找下一个更优解。更多地,为了加快收敛速度,还可以根据实际电路上的元器件得到初始代种群,每个个体都对应着一组基因编码,这些基因编码表示了优化问题的一个候选解,以及初始化动态步长因子、动态方向因子。可以理解的是,初始代种群包括多项第一电路参数。
步骤S12、对第一电路参数进行编码,得到第一基因编码,第一基因编码用于将解空间划分为三维网格空间。
在本实施例中,对第一电路参数进行编码,得到第一基因编码,可以是先从第一电路参数中提取三项子参数,然后分别对三项子参数进行二进制编码,得到对应的二进制数,最后对三项二进制数进行组合,得到第一基因编码。
在本实施例中,在基因编码过程中,可以使用二进制编码。对于MOS管的优化问题,可以将一个MOS管的第一电路参数的属性值比如W、L和M,将W、L和M作为三项子参数,然后分别对三项子参数进行二进制编码,得到对应的二进制数,最后对三项二进制数进行组合,得到第一基因编码,也就是一个包括W、L和M的MOS管的第一电路参数代表一个基因编码,整个求解空间被划分成为n个大小相等的均匀三维的网格空间。
步骤S13、根据第一基因编码、三维网格空间、动态步长因子和负反馈信息素,计算第一适应度值。
在本实施例中,步骤S13的具体实施过程包括但不限于步骤S201-步骤S208:
步骤S201、对第一基因编码进行仿真处理,得到第一电路性能集。
在本实施例中,可以通过SPICE仿真软件对包含第一基因编码的电路进行仿真,从而得到电路的性能指标,在全MOS电压基准源电路中,主要有TC、LS等n个性能指标。
步骤S202、根据电路性能范围值,计算第一电路性能集中每项电路性能的性能权重、惩罚系数和违反程度值。
在本实施例中,可以根据电路性能范围值,计算第一电路性能集中每项电路性能的性能权重、惩罚系数。在本实施例中,电路约束包括选择电阻、电容、电感等元件的初始取值范围,以及电流和电压的范围等。本实施例定义了惩罚系数λ,代表的是一个约束条件中惩罚力度,假设有n个约束条件则设置系数λ=[λ
在本实施例中,根据电路性能范围值,计算电路性能的违反程度值,包括:
若电路性能范围值包括上限值和下限值,则根据性能值、上限值和下限值,计算违反程度值;
若电路性能范围值包括预设约束值,则根据性能值和预设约束值,计算违反程度值,预设约束值用于表征电路性能在预设范围内的最优值。
在本实施例中,如果个体的值(即性能值)超过了上限或低于下限,可以使用以下公式计算违反程度值:违反程度值=max(0,|性能值-上限|,|性能值-下限|)。如果个体需要满足一个不等式约束条件,可以计算个体值(即性能值)与约束条件中给定值(即预设约束值)之间的差异作为违反程度值:违反程度值=max(0,性能值-预设约束值)。
步骤S203、根据第一基因编码、动态步长因子和预设数量个方向向量,在三维网格空间中计算对应的第三基因编码。
在本实施例中,每个蚂蚁个体根据当前位置以及动态(搜索)步长因子和动态(搜索)方向因子,在解空间中进行搜索。本实施例为了消除原蚁群算法(ACO)中的随机性,引入动态步长因子及动态方向因子到路径记忆向量中,由于只是将遗传算法中的种群蚁群化,所以在解空间中的一个点代表的是一段基因编码。示例性地,可以设控制体P(即第一基因编码)为当前节点的中心,控制体P为解空间中的一个点,以横向步长stepX、纵向步长stepY,垂直方向步长stepZ,形成八个方向向量(+X,-X,+Y,-Y,+Z,-Z,+XY,-XY)的候选节点。若八个方向均未出现优于控制体P的节点,则表明当前动态步长因子条件下中心节点P为最优节点,已寻找到该个体迭代收敛的大致区域,配合动态搜索方向因子缩小动态搜索步长因子以获得更加精确解,然后在新的步长因子范围内继续寻找符合条件的候选节点。此外,若在此八个方向内出现优于控制体P的节点,则表明当前动态步长因子条件下存在更优的解,配合动态搜索方向因子扩大动态搜索步长因子以扩大搜索范围,加速寻优收敛,在新的步长因子范围内继续寻找符合条件的候选节点。当横向与纵向步长因子均减少至0时且控制体P为当前最优位置则停止搜索,当前个体寻优迭代完成,得到对应的第三基因编码。其中,第三基因编码可以存在一个或多个。
步骤S204、对多个第三基因编码进行组合,得到基因序列。
在本实施例中,可以将多个第三基因编码进行组合,得到基因序列。如一个包含n个MOS管的全MOS基准源电路,由其基因序列可以表示为:X=[w
步骤S205、根据负反馈信息素,对基因序列进行删除处理,删除处理用于删除基因序列中附带有负反馈信息素的第三基因编码,附带有负反馈信息素为第三基因编码在三维网格空间中的位置存在负反馈信息素。
在本实施例中,搜索过程中可以根据负反馈信息素实现局部搜索。为了引入蚁群算法的特性,将每个个体转化为蚁群中的蚂蚁,携带负反馈信息素以及电路的参数信息,也就是对个体所处位置以及搜索方向上的位置进行负反馈信息素的判定,将进入负反馈信息素区域范围内的解舍弃。可以理解的是,由于蚁群算法主要思想是基于群体智能和正反馈机制,信息素分布的影响主要是正向的,而本实施例引入负反馈信息素,避免后续迭代过程中同一个位置的重复计算,从而加速迭代收敛。同时,被信息素标记的区域也随之增多,未完成迭代的个体将由于剩余迭代求解空间的减少而加速迭代收敛。在本实施例中,可以根据负反馈信息素,对基因序列进行删除处理,将基因序列中附带有负反馈信息素的第三基因编码进行删除。
步骤S206、对删除处理后的基因序列中每个第三基因编码进行仿真处理,得到对应的第二电路性能集。
在本实施例中,可以通过SPICE仿真软件对删除处理后的基因序列中每个第三基因编码的电路进行仿真,从而得到对应的第二电路性能集。
步骤S207、根据第一电路性能集、性能权重、惩罚系数和违反程度值,对每项第二电路性能集进行适应度处理,计算对应的第二适应度值。
在本实施例中,可以根据第一电路性能集、性能权重、惩罚系数和违反程度值,对每项第二电路性能集进行适应度处理,计算对应的第二适应度值。其中,适应度处理的执行步骤可以是先根据电路性能属性、第一电路性能集和第二电路性能集,计算目标函数值,然后根据性能权重、惩罚系数、违反程度值和目标函数值,计算第二适应度值。
在本实施例中,根据电路性能属性、第一电路性能集和第二电路性能集,计算目标函数值,可以是先从第一电路性能集中选取一项电路性能作为优化前电路性能值,然后从第二电路性能集中选取一项电路性能作为优化后电路性能值,优化后电路性能值与优化前电路性能值的性能指标相同,第二电路性能集中的性能个数与第一电路性能集中的性能个数相等,最后根据电路性能属性、优化前电路性能值和优化后电路性能值,计算目标函数值。
在本实施例中,令每一项电路性能指标得到其目标函数值f
在本实施例中,可以根据性能权重、惩罚系数、违反程度值和目标函数值,计算第二适应度值。其中,第二适应度值计算公式如下:
式中,Fit
在本实施例中,λ、d作为惩罚项,当个体满足约束时,惩罚项的值为0,不对适应度值产生影响。否则,罚函数的值会增加,对适应度值进行惩罚,使不符合约束条件的个体在选择操作中的被选中概率降低,这样就可以保证优化过程中生成的个体满足设计要求。
步骤S208、从多项第二适应度值中选取一项值最大的适应度值作为第一适应度值。
在本实施例中,可以从多项第二适应度值中选取一项值最大的适应度值,得到本次迭代的第一适应度值。
在本实施例中,在计算得到第一适应度值后,方法还包括以下步骤:
将第一适应度值对应的第三基因编码作为第二基因编码;
在三维网格空间中第二基因编码的位置释放负反馈信息素。
在本实施例中,为下一次迭代作准备,可以更新第二基因编码并释放负反馈信息素。在计算得到第一适应度值后,可以先将第一适应度值对应的第三基因编码作为第二基因编码,第二基因编码用于后续步骤更新动态方向因子,然后在三维网格空间中第二基因编码的位置释放负反馈信息素,避免当前解被重复计算。其中,最终完成迭代的个体将在其完成迭代的位置处释放负反馈信息素,对该位置进行标记,使未完成迭代的个体避免进入此区间。可以理解的是,负反馈的释放机制是指对于个体搜索到信息素浓度高的区域时进行惩罚的一种机制。具体来说,当一个个体发现当前位置的信息素浓度非常高时,说明这个位置已经被其他个体频繁搜索过了,而且并没有找到更好的解。当前位置对于全局最优解的贡献较小,应该避免进一步搜索。
步骤S14、根据第一基因编码和在第一适应度值下的第二基因编码,更新动态方向因子。
在本实施例中,可以根据第一基因编码和在第一适应度值下的第二基因编码,更新动态方向因子。其中,判定动态方向因子的目的是为了对收敛的速度进行控制,当第一基因编码和第二基因编码的动态方向因子同向时,步长因子加倍扩大或缩小,反之则不对步长因子产生作用。在本实施例中,动态(搜索)方向因子记录控制体P的八个方向向量(+X,-X,+Y,-Y,+Z,-Z,+XY,-XY)以及控制体P,共9个量,将第一基因编码和第二基因编码的相对位置关系作为动态方向因子的方向,每完成一次迭代更新一次动态方向因子。
步骤S15、根据更新后的动态方向因子,判断是否更新动态步长因子。
在本实施例中,根据动态方向因子,判断是否更新动态步长因子,包括:
若更新前的动态方向因子和更新后的动态方向因子相等,则增加动态步长因子的步长值;
若更新前的动态方向因子和更新后的动态方向因子不相等,则不更新动态步长因子。
在本实施例中,当动态方向因子连续两次以上迭代保持不变时,则控制动态搜索步长因子加速扩大或者加速缩小;当方向因子发生改变时,则不参与步长因子的变化。示例性地,假设以控制体P为起始点作为初始方向因子开始在八个方向上开始搜索候选节点,假设在当前动态步长因子条件下获得+XY为最优方向,更新动态方向因子,因动态方向因子发生改变则不对步长因子立生加速作用,动态步长因子增加一个网格单位,将控制体P移至+XY所在位置。然后以控制体P为中心开始在八个方向上开始搜索候选节点,当+XY方向上仍为最优候选节点方向时,更新方向因子,因方向因子不变则对步长因子产生加速作用,动态搜索步长因子增加两个网格单位。
步骤S16、根据更新后的动态步长因子和更新后的动态方向因子,更新第一电路参数,直至动态步长因子满足预设要求。
在本实施例中,可以根据更新后的动态步长因子和更新后的动态方向因子,更新第一电路参数,直至动态步长因子满足预设要求。其中,可以通过复制分裂多项第一电路参数来避免陷入局部收敛,从而避免遗漏更优解。其操作机理是:当控制体P搜索获得多个优于其自身位置的解时,将控制体P进行逐个复制并更新至更优解的位置,分别对复制体重新开始迭代,并对多个复制分裂体的解进行适应度值的筛选,最终得到满足预设要求的最优解。需要满足的预设要求可以包括步长因子减少至0和控制体P的适应度值在所有迭代的复制分裂体中最大。
步骤S17、根据更新后的第一电路参数进行电路设计。
在本实施例中,可以根据在满足预设性能要求时的第一电路参数,利用选择的电路封装库和电路仿真环境与条件进行电路设计。其中,第一电路参数可以包括MOS管器件的栅长、栅宽以及MOS管的并联数量。在本实施例中,可以将第一电路参数作为元器件的制作工艺参数,即利用第一电路参数来确定电路版图中所使用的MOS管器件的栅长、栅宽以及MOS管的并联数量,来设计满足性能需求的电路。可以理解的是,根据最终所得的电路参数最优解,可以设计性能指标更好的电路。
在本实施例中,更新第一电路参数的整体流程如图2所示,可以首先初始化电路,进行基因编码,然后初始化种群,对种群中的每个个体计算适应度值,在解空间中进行探索,同时舍弃进入负反馈信息素区域的个体,根据适应度方程判断控制体是否为最优,若不为最优则进行复制分裂,再根据动态方向因子更新动态步长因子,最后得到适应度值最大的解,并释放负反馈信息素。
实施本发明实施例的有益效果包括:本发明实施例首先初始化第一电路参数、动态步长因子和动态方向因子,对第一电路参数进行编码,得到第一基因编码,然后计算第一适应度值,再根据第一基因编码和在第一适应度值下的第二基因编码,更新动态方向因子,更新动态步长因子,更新第一电路参数,直至动态步长因子满足预设要求,最后根据更新后的第一电路参数进行电路设计,实现了电路设计,提高了效率和电路参数的精确度。
本发明实施例还提供了一种电路设计系统,包括:
第一模块,用于初始化第一电路参数、动态步长因子和动态方向因子;
第二模块,用于对第一电路参数进行编码,得到第一基因编码,第一基因编码用于将解空间划分为三维网格空间;
第三模块,用于根据第一基因编码、三维网格空间、动态步长因子和负反馈信息素,计算第一适应度值;
第四模块,用于根据第一基因编码和在第一适应度值下的第二基因编码,更新动态方向因子;
第五模块,用于根据更新后的动态方向因子,判断是否更新动态步长因子;
第六模块,用于根据更新后的动态步长因子和更新后的动态方向因子,更新第一电路参数,直至动态步长因子满足预设要求;
第七模块,用于根据更新后的第一电路参数进行电路设计。
上述方法实施例中的内容均适用于本系统实施例中,本系统实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
以上是对本发明的较佳实施进行了具体说明,但本发明并不局限于上述实施方式,熟悉本领域的技术人员在不违背本发明精神的前提下还可作出种种的等同变形或替换,这些等同的变形或替换均包含在本发明权利要求所限定的范围内。
- 振荡电路设计辅助方法、振荡电路设计辅助系统以及振荡电路设计辅助程序
- 电路设计版图和电镜扫描图像的配准方法及系统、电路设计版图和其成像误差计算方法