CN115688013A - 一种互连线时序优化方法、系统、设备及介质 - Google Patents
一种互连线时序优化方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN115688013A CN115688013A CN202310001301.5A CN202310001301A CN115688013A CN 115688013 A CN115688013 A CN 115688013A CN 202310001301 A CN202310001301 A CN 202310001301A CN 115688013 A CN115688013 A CN 115688013A
- Authority
- CN
- China
- Prior art keywords
- loads
- load
- group
- determining
- grouping
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000005457 optimization Methods 0.000 title claims abstract description 17
- 239000000872 buffer Substances 0.000 claims abstract description 140
- 238000003780 insertion Methods 0.000 claims abstract description 57
- 230000037431 insertion Effects 0.000 claims abstract description 57
- 230000004044 response Effects 0.000 claims description 40
- 230000008569 process Effects 0.000 claims description 14
- 238000009826 distribution Methods 0.000 claims description 12
- 230000015572 biosynthetic process Effects 0.000 claims description 10
- 238000004422 calculation algorithm Methods 0.000 claims description 10
- 238000003860 storage Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 5
- 238000013461 design Methods 0.000 abstract description 9
- 238000004804 winding Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 8
- 239000002184 metal Substances 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- 230000001934 delay Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000002035 prolonged effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000012966 insertion method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明属于计算机领域,具体涉及一种互连线时序优化方法、系统设备及介质。其中方法,包括:根据驱动和负载的位置信息对负载进行分组,并按照预定方式确定每一组负载所对应的缓冲器的插入位置;将所述驱动、负载以及确定插入位置的缓冲器基于时序要求进行连接形成互连线。通过本发明提出的一种互连线时序优化方法,本发明通过线长以及最大扇出设计的实际经验值进行分类,考虑时序因素选择驱动、缓冲器、负载的连接方式。与现有技术相比,一方面,可以有效减少绕线拥塞、单元密度过高以及电压降过大的问题;另一方面,使用本发明的插入缓冲器以及连接缓冲器的方式,可以有效的解决互连线延时大且扇出数量多的问题。
Description
技术领域
本发明属于计算机领域,具体涉及一种互连线时序优化方法、系统设备及介质。
背景技术
随着制造工艺节点的发展,器件的特征尺寸不断减小。越来越小的器件尺寸给集成电路物理后端设计带来了时序难以收敛的难题。对于时序收敛而言,其中互连线对时序的影响变得越来越重要。当器件特征尺寸进入深亚微米级别之后,由于金属线间耦合电容所导致的串扰噪声与金属线自身的本征延时增加的原因,金属线延迟已经大于逻辑门延迟,并已变成影响电路总延迟的重要因素。所以为了能够达到高性能芯片的时序收敛需求,时序分析和互连线的改进具有重要的现实意义。根据研究,线延时(Net delay)与线长(Wire length)的平方成正比关系,可以用以下经验公式进行解释:
Net delay=0.35RCL^2;
式中,R为电阻,C为电容,L为互连线长度(线长)。
线长过长以及线延时过大,主要有两方面影响:一方面在于驱动单元(Drivercell)的驱动能力不够,导致信号的跳变(Transition)较差;另一方面在于负载单元(Loadcell)数量过多,线网复杂,且负载数量越大布局后越容易出现线长过长、发生迂回路(Detour)现象。
在物理综合或者预布局阶段,我们不能改变电容或者电阻的值。为了减少传输延时,通常寄托于缩短线长,即打断互连线长度。常用的打断互连线的方法为插入缓冲器(Buffer)。目前基于缓冲器的插入方式有很多,如考虑工艺变化对互连线的影响,可以将工艺变化下缓冲器插入时序优化问题等效成统计最短路径问题。考虑对扇出路径线长、扇出点位置关系等因素,可以画圆分组优化。该方法将相邻近的负载两点分到同一组,然后基于两点画圆,向外扩展,直至圆的直径为d停止。超过直径d的负载重复上述过程,这样就实现了负载的分组。但是,此方法存在一定的弊端,未考虑设定值d的影响。如果d值过小,那么负载分组数量庞大,一旦在每个组里面插入对应的缓冲器,仍会出现驱动到各个缓冲器的时序难以收敛的问题;如果d值过大,会出现插入单个缓冲器驱动了过大负载数量问题。
综上所述如何对负载进行快速分组以及解决潜在的驱动到负载分组插入缓冲器的高扇出问题是现阶段需要去解决的技术性难题。
发明内容
为解决上述问题,本发明提出一种互连线时序优化方法,包括:
根据驱动和负载的位置信息对负载进行分组,并按照预定方式确定每一组负载所对应的缓冲器的插入位置;
将所述驱动、负载以及确定插入位置的缓冲器基于时序要求进行连接形成互连线。
在本发明的一些实施方式中,根据驱动和负载的位置信息对负载进行分组包括:
根据所述驱动和负载的分布位置确定所述驱动和负载所形成区域的轴线,并基于所述轴线将所述负载分成关于所述轴线对称的负载组。
在本发明的一些实施方式中,根据驱动和负载的位置信息对负载进行分组包括:
计算驱动与负载的曼哈顿距离,将所述负载与驱动的曼哈顿距离与预定的距离区间进行比较;
响应于所述负载与驱动的曼哈顿距离满足预定的距离区间,将所述负载划分到预定的距离区间所对应的分组中。
在本发明的一些实施方式中,根据驱动和负载的位置信息对负载进行分组包括:
获取每一个分组内的负载数量,并判断每一个分组内的负载数量是否大于预定值;
响应于负载数量大于预定值,将对应的分组平均拆分成负载数量均等的两组。
在本发明的一些实施方式中,按照预定方式确定每一组负载所对应的缓冲器的插入位置包括:
响应于对任意的负载的分组完成并形成新的负载组,获取所述负载组中所有负载的位置坐标,并基于所有负载的位置坐标确定所述负载组的中心位置;
响应于所述负载组的中心位置确定将所述中心位置作为所述负载组的缓冲器的插入位置。
在本发明的一些实施方式中,方法还包括:
响应于负载组的中心位置确定,根据所述负载组所述负载组中负载的数量确定对应的缓冲器类型。
在本发明的一些实施方式中,方法还包括:
响应于负载组的中心位置确定,根据所述负载组的分组等级确定对应的缓冲器类型。
在本发明的一些实施方式中,方法还包括:
响应于负载组的中心位置确定,根据所述负载组所形成的互连线的工艺及时序要求确定对应的缓冲器类型。
在本发明的一些实施方式中,基于所有负载的位置坐标确定所述负载组的中心位置包括:
获取所有负载的位置坐标,基于每个负载的位置坐标延坐标轴方向形成切线;
将所有负载的位置坐标的切线所形成的最大矩形作为所述分组的外接矩形;
将所述外接矩形的对角线中心作为所述分组的中心位置,并将所述中心位置作为所述负载组缓冲器的插入位置。
在本发明的一些实施方式中,基于所有负载的位置坐标确定所述分组的中心位置包括:
获取负载组内所有负载的位置坐标,基于所有负载的位置坐标通过聚类算法计算所有负载的中心坐标,并将所述中心坐标作为所述负载组的中心。
本发明的另一方面还提出一种互连线时序优化系统,包括:
负载分组模块,所述负载分组模块配置用于根据驱动和负载的位置信息对负载进行分组,并按照预定方式确定每一组负载所对应的缓冲器的插入位置;
负载连线优化模块,所述负载连线优化模块配置用于将所述驱动、负载以及确定插入位置的缓冲器基于时序要求进行连接形成互连线。
在本发明的一些实施方式中,负载分组模块进一步配置用于:
根据所述驱动和负载的分布位置确定所述驱动和负载所形成区域的轴线,并基于所述轴线将所述负载分成关于所述轴线对称的负载组。
在本发明的一些实施方式中,负载分组模块进一步配置用于:
计算驱动与负载的曼哈顿距离,将所述负载与驱动的曼哈顿距离与预定的距离区间进行比较;
响应于所述负载与驱动的曼哈顿距离满足预定的距离区间,将所述负载划分到预定的距离区间所对应的分组中。
在本发明的一些实施方式中,负载分组模块进一步配置用于:
获取每一个分组内的负载数量,并判断每一个分组内的负载数量是否大于预定值;
响应于负载数量大于预定值,将对应的分组平均拆分成负载数量均等的两组。
在本发明的一些实施方式中,负载分组模块进一步配置用于:
响应于对任意的负载的分组完成并形成新的负载组,获取所述负载组中所有负载的位置坐标,并基于所有负载的位置坐标确定所述负载组的中心位置;
响应于所述负载组的中心位置确定将所述中心位置作为所述负载组的缓冲器的插入位置。
在本发明的一些实施方式中,负载分组模块进一步配置用于:
响应于负载组的中心位置确定,根据所述负载组所述负载组中负载的数量确定对应的缓冲器类型。
在本发明的一些实施方式中,负载分组模块进一步配置用于:
响应于负载组的中心位置确定,根据所述负载组的分组等级确定对应的缓冲器类型。
在本发明的一些实施方式中,负载分组模块进一步配置用于:
响应于负载组的中心位置确定,根据所述负载组所形成的互连线的工艺及时序要求确定对应的缓冲器类型。
在本发明的一些实施方式中,负载分组模块进一步配置用于:
获取所有负载的位置坐标,基于每个负载的位置坐标延坐标轴方向形成切线;
将所有负载的位置坐标的切线所形成的最大矩形作为所述分组的外接矩形;
将所述外接矩形的对角线中心作为所述分组的中心位置,并将所述中心位置作为所述负载组缓冲器的插入位置。
在本发明的一些实施方式中,负载分组模块进一步配置用于:
获取负载组内所有负载的位置坐标,基于所有负载的位置坐标通过聚类算法计算所有负载的中心坐标,并将所述中心坐标作为所述负载组的中心。
本发明的又一方面还提出一种计算机设备,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现上述实施方式中任意一项所述方法的步骤。
本发明的再一方面还提出一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述实施方式中任意一项所述方法的步骤。
通过本发明提出的一种互连线时序优化方法,本发明通过线长以及最大扇出设计的实际经验值进行分类,考虑时序因素选择驱动、缓冲器、负载的连接方式。与现有技术相比,一方面,可以有效减少绕线拥塞、单元密度过高以及电压降过大的问题;另一方面,使用本发明的插入缓冲器以及连接缓冲器的方式,可以有效的解决互连线延时大且扇出数量多的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种互连线时序优化方法的方法流程图;
图2为本发明实施例提供的一种互连线时序优化系统的结构示意图;
图3为本发明实施例提供的一种计算机设备的结构示意图;
图4为本发明实施例提供的一种计算机可读存储介质的结构示意图;
图5为本发明实施例提供的第一次对负载分组的分组示意图;
图6为本发明实施例提供的负载分组的拓扑结构示意图;
图7为本发明实施例提供的负载分组的拓扑结构示意图;
图8为本发明实施例提供的负载分组的实施流程示意图;
图9为本发明实施例提供的负载分组中心位置示意图;
图10为本发明实施例提供的负载分组中心位置示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
本发明旨在解决芯片设计中互连线的时序问题,互连线对时序的影响变得越来越重要。当器件特征尺寸进入深亚微米级别之后,由于金属线间耦合电容所导致的串扰噪声与金属线自身的本征延时增加的原因,金属线延迟已经大于逻辑门延迟,并已变成影响电路总延迟的重要因素。所以为了能够达到高性能芯片的时序收敛需求。
为解决上述问题,本发明提出一种互连线时序优化方法,包括:
步骤S1、根据驱动和负载的位置信息对负载进行分组,并按照预定方式确定每一组负载所对应的缓冲器的插入位置;
步骤S2、将所述驱动、负载以及确定插入位置的缓冲器基于时序要求进行连接形成互连线。
在本发明的实施例中,驱动和负载是指芯片的集成电路中相应的模块,驱动可以视为发送信号的逻辑单元,负载可以视为接收该信号的逻辑单元,同理,如果负载向驱动发送信号时,驱动也可以称为负载,所谓驱动和负载,只是对信号发起和接收单元的称呼,即在EDA(Electronic design automation,电子设计自动化)中将发送信号的逻辑单元称为驱动,将接收信号的逻辑单元称为负载。由于电气特性原因,当驱动单元所连接的负载较多时,会导致驱动向负载发送信号时的时序不满足要求,即“驱动”能力减弱,类似于当线路过多时向多个线路发送电平信号时,电平变化(即电压)需要的时间变长,即要将多个线路上的电位器(负载端)电压达到一定值时需要补充足够的电荷来改变电位器的电压,每多一个负载,即多了一路电路,在进行电平跳变时所需要变化的电荷就变多,而芯片中供电电压和电流不变时,运载电荷的能力不变,每多一个负载就平分了电荷,导致发送电平跳变的时间就变长,最终导致电路不满足时序要求。
因此,为解决驱动所对应的负载较多时驱动能力变弱的问题,在步骤S1中,根据驱动和负载的位置分布信息,对负载进行分组,并在每一个分组内确定合适的缓冲器的插入位置,并在对应的位置插入缓冲器。
在步骤S2中,将驱动与各个分组中的缓冲器相连,然后通过每个分组内的缓冲器再与每个分组的负载进行并联,通过多个缓冲器“驱动”对应的负载,以实现对驱动功能的增强。
在本发明的一些实施方式中,根据驱动和负载的位置信息对负载进行分组包括:
根据所述驱动和负载的分布位置确定所述驱动和负载所形成区域的轴线,并基于所述轴线将所述负载分成关于所述轴线对称的负载组。
在本实施例中,当负载的数量超过一定值时,例如驱动要和40个以上的负载相连,在这种情况下如图5所示,将驱动和负载所形成的扇形区域(扇出)沿着驱动所在的轴线进行一分为二,拆分成对称的两个分组,即图5中,驱动和负载所在的位置分布所形成的扇出区域整体上是呈现水平分布,因此以驱动的位置为基准将扇出区域对半分成两个分组,以使得分组后的两组负载到驱动的距离大致上相差无几。两个分组的边界即为穿过驱动位置的轴线。两个分组关于轴线对称。图5中负载的个数因附图的大小原因并未示出大于40个。
在本发明的一些实施方式中,根据驱动和负载的位置信息对负载进行分组包括:
计算驱动与负载的曼哈顿距离,将所述负载与驱动的曼哈顿距离与预定的距离区间进行比较;
响应于所述负载与驱动的曼哈顿距离满足预定的距离区间,将所述负载划分到预定的距离区间所对应的分组中。
在本实施例中,在一些情况下,负载与驱动之间的距离也会影响驱动向负载发送信号的时序。因此在本实施例中,根据负载与驱动的距离对负载进行分组。具体地,获取驱动以及每个负载在集成电路中的坐标信息,并基于每个负载与驱动的坐标计算其曼哈顿距离,然后将曼哈顿距离满足预定范围的负载分成一组,例如,以200um(微米)为单位,将负载到驱动的曼哈顿距离为(0,200)的负载分为一组,将距离为(200,400)的负载分为一组,以此类推形成以驱动为中心的不同距离的具有层次结构的扇形分组。距离驱动最近的分组是曼哈顿距离为(0,200)的分组。
在本发明的一些实施方式中,根据驱动和负载的位置信息对负载进行分组包括:
获取每一个分组内的负载数量,并判断每一个分组内的负载数量是否大于预定值;
响应于负载数量大于预定值,将对应的分组平均拆分成负载数量均等的两组。
在本实施例中,根据驱动和负载的位置分组还包括,假设上述两种分组方式已经形成初步分组,如果每个分组中负载的数量超过预定值,则采用二分法将该分组平均分成两组,预定值可根据芯片所使用的工艺等条件下的经验值而设定,例如40个负载为分界值,超过40个进行二分法分组。
进一步,在当某分组中的负载超过预定值对该分组进行二分时,可遵循该分组和驱动所形成的扇形区域的中轴线,沿着中轴线将该分组分成对称的两组。
在本发明的一些实施方式中,按照预定方式确定每一组负载所对应的缓冲器的插入位置包括:
响应于对任意的负载的分组完成并形成新的负载组,获取所述负载组中所有负载的位置坐标,并基于所有负载的位置坐标确定所述负载组的中心位置;
响应于所述负载组的中心位置确定将所述中心位置作为所述负载组的缓冲器的插入位置。
在本实施例中,在满足上述分组方式的分组形成对应的负载组之后,对每个负载组,获取该负载组中所有的负载坐标,并根据负载坐标计算得到该负载组的中心位置坐标,并将中心位置坐标作为该负载组的缓冲器插入位置。
在本发明的一些实施方式中,方法还包括:
响应于负载组的中心位置确定,根据所述负载组所述负载组中负载的数量确定对应的缓冲器类型。
在本实施例中,当负载中心位置确定之后,根据负载组中的负载的数量来选择合适的缓冲器插入到该负载组的中心位置。选择缓冲器的类型为BUFF8、BUFF10、BUFF12、BUFF16(EDA设计中的对应型号的缓冲器)。根据负载组中的负载数量,选择合适的缓冲器。负载数量越多选择驱动能力越好的缓冲器,负载数量越小选择驱动能力越小的缓冲器。
在本发明的一些实施方式中,方法还包括:
响应于负载组的中心位置确定,根据所述负载组的分组等级确定对应的缓冲器类型。
在本实施例中,在负载组的中心位置确定之后,根据该负载组所属等级确定负载组的缓冲器类型。具体的如图7所示,图7示出的是结构化后的驱动、负载和缓冲单元的互连线结构,图中的三角形表示每个分组缓冲器。距离驱动单元(即驱动)最近的两个缓冲器分别对应将所有驱动分成对称两组负载组(每个负载组中包含若干个小的负载组)缓冲器,属于一级缓冲器,其位置在第一次分成的两个负载组的中心,进一步图中距离驱动第二近的两个驱动能力较强的Buffer属于另一分组的缓冲器,每次分组(包括上述三种分组方式)都会产生一个负载组,并在负载组中心放置缓冲器,根据分组的先后顺序异常选择驱动能力较弱的缓冲器。分组等级越低说明该负载组所具有的负载数量越少,需要的驱动能力越弱,继而需要的缓冲器的驱动能力越弱。
在本发明的一些实施方式中,方法还包括:
响应于负载组的中心位置确定,根据所述负载组所形成的互连线的工艺及时序要求确定对应的缓冲器类型。
在本实施例中,在选择缓冲器类型时,还根据芯片成品时选择的工艺以及时序要求确定缓冲器的类型。
在本发明的一些实施方式中,基于所有负载的位置坐标确定所述负载组的中心位置包括:
获取所有负载的位置坐标,基于每个负载的位置坐标延坐标轴方向形成切线;
将所有负载的位置坐标的切线所形成的最大矩形作为所述分组的外接矩形;
将所述外接矩形的对角线中心作为所述分组的中心位置,并将所述中心位置作为所述负载组缓冲器的插入位置。
在本实施例中,在确定负载中心位置,根据负载组的所有负载坐标进行外接矩形处理,将所有的负载坐标分别延横向坐标轴和纵向坐标轴做切线,然后将所有负载坐标所形成的最大的封闭矩形区域作为该负载组的外接矩形,并将形成的外接矩形的对角线中心作为负载主组的中心位置,然后将该负载组对应的缓冲器插入该对角中心。
在本发明的一些实施方式中,基于所有负载的位置坐标确定所述分组的中心位置包括:
获取负载组内所有负载的位置坐标,基于所有负载的位置坐标通过聚类算法计算所有负载的中心坐标,并将所述中心坐标作为所述负载组的中心。
在本实施例中,在确定负载组的中心坐标时采用举例算法计算负载组中所有负载坐标以求的该负载组中距离各个负载所对应的中心。例如通过K-means算法等设定一个聚类中心计算所有负载的坐标得到负载组的中心位置,并将中心位置作为该负载组缓冲器的插入位置。
实施例:
目前,现有的电子设计自动化(EDA)工具优化高扇出的互连线网络会插入大量的缓冲器,一方面会带来单元的密度过高,产生拥塞现象(Congestion);另一方面会出现明显的电压降问题。基于画圆的分组方式,虽能减少插入缓冲器的数量,但仍会大概率出现高扇出的网络结构。针对上述问题,本发明提出一种基于二分法的高扇出路径优化的缓冲器插入方法。该方法考虑驱动到负载实际曼哈顿距离以及设计最大扇出要求,尽可能避免布局拥塞以及布线过长的问题。通过曼哈顿距离值分组优化,以及半周长模型预估确定缓冲器的插入位置。
本发明的思路可以分为三部分:
1) 根据曼哈顿距离设定值对负载进行分组,第一次获得缓冲器的插入位置,并统计各个分组的负载数量;
2) 将各个分组负载数量与设计最大扇出数量进行比较。若前者大于后者,则采用二分法,直至满足要求,第二次获得缓冲器的插入位置;
3) 最后根据时序要求,依次将驱动、缓冲器、负载连接起来。
本发明的实施例的流程图如图8所示,假设只有一个驱动与多个负载且分布情况
如图5所示。根据上述思路,首先获得各个点的坐标集合,将驱动/负载所有目标点进行外接
矩形处理,即将驱动和负载以一定宽长的矩形框起来。一般情况,驱动负载两点之间曼哈顿
距离长度高于200mm,即|(和
表示负载在电路板上的Y轴坐标值和X轴坐标值,同理和表示驱动在电路板
上的Y轴的坐标值和X轴的坐标值),工具就会插入缓冲器。基于这一经验值,本发明的分组
情况如下:
依次类推,完成全部分组Gi(i=1,2 …,n)。
基于所有分组情况,对每一组都进行外接矩形处理,根据半周长线长(HPWL)模型,即分组内驱动单元连接到各个负载单元的线长为外接矩形周长的一半,确定缓冲器的插入位置为外接矩形的对角线中心点,如图9所示。根据这一特性,获得第一次插入缓冲器的位置分别为A1,A2…,An。
一般来说,物理综合工具根据设计要求最大扇出不会超过40个。本发明将负载数
量设为基准锚点,统计全部分组后各自负载的数量N i(i=1,2 …,n),通过比较N i与之间数值的大小进一步确定第二次缓冲器的插入位置。假设,则保
持第一次缓冲器插入位置,不进行任何改变;若,将满足该条件的分组的外接
矩形进行二分分组直至满足条件后分组结束,最后得到分组序列为Pi(i=1,2 …,n)。
同理,将第二次分组的负载进行外接矩形处理,第二次缓冲器的插入位置仍然为外接矩形的对角线中心点,获得第二次缓冲器的位置分别为B1,B2 …,Bn。图10为插入缓冲器位置与分组的负载之间的关系图。
最后依次将驱动、缓冲器、负载连接起来,具体的连接方式如下:
a) 若第二次分组情况不满足。则需要遵循本发明之前提到的插入缓冲器的线长
经验值,本发明分组以200mm为界,也就是说L(0,200)需要一个缓冲器,L(0,400)需要两
个缓冲器,依次类推。根据这一特性,为了保证时序要求,本发明首先将驱动、缓冲器和负载
串联起来。然后再对每一个缓冲器进行扇出连接,如图6所示。
b) 若第二组分组情况存在,仍然遵循a)的串联连接方式,将负载、第一次分组缓冲器、第二次分组缓冲器、负载连接起来。根据工艺库要求,选择缓冲器的类型为BUFF8、BUFF10、BUFF12、BUFF16。针对本发明的串联连接方式,对于第一次分组插入缓冲器要求,本发明选择的缓冲器cell为BUFF12或者BUFF16,这是因为第一次分组的缓冲器串联驱动数量过大而可能会出现驱动能力不足的情况;对于第二次分组插入缓冲器要求,由于此时分组扇出数量较少,则选择驱动能力居中的缓冲器BUFF8或者BUFF10,最终连线情况如图7所示。
通过本发明提出的一种互连线时序优化方法,本发明通过线长以及最大扇出设计的实际经验值进行分类,考虑时序因素选择驱动、缓冲器、负载的连接方式。与现有技术相比,一方面,可以有效减少绕线拥塞、单元密度过高以及电压降过大的问题;另一方面,使用本发明的插入缓冲器以及连接缓冲器的方式,可以有效的解决互连线延时大且扇出数量多的问题。
进一步基于现有线长与插入缓冲器的研究,选择互连线长200mm为锚点进行聚类分组。通过对第一次分组的负载进行二分法划分,确定第二次插入缓冲器的位置,这样可以有效的避免单元密度过高以及时序难收敛的问题;采用驱动到缓冲器再到负载串联连接方式,通过定义选择第一次插入缓冲器单元为高驱动能力,第二次插入缓冲器单元为中驱动能力,这样可以进一步避免时序难以收敛的问题。
如图2所示,本发明的另一方面还提出一种互连线时序优化系统,包括:
负载分组模块1,所述负载分组模块1配置用于根据驱动和负载的位置信息对负载进行分组,并按照预定方式确定每一组负载所对应的缓冲器的插入位置;
负载连线优化模块2,所述负载连线优化模块2配置用于将所述驱动、负载以及确定插入位置的缓冲器基于时序要求进行连接形成互连线。
在本发明的一些实施方式中,负载分组模块1进一步配置用于:
根据所述驱动和负载的分布位置确定所述驱动和负载所形成区域的轴线,并基于所述轴线将所述负载分成关于所述轴线对称的负载组。
在本发明的一些实施方式中,负载分组模块1进一步配置用于:
计算驱动与负载的曼哈顿距离,将所述负载与驱动的曼哈顿距离与预定的距离区间进行比较;
响应于所述负载与驱动的曼哈顿距离满足预定的距离区间,将所述负载划分到预定的距离区间所对应的分组中。
在本发明的一些实施方式中,负载分组模块1进一步配置用于:
获取每一个分组内的负载数量,并判断每一个分组内的负载数量是否大于预定值;
响应于负载数量大于预定值,将对应的分组平均拆分成负载数量均等的两组。
在本发明的一些实施方式中,负载分组模块1进一步配置用于:
响应于对任意的负载的分组完成并形成新的负载组,获取所述负载组中所有负载的位置坐标,并基于所有负载的位置坐标确定所述负载组的中心位置;
响应于所述负载组的中心位置确定将所述中心位置作为所述负载组的缓冲器的插入位置。
在本发明的一些实施方式中,负载分组模块1进一步配置用于:
响应于负载组的中心位置确定,根据所述负载组所述负载组中负载的数量确定对应的缓冲器类型。
在本发明的一些实施方式中,负载分组模块1进一步配置用于:
响应于负载组的中心位置确定,根据所述负载组的分组等级确定对应的缓冲器类型。
在本发明的一些实施方式中,负载分组模块1进一步配置用于:
响应于负载组的中心位置确定,根据所述负载组所形成的互连线的工艺及时序要求确定对应的缓冲器类型。
在本发明的一些实施方式中,负载分组模块1进一步配置用于:
获取所有负载的位置坐标,基于每个负载的位置坐标延坐标轴方向形成切线;
将所有负载的位置坐标的切线所形成的最大矩形作为所述分组的外接矩形;
将所述外接矩形的对角线中心作为所述分组的中心位置,并将所述中心位置作为所述负载组缓冲器的插入位置。
在本发明的一些实施方式中,负载分组模块1进一步配置用于:
获取负载组内所有负载的位置坐标,基于所有负载的位置坐标通过聚类算法计算所有负载的中心坐标,并将所述中心坐标作为所述负载组的中心。
如图3所示,本发明的又一方面还提出一种计算机设备,包括:
至少一个处理器21;以及
存储器22,所述存储器22存储有可在所述处理器21上运行的计算机指令23,所述指令23由所述处理器21执行时实现一种互连线时序优化方法,包括:
根据驱动和负载的位置信息对负载进行分组,并按照预定方式确定每一组负载所对应的缓冲器的插入位置;
将所述驱动、负载以及确定插入位置的缓冲器基于时序要求进行连接形成互连线。
在本发明的一些实施方式中,根据驱动和负载的位置信息对负载进行分组包括:
根据所述驱动和负载的分布位置确定所述驱动和负载所形成区域的轴线,并基于所述轴线将所述负载分成关于所述轴线对称的负载组。
在本发明的一些实施方式中,根据驱动和负载的位置信息对负载进行分组包括:
计算驱动与负载的曼哈顿距离,将所述负载与驱动的曼哈顿距离与预定的距离区间进行比较;
响应于所述负载与驱动的曼哈顿距离满足预定的距离区间,将所述负载划分到预定的距离区间所对应的分组中。
在本发明的一些实施方式中,根据驱动和负载的位置信息对负载进行分组包括:
获取每一个分组内的负载数量,并判断每一个分组内的负载数量是否大于预定值;
响应于负载数量大于预定值,将对应的分组平均拆分成负载数量均等的两组。
在本发明的一些实施方式中,按照预定方式确定每一组负载所对应的缓冲器的插入位置包括:
响应于对任意的负载的分组完成并形成新的负载组,获取所述负载组中所有负载的位置坐标,并基于所有负载的位置坐标确定所述负载组的中心位置;
响应于所述负载组的中心位置确定将所述中心位置作为所述负载组的缓冲器的插入位置。
在本发明的一些实施方式中,方法还包括:
响应于负载组的中心位置确定,根据所述负载组所述负载组中负载的数量确定对应的缓冲器类型。
在本发明的一些实施方式中,方法还包括:
响应于负载组的中心位置确定,根据所述负载组的分组等级确定对应的缓冲器类型。
在本发明的一些实施方式中,方法还包括:
响应于负载组的中心位置确定,根据所述负载组所形成的互连线的工艺及时序要求确定对应的缓冲器类型。
在本发明的一些实施方式中,基于所有负载的位置坐标确定所述负载组的中心位置包括:
获取所有负载的位置坐标,基于每个负载的位置坐标延坐标轴方向形成切线;
将所有负载的位置坐标的切线所形成的最大矩形作为所述分组的外接矩形;
将所述外接矩形的对角线中心作为所述分组的中心位置,并将所述中心位置作为所述负载组缓冲器的插入位置。
在本发明的一些实施方式中,基于所有负载的位置坐标确定所述分组的中心位置包括:
获取负载组内所有负载的位置坐标,基于所有负载的位置坐标通过聚类算法计算所有负载的中心坐标,并将所述中心坐标作为所述负载组的中心。
如图4所示,本发明的再一方面还提出一种计算机可读存储介质401,所述计算机可读存储介质401存储有计算机程序402,所述计算机程序402被处理器执行时实现一种互连线时序优化方法,包括:
根据驱动和负载的位置信息对负载进行分组,并按照预定方式确定每一组负载所对应的缓冲器的插入位置;
将所述驱动、负载以及确定插入位置的缓冲器基于时序要求进行连接形成互连线。
在本发明的一些实施方式中,根据驱动和负载的位置信息对负载进行分组包括:
根据所述驱动和负载的分布位置确定所述驱动和负载所形成区域的轴线,并基于所述轴线将所述负载分成关于所述轴线对称的负载组。
在本发明的一些实施方式中,根据驱动和负载的位置信息对负载进行分组包括:
计算驱动与负载的曼哈顿距离,将所述负载与驱动的曼哈顿距离与预定的距离区间进行比较;
响应于所述负载与驱动的曼哈顿距离满足预定的距离区间,将所述负载划分到预定的距离区间所对应的分组中。
在本发明的一些实施方式中,根据驱动和负载的位置信息对负载进行分组包括:
获取每一个分组内的负载数量,并判断每一个分组内的负载数量是否大于预定值;
响应于负载数量大于预定值,将对应的分组平均拆分成负载数量均等的两组。
在本发明的一些实施方式中,按照预定方式确定每一组负载所对应的缓冲器的插入位置包括:
响应于对任意的负载的分组完成并形成新的负载组,获取所述负载组中所有负载的位置坐标,并基于所有负载的位置坐标确定所述负载组的中心位置;
响应于所述负载组的中心位置确定将所述中心位置作为所述负载组的缓冲器的插入位置。
在本发明的一些实施方式中,方法还包括:
响应于负载组的中心位置确定,根据所述负载组所述负载组中负载的数量确定对应的缓冲器类型。
在本发明的一些实施方式中,方法还包括:
响应于负载组的中心位置确定,根据所述负载组的分组等级确定对应的缓冲器类型。
在本发明的一些实施方式中,方法还包括:
响应于负载组的中心位置确定,根据所述负载组所形成的互连线的工艺及时序要求确定对应的缓冲器类型。
在本发明的一些实施方式中,基于所有负载的位置坐标确定所述负载组的中心位置包括:
获取所有负载的位置坐标,基于每个负载的位置坐标延坐标轴方向形成切线;
将所有负载的位置坐标的切线所形成的最大矩形作为所述分组的外接矩形;
将所述外接矩形的对角线中心作为所述分组的中心位置,并将所述中心位置作为所述负载组缓冲器的插入位置。
在本发明的一些实施方式中,基于所有负载的位置坐标确定所述分组的中心位置包括:
获取负载组内所有负载的位置坐标,基于所有负载的位置坐标通过聚类算法计算所有负载的中心坐标,并将所述中心坐标作为所述负载组的中心。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (22)
1.一种互连线时序优化方法,其特征在于,包括:
根据驱动和负载的位置信息对负载进行分组,并按照预定方式确定每一组负载所对应的缓冲器的插入位置;
将所述驱动、负载以及确定插入位置的缓冲器基于时序要求进行连接形成互连线。
2.根据权利要求1所述的方法,其特征在于,所述根据驱动和负载的位置信息对负载进行分组包括:
根据所述驱动和负载的分布位置确定所述驱动和负载所形成区域的轴线,并基于所述轴线将所述负载分成关于所述轴线对称的负载组。
3.根据权利要求1所述的方法,其特征在于,所述根据驱动和负载的位置信息对负载进行分组包括:
计算驱动与负载的曼哈顿距离,将所述负载与驱动的曼哈顿距离与预定的距离区间进行比较;
响应于所述负载与驱动的曼哈顿距离满足预定的距离区间,将所述负载划分到预定的距离区间所对应的分组中。
4.根据权利要求1所述的方法,其特征在于,所述根据驱动和负载的位置信息对负载进行分组包括:
获取每一个分组内的负载数量,并判断每一个分组内的负载数量是否大于预定值;
响应于负载数量大于预定值,将对应的分组平均拆分成负载数量均等的两组。
5.根据权利要求1所述的方法,其特征在于,所述按照预定方式确定每一组负载所对应的缓冲器的插入位置包括:
响应于对任意的负载的分组完成并形成新的负载组,获取所述负载组中所有负载的位置坐标,并基于所有负载的位置坐标确定所述负载组的中心位置;
响应于所述负载组的中心位置确定将所述中心位置作为所述负载组的缓冲器的插入位置。
6.根据权利要求5所述的方法,其特征在于,还包括:
响应于负载组的中心位置确定,根据所述负载组所述负载组中负载的数量确定对应的缓冲器类型。
7.根据权利要求5所述的方法,其特征在于,还包括:
响应于负载组的中心位置确定,根据所述负载组的分组等级确定对应的缓冲器类型。
8.根据权利要求5所述的方法,其特征在于,还包括:
响应于负载组的中心位置确定,根据所述负载组所形成的互连线的工艺及时序要求确定对应的缓冲器类型。
9.根据权利要求5所述的方法,其特征在于,所述基于所有负载的位置坐标确定所述负载组的中心位置包括:
获取所有负载的位置坐标,基于每个负载的位置坐标延坐标轴方向形成切线;
将所有负载的位置坐标的切线所形成的最大矩形作为所述分组的外接矩形;
将所述外接矩形的对角线中心作为所述分组的中心位置,并将所述中心位置作为所述负载组缓冲器的插入位置。
10.根据权利要求5所述的方法,其特征在于,所述基于所有负载的位置坐标确定所述分组的中心位置包括:
获取负载组内所有负载的位置坐标,基于所有负载的位置坐标通过聚类算法计算所有负载的中心坐标,并将所述中心坐标作为所述负载组的中心。
11.一种互连线时序优化系统,其特征在于,包括:
负载分组模块,所述负载分组模块配置用于根据驱动和负载的位置信息对负载进行分组,并按照预定方式确定每一组负载所对应的缓冲器的插入位置;
负载连线优化模块,所述负载连线优化模块配置用于将所述驱动、负载以及确定插入位置的缓冲器基于时序要求进行连接形成互连线。
12.根据权利要求11所述的系统,其特征在于,所述负载分组模块进一步配置用于:
根据所述驱动和负载的分布位置确定所述驱动和负载所形成区域的轴线,并基于所述轴线将所述负载分成关于所述轴线对称的负载组。
13.根据权利要求11所述的系统,其特征在于,所述负载分组模块进一步配置用于:
计算驱动与负载的曼哈顿距离,将所述负载与驱动的曼哈顿距离与预定的距离区间进行比较;
响应于所述负载与驱动的曼哈顿距离满足预定的距离区间,将所述负载划分到预定的距离区间所对应的分组中。
14.根据权利要求11所述的系统,其特征在于,所述负载分组模块进一步配置用于:
获取每一个分组内的负载数量,并判断每一个分组内的负载数量是否大于预定值;
响应于负载数量大于预定值,将对应的分组平均拆分成负载数量均等的两组。
15.根据权利要求11所述的系统,其特征在于,所述负载分组模块进一步配置用于:
响应于对任意的负载的分组完成并形成新的负载组,获取所述负载组中所有负载的位置坐标,并基于所有负载的位置坐标确定所述负载组的中心位置;
响应于所述负载组的中心位置确定将所述中心位置作为所述负载组的缓冲器的插入位置。
16.根据权利要求15所述的系统,其特征在于,所述负载分组模块进一步配置用于:
响应于负载组的中心位置确定,根据所述负载组所述负载组中负载的数量确定对应的缓冲器类型。
17.根据权利要求15所述的系统,其特征在于,所述负载分组模块进一步配置用于:
响应于负载组的中心位置确定,根据所述负载组的分组等级确定对应的缓冲器类型。
18.根据权利要求15所述的系统,其特征在于,所述负载分组模块进一步配置用于:
响应于负载组的中心位置确定,根据所述负载组所形成的互连线的工艺及时序要求确定对应的缓冲器类型。
19.根据权利要求15所述的系统,其特征在于,所述负载分组模块进一步配置用于:
获取所有负载的位置坐标,基于每个负载的位置坐标延坐标轴方向形成切线;
将所有负载的位置坐标的切线所形成的最大矩形作为所述分组的外接矩形;
将所述外接矩形的对角线中心作为所述分组的中心位置,并将所述中心位置作为所述负载组缓冲器的插入位置。
20.根据权利要求15所述的系统,其特征在于,所述负载分组模块进一步配置用于:
获取负载组内所有负载的位置坐标,基于所有负载的位置坐标通过聚类算法计算所有负载的中心坐标,并将所述中心坐标作为所述负载组的中心。
21.一种计算机设备,其特征在于,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现权利要求1-10任意一项所述方法的步骤。
22.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-10任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310001301.5A CN115688013A (zh) | 2023-01-03 | 2023-01-03 | 一种互连线时序优化方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310001301.5A CN115688013A (zh) | 2023-01-03 | 2023-01-03 | 一种互连线时序优化方法、系统、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115688013A true CN115688013A (zh) | 2023-02-03 |
Family
ID=85057040
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310001301.5A Pending CN115688013A (zh) | 2023-01-03 | 2023-01-03 | 一种互连线时序优化方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115688013A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6701505B1 (en) * | 2001-11-30 | 2004-03-02 | Sequence Design, Inc. | Circuit optimization for minimum path timing violations |
CN105302947A (zh) * | 2015-10-16 | 2016-02-03 | 中国人民解放军国防科学技术大学 | 基于扇圆的多扇出路径的中继器插入方法 |
CN111931448A (zh) * | 2020-08-07 | 2020-11-13 | 山东云海国创云计算装备产业创新中心有限公司 | 芯片电路的时序修复方法、系统、电子设备及存储介质 |
-
2023
- 2023-01-03 CN CN202310001301.5A patent/CN115688013A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6701505B1 (en) * | 2001-11-30 | 2004-03-02 | Sequence Design, Inc. | Circuit optimization for minimum path timing violations |
CN105302947A (zh) * | 2015-10-16 | 2016-02-03 | 中国人民解放军国防科学技术大学 | 基于扇圆的多扇出路径的中继器插入方法 |
CN111931448A (zh) * | 2020-08-07 | 2020-11-13 | 山东云海国创云计算装备产业创新中心有限公司 | 芯片电路的时序修复方法、系统、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6205571B1 (en) | X-Y grid tree tuning method | |
CN111291525B (zh) | 考虑总线和非总线线网的层分配方法 | |
US20090189641A1 (en) | Integrated circuit device and layout design method therefor | |
US6857107B2 (en) | LSI layout method and apparatus for cell arrangement in which timing is prioritized | |
JP2009054172A (ja) | 配線処理方法及び配線処理装置並びに配線処理プログラム用記録媒体 | |
US7689964B2 (en) | System and method for routing connections | |
Ogawa et al. | Efficient placement algorithms optimizing delay for high-speed ECL masterslice LSI's | |
CN111709205A (zh) | Fpga布线方法 | |
US7612599B2 (en) | Semiconductor device | |
US20040196081A1 (en) | Minimization of clock skew and clock phase delay in integrated circuits | |
CN115983187A (zh) | 基于多策略的考虑总线偏差的层分配方法 | |
Zapletina et al. | Improving pathfinder algorithm perfomance for FPGA routing | |
CN115688013A (zh) | 一种互连线时序优化方法、系统、设备及介质 | |
US7168057B2 (en) | Targeted optimization of buffer-tree logic | |
CN111753484B (zh) | 一种基于电路性能的多裸片结构fpga的布局方法 | |
US20040237060A1 (en) | Integrated circuit device, clock layout system, clock layout method, and clock layout program | |
US20030106036A1 (en) | Wiring route determining apparatus, group determining apparatus, wiring route determining program storing medium and group determining program storing medium | |
CN116151186A (zh) | 一种时序优化方法、装置和电子设备 | |
US6000038A (en) | Parallel processing of Integrated circuit pin arrival times | |
US6243850B1 (en) | Allocation apparatus and method for determining cell allocation of semiconductor circuit | |
CN105302947A (zh) | 基于扇圆的多扇出路径的中继器插入方法 | |
JP3804901B2 (ja) | 回路素子を配置する配置装置および方法 | |
CN118012794B (zh) | 计算芯粒及电子设备 | |
US10878159B1 (en) | Insertion and placement of pipeline registers in signal paths of an integrated circuit | |
EP1617346A2 (en) | System for placing elements of a semiconductor integrated circuit, method of placing elements thereon, and program for placing elements |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20230203 |