掌桥专利:专业的专利平台
掌桥专利
首页

一种基于遗传算法的建立时间优化方法及其系统

文献发布时间:2023-06-19 19:28:50


一种基于遗传算法的建立时间优化方法及其系统

技术领域

本发明涉及数字电路技术领域,尤其是一种基于遗传算法的建立时间优化方法及其系统。

背景技术

数字芯片设计分为前端逻辑设计和后端物理设计两个阶段,对应芯片的功能设计和版图设计过程,实现将需求转化为代码、代码转化为电路网表、电路网表转化为电路版图,最终交付给芯片制造厂进行流片。

在芯片前端设计中,使用rtl代码级设计方法,电路延迟为0,而在实际电路中电路元件存在延迟,信号在电路传播过程中过慢可能导致系统崩溃。芯片后端物理设计时针对电路时序问题,利用替换电路单元或修改时钟路径缓冲器方法,调整信号传输时间来满足寄存器采样的建立时间,在不影响电路架构的基础上使系统正常工作。

随着集成电路设计规模增加,电路性能要求越来越高,芯片时序收敛变得越来越困难。对于数字系统而言,建立时间和保持时间是数字电路时序的基础,建立时间不满足要求会使得芯片性能受到影响。因此,对建立时间的分析与优化贯穿数字芯片设计的整个流程。随着布局到布线阶段的推进,时序报告输出的时序信息越来越精确,其中会存在若干建立时间违例路径。

图1为在芯片设计中,同一时钟域下rtl代码经过综合软件得到的电路网表概念图,主要由时钟源信号、CL组合逻辑电路、REG寄存器部分组成,图1中的标记部分为发生寄存器建立时间时序违例问题的支路。

在芯片物理设计过程中存在的时序问题其修复方式存在多种,如尝试在数据路径上替换单元,或利用有用偏差在时钟路径上插缓冲器的方法(如图2所示),尝试调整时钟树。然而,由于设计规模较大、时序路径数量较多,通过人工定义时钟路径上插入的缓冲器数量来修复建立时间可能会导致该路径前后级出现新的建立时间违例,时序修复效率低。

发明内容

为了克服上述现有技术中的缺陷,本发明提供一种基于遗传算法的建立时间优化方法,利用有用偏差进行时序修复的思想,提出基于遗传算法优化寄存器时钟端的缓冲器数量的方法,在不影响数据路径传输基础上优化建立时间时序,且不影响到保持时间时序。

为实现上述目的,本发明采用以下技术方案,包括:

一种基于遗传算法的建立时间优化方法,包括以下步骤:

S1,获取初始的电路网表;对遗传算法中的算法参数进行初始化,算法参数包括进化溢出次数GT、交叉概率Pc、变异概率Pm;设置染色体的基本进化方向;

S2,对当前电路网表进行时序分析,得到当前电路网表中各个寄存器的数据到达时间、数据需求时间和建立时间裕量,提取建立时间裕量为负值的路径即违例路径,所述建立时间裕量=数据需求时间-数据到达时间;

对所有违例路径进行加和,根据违例路径加和值判断当前电路网表的时序好坏程度,违例路径加和值越大,时序越好,反之,违例路径加和值越小,时序越差;所述违例路径加和值为对所有违例路径的建立时间裕量相加;

S3,根据当前电路网表的时序分析结果,选择违例路径上的寄存器以及选择位于违例路径前后端的寄存器,共选择k个寄存器作为染色体的基因,将各个寄存器时钟端的缓冲器数量作为基因的编码;一组基因和基因上对应的编码即构成一条染色体,根据当前电路网表得到当前染色体;

S4,根据当前染色体进行第G次进化:

S41,染色体基本进化:根据当前染色体以及染色体的基本进化方向,对当前染色体直接进化,得到若干个基本进化后的染色体;

S42,交叉进化:以若干个基本进化后的染色体作为母染色体,根据交叉概率执行若干次的母染色体交叉,得到若干个交叉生成的子染色体;

S43,变异进化:根据变异概率修改交叉生成的子染色体上的基因位,得到变异染色体;

S44,将步骤S41-S42得到的基本进化后的染色体、交叉生成的子染色体、变异染色体均作为第G次进化得到的染色体,第G次进化共得到N个染色体;

