一种基于关键路径的门尺寸优化方法与流程

未命名 08-14 阅读:124 评论:0


1.本技术涉及电子设计自动化技术领域,特别是涉及一种基于关键路径的门尺寸优化方法。


背景技术:

2.电子自动化设计,即eda(electronic design automation)指的是借助电子计算机,利用一系列软件工具完成集成电路等电子系统的设计过程,其主要目标是将高层次的硬件描述语言转化成可实现的电路设计,在功能正确的前提下满足时序、功耗和面积等一系列约束。
3.在eda过程中,为了平衡电路性能和功耗,需要通过选取不同单元的组合来满足电路的时序、功耗和面积等设计的约束,这个选取不同单元的组合的过程就是电路的门尺寸优化的过程。
4.现有技术中,通过数学建模和分析将尺寸优化问题转化为几何规划(geometric programing)或凸规划(convex programing)问题进行求解,但是随着集成电路规模的增长,直接求解几何规划或凸规划的方法的效率也变得越来越低。而另一种使用数值求解框架来做电路的门尺寸优化的方法由于其求解过程中参数众多且取值很大程度上依赖人工经验,导致求解的结果和运行时长都具有一定的随机性,且求解时间较长。


技术实现要素:

5.为了解决现有技术存在的不足,本技术的目的在于提供一种基于关键路径的门尺寸优化方法,用于针对电路的关键路径进行精准优化,从而快速提升电路时序性能,求得对应的门尺寸优化结果。
6.为实现上述目的,本技术提供一种基于关键路径的门尺寸优化方法,包括:对设计电路进行多轮迭代优化至收敛状态,所述迭代优化的步骤包括:
7.选取设计电路中信号从输入端到输出端所经过的延时最长的路径作为当前轮迭代优化的关键路径;
8.沿所述关键路径的信号传播方向对关键路径上各级门进行尺寸优化。
9.进一步的,所述沿所述关键路径的信号传播方向对关键路径上各级门进行尺寸优化的步骤包括:
10.沿所述关键路径的信号传播方向自顶向下,从各级门的可选尺寸中确定各级门的最优尺寸;
11.沿所述关键路径的信号传播方向自下向顶逐个评估各级的门的最优尺寸对设计电路的全局影响,若当前级门的最优尺寸对设计电路的全局影响具有优化效果,则应用所述最优尺寸作为所述当前级门的最终尺寸;若所述当前级门的最优尺寸对设计电路的全局影响不具有优化效果,则应用所述当前级门的原有尺寸。
12.进一步的,所述收敛状态包括:
13.所述关键路径的时序在上一轮迭代后已满足电路的设计要求时的状态;
14.所述关键路径的时序与上一轮迭代相比没有提升时的状态;
15.所述迭代优化的轮数到达预设的最大轮数时的状态。
16.进一步的,所述从各级门的可选尺寸中确定各级门的最优尺寸的步骤包括:
17.分别计算当前级门在可选尺寸下时所述当前级门的上一级门的输入端的要求时间,选取要求时间最大时的可选尺寸作为当前级门的最优尺寸。
18.进一步的,所述分别计算当前级门在可选尺寸下时所述当前级门的上一级门的输入端的要求时间的步骤包括:
19.选定一可选尺寸作为当前级门的尺寸,基于上一级门的输出端的信号翻转时间,确定当前级门的输入端的信号反转时间;
20.基于当前级门的输入端的信号反转时间、当前级门的输出端的要求时间和当前级门的门器件延时,确定当前级门的输入端的要求时间;
21.基于所述当前级门的输入端的要求时间,网络内时序传播确定所述上一级门的输出端的要求时间和所述上一级门的负载电容;
22.基于所述上一级门的输出端的要求时间、所述上一级门的负载电容和所述上一级门的自身延迟,确定当前级门在所述可选尺寸下时,所述上一级门的输入端的要求时间。
23.进一步的,所述逐个评估各级的门的最优尺寸对设计电路的全局影响的步骤包括:
24.响应于当前级门应用所述最优尺寸,确定设计电路的总违例时间变化,若所述总违例时间的值变大,则认为所述最优尺寸对设计电路的全局影响具有优化效果,反之则不具有优化效果。
25.进一步的,所述响应于当前级门应用所述最优尺寸,确定设计电路的总违例时间变化的步骤包括:
26.将所述设计电路中为负的各路径的松弛时间相加,作为所述设计电路的总违例时间。
27.进一步的,所述响应于当前级门应用所述最优尺寸,确定设计电路的总违例时间变化的步骤包括:确定所述关键路径的松弛时间;所述确定所述关键路径的松弛时间的步骤包括:
28.响应于当前级门应用所述最优尺寸,根据当前级门的要求时间从当前级门开始逐级确定各级网络的要求时间,直至所述关键路径的起始,所述关键路径的起始的必要时间即为当前级门应用所述最优尺寸后所述关键路径的松弛时间。
29.为实现上述目的,本技术提供的电子设备,包括:
30.处理器;
31.存储器,其上存储有一个或多个在所述处理器上运行的计算机程序指令;
32.其中,所述处理器运行所述计算机指令时,执行如上所述的基于关键路径的门尺寸优化方法。
33.为实现上述目的,本技术提供的计算机可读存储介质,其上存储有计算机指令,当计算机指令被处理器运行时,执行如上所述的基于关键路径的门尺寸优化方法的步骤。
34.本技术提供的一种基于关键路径的门尺寸优化方法,不同于传统的基于几何规划
或凸规划形式的求解方法,本发明通过直接优化关键路径,对两个基本过程——自顶向下的局部优化和自底向上的全局评估进行快速高效的迭代,从而求得整体电路的门尺寸优化方案,避免了直接求解几何规划或凸规划问题,不需要对求解结果进行取整,能够精准快速地完成整体电路的门尺寸优化。
35.本技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术而了解。
附图说明
36.附图用来提供对本技术的进一步理解,并且构成说明书的一部分,并与本技术的实施例一起,用于解释本技术,并不构成对本技术的限制。在附图中:
37.图1为本技术的基于关键路径的门尺寸优化方法的流程示意图;
38.图2为对关键路径上各级门进行尺寸优化的流程示意图;
39.图3为计算当前级门的上一级门的输入端的要求时间的流程示意图;
40.图4为时序传播网络的结构示意图;
41.图5为本技术的基于关键路径的门尺寸优化方法的流程示意图;
42.图6为示例电路的结构示意图;
43.图7为单个门尺寸优化的流程示意图;
44.图8为自底向上全局评估的流程示意图。
具体实施方式
45.下面将参照附图更详细地描述本技术的实施例。虽然附图中显示了本技术的某些实施例,然而应当理解的是,本技术可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本技术。应当理解的是,本技术的附图及实施例仅用于示例性作用,并非用于限制本技术的保护范围。
46.应当理解,本技术的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本技术的范围在此方面不受限制。
47.本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
48.需要注意,本技术中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。“多个”应理解为两个或以上。
49.下面,将参考附图详细地说明本技术的实施例。
50.实施例1
51.本技术的一个实施例,提供了一种基于关键路径的门尺寸优化方法,图1为本技术的基于关键路径的门尺寸优化方法的流程示意图,下面将参考图1对本技术的基于关键路径的门尺寸优化方法进行详细描述,包括:
52.对设计电路进行多轮迭代优化至收敛状态,每一轮迭代优化的步骤包括:
53.步骤s101:选取设计电路中信号从输入端到输出端所经过的延时最长的路径作为当前轮迭代优化的关键路径;
54.需要说明的是,关键路径严格来说,是时序违例最大的路径,在本实施方式中,由于门尺寸优化方法是在整个eda流程中处于静态时序分析(sta)流程之后进行,因此在每一轮迭代优化时根据sta的分析工具的分析结果选取时序最差的路径作为关键路径。静态时序分析(static timing analysis,sta)是分析、调试并确认一个门级系统设计时序性能的比较彻底的方法。
55.可以理解的是,在门器件的尺寸发生变化后,设计电路的各路径的时序也会随之改变,因此设计电路的关键路径也可能发生变化,所以在每轮迭代优化时,都需要重新选取关键路径,进而完成对整个设计电路的优化。
56.可以理解的是,收敛状态即为迭代优化方法停止的标志,若设计电路已经处于收敛状态,则整个基于关键路径的门尺寸优化方法结束。
57.在本实施方式中收敛状态包括:
58.关键路径的时序在上一轮迭代后已满足电路的设计要求时的状态;
59.关键路径的时序与上一轮迭代相比没有提升时的状态;
60.迭代优化的轮数到达预设的最大轮数时的状态。
61.可以在一轮迭代优化后或者新的一轮迭代优化开始时,判断设计电路是否出于收敛状态。
62.步骤s102:沿所述关键路径的信号传播方向对关键路径上各级门进行尺寸优化。
63.具体的,在一轮迭代优化中,当确定了关键路径后,沿关键路径的信号传播方向对关键路径逐个对各级门进行尺寸优化。
64.参阅图2,图2为对关键路径上各级门进行尺寸优化的流程示意图,在本实施方式中,沿关键路径的信号传播方向对关键路径上各级门进行尺寸优化的步骤包括:
65.s201:沿所述关键路径的信号传播方向自顶向下,从各级门的可选尺寸中确定各级门的最优尺寸;
66.在本实施方式中,从各级门的可选尺寸中确定各级门的最优尺寸的步骤包括:
67.分别计算当前级门在可选尺寸下时当前级门的上一级门的输入端的要求时间,选取要求时间最大时的可选尺寸作为当前级门的最优尺寸。
68.即通过计算当前级门的可选尺寸下的上一级门的要求时间来选择最优尺寸。
69.示例性的,如在在优化门器件gi时,其前级的门g1,g2…gi-1
的尺寸已经优化确定,因此其上一级门g
i-1
的输入端的arrival time(即到达时间)是确定的。因此要使路径的时序最优,就要使g
i-1
输入端处的slack time(松弛时间)尽可能大,而此时arrival time为固定值,而松弛时间是由required time(即要求时间)减去arrival time得到,因此使用required time来选择最优尺寸。
70.参阅图3,图3为计算当前级门的上一级门的输入端的要求时间的流程示意图,具体步骤包括:
71.s2011:选定一可选尺寸作为当前级门的尺寸,基于上一级门的输出端的信号翻转时间,确定当前级门的输入端的信号反转时间;
72.需要说明的是,在迭代优化开始前,设计电路的各门器件已被配置有初始化尺寸,使用sta分析工具分析得到初始的电路信息,电路信息包括但不限于:slew、电容、电阻、延迟、required time和slack等。当电路尺寸变更后,会导致一些电路信息发生变化,进而需要重新计算和更新。
73.当前级门的尺寸应用可选尺寸后,相对于原始尺寸做了改变,因此器件自身对应的电容属性也会发生变化,对其上一级门g
i-1
而言,它的输出端电容负载c
i-1
也随之发生变化,导致上一级门g
i-1
的输出端slew
i-1输出
变化,进而引起gi输入端的slew
i输入
变化。
74.具体的,根据如下公式:
75.slew
输出
=tran(slew
输入
,c);
76.可知,门器件的输出端的信号翻转率(slew)由输入端的slew与负载电容c决定,当前级门的尺寸应用可选尺寸后,对于上一级门g
i-1
而言,其输入端的slew
i-1输入
不变,负载电容c发生了变化,根据变化的负载电容重新计算slew
i-1输
出。
77.需要说明的是,这里的tran函数是一个查表过程,器件的特性记录在时序库文件liberty当中。
78.需要说明的是,slew
i输入
和slew
i-1输出
两者在实际应用中是一个复杂的关系,在较早期的工艺中,因线电阻几乎可以忽略,此时slew
i输入
是直接等于slew
i-1输出
的。当工艺节点进一步减小时,线电阻逐渐增大,其影响不再可以忽略(一般工艺进入130nm以后,就要考虑线延时了),此时两者关系由等效模型计算,不同情况下采用的模型也不一样。在本实施方式中,近似认为两者的变化比例一致,从而快速更新变化前后的slew值。
79.s2012:基于当前级门的输入端的信号反转时间、当前级门的输出端的要求时间和当前级门的门器件延时,确定当前级门的输入端的要求时间;
80.具体的,采用如下公式:
81.rt
i输入
=rt
i输出-d(c
ij
,slew
i输入
,ci);
82.其中,rt
i输出
为当前级门输出端的要求时间,因当前级门的尺寸应用可选尺寸后,其后级门的尺寸并不发生改变,因此当前级门的值不变;d(c
ij
,slew
i输入
,ci)为当前级门的输入端到输出端的延时,其与当前级门的slew
i输入
和负载ci有关。
83.s2013:基于所述当前级门的输入端的要求时间,网络内时序传播确定所述上一级门的输出端的要求时间和所述上一级门的负载电容;
84.具体的,通过时序传播,将rt
i输入
沿着其所处的网络从sink(接收)端,即当前级门的输入端开始,减去到driver端经过的所有线延时,最终计算出所处网络driver(驱动)端,也即上一级门的rt
i-1输出