其中,将第G次进化得到的第j个染色体上的第i个基因编码即第i个寄存器时钟端的缓冲器的数量记为

S5,对第G次进化得到的N个染色体进行择优:

利用第G次进化得到的各个染色体分别对当前电路网表进行调整,根据染色上各个基因的编码调整对应寄存器时钟端的缓冲器数量,对调整后的电路网表进行时序分析,判断调整后的电路网表的时序好坏程度,选择对应时序最好的染色体作为最优染色体,使用该最优染色体更新电路网表;

S6,对步骤S5得到的更新后的电路网表进行时序分析,判断更新后的电路网表中是否存在时间建立时间裕量为负值的路径,若不存在,则表示满足算法条件,输出更新后的电路网表作为建立时间的最终优化方案;

若存在,则判断当前进化次数G是否等于进化溢出次数GT,若等于,则直接输出步骤S5得到的更新后的电路网表作为建立时间的最终优化方案;若不等于,则将更新后的电路网表作为当前电路网表,根据当前电路网表得到当前染色体,然后根据当前染色体进行下一次进化,跳转步骤S4,直至得到建立时间的最终优化方案。

优选的,假设:当前电路网表中的存在违例路径为:寄存器B—>寄存器C;选择违例路径上的寄存器以及选择位于违例路径前后端的寄存器作为当前染色体的部分基因片段,对应路径为:寄存器A—>寄存器B—>寄存器C—>寄存器D;

其中,违例路径上的位于前端的寄存器B以及位于违例路径前端的寄存器A均为前级寄存器;违例路径上的位于后端的寄存器C为违例节点寄存器,位于违例路径后端的寄存器D为后级寄存器;

步骤S1中,染色体的基本进化方向为:减少前级寄存器的时钟端缓冲器数量,和/或增加违例节点寄存器的时钟端缓冲器数量,和/或增加后级寄存器的时钟端缓冲器数量。

优选的,步骤S41中,染色体基本进化的具体方式为:将寄存器A和/或寄存器B的时钟端缓冲器数量减1,和/或将寄存器C的的时钟端缓冲器数量加1,和/或将寄存器D的时钟端缓冲器数量加1;

得到如下表1所示的8个基本进化后的染色体片段:

其中,-1代表删除一个缓冲器,1代表增加一个缓冲器,0代表不增加也不删除缓冲器。

优选的,若当前电路网表中存在连续的违例路径,假设连续的违例路径分别为:寄存器B—>寄存器C,寄存器C—>寄存器D,则选择连续的违例路径上的寄存器以及选择位于连续的违例路径前后端的寄存器构建当前染色体的部分基因片段,对应路径为:寄存器A—>寄存器B—>寄存器C—>寄存器D—>寄存器E;

在具体的基本进化过程中,先按照违例路径分为两个支路:寄存器A—>寄存器B—>寄存器C—>寄存器D的支路即ABCD支路、寄存器B—>寄存器C—>寄存器D—>寄存器E的支路即BCDE支路,根据两个支路的基本进化方向,对于寄存器A、寄存器B、寄存器C选择ABCD支路的编码值,寄存器D、寄存器E选择BCDE支路,得到如下表2所示的8个基本进化后的染色体片段:

表2基本进化后的染色体片段

/>

其中,-1代表删除一个缓冲器,1代表增加一个缓冲器,0代表不增加也不删除缓冲器。

优选的,步骤S42中,交叉进化的具体方式为:随机选择两个母染色体进行均匀交叉,对两个母染色体上的同一基因位的编码取均值,作为交叉生成的子染色体的对应基因位的编码。

本发明还提供了一种基于遗传算法的建立时间优化方法的系统,系统包括:电路网表、静态时序分析工具、自动布局布线工具、适应度函数计算器、违例路径提取器、时钟端buf提取器、时钟端buf方案调整器;

所述静态时序分析工具用于对电路网表进行时序分析,得到时序报告,即得到当前电路网表中各个寄存器的数据到达时间、数据需求时间和建立时间裕量;

所述适应度函数计算器用于根据静态时序分析工具得到的时序报告计算违例路径加和值,根据违例路径加和值判断当前电路网表的时序好坏程度;