85.示例性的,参阅图4,图4为时序传播网络的结构示意图,如图4(a)所示,一个网络可以抽象成n个sink端和一个driver端。其中的某一个sink端即为当前级门gi的输入端,它的时序即为rt
i输入
发生了变化,而其他sink端的rt仍为原始的时序。具体传播过程分为两种情况,其一,沿着线传播,如图4(b)所示,设在结点a的参数为(ti,ci),t为a处的required time,c为a的负载电容。线模型可以等效为rc模型,电阻值r,电容值c,则经过线延时到节点b时,可以简单的按照elmore delay模型估计b处的参数(ti’,ci’):ti’=ti-rc/2-rci;ci’=ci+c。其二,分支合并,如图4(c)所示,设在分支1处的参数为(t1,c1),在分支2处的参数为(t2,c2),则合并后的解可以表示为t=min(t1,t2),c=c1+c2。即电容加和,时间取更严
格的一个分支。通过以上方式,即可将sink端的required time沿网络传播至driver,即可完成对g
i-1
输出端required time的更新。
86.s2014:基于所述上一级门的输出端的要求时间、所述上一级门的负载电容和所述上一级门的自身延迟,确定当前级门在所述可选尺寸下时,所述上一级门的输入端的要求时间。
87.具体的,上一级门的输入端的要求时间等于上一级门的输出端要求时间减去上一级门自身的延迟,公式如下:
88.rt
i-1输入
=rt
i-1输出-d(c
i-1
,slew
i-1输入
,c
i-1
);
89.其中,rt
i-1输出
为上一级门的输出端的要求时间;d(c
i-1
,slew
i-1输入
,c
i-1
)为上一级门自身的延迟,对于上一级门而言,其slew
i-1输入
不变,根据网络内传播计算的c
i-1
得到上一级门自身的延迟,进而确定上一级门的输入端的要求时间。
90.s202:沿所述关键路径的信号传播方向自下向顶逐个评估各级的门的最优尺寸对设计电路的全局影响,若当前级门的最优尺寸对设计电路的全局影响具有优化效果,则应用所述最优尺寸作为所述当前级门的最终尺寸;若所述当前级门的最优尺寸对设计电路的全局影响不具有优化效果,则应用所述当前级门的原有尺寸。
91.在本实施方式中,逐个评估各级的门的最优尺寸对设计电路的全局影响的步骤包括:
92.响应于当前级门应用所述最优尺寸,确定设计电路的总违例时间变化,若所述总违例时间的值变大,则认为所述最优尺寸对设计电路的全局影响具有优化效果,反之则不具有优化效果。
93.在本实施方式中,考虑到优化过程本身是针对关键路径求解而得到的最优尺寸,所以最优尺寸首先是保证了局部最优的特性,如果最优尺寸能够使得总违例时间tns值也增加,则说明它对电路的全局也起到了优化作用,会应用该最优尺寸,并将评估过程计算的slew和required time变化更新到电路中,以确保gi尺寸变化后电路时序的正确性;若该尺寸变化将导致电路的全局特性变差,则不应用该尺寸变化。
94.在本实施方式中,将设计电路中为负的各路径的松弛时间相加,作为设计电路的总违例时间。
95.在本实施方式中,响应于当前级门应用所述最优尺寸,确定设计电路的总违例时间变化的步骤包括:
96.确定关键路径的松弛时间;
97.确定所述关键路径的松弛时间的步骤包括:
98.响应于当前级门应用所述最优尺寸,根据当前级门的要求时间从当前级门开始逐级确定各级网络的要求时间,直至所述关键路径的起始,所述关键路径的起始的必要时间即为当前级门应用所述最优尺寸后所述关键路径的松弛时间。
99.具体的,首先收集当前级门gi输入端和输出端所在的网络,计算网络中driver端与sink端的slew变化,slew的变化随着级数的增加会快速衰减,因此在本实施方式汇总只需要计算gi的前一级和后一级,即输入端和输出端所在网络的影响。
100.然后逐级向前计算各网络required time变化:从当前级门gi开始,将其输入端的required time沿所在网络传播至driver端,再减去driver端门器件自身的延迟,得到上一
级门输入端的required time,重复这一过程直至路径的起始。进而得到了gi处的尺寸变化对电路整体带来的影响,即路径起始端的required time,其数值上就等于路径的slack time。
101.需要说明的是,不论是否应用尺寸变化,都将进入下一步的优化,即如不应用最优尺寸,则直接考察当前关键路径上的下一级门器件,对其进行尺寸优化并评估;若当前已经到达路径末尾,则重新选取关键路径进行新一轮的迭代优化。
102.实施例2
103.本技术的一个实施例,提供了一种基于关键路径的门尺寸优化方法,图5为本技术的基于关键路径的门尺寸优化方法的流程示意图,下面将参考图5对本技术的基于关键路径的门尺寸优化方法进行详细描述:
104.在本实施例中使用迭代优化的方法,在每一次迭代中选取当前设计电路的关键路径,沿着关键路径自顶向下(沿信号传播方向)局部优化门尺寸,随后自底向上(逆信号传播方向)对优化后的门尺寸进行全局评估,最终完成整个设计电路的优化,如图5示,整个方法包含如下过程:
105.选取整个设计电路的关键路径(s11)。
106.在本实施方式中,关键路径指的是信号从输入到输出所经过的延时最长的路径(严格来说,是时序违例最大的路径)。
107.在本实施方式中,由于门尺寸优化方法是在整个eda流程中处于静态时序分析(sta)流程之后进行,因此在每一轮迭代优化时只需根据sta的分析工具的分析结果选取时序最差的路径即可。
108.静态时序分析(static timing analysis,sta)是分析、调试并确认一个门级系统设计时序性能的比较彻底的方法。
109.可以理解的是,在门器件的尺寸发生变化后,设计电路的各路径的时序也会随之改变,因此设计电路的关键路径也可能发生变化,所以在每轮迭代时,都需要重新选取。
110.确定关键路径后,可以根据其时序指标松弛时间(slack time)判断当前电路是否已经收敛(s12)。
111.具体的,一般有以下三种情况可以判断电路已经收敛:1)关键路径的时序已经满足设计电路的设计要求;2)当前关键路径的时序与上一次迭代优化相比几乎没有提升;3)迭代优化的次数到达预设的最大次数。若电路已经收敛,则整个基于关键路径的门尺寸优化方法结束。
112.确定关键路径后,若其时序尚未收敛,则需要对该路径实施门尺寸优化,即沿着信号传播的方向自顶向下逐个优化门尺寸(s13),随后自底向上评估优化方案对电路的全局影响(s14),以此确定实际可行的优化方案,直至整条路径完成优化(s15)。
113.示例性的,参考图6,图6为示例电路的结构示意图,如图6(a)的设计电路为例,其关键路径由w1开始,自g4结束(图中加粗部分)。路径上的w1~w4为连接线,g1~g4为待优化的门器件。则门尺寸优化过程自g1开始,对门器件逐个实施步骤(s13)与(s14),直至g4,完成对电路当前轮关键路径的优化。
114.可以理解的是,整个迭代优化方法的主体部分即为步骤(s13)与(s14),也是本方法的两个核心子过程。下面将着重对(s13)与(s14)作详细阐述。
115.在本实施方式中,(s13)与(s14)涉及以下基本原理和理论依据:
116.slack_time=required_time-arrival_time
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
117.公式(1)中,松弛时间(slack time,简称slack)等于要求时间(required time)与到达时间(arrival time)之差。该指标用以衡量路径的时序优劣,slack大于等于0时,表示电路满足时序要求;而slack小于0表示存在时序违例。
118.slew
输出
=tran(slew
输入
,c)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
119.公式(2)中,器件输出端的信号翻转率(slew)由输入端的slew与负载电容c决定。
120.这里的tran函数是一个查表过程,器件的特性记录在时序库文件liberty当中。
121.delay(pin
输入
,pin
输出
)=d(c,slew
输入
,c)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
122.公式(3)中,某一门器件类型c对应的输入引脚到输出引脚之间的延时由输入端的slew和输出端的负载电容c决定。
123.对照上述基本原理,参考图7说明步骤s13,图7为单个门尺寸优化的流程示意图。
124.不妨设关键路径上的门器件自顶向下依次为g1,g2…gn
。则门尺寸优化的方向即是从g1开始,直至gn结束。
125.不失一般性,假设当前正在优化的门器件为gi,则g1,g2…gi-1
已完成尺寸优化,g
i+1
…gn
待确定尺寸(参考图6(b)为例,图中正在优化的器件为g3,g1和g2已完成优化并确定尺寸,g4待确定尺寸)。
126.若gi可选的门尺寸集合为{c
i1
,c
i2
…cim
}(s21),只需对这些不同的门尺寸逐一尝试,选取最优的门尺寸。
127.对某个选取的尺寸c
ij
(s22),我们的目标是计算上一级g
i-1
输入端的required time(即要求时间)来评估该尺寸方案的优劣。因为在优化门器件gi时,g1,g2…gi-1
的尺寸已经确定,则g
i-1
输入端的arrival time(即到达时间)是确定的。根据公式(1),要使路径的时序最优,就要使g
i-1
输入端处的slack time尽可能大,而此时arrival time为固定值,因此只需使required time最大。
128.计算gi输入端的信号反转时间slew
i输入
(s23):当gi的尺寸发生变化时,器件自身对应的电容属性发生变化。对其上一级g
i-1
而言,它的输出端电容负载c
i-1
也随之发生变化,导致g
i-1
的输出端slew
i-1输出
变化(可由公式(2)计算),进而引起gi输入端的slew
i输入
变化(参考图6(c),g3不同的门尺寸器件具有不同的电容值,因而当其尺寸改变时,上一级g2的输出端pin2_o1所对应的负载电容值也发生变化,最终导致g3输入端pin3_i1的slew值发生变化);
129.需要说明的是slew
i输入
和slew
i-1输出
两者在实际应用中是一个复杂的关系,在较早期的工艺中,因线电阻几乎可以忽略,此时slew
i输入
是直接等于slew
i-1输出
的。当工艺节点进一步减小时,线电阻逐渐增大,其影响不再可以忽略(一般工艺进入130nm以后,就要考虑线延时了),此时两者关系由等效模型计算,不同情况下采用的模型也不一样。实际处理中有两种方式,一种是从sta处获得,这种方式获得的值较精确,但速度较慢;另一种方式近似认为两者的变化比例一致,从而快速更新变化前后的slew值。
130.需要说明的是,在本实施方式中,设计电路的基本信息都是从sta处获得的,sta在完成时序分析的过程中首先要有这些基本的数据,包括各个器件的电阻r,等效等容c以及输入输出管脚上的slew。在电路初始时,电路所有节点的r、c和slew的值都是从sta来的,门尺寸优化在变更器件尺寸后需要重新计算相关节点的r、c和slew的变化并更新值。
131.计算gi输入端的required time,记为rt
i输入
(s24):利用gi输出端的负载电容ci和上一步骤更新的slew
i输入
值,代入公式(3)可以得到该尺寸下的门器件延时d(c
ij
,slew
i输入
,ci)。因gi以后的门器件尺寸尚未发生变化,故gi输出端的required time(记为rt
i输出
)和负载电容ci均未发生变化,可以直接从sta的时序分析结果中获得,则gi输入端的required time可以更新为rt
i输入
=rt
i输出-d(c
ij
,slew
i输入
,ci),如图6(d)中g3所示;
132.计算g
i-1
输出端的required time,记为rt
i-1输出
(s25):gi输入端引脚是其所在网络(net)接收端(sink)之一,该网络的驱动端(driver)即为g
i-1
输出端。将sink端的required time沿网络传播至driver,即可完成对g
i-1
输出端required time的更新。
133.需要说明的是,这里的传播指的是时序的传播,更确切的,是指将rt
i输入
沿着网络从sink端开始,减去到driver端经过的所有线延时,最终计算处driver端rt
i-1输出
的过程(如图4(a)为例,一个网络可以抽象成n个sink端和一个driver端。其中的某一个sink端即为gi输入端,它的时序即为rt
i输入
发生了变化,而其他sink端的rt仍为原始的时序,我们需要计算rt
i输入
的变化对driver端的影响)。
134.具体传播过程分为两种情况,其一,沿着线传播,如图4(b)所示。设在结点a的参数为(ti,ci),t为a处的required time,c为a的负载电容。线模型可以等效为rc模型,电阻值r,电容值c,则经过线延时到节点b时,可以简单的按照elmore delay模型估计b处的参数(ti’,ci’):ti’=ti-rc/2-rci;ci’=ci+c。其二,分支合并,如图4(c)所示。设在分支1处的参数为(t1,c1),在分支2处的参数为(t2,c2),则合并后的解可以表示为t=min(t1,t2),c=c1+c2。即电容加和,时间取更严格的一个分支。通过这种方式,即可将sink端的required time沿网络传播至driver,即可完成对g
i-1
输出端required time的更新。
135.计算g
i-1
输入端的required time,记为rt
i-1输入
(s26):经上一个步骤的网络内传播后,计算出了g
i-1
输出端更新后的rt
i-1输出
和负载电容c
i-1
(网络内传播计算出了这两个值),根据公式(3)可以得到门器件自身的延迟,得rt
i-1输入
=rt
i-1输出-d(c
i-1
,slew
i-1输入
,c
i-1
)。
136.如上,逐一计算不同尺寸对应的rt
i-1输入
值(s27),选取rt
i-1输入
最大时对应的器件尺寸c
ij
,即为gi对应的最优尺寸(s28)。
137.接下来对最优尺寸c
ij
作自底向上的全局评估(s14)。若该尺寸对全局电路亦有时序优化效果,则确定应用该尺寸,并更新电路时序;否则保持原尺寸不变。
138.在本实施方式中,为评估选取的尺寸是否对全局电路的时序有优化效果,使用全局评估指标总违例时间(total negative slack,tns)。在整个设计电路中,每条路径的时序结果都可以用一个slack时间来表征。slack为负数表明这条路径时序违例了。所有负的slack路径的时序和即为tns,因此tns是一个负值,最好的情况就是tns=0,表明整个设计的所有路径均符合时序要求。为计算tns的值,就需要知道每一条路径对应的slack。通过反向传播,只需确定路径的起始端记录required time,通过逐级减去路径的延迟,至路径的起始端,即可得到slack值(通过这种方法计算出的路径起始端的required time在数值上就等于slack time)。
139.路径的延迟依赖slew的变化(见公式(3)),因此全局评估的主要步骤就围绕slew和required time的更新展开。
140.全局评估过程参考图8,图8为自底向上全局评估的流程示意图,如图8所示,具体流程包括:
141.收集gi输入输出引脚所在的网络,计算网络中driver端与sink端的slew变化(s31),slew的变化随着级数的增加会快速衰减,因此只需要计算gi的前后级——输入和输出所在网络的影响。示例性的,以图6(e)的设计电路为例,g3的输入引脚有两个pin1和pin2,对应所在的网络为net1和net2。其中net1由线网w6和driver端pin4及sink端pin1构成,net2由线网w3、w5和driver端pin5及sink端pin2、pin6构成。g3的输入引脚有一个pin3,对应所在的网络为net3。其中net3由线网w4和driver端pin3及sink端pin7构成。只需要计算这些前后级网络涉及的所有引脚的slew变化。计算的基本原理为公式(2),计算的方法同流程s13的步骤1)(即s23);
142.逐级向前计算各网络required time变化(s32~s38):自gi开始,将其输入引脚的required time沿所在网络传播至driver端(s34),再减去门器件自身的延迟,得到前一级输入引脚处的required time(s35),计算方法同流程s13的步骤3)和4)(即s25和s26)。重复这一过程直至路径的起始。如图6(f)所示,在求得g3的最优尺寸后,其输入端有两个引脚,则需要分别向前一级传播。以pin2的传播过程为例,首先找到其所在网络net2,将net2的sink端(pin2、pin6)required time沿网络传播至其driver端(pin5),得到rt2
输出
,再减去器件g2自身的延迟,即得g2输入端的required time(rt2
输入
)。这样就将required time从g3的输入端传播至其前一级g2的输入端,重复这个过程,即可不断向前一级传播,直至路径的开始,从而完成对各级网络required time的计算,进而得到了gi处的尺寸变化对电路整体带来的影响,即路径起始端的required time,其数值上就等于路径的slack time。
143.评估是否接受将gi的尺寸变更为c
ij
(s39)。在上一步骤中,得到gi的尺寸变化对电路整体的影响,包括电容、slew和required time,并对它们的数值进行了更新。
144.在本实施方式中,考虑到优化过程本身是针对关键路径求解而得到的最优尺寸,所以该最优尺寸保证了局部最优的特性。若该最优尺寸使得tns值也增加,说明它对电路的全局也起到了优化作用,则应用该尺寸,并将评估过程计算的slew和required time变化更新到电路中,以确保gi尺寸变化后电路时序的正确性;若该尺寸变化将导致电路的全局特性变差,则不应用该尺寸变化(s39~s3a)。
145.如上,即为对设计电路中某一级门最优尺寸c
ij
自底向上全局评估的子流程。
146.需要说明的是不论是否应用尺寸变化,都将进入下一步的优化,即步骤s14和s15。即如不应用最优尺寸,则直接考察当前关键路径上的下一级门器件,对其进行尺寸优化并评估;若当前已经到达路径末尾,则重新选取关键路径进行新一轮的迭代优化。
147.实施例3
148.本实施例中,还提供一种电子设备,图5为本技术提供的一种电子设备的示意框图。如图5所示,电子设备230包括处理器231和存储器232。存储器232用于存储非暂时性计算机可读指令(例如一个或多个计算机程序模块)。处理器231用于运行非暂时性计算机可读指令,非暂时性计算机可读指令被处理器231运行时可以执行上文所述的开关芯片的测试方法的一个或多个步骤。存储器232和处理器231可以通过总线系统和/或其它形式的连接机构(未示出)互连。
149.例如,处理器231可以是中央处理单元(cpu)、数字信号处理器(dsp)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元,例如现场可编程门阵列(fpga)等;例如,中央处理单元(cpu)可以为x86或arm架构等。
150.例如,存储器232可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(rom)、硬盘、可擦除可编程只读存储器(eprom)、便携式紧致盘只读存储器(cd-rom)、usb存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序模块,处理器231可以运行一个或多个计算机程序模块,以实现电子设备230的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。
151.需要说明的是,本技术的实施例中,电子设备230的具体功能和技术效果可以参考上文中关于开关芯片的测试方法的描述,此处不再赘述。
152.实施例4
153.本实施例中,还提供一种计算机可读存储介质,图6为本技术的一种存储介质的示意图。如图6所示,存储介质250用于存储非暂时性计算机可读指令251。例如,当非暂时性计算机可读指令251由计算机执行时可以执行根据上文所述开关芯片的测试方法的一个或多个步骤。
154.例如,该存储介质250可以应用于上述电子设备230中。例如,存储介质250可以为图5所示的电子设备230中的存储器232。例如,关于存储介质250的相关说明可以参考图5所示的电子设备230中的存储器232的相应描述,此处不再赘述。
155.需要说明的是,本技术上述的存储介质(计算机可读介质)可以是计算机可读信号介质或者非暂时性计算机可读存储介质或者是上述两者的任意组合。非暂时性计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。非暂时性计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
156.在本技术中,非暂时性计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是非暂时性计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等,或者上述的任意合适的组合。
157.上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
158.可以以一种或多种程序设计语言或其组合来编写用于执行本技术的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言,诸如java、smalltalk、c++,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。
程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。
159.附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
160.描述于本技术实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
161.本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等。
162.以上描述仅为本技术的部分实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本技术中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本技术中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
163.此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本技术的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
164.尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