所述违例路径提取器用于根据静态时序分析工具得到的时序报告,提取建立时间裕量为负值的路径即违例路径;

所述时钟端buf提取器用于根据静态时序分析工具得到的时序报告,选择违例路径上的寄存器以及选择位于违例路径前后端的寄存器,并得到各个寄存器时钟端的缓冲器数量,即得到当前染色体;

所述时钟端buf方案调整器基于遗传算法对当前染色体进行进化和择优,优化各个寄存器时钟端的缓冲器数量;

所述自动布局布线工具用于根据优化后的各个寄存器时钟端的缓冲器数量更新电路网表。

优选的,所述静态时序工具为Synopsys公司的Prime Time软件;所述自动布局布线工具为Synopsys公司的IC Compile软件

本发明的优点在于:

(1)本发明针对利用有用偏差进行时序修复的思想,提出基于遗传算法优化寄存器时钟端的缓冲器数量的方法,在不影响数据路径传输基础上优化建立时间时序,且不影响到保持时间时序。

(2)通过遗传算法对优化寄存器时钟端的缓冲器数量以解决电路时序违例的问题建立数学模型,根据进化思路设置多组解决方案并寻找最优解,作为利用有用偏差修复建立时间违例的优化方案。

(3)通过遗传算法全局搜索最优解,在所有路径的建立时间最差违例非负的目标约束下,找到最优的解决方案,提高了建立时间修复效率,大大缩短了后端设计周期。

(4)使用遗传算法进行迭代得到优化方案,代替人工计算得到优化方案,加快芯片开发速度。

(5)通过优化芯片的建立时间时序,在保证芯片功能的同时,提高了芯片的运行频率。

附图说明

图1为芯片设计中的电路网表概念图。

图2为利用有用偏差在时钟路径上插缓冲器的时序修复示意图。

图3为本发明的一种用于优化数字芯片建立时间的系统架构图。

图4为染色体对应的路径示意图。

图5为一种基于遗传算法的建立时间优化方法流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

数字芯片物理设计时,先后经过文件准备、布图规划、布局规划、时钟树综合、布线及插入dummy、静态时序分析、时序修复、签核校验,最终生成版图文件进行流片,即将抽象的电路转化为具体的电路。其中,各步骤利用EDA软件执行并生成电路报告,设计人员根据电路报告在后端流程中对电路进行反复迭代优化,最终完成物理设计。

在后端设计的时钟树综合阶段,针对电路网表中存在大量的寄存器,沿着电路设计的时钟路径自动插入缓冲器,以平衡所有时钟输入的时钟延迟,使得从时钟源到每个寄存器时钟端时间相同,避免时钟偏差的发生。

完成时钟树综合后,电路时钟端的结构更加具体化,对设计电路进行静态时序分析可得到更准确的时序报告。对于时序报告中存在的建立时间违例路径,设计人员进行逐条分析,根据寄存器采样原理,对违例路径的寄存器时钟端缓冲器数量进行细调整即进行时序修复,解决芯片时序违例问题。

本发明主要针对时序修复的建立时间优化问题,在完成布局布线阶段后的静态时序分析和时序修复阶段,使用软件和算法快速准确得到时钟树的缓冲器最优优化方案。

实施例1

如图3所示,本发明提供一种用于优化数字芯片建立时间时序的系统,包括:电路网表、静态时序分析工具1、自动布局布线工具2、适应度函数计算器3、违例路径提取器4、时钟端buf提取器5、时钟端buf方案调整器6;

所述电路网表为待优化电路文件,待优化电路文件由综合工具根据设计代码逻辑综合后得到。

所述静态时序工具1为Synopsys公司的Prime Time软件,用于对电路网表进行静态时序分析,得到当前电路网表中各个寄存器的数据到达时间和数据需求时间和建立时间裕量,得到时序报告。其中,建立时间裕量为负值的路径即违例路径,所述建立时间裕量=数据需求时间-数据到达时间。

所述适应度函数计算器3用于根据静态时序分析工具1得到的时序报告计算违例路径加和值,根据违例路径加和值判断当前电路网表的时序好坏程度,违例路径加和值越大,时序越好,反之,违例路径加和值越小,时序越差;所述违例路径加和值为对所有违例路径的建立时间裕量相加。

所述违例路径提取器4用于根据静态时序分析工具1得到的时序报告,提取建立时间裕量为负值的路径即违例路径。

所述时钟端buf提取器5用于根据静态时序分析工具1得到的时序报告,选择违例路径上的寄存器以及选择位于违例路径前后端的寄存器,并得到各个寄存器时钟端的缓冲器数量。

所述时钟端buf方案调整器6基于遗传算法对当前染色体进行进化和择优,优化各个寄存器时钟端的缓冲器数量。

所述自动布局布线工具2为Synopsys公司的IC Compile软件,用于根据优化后的各个寄存器时钟端的缓冲器数量更新电路网表。

实施例2

由图5所示,一种基于遗传算法的建立时间优化方法,包括以下步骤:

S1,获取初始的电路网表;对遗传算法中的算法参数进行初始化,算法参数包括进化溢出次数GT、交叉概率Pc、变异概率Pm;设置染色体的基本进化方向。

S2,对当前电路网表进行时序分析,得到当前电路网表中各个寄存器的数据到达时间、数据需求时间和建立时间裕量,提取建立时间裕量为负值的路径即违例路径,所述建立时间裕量=数据需求时间-数据到达时间;

对所有违例路径进行加和,根据违例路径加和值判断当前电路网表的时序好坏程度,违例路径加和值越大,时序越好,反之,违例路径加和值越小,时序越差;所述违例路径加和值为对所有违例路径的建立时间裕量相加。

S3,根据当前电路网表的时序分析结果,选择违例路径上的寄存器以及选择位于违例路径前后端的寄存器,共选择k个寄存器作为染色体的基因,将各个寄存器时钟端的缓冲器数量作为基因的编码;一组基因和基因上对应的编码即构成一条染色体,根据当前电路网表得到当前染色体。

S4,根据当前染色体进行第G次进化:

S41,染色体基本进化:根据当前染色体以及染色体的基本进化方向,对当前染色体直接进化,得到若干个基本进化后的染色体。

S42,交叉进化:以若干个基本进化后的染色体作为母染色体,根据交叉概率执行若干次的母染色体交叉,得到若干个交叉生成的子染色体;

其中,交叉进化的具体方式为:随机选择两个母染色体进行均匀交叉,对两个母染色体上的同一基因位的编码取均值,作为交叉生成的子染色体的对应基因位的编码。

S43,变异进化:根据变异概率修改交叉生成的子染色体上的基因位,得到变异染色体。

其中,设置基因位的编码取值范围为0-7,即寄存器时钟端的缓冲器数量取值范围为0-7。

S44,将步骤S41-S42得到的基本进化后的染色体、交叉生成的子染色体、变异染色体均作为第G次进化得到的染色体,第G次进化共得到N个染色体;

其中,将第G次进化得到的第j个染色体上的第i个基因编码即第i个寄存器时钟端的缓冲器的数量记为

S5,对第G次进化得到的N个染色体进行择优:

利用第G次进化得到的各个染色体分别对当前电路网表进行调整,根据染色上各个基因的编码调整对应寄存器时钟端的缓冲器数量,对调整后的电路网表进行时序分析,判断调整后的电路网表的时序好坏程度,选择对应时序最好的染色体作为最优染色体,使用该最优染色体更新电路网表。

S6,对步骤S5得到的更新后的电路网表进行时序分析,判断更新后的电路网表中是否存在时间建立时间裕量为负值的路径,若不存在,则表示满足算法条件,输出更新后的电路网表作为建立时间的最终优化方案;

若存在,则判断当前进化次数G是否等于进化溢出次数GT,若等于,则直接输出步骤S5得到的更新后的电路网表作为建立时间的最终优化方案;若不等于,则将更新后的电路网表作为当前电路网表,根据当前电路网表得到当前染色体,然后根据当前染色体进行下一次进化,跳转步骤S4,直至得到建立时间的最终优化方案。