技术特征:
1.一种基于关键路径的门尺寸优化方法,包括:对设计电路进行多轮迭代优化至收敛状态,所述迭代优化的步骤包括:选取设计电路中信号从输入端到输出端所经过的延时最长的路径作为当前轮迭代优化的关键路径;沿所述关键路径的信号传播方向对关键路径上各级门进行尺寸优化。2.根据权利要求1所述的基于关键路径的门尺寸优化方法,其特征在于,所述收敛状态包括:所述关键路径的时序在上一轮迭代后已满足电路的设计要求时的状态;所述关键路径的时序与上一轮迭代相比没有提升时的状态;所述迭代优化的轮数到达预设的最大轮数时的状态。3.根据权利要求1所述的基于关键路径的门尺寸优化方法,其特征在于,所述沿所述关键路径的信号传播方向对关键路径上各级门进行尺寸优化的步骤包括:沿所述关键路径的信号传播方向自顶向下,从各级门的可选尺寸中确定各级门的最优尺寸;沿所述关键路径的信号传播方向自下向顶逐个评估各级的门的最优尺寸对设计电路的全局影响,若当前级门的最优尺寸对设计电路的全局影响具有优化效果,则应用所述最优尺寸作为所述当前级门的最终尺寸;若所述当前级门的最优尺寸对设计电路的全局影响不具有优化效果,则应用所述当前级门的原有尺寸。4.根据权利要求3所述的基于关键路径的门尺寸优化方法,其特征在于,所述从各级门的可选尺寸中确定各级门的最优尺寸的步骤包括:分别计算当前级门在可选尺寸下时所述当前级门的上一级门的输入端的要求时间,选取要求时间最大时的可选尺寸作为当前级门的最优尺寸。5.根据权利要求4所述的基于关键路径的门尺寸优化方法,其特征在于,所述分别计算当前级门在可选尺寸下时所述当前级门的上一级门的输入端的要求时间的步骤包括:选定一可选尺寸作为当前级门的尺寸,基于上一级门的输出端的信号翻转时间,确定当前级门的输入端的信号反转时间;基于当前级门的输入端的信号反转时间、当前级门的输出端的要求时间和当前级门的门器件延时,确定当前级门的输入端的要求时间;基于所述当前级门的输入端的要求时间,网络内时序传播确定所述上一级门的输出端的要求时间和所述上一级门的负载电容;基于所述上一级门的输出端的要求时间、所述上一级门的负载电容和所述上一级门的自身延迟,确定当前级门在所述可选尺寸下时,所述上一级门的输入端的要求时间。6.根据权利要求3所述的基于关键路径的门尺寸优化方法,其特征在于,所述逐个评估各级的门的最优尺寸对设计电路的全局影响的步骤包括:响应于当前级门应用所述最优尺寸,确定设计电路的总违例时间变化,若所述总违例时间的值变大,则认为所述最优尺寸对设计电路的全局影响具有优化效果,反之则不具有优化效果。7.根据权利要求6所述的基于关键路径的门尺寸优化方法,其特征在于,所述响应于当前级门应用所述最优尺寸,确定设计电路的总违例时间变化的步骤包括:
将所述设计电路中为负的各路径的松弛时间相加,作为所述设计电路的总违例时间。8.根据权利要求7所述的基于关键路径的门尺寸优化方法,其特征在于,所述响应于当前级门应用所述最优尺寸,确定设计电路的总违例时间变化的步骤包括:确定所述关键路径的松弛时间;所述确定所述关键路径的松弛时间的步骤包括:响应于当前级门应用所述最优尺寸,根据当前级门的要求时间从当前级门开始逐级确定各级网络的要求时间,直至所述关键路径的起始,所述关键路径的起始的必要时间即为当前级门应用所述最优尺寸后所述关键路径的松弛时间。9.一种电子设备,其特征在于,包括:处理器;存储器,其上存储有一个或多个在所述处理器上运行的计算机程序指令;其中,所述处理器运行所述计算机指令时,执行权利要求1-8任一项所述的基于关键路径的门尺寸优化方法。10.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,当计算机指令被处理器运行时,执行权利要求1-8任一项所述的基于关键路径的门尺寸优化方法的步骤。

技术总结
本申请涉及电子设计自动化技术领域,特别是涉及一种基于关键路径的门尺寸优化方法。所述基于关键路径的门尺寸优化方法,包括:对设计电路进行多轮迭代优化至收敛状态,所述迭代优化的步骤包括:选取设计电路中信号从输入端到输出端所经过的延时最长的路径作为当前轮迭代优化的关键路径;沿所述关键路径的信号传播方向对关键路径上各级门进行尺寸优化。本申请的基于关键路径的门尺寸优化方法,能够精准快速地完成整体电路的门尺寸优化。快速地完成整体电路的门尺寸优化。快速地完成整体电路的门尺寸优化。


技术研发人员:叶旻渊 陈刚
受保护的技术使用者:深圳亿方联创科技有限公司
技术研发日:2023.05.29
技术公布日:2023/8/13
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