本发明中,建立时间优化的基本方式:发生寄存器建立时间违例,基本修复思想是使违例路径上的信号实际传输时间小于预期传输时间,使信号在使用前到达寄存器输入端。本发明借助时钟偏差进行修复是增大预期传输时间的方法,实现形式为减少前级寄存器时钟端的缓冲器数量和增大后级寄存器时钟短的缓冲器数量两种。此外,由于调整寄存器时钟端的缓冲器数量进行时序修复,除了会优化待修复单元的时序外,还会对前后级时序造成影响。因此本发明在遗传算法生成下一代解决方案(染色体)时,不仅考虑违例路径上的两个违例寄存器,还根据时序报告分别选择位于违例路径前后端中时序最紧张的两个寄存器,对这一条路径下的四个寄存器时钟端的缓冲器数量,染色体的基本进化方向为:减少当前染色体对应路径中的前级寄存器的时钟端缓冲器数量(减1),和/或增加当前染色体对应路径中的违例节点寄存器的时钟端缓冲器数量(增1),和/或增加当前染色体对应路径中的后级寄存器的时钟端缓冲器数量(增1)。其中,违例路径上的位于前端的寄存器以及位于违例路径前端的寄存器均为前级寄存器;违例路径上的位于后端的寄存器为违例节点寄存器,位于违例路径后端的寄存器为后级寄存器。

例如,电路网表中有100个寄存器,共有10组点到点的违例路径,其中,8组是不连续路径的违例,另外2组是连续路径的违例。染色体由这10组违例路径的寄存器组成。根据8个基本进化方向,生成8个基本进化后的染色体。对于第1个基本进化方向为在节点处增加一个缓冲器,那么该场景下就是对这10组违例路径的违例节点处都插上一个缓冲器;在连续违例路径上,如果插入数量存在冲突则按就近原则处理(单独这个支路插入方案可能重复但没关系,还有别的违例路径)。

如图4所示,由于一条支路上从寄存器B到寄存器C之间逻辑深度过长,因此路径寄存器B—>寄存器C发生建立时间违例,选择违例路径上的寄存器以及选择位于违例路径前后端的寄存器作为当前染色体的一部分基因,对应路径为:寄存器A—>寄存器B—>寄存器C—>寄存器D;

其中,该路径上的位于前端的寄存器B以及位于违例路径前端的寄存器A均为前级寄存器;违例路径上的位于后端的寄存器C为违例节点寄存器,位于违例路径后端的寄存器D为后级寄存器。

依据染色体的基本进化方向,即将寄存器A和/或寄存器B的时钟端缓冲器数量减1,和/或将寄存器C的的时钟端缓冲器数量加1,和/或将寄存器D的时钟端缓冲器数量加1,得到如下表1所示的8个基本进化后的染色体片段:

表1基本进化后的染色体片段

其中,-1代表删除一个缓冲器,1代表增加一个缓冲器,0代表不增加也不删除缓冲器。

后续利用8个基本进化后的染色体作为母染色体,后续根据交叉概率和变异概率进行交叉进化和变异进化,得到余下的N-8个进化后的染色体。本实施例中8≤N≤20。

若当前网表中存在连续违例路径的支路,假设连续违例支路为:寄存器B—>寄存器C,寄存器C—>寄存器D,则选择这一条支路上的违例节点寄存器和违例路径前后端寄存器作为基因片段共同分析,对应路径为:寄存器A—>寄存器B—>寄存器C—>寄存器D—>寄存器E;

其中,寄存器A和寄存器B为前级寄存器,寄存器C和寄存器D为违例节点寄存器,寄存器E为后级寄存器。

在具体的基本进化过程中,先按照违例路径分为两个支路:寄存器A—>寄存器B—>寄存器C—>寄存器D的支路即ABCD支路、寄存器B—>寄存器C—>寄存器D—>寄存器E的支路即BCDE支路,根据两个支路的基本进化方向,根据违例节点就近原则,对于寄存器A、寄存器B、寄存器C选择ABCD支路的编码值,寄存器D、寄存器E选择BCDE支路的编码值,得到如下表2所示的8个基本进化后的染色体片段:

表2基本进化后的染色体片段

本发明中的遗传算法还可替换为粒子群优化算法。

以上仅为本发明创造的较佳实施例而已,并不用以限制本发明创造,凡在本发明创造的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明创造的保护范围之内。

技术分类

06120115921837