CN103632001A - 基于缓冲单元复用的保持时间时序优化方法 - Google Patents
基于缓冲单元复用的保持时间时序优化方法 Download PDFInfo
- Publication number
- CN103632001A CN103632001A CN201310615711.5A CN201310615711A CN103632001A CN 103632001 A CN103632001 A CN 103632001A CN 201310615711 A CN201310615711 A CN 201310615711A CN 103632001 A CN103632001 A CN 103632001A
- Authority
- CN
- China
- Prior art keywords
- buffer cell
- current buffer
- time
- delay
- delay value
- 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.)
- Granted
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了一种基于缓冲单元复用的保持时间时序优化方法,该方法步骤包括:查找保持时间时序违反的扫描路径相同起点的功能数据路径上的缓冲单元;根据当前时序确定单元最大输出负载电容;根据单元最大输出负载电容和当前布线情况确定互连线的最大长度;如果复用单元会增加建立时间时序违例路径,根据单元所在区域的局部单元密度分析是否可以通过插入新单元降低单元的输出负载电容,如允许则通过插入新单元降低单元的输出负载电容;最后根据时序和物理信息确定扫描寄存器扫描输入端的连接关系。本发明优化了设计中扫描路径保持时间时序的同时降低了缓冲单元插入数目以及设计密度和功耗。
Description
技术领域
本发明涉及超大规模集成电路物理设计领域,具体涉及一种基于缓冲单元复用的保持时间时序优化方法。
背景技术
随着工艺尺寸逐渐降低、互连线效应日益显著,设计中缓冲单元(缓冲器buffer、反相器inverter、延时单元delay cell)的数目持续增加。物理设计中插入缓冲单元是修复时序违例的常用方法。因扫描模式下工作频率较低,扫描路径逻辑简单,扫描路径通常出现保持时间时序违例。保持时间时序违例路径通常采用插入缓冲单元的方法进行修复,但是,在设计的后期阶段,一些路径会因过高的局部单元密度而不能插入缓冲单元,无法对设计做进一步的时序优化。同时,当前设计流程中修复扫描路径与功能数据路径时序违例独立进行,导致扫描路径与功能数据路径中会重复插入缓冲单元,增加了设计的单元密度,过高的单元密度会增加设计的面积和功耗,带来电压降(IR-drop)隐患。因此,如何以较小的开销进行时序优化成为当前集成电路物理设计中面临的一大难题。
发明内容
本发明要解决的技术问题是提供一种能够优化设计中扫描路径保持时间时序、降低缓冲单元插入数目以、降低设计密度和功耗的基于缓冲单元复用的保持时间时序优化方法。
为了解决上述技术问题,本发明采用的技术方案为:
一种基于缓冲单元复用的保持时间时序优化方法,其实施步骤如下:
1)在待优化设计中查找与保持时间时序违例的扫描路径具有相同起点的功能数据路径上的缓冲单元作为可复用的缓冲单元,指定其中一个缓冲单元作为当前缓冲单元;
2)根据当前时序计算当前缓冲单元的最大输出负载电容;
3)分析确定当前缓冲单元所在区域的互连线分布层;
4)计算当前缓冲单元输出端与扫描寄存器扫描输入端之间允许的互连线最大长度;
5)判断直接复用当前缓冲单元是否会增加待优化设计中建立时间时序违例路径,如果会则跳转执行步骤6),否则跳转执行步骤10);
6)计算当前缓冲单元所在区域的单元密度;
7)计算当前缓冲单元输出端、终点寄存器扫描输入端之间的曼哈顿距离,根据所述曼哈顿距离和当前缓冲单元所在区域的单元密度判断当前缓冲单元所在区域的单元密度是否在指定范围内且能够通过插入新的缓冲器或延时单元来避免增加建立时间时序违例路径是否可以同时成立,如果可以则跳转执行步骤8),否则跳转执行步骤10);
8)在当前缓冲单元的输出端插入新的缓冲器或延时单元;
9)从所述所有可复用的缓冲单元中选择最有利于时序的缓冲单元作为待复用缓冲单元;
10)判断是否所有缓冲单元遍历结束,如果没有则选择一个尚未处理的缓冲单元作为当前缓冲单元,跳转执行步骤2);否则,跳转执行步骤10);
11)根据所述待复用缓冲单元改变设计的连接关系并重新绕线;
12)结束。
作为本发明基于缓冲单元复用的保持时间时序优化方法的进一步改进:
所述步骤2)的详细步骤如下:
2.1)在多模式多端角模式或最好最坏分析模式的设计模式下,获取保持时间时序最差的端角下当前缓冲单元的单元延时、输入跳变时间、所在路径中建立时间时序最差路径的建立时间裕量,将所述当前缓冲单元的单元延时、所在路径中建立时间时序最差路径的建立时间裕量求和得到当前缓冲单元允许的最大延时;
2.2)根据当前缓冲单元的输入跳变时间在代工厂提供的时序库延时查找表中查找代表输入跳变时间的X轴上的位置,获取所述位置在时序库延时查找表中相邻的上一个延时值和下一个延时值;根据当前缓冲单元允许的最大延时在代工厂提供的时序库延时查找表中依次遍历查找代表输出负载电容的Y轴上的相邻输出负载电容值,得到与当前缓冲单元允许的最大延时最匹配的上一个输出负载电容和下一个输出负载电容;根据所述上一个延时值、下一个延时值、上一个输出负载电容、下一个输出负载电容确定的矩形区域四个顶点的延时值;
2.3)根据式(1)计算当前缓冲单元的输入跳变时间与矩形区域顶边交点的延时值;
式(1)中,表示当前缓冲单元的输入跳变时间与矩形区域顶边交点的延时值;表示所述上一个延时值,表示所述下一个延时值,表示当前缓冲单元的输入跳变时间;表示矩形区域左上角顶点对应的延时值;表示矩形区域左下角顶点对应的延时值;
2.4)根据式(2)计算当前缓冲单元的输入跳变时间与矩形区域底边交点的延时值;
式(2)中,表示当前缓冲单元的输入跳变时间与矩形区域底边交点的延时值;表示所述上一个延时值,表示所述下一个延时值,表示当前缓冲单元的输入跳变时间;表示矩形区域右上角顶点对应的延时值;表示矩形区域右下角顶点对应的延时值;
2.5)根据式(3)计算获取当前缓冲单元的最大负载电容;
式(3)中,Cmax表示当前缓冲单元的最大负载电容;表示当前缓冲单元允许的最大延时;表示当前缓冲单元的输入跳变时间与矩形区域顶边交点的延时值;表示当前缓冲单元的输入跳变时间与矩形区域底边交点的延时值;C3表示与当前缓冲单元允许的最大延时最匹配的上一个输出负载电容,C4表示与当前缓冲单元允许的最大延时最匹配的下一个输出负载电容。
所述步骤3)的详细步骤如下:
3.1)预先在建立时间时序端角下获得当前缓冲单元输出端的物理位置、终点寄存器扫描输入端的物理位置,将以上所述两个物理位置为对角线的矩形区域内每层布线层互连线的面积除以该矩形区域的总面积得到每个布线层互连线在矩形区域的金属密度值;
3.2)通过比较各个布线层互连线在该矩形区域的金属密度值,获取在横向布线层中金属密度最低的一层和纵向布线层中金属密度最低的一层,从而确定当前缓冲单元输出端的物理位置、终点寄存器扫描输入端的物理位置之间的互连线所在横向布线层中金属密度最低的一层和纵向布线层中金属密度最低的一层。
所述步骤4)的详细步骤如下:
4.1)在代工厂提供的电容查找表中分别查表获取所述横向布线层中金属密度最低的一层和纵向布线层中金属密度最低的一层互连线单位长度的面积电容、侧面电容和边缘电容,将所述横向布线层中金属密度最低的一层的面积电容、侧面电容和边缘电容求和得到横向布线层中金属密度最低的一层的总电容,将纵向布线层中金属密度最低的一层的面积电容、侧面电容和边缘电容求和得到纵向布线层中金属密度最低的一层的总电容,在所述横向布线层中金属密度最低的一层的总电容、纵向布线层中金属密度最低的一层的总电容中取较大的总电容;
4.2)预先获取当前缓冲单元的输出负载电容、终点寄存器扫描输入端的引脚电容,将所述当前缓冲单元的最大负载电容依次减去当前缓冲单元的输出负载电容、减去终点寄存器扫描输入端的引脚电容得到当前缓冲单元输出端的物理位置、终点寄存器扫描输入端的物理位置之间的互连线的最大线电容;
4.3)将所述最大线电容除以所述较大的总电容得到当前缓冲单元输出端与扫描寄存器扫描输入端之间允许的互连线最大长度。
所述步骤7)的详细步骤如下:
7.1)计算当前缓冲单元输出端、终点寄存器扫描输入端之间的曼哈顿距离;
7.2)判断所述曼哈顿距离是否大于或者等于当前缓冲单元所在区域的单元密度,如果所述曼哈顿距离大于或者等于当前缓冲单元所在区域的单元密度,则判定直接连接缓冲单元输出端和寄存器扫描输入端是否会引起经过该单元的功能数据路径建立时间时序违例,跳转执行步骤10);否则如果所述曼哈顿距离小于当前缓冲单元所在区域的单元密度,则跳转执行步骤7.3);
7.3)判断所述曼哈顿距离是否大于或等于当前缓冲单元输出端与扫描寄存器扫描输入端之间允许的互连线最大长度,如果所述曼哈顿距离大于或者等于当前缓冲单元输出端与扫描寄存器扫描输入端之间允许的互连线最大长度,则跳转执行步骤8);否则,如果所述曼哈顿距离小于当前缓冲单元输出端与扫描寄存器扫描输入端之间允许的互连线最大长度,则直接连接缓冲单元输出端和寄存器扫描输入端,并跳转执行步骤10)。
本发明基于缓冲单元复用的保持时间时序优化方法具有下述优点:本发明基于缓冲单元复用的保持时间时序优化方法通过复用功能数据路径上的缓冲单元优化保持时间时序违例的扫描路径,查找保持时间时序违反的扫描路径相同起点的功能数据路径上的缓冲单元;根据当前时序确定单元最大输出负载电容;根据单元最大输出负载电容和当前布线情况确定互连线的最大长度;如果复用单元会增加建立时间时序违例路径,根据单元所在区域的局部单元密度分析是否可以通过插入新单元降低单元的输出负载电容,如允许则通过插入新单元降低单元的输出负载电容;最后根据时序和物理信息确定扫描寄存器扫描输入端的连接关系,不仅优化了扫描路径的保持时间时序而且降低了缓冲单元插入数目,在优化了设计中扫描路径保持时间时序的同时降低了缓冲单元插入数目以及设计密度和功耗。
附图说明
图1为本发明实施例方法的基本流程示意图。
图2为本发明实施例中查找可复用的缓冲单元的原理示意图。
图3为本发明实施例中确定缓冲单元最大输出负载电容计算原理示意图。
图4为本发明实施例中当前缓冲单元附近密度较高的情况示意图。
图5为应用本发明实施例在后端物理设计流程中所处的阶段示意图。
具体实施方式
如图1所示,本实施例基于缓冲单元复用的保持时间时序优化方法的实施步骤如下:
1)在待优化设计中查找与保持时间时序违例的扫描路径具有相同起点的功能数据路径上的缓冲单元作为可复用的缓冲单元,指定其中一个缓冲单元作为当前缓冲单元。
由于相同起点可能存在多条功能数据路径,并且端口路径中也可能存在缓冲单元,本实施例将所有与扫描路径起点相同的功能数据路径、端口路径中处于起点寄存器与非缓冲单元的逻辑单元之间的缓冲单元都查找出来,从而查找设计中每一条扫描路径中具有相同起点的功能数据路径上的缓冲单元。对图2所示路径为例,从起点寄存器reg1的Q端输出一共存在6条路径,分别到寄存器reg2的SI端和D端、寄存器reg3的D端、寄存器reg4的D端、寄存器reg5的D端以及输出端口A。其中,存在保持时序违例的扫描路径为寄存器reg1的Q端到寄存器reg2的SI端路径,其他路径均为功能数据路径。路径上的非缓冲单元的逻辑单元为1、7、11、14,因此,可以查找出起点寄存器与非缓冲单元之间的缓冲单元为2、3、4、5、6、8、9、10、12、13、15。
2)根据当前时序计算当前缓冲单元的最大输出负载电容。
如图3所示,本实施例中时序库延时查找表有两个索引,一个索引(X轴)为单元的输入跳变时间,另外一个索引(Y轴)为单元的输出负载电容,每个索引有7个值,分别对应图中的C1~C7。下文以当前缓冲单元的输入跳变时间处于之间为例介绍最大输出负载电容Cmax的计算。本实施例中,步骤2)的详细步骤如下:
2.1)在多模式多端角模式(multi-mode multi-corner)或最好最坏分析模式(best-caseworst-case)的设计模式下,获取保持时间时序最差的端角下当前缓冲单元的单元延时输入跳变时间所在路径中建立时间时序最差路径的建立时间裕量tsetup_slack,将当前缓冲单元的单元延时所在路径中建立时间时序最差路径的建立时间裕量tsetup_slack求和得到当前缓冲单元允许的最大延时即表达式为起点寄存器输出负载电容的减小会降低路径的延时,同时其输出跳变时间减小,因此从起点寄存器到连接扫描路径终点寄存器的扫描输入端的缓冲单元的路径延时在设计互连关系改变后会减小;缓冲单元输出负载电容增大,恶化自身单元延时的同时会恶化单元的输出跳变时间,从连接扫描路径终点寄存器扫描输入端的缓冲单元到功能数据路径终点寄存器的路径会因输入跳变时间恶化延时增大。相对于输出负载电容,输入跳变时间对单元延时影响不大,故简化问题认为前段路径延时的降低与后段路径延时的增加相平衡,在计算时忽略这两段路径延时的变化。改变互连关系后,路径延时变化简化为连接扫描路径终点寄存器扫描输入端缓冲单元的单元延时变化。如果tsetup_slack为负值,则当前缓冲单元不可连接扫描路径终点寄存器的扫描输入端。缓冲单元的输入跳变时间会比改变连接关系前小,本实施例中悲观考虑直接取连接关系改变前该缓冲单元的输入跳变时间
2.2)根据当前缓冲单元的输入跳变时间在代工厂提供的时序库延时查找表中查找代表输入跳变时间的X轴上的位置,获取位置在时序库延时查找表中相邻的延时值即为上一个延时值即为下一个延时值根据当前缓冲单元允许的最大延时在代工厂提供的时序库延时查找表中依次遍历查找代表输出负载电容的Y轴上的相邻输出负载电容值,得到与当前缓冲单元允许的最大延时最匹配的上一个输出负载电容C3和下一个输出负载电容C4;根据上一个延时值下一个延时值上一个输出负载电容C3、下一个输出负载电容C4确定的矩形区域四个顶点的延时值tr3_c3、tr3_c4、tr4_c3、tr4_c4,下文中分别表示为
由于时序库延时查找表中C1值很小,所以的值正常情况下不会比tr3_c1小,假设大于tr3_c1。比较与C1对应查找表的延时tr3_c1,与C2对应查找表的延时tr4_c2,检查的值是否在tr3_c1、tr4_c2之间。如果不在两者之间,则将再与tr3_c2、tr4_c3进行比较,直到查找到所处的区间范围。如果,则说明该单元在不引起功能数据路径建立时间时序违反的情况下,最大允许的输出负载电容值Cmax在C3、C4之间。
2.3)根据式(1)计算当前缓冲单元的输入跳变时间与矩形区域顶边交点的延时值;
式(1)中,表示当前缓冲单元的输入跳变时间与矩形区域顶边交点的延时值;表示上一个延时值,表示下一个延时值,表示当前缓冲单元的输入跳变时间;表示矩形区域左上角顶点对应的延时值;表示矩形区域左下角顶点对应的延时值。
根据图3可以推导出式(1.1)。
式(1.1)中,表示当前缓冲单元的输入跳变时间与矩形区域顶边交点的延时值;表示上一个延时值,表示下一个延时值,表示当前缓冲单元的输入跳变时间;表示矩形区域左上角顶点对应的延时值;表示矩形区域左下角顶点对应的延时值。通过式(1.1)变换形式,即可得到式(1)所示的表达式。
2.4)根据式(2)计算当前缓冲单元的输入跳变时间与矩形区域底边交点的延时值;
式(2)中,表示当前缓冲单元的输入跳变时间与矩形区域底边交点的延时值;表示上一个延时值,表示下一个延时值,表示当前缓冲单元的输入跳变时间;表示矩形区域右上角顶点对应的延时值;表示矩形区域右下角顶点对应的延时值。
根据图3可以推导出式(2.1)。
式(2.1)中,表示当前缓冲单元的输入跳变时间与矩形区域底边交点的延时值;表示上一个延时值,表示下一个延时值,表示当前缓冲单元的输入跳变时间;表示矩形区域右上角顶点对应的延时值;表示矩形区域右下角顶点对应的延时值。通过式(2.1)变换形式,即可得到式(2)所示的表达式。
2.5)根据式(3)计算获取当前缓冲单元的最大负载电容;
式(3)中,Cmax表示当前缓冲单元的最大负载电容;表示当前缓冲单元允许的最大延时;表示当前缓冲单元的输入跳变时间与矩形区域顶边交点的延时值;表示当前缓冲单元的输入跳变时间与矩形区域底边交点的延时值;C3表示与当前缓冲单元允许的最大延时最匹配的上一个输出负载电容,C4表示与当前缓冲单元允许的最大延时最匹配的下一个输出负载电容。
根据图3可以推导出式(3.1)。
式(3.1)中,Cmax表示当前缓冲单元的最大负载电容;表示当前缓冲单元允许的最大延时;表示当前缓冲单元的输入跳变时间与矩形区域顶边交点的延时值;表示当前缓冲单元的输入跳变时间与矩形区域底边交点的延时值;C3表示与当前缓冲单元允许的最大延时最匹配的上一个输出负载电容,C4表示与当前缓冲单元允许的最大延时最匹配的下一个输出负载电容。式(3.1)中tp取值为当前缓冲单元允许的最大延时因此将式(3.1)变换形式,即可得到式(3)所示的表达式。
3)分析确定当前缓冲单元所在区域的互连线分布层。
本实施例中,步骤3)的详细步骤如下:
3.1)预先在建立时间时序端角下获得当前缓冲单元输出端的物理位置、终点寄存器扫描输入端的物理位置,将以上两个物理位置为对角线的矩形区域内每层布线层互连线的面积除以该矩形区域的总面积得到每个布线层互连线在矩形区域的金属密度值;
3.2)通过比较各个布线层互连线在该矩形区域的金属密度值,获取在横向布线层中金属密度最低的一层和纵向布线层中金属密度最低的一层,从而确定当前缓冲单元输出端的物理位置、终点寄存器扫描输入端的物理位置之间的互连线所在横向布线层中金属密度最低的一层和纵向布线层中金属密度最低的一层。
假定连接扫描寄存器扫描输入端的缓冲单元输出端物理位置为A,扫描寄存器扫描输入端的物理位置为B,获得以A,B两点为对角线的矩形区域内每个布线层互连线在该区域的金属密度(本实施例中,金属密度定义为该矩形区域内每层布线层互连线的面积除以该区域总面积)。假设该区域内所有M2层互连线的面积之和为A2,该区域总面积为Aall,则M2布线层在该区域的金属密度为A2/Aall),比较M1-M9各布线层在该区域的金属密度值,得到在横向布线层中金属密度最低的一层和纵向布线层中金属密度最低的一层。假设M3为横向布线层中金属密度最低的一层,M6为纵向布线层中金属密度最低的一层。从金属密度的计算方法可以看出该区域内互连线最少的布线层金属密度最低,因此如果有新互连线经过该区域或该区域有单元需要布线,此时布线采用金属密度最低布线层的概率最高。此处认为布线时A、B两点之间的互连线会在M3、M6层。
4)计算当前缓冲单元输出端与扫描寄存器扫描输入端之间允许的互连线最大长度Lmax。
本实施例中,步骤4)的详细步骤如下:
4.1)在代工厂提供的电容查找表(cap table)中分别查表获取横向布线层中金属密度最低的一层M3和纵向布线层中金属密度最低的一层M6互连线单位长度的面积电容Ca、侧面电容Cc、边缘电容Cf,将横向布线层中金属密度最低的一层的面积电容Ca、侧面电容Cc、边缘电容Cf求和(表达式为C=Ca+2Cf+2Cc)得到横向布线层M3中金属密度最低的一层的总电容,将纵向布线层中金属密度最低的一层M6的面积电容Ca、侧面电容Cc、边缘电容Cf求和(表达式为C=Ca+2Cf+2Cc)得到纵向布线层中金属密度最低一层的总电容,在横向布线层中金属密度最低的一层的总电容、纵向布线层中金属密度最低一层的总电容中取较大的总电容,记为Cunit;
4.2)预先获取当前缓冲单元的输出负载电容Cprim_load、终点寄存器扫描输入端的引脚电容Cpin,将当前缓冲单元的最大负载电容Cmax依次减去当前缓冲单元的输出负载电容Cprim_load、减去终点寄存器扫描输入端的引脚电容Cpin得到当前缓冲单元输出端的物理位置、终点寄存器扫描输入端的物理位置之间的互连线的最大线电容Cwire_max,表达式为Cwire_max=Cmax-Cprim_load-Cpin。
4.3)将最大线电容Cwire_max除以较大的总电容Cunit得到当前缓冲单元输出端与扫描寄存器扫描输入端之间允许的互连线最大长度Lmax,
其表达式为
5)判断直接复用当前缓冲单元是否会增加待优化设计中建立时间时序违例路径,如果会则跳转执行步骤6),否则跳转执行步骤10)。
6)计算当前缓冲单元所在区域的单元密度。
如果准备连接扫描路径终点寄存器扫描输入端的缓冲单元所处区域局部单元密度过高,即:在该缓冲单元的输出端附近不能插入单元,或是即使插入,经过布局合法化之后,新插入单元距离缓冲单元的输出端很远,甚至比直接连接扫描路径终点寄存器扫描输入端的距离还远。此时不能通过插入单元降低连接扫描输入端单元的输出负载电容。
7)计算当前缓冲单元输出端、终点寄存器扫描输入端之间的曼哈顿距离,根据曼哈顿距离和当前缓冲单元所在区域的单元密度判断当前缓冲单元所在区域的单元密度是否在指定范围内且能够通过插入新的缓冲器或延时单元来避免增加建立时间时序违例路径是否可以同时成立,如果可以则跳转执行步骤8),否则跳转执行步骤10)。
本实施例中,步骤7)的详细步骤如下:
7.1)计算当前缓冲单元输出端、终点寄存器扫描输入端之间的曼哈顿距离Lm;
7.2)判断曼哈顿距离Lm是否大于或者等于当前缓冲单元所在区域的单元密度,如果曼哈顿距离Lm大于或者等于当前缓冲单元所在区域的单元密度,则判定直接连接缓冲单元输出端和寄存器扫描输入端会引起经过该单元的功能数据路径建立时间时序违例,跳转执行步骤10);否则如果曼哈顿距离Lm小于当前缓冲单元所在区域的单元密度,则跳转执行步骤7.3);
7.3)判断曼哈顿距离Lm是否大于或等于当前缓冲单元输出端与扫描寄存器扫描输入端之间允许的互连线最大长度Lmax,如果曼哈顿距离Lm大于或者等于当前缓冲单元输出端与扫描寄存器扫描输入端之间允许的互连线最大长度Lmax,则跳转执行步骤8);否则,如果曼哈顿距离Lm小于当前缓冲单元输出端与扫描寄存器扫描输入端之间允许的互连线最大长度Lmax,则直接连接缓冲单元输出端和寄存器扫描输入端,并跳转执行步骤10)。
物理设计布线只有横向、纵向两个布线方向。如果连接两个单元引脚的互连线没有绕线,该互连线的长度等于两个单元引脚之间的曼哈顿距离。计算缓冲单元输出端与扫描路径终点寄存器扫描输入端的曼哈顿距离Lm。如果Lm大于Lmax,直接连接缓冲单元输出端和寄存器扫描输入端会引起经过该单元的功能数据路径建立时间时序违例。
如图4所示,单元buf0为选择连接扫描寄存器扫描输入端的单元,其输出端的物理坐标为(x0,y0),其周围整个不规则区域均布满标准单元。如果扫描路径需要复用单元delay0和单元buf0,则应将reg3的SI端连接到buf0的Z端。经分析计算,在不引起通过单元buf0所有功能数据路径建立时间时序违反的条件下,允许互连单元buf0输出端Z和扫描寄存器扫描输入端SI的互连线的长度最大为Lmax,而互连单元buf0输出端和寄存器reg3的扫描输入端的互连线的实际长度超过了Lmax。因此,在物理位置(x0,y0)处插入缓冲单元i_buf0,以降低单元buf0的输出负载电容。但由于此区域单元密度过高不能放下i_buf0,经合法布局后,单元i_buf0处于不规则区域外的位置。假设新插入单元输入端的坐标为(x,y)。根据曼哈顿距离的计算方法,新插入单元输入端的坐标须满足公式|x-x0|+|y-y0|≤Lmax,即(x,y)与(x0,y0)的曼哈顿距离不能超过Lmax。对应到图4中,单元i_buf0的位置须处于线型一包围的区域内,才可以保证设计不会因连接关系改变引起功能数据路径的建立时间时序违反。然而图4中新插入的单元i_buf0在线型一包围区域之外,这种情况下,通过插入缓冲器或延时单元不能降低单元buf0的输出负载电容,因此不可以将扫描路径终点寄存器扫描输入端连接在buf0的输出端。
8)在当前缓冲单元的输出端插入新的缓冲器或延时单元(delay cell)。
9)从所有可复用的缓冲单元中选择最有利于时序的缓冲单元作为待复用缓冲单元。
如果设计采用多模式多端角(multi-mode multi-corner)或最好最坏(best-case worst-case)分析模式,在保持时间时序最差的端角下计算得到数据从起点寄存器到达每个缓冲单元输出端的延时,如果插入缓冲单元输出端附近插入了缓冲器或延时单元,则估算数据到达新插入单元输出端的延时。如果可被复用的缓冲单元有多个,或有多条功能数据路径上的缓冲单元可被复用,对所有可复用单元进行步骤1)~8)的分析,在保证设计功能正确不变的条件下,选取数据到达输出端的延时大于且最接近扫描路径保持时间裕量绝对值的缓冲单元连接扫描路径终点寄存器的扫描输入端。
10)判断是否所有缓冲单元遍历结束,如果没有则选择一个尚未处理的缓冲单元作为当前缓冲单元,跳转执行步骤2);否则,跳转执行步骤10)。
11)根据待复用缓冲单元改变设计的连接关系并重新绕线。将扫描路径终点寄存器的扫描输入端从起点寄存器断开,连接在新确定单元的输出端。对改变连接关系前后的两个网表进行等价性检查,验证通过后重新绕线完成时序优化。
12)结束。
本实施例在后端物理设计流程中的应用阶段如图5所示。在整个设计布局布线完成后,对功能数据路径进行时序优化,然后应用本实施例基于缓冲单元复用的保持时间时序优化方法对设计的保持时间时序进行优化。由于改变了设计的连接关系,优化完成后采用等价性检查工具进行等价性检查验证。验证通过后对改变连接关系的互连线进行重新绕线,并进行后续的时序优化直至时序收敛即可投片生产。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (5)
1.一种基于缓冲单元复用的保持时间时序优化方法,其特征在于实施步骤如下:
1)在待优化设计中查找与保持时间时序违例的扫描路径具有相同起点的功能数据路径上的缓冲单元作为可复用的缓冲单元,指定其中一个缓冲单元作为当前缓冲单元;
2)根据当前时序计算当前缓冲单元的最大输出负载电容;
3)分析确定当前缓冲单元所在区域的互连线分布层;
4)计算当前缓冲单元输出端与扫描寄存器扫描输入端之间允许的互连线最大长度;
5)判断直接复用当前缓冲单元是否会增加待优化设计中建立时间时序违例路径,如果会则跳转执行步骤6),否则跳转执行步骤10);
6)计算当前缓冲单元所在区域的单元密度;
7)计算当前缓冲单元输出端、终点寄存器扫描输入端之间的曼哈顿距离,根据所述曼哈顿距离和当前缓冲单元所在区域的单元密度判断当前缓冲单元所在区域的单元密度是否在指定范围内且能够通过插入新的缓冲器或延时单元来避免增加建立时间时序违例路径是否可以同时成立,如果可以则跳转执行步骤8),否则跳转执行步骤10);
8)在当前缓冲单元的输出端插入新的缓冲器或延时单元;
9)从所述所有可复用的缓冲单元中选择最有利于时序的缓冲单元作为待复用缓冲单元;
10)判断是否所有缓冲单元遍历结束,如果没有则选择一个尚未处理的缓冲单元作为当前缓冲单元,跳转执行步骤2);否则,跳转执行步骤10);
11)根据所述待复用缓冲单元改变设计的连接关系并重新绕线;
12)结束。
2.根据权利要求1所述的基于缓冲单元复用的保持时间时序优化方法,其特征在于,所述步骤2)的详细步骤如下:
2.1)在多模式多端角模式或最好最坏分析模式的设计模式下,获取保持时间时序最差的端角下当前缓冲单元的单元延时、输入跳变时间、所在路径中建立时间时序最差路径的建立时间裕量,将所述当前缓冲单元的单元延时、所在路径中建立时间时序最差路径的建立时间裕量求和得到当前缓冲单元允许的最大延时;
2.2)根据当前缓冲单元的输入跳变时间在代工厂提供的时序库延时查找表中查找代表输入跳变时间的X轴上的位置,获取所述位置在时序库延时查找表中相邻的上一个延时值和下一个延时值;根据当前缓冲单元允许的最大延时在代工厂提供的时序库延时查找表中依次遍历查找代表输出负载电容的Y轴上的相邻输出负载电容值,得到与当前缓冲单元允许的最大延时最匹配的上一个输出负载电容和下一个输出负载电容;根据所述上一个延时值、下一个延时值、上一个输出负载电容、下一个输出负载电容确定的矩形区域四个顶点的延时值;
2.3)根据式(1)计算当前缓冲单元的输入跳变时间与矩形区域顶边交点的延时值;
式(1)中,表示当前缓冲单元的输入跳变时间与矩形区域顶边交点的延时值;表示所述上一个延时值,表示所述下一个延时值,表示当前缓冲单元的输入跳变时间;表示矩形区域左上角顶点对应的延时值;表示矩形区域左下角顶点对应的延时值;
2.4)根据式(2)计算当前缓冲单元的输入跳变时间与矩形区域底边交点的延时值;
式(2)中,表示当前缓冲单元的输入跳变时间与矩形区域底边交点的延时值;表示所述上一个延时值,表示所述下一个延时值,表示当前缓冲单元的输入跳变时间;表示矩形区域右上角顶点对应的延时值;表示矩形区域右下角顶点对应的延时值;
2.5)根据式(3)计算获取当前缓冲单元的最大负载电容;
3.根据权利要求2所述的基于缓冲单元复用的保持时间时序优化方法,其特征在于,所述步骤3)的详细步骤如下:
3.1)预先在建立时间时序端角下获得当前缓冲单元输出端的物理位置、终点寄存器扫描输入端的物理位置,将以上所述两个物理位置为对角线的矩形区域内每层布线层互连线的面积除以该矩形区域的总面积得到每个布线层互连线在矩形区域的金属密度值;
3.2)通过比较各个布线层互连线在该矩形区域的金属密度值,获取在横向布线层中金属密度最低的一层和纵向布线层中金属密度最低的一层,从而确定当前缓冲单元输出端的物理位置、终点寄存器扫描输入端的物理位置之间的互连线所在横向布线层中金属密度最低的一层和纵向布线层中金属密度最低的一层。
4.根据权利要求3所述的基于缓冲单元复用的保持时间时序优化方法,其特征在于,所述步骤4)的详细步骤如下:
4.1)在代工厂提供的电容查找表中分别查表获取所述横向布线层中金属密度最低的一层和纵向布线层中金属密度最低的一层互连线单位长度的面积电容、侧面电容和边缘电容,将所述横向布线层中金属密度最低的一层的面积电容、侧面电容和边缘电容求和得到横向布线层中金属密度最低的一层的总电容,将纵向布线层中金属密度最低一层的面积电容、侧面电容和边缘电容求和得到纵向布线层中金属密度最低的一层的总电容,在所述横向布线层中金属密度最低的一层的总电容、纵向布线层中金属密度最低的一层的总电容中取较大的总电容;
4.2)预先获取当前缓冲单元的输出负载电容、终点寄存器扫描输入端的引脚电容,将所述当前缓冲单元的最大负载电容依次减去当前缓冲单元的输出负载电容、减去终点寄存器扫描输入端的引脚电容得到当前缓冲单元输出端的物理位置、终点寄存器扫描输入端的物理位置之间的互连线的最大线电容;
4.3)将所述最大线电容除以所述较大的总电容得到当前缓冲单元输出端与扫描寄存器扫描输入端之间允许的互连线最大长度。
5.根据权利要求4所述的基于缓冲单元复用的保持时间时序优化方法,其特征在于,所述步骤7)的详细步骤如下:
7.1)计算当前缓冲单元输出端、终点寄存器扫描输入端之间的曼哈顿距离;
7.2)判断所述曼哈顿距离是否大于或者等于当前缓冲单元所在区域的单元密度,如果所述曼哈顿距离大于或者等于当前缓冲单元所在区域的单元密度,则判定直接连接缓冲单元输出端和寄存器扫描输入端是否会引起经过该单元的功能数据路径建立时间时序违例,跳转执行步骤10);否则如果所述曼哈顿距离小于当前缓冲单元所在区域的单元密度,则跳转执行步骤7.3);
7.3)判断所述曼哈顿距离是否大于或等于当前缓冲单元输出端与扫描寄存器扫描输入端之间允许的互连线最大长度,如果所述曼哈顿距离大于或者等于当前缓冲单元输出端与扫描寄存器扫描输入端之间允许的互连线最大长度,则跳转执行步骤8);否则,如果所述曼哈顿距离小于当前缓冲单元输出端与扫描寄存器扫描输入端之间允许的互连线最大长度,则直接连接缓冲单元输出端和寄存器扫描输入端,并跳转执行步骤10)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310615711.5A CN103632001B (zh) | 2013-11-27 | 2013-11-27 | 基于缓冲单元复用的保持时间时序优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310615711.5A CN103632001B (zh) | 2013-11-27 | 2013-11-27 | 基于缓冲单元复用的保持时间时序优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103632001A true CN103632001A (zh) | 2014-03-12 |
CN103632001B CN103632001B (zh) | 2016-03-30 |
Family
ID=50213041
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310615711.5A Active CN103632001B (zh) | 2013-11-27 | 2013-11-27 | 基于缓冲单元复用的保持时间时序优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103632001B (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107330177A (zh) * | 2017-06-26 | 2017-11-07 | 北方电子研究院安徽有限公司 | 一种基于Tcl/Tk脚本的时钟树扇出违约修复方法 |
CN108009055A (zh) * | 2016-10-31 | 2018-05-08 | 深圳市中兴微电子技术有限公司 | 一种修复保持时间违例的方法和装置 |
CN108920730A (zh) * | 2017-03-27 | 2018-11-30 | 联发科技股份有限公司 | 一种集成电路及方法 |
CN108983870A (zh) * | 2017-05-31 | 2018-12-11 | 深圳市中兴微电子技术有限公司 | 一种时间修复方法和装置 |
CN109783956A (zh) * | 2019-01-23 | 2019-05-21 | 中国人民解放军国防科技大学 | 基于区域划分的最大跳变时间违例修复方法及系统 |
CN110377922A (zh) * | 2018-04-12 | 2019-10-25 | 龙芯中科技术有限公司 | 保持时间违例修复方法、装置及设备 |
CN110619137A (zh) * | 2019-06-25 | 2019-12-27 | 眸芯科技(上海)有限公司 | 针对电压降的时序分析方法及应用 |
CN110738019A (zh) * | 2019-09-26 | 2020-01-31 | 北京华大九天软件有限公司 | 一种利用负载单元自动结群修复时序违反的方法及装置 |
CN111881637A (zh) * | 2020-07-08 | 2020-11-03 | 广芯微电子(广州)股份有限公司 | 一种数字电路功耗优化的方法、系统及存储介质 |
CN112001140A (zh) * | 2020-10-27 | 2020-11-27 | 浙江大学 | 一种基于pso算法的有用偏差时序优化方法 |
CN112162884A (zh) * | 2020-10-14 | 2021-01-01 | Oppo广东移动通信有限公司 | 流水线寄存器的位置确定方法、装置、介质与电子设备 |
CN112732620A (zh) * | 2021-01-12 | 2021-04-30 | 安徽省东科半导体有限公司 | 基于流水寄存器的物理层逻辑模块的信号中继方法 |
CN113392616A (zh) * | 2021-06-16 | 2021-09-14 | 英业达科技有限公司 | 晶体振荡器的负载电容计算系统与负载电容计算方法 |
CN113609626A (zh) * | 2021-05-20 | 2021-11-05 | 山东云海国创云计算装备产业创新中心有限公司 | 一种电压降违例修复方法及相关装置 |
CN113673193A (zh) * | 2021-08-09 | 2021-11-19 | 东南大学 | 一种基于寄存器灵活时序库的电路时序优化方法 |
WO2022257339A1 (zh) * | 2021-06-09 | 2022-12-15 | 苏州浪潮智能科技有限公司 | 构建fpga原型验证平台的方法、装置、设备和介质 |
CN115758989A (zh) * | 2023-01-10 | 2023-03-07 | 瀚博半导体(上海)有限公司 | 用于修复数字芯片版图设计规则时序违例的方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1687934A (zh) * | 2005-05-13 | 2005-10-26 | 清华大学 | 多端线网插入缓冲器优化时延的标准单元总体布线方法 |
CN101241523A (zh) * | 2008-03-10 | 2008-08-13 | 清华大学 | 全芯片互连线功耗最优的布局阶段缓冲器规划方法 |
CN102467582A (zh) * | 2010-10-29 | 2012-05-23 | 国际商业机器公司 | 一种集成电路设计中优化连线约束的方法和系统 |
CN103164585A (zh) * | 2013-03-29 | 2013-06-19 | 龙芯中科技术有限公司 | 缓冲器的插入方法及装置 |
-
2013
- 2013-11-27 CN CN201310615711.5A patent/CN103632001B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1687934A (zh) * | 2005-05-13 | 2005-10-26 | 清华大学 | 多端线网插入缓冲器优化时延的标准单元总体布线方法 |
CN101241523A (zh) * | 2008-03-10 | 2008-08-13 | 清华大学 | 全芯片互连线功耗最优的布局阶段缓冲器规划方法 |
CN102467582A (zh) * | 2010-10-29 | 2012-05-23 | 国际商业机器公司 | 一种集成电路设计中优化连线约束的方法和系统 |
CN103164585A (zh) * | 2013-03-29 | 2013-06-19 | 龙芯中科技术有限公司 | 缓冲器的插入方法及装置 |
Non-Patent Citations (3)
Title |
---|
ANWEN HUANG ET AL.: "Optimization techniques of on-chip memory system based on UltraSPARC architecture", 《MICROELECTRONICS & ELECTRONICS》 * |
夏婷婷: "一种基于预布局的时序优化方法", <中国计算机学会计算机工程与工艺专委会第十五届学术年会论文集> * |
孙秀秀: "有用时钟偏差技术的优化与实现", 《中国计算机学会计算机工程与工艺专委会第十六届学术年会论文集》 * |
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108009055A (zh) * | 2016-10-31 | 2018-05-08 | 深圳市中兴微电子技术有限公司 | 一种修复保持时间违例的方法和装置 |
CN108920730A (zh) * | 2017-03-27 | 2018-11-30 | 联发科技股份有限公司 | 一种集成电路及方法 |
CN108983870B (zh) * | 2017-05-31 | 2021-12-28 | 深圳市中兴微电子技术有限公司 | 一种时间修复方法和装置 |
CN108983870A (zh) * | 2017-05-31 | 2018-12-11 | 深圳市中兴微电子技术有限公司 | 一种时间修复方法和装置 |
CN107330177A (zh) * | 2017-06-26 | 2017-11-07 | 北方电子研究院安徽有限公司 | 一种基于Tcl/Tk脚本的时钟树扇出违约修复方法 |
CN107330177B (zh) * | 2017-06-26 | 2020-03-20 | 北方电子研究院安徽有限公司 | 一种基于Tcl/Tk脚本的时钟树扇出违约修复方法 |
CN110377922A (zh) * | 2018-04-12 | 2019-10-25 | 龙芯中科技术有限公司 | 保持时间违例修复方法、装置及设备 |
CN110377922B (zh) * | 2018-04-12 | 2023-06-30 | 龙芯中科技术股份有限公司 | 保持时间违例修复方法、装置及设备 |
CN109783956A (zh) * | 2019-01-23 | 2019-05-21 | 中国人民解放军国防科技大学 | 基于区域划分的最大跳变时间违例修复方法及系统 |
CN109783956B (zh) * | 2019-01-23 | 2022-11-22 | 中国人民解放军国防科技大学 | 基于区域划分的最大跳变时间违例修复方法及系统 |
CN110619137A (zh) * | 2019-06-25 | 2019-12-27 | 眸芯科技(上海)有限公司 | 针对电压降的时序分析方法及应用 |
CN110619137B (zh) * | 2019-06-25 | 2022-12-02 | 眸芯科技(上海)有限公司 | 针对电压降的时序分析方法及应用 |
CN110738019A (zh) * | 2019-09-26 | 2020-01-31 | 北京华大九天软件有限公司 | 一种利用负载单元自动结群修复时序违反的方法及装置 |
CN110738019B (zh) * | 2019-09-26 | 2022-05-24 | 北京华大九天科技股份有限公司 | 一种利用负载单元自动结群修复时序违反的方法及装置 |
CN111881637B (zh) * | 2020-07-08 | 2021-05-04 | 广芯微电子(广州)股份有限公司 | 一种数字电路功耗优化的方法、系统及存储介质 |
CN111881637A (zh) * | 2020-07-08 | 2020-11-03 | 广芯微电子(广州)股份有限公司 | 一种数字电路功耗优化的方法、系统及存储介质 |
CN112162884A (zh) * | 2020-10-14 | 2021-01-01 | Oppo广东移动通信有限公司 | 流水线寄存器的位置确定方法、装置、介质与电子设备 |
CN112001140B (zh) * | 2020-10-27 | 2021-03-30 | 浙江大学 | 一种基于pso算法的有用偏差时序优化方法 |
CN112001140A (zh) * | 2020-10-27 | 2020-11-27 | 浙江大学 | 一种基于pso算法的有用偏差时序优化方法 |
CN112732620A (zh) * | 2021-01-12 | 2021-04-30 | 安徽省东科半导体有限公司 | 基于流水寄存器的物理层逻辑模块的信号中继方法 |
CN113609626A (zh) * | 2021-05-20 | 2021-11-05 | 山东云海国创云计算装备产业创新中心有限公司 | 一种电压降违例修复方法及相关装置 |
CN113609626B (zh) * | 2021-05-20 | 2023-09-15 | 山东云海国创云计算装备产业创新中心有限公司 | 一种电压降违例修复方法及相关装置 |
WO2022257339A1 (zh) * | 2021-06-09 | 2022-12-15 | 苏州浪潮智能科技有限公司 | 构建fpga原型验证平台的方法、装置、设备和介质 |
CN113392616B (zh) * | 2021-06-16 | 2023-03-14 | 英业达科技有限公司 | 晶体振荡器的负载电容计算系统与负载电容计算方法 |
CN113392616A (zh) * | 2021-06-16 | 2021-09-14 | 英业达科技有限公司 | 晶体振荡器的负载电容计算系统与负载电容计算方法 |
CN113673193A (zh) * | 2021-08-09 | 2021-11-19 | 东南大学 | 一种基于寄存器灵活时序库的电路时序优化方法 |
WO2023015878A1 (zh) * | 2021-08-09 | 2023-02-16 | 东南大学 | 一种基于寄存器灵活时序库的电路时序优化方法 |
CN113673193B (zh) * | 2021-08-09 | 2022-11-22 | 东南大学 | 一种基于寄存器灵活时序库的电路时序优化方法 |
US11829693B2 (en) | 2021-08-09 | 2023-11-28 | Southeast University | Method for optimizing circuit timing based on flexible register timing library |
CN115758989A (zh) * | 2023-01-10 | 2023-03-07 | 瀚博半导体(上海)有限公司 | 用于修复数字芯片版图设计规则时序违例的方法及系统 |
CN115758989B (zh) * | 2023-01-10 | 2023-04-07 | 瀚博半导体(上海)有限公司 | 用于修复数字芯片版图设计规则时序违例的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103632001B (zh) | 2016-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103632001B (zh) | 基于缓冲单元复用的保持时间时序优化方法 | |
CN110377922B (zh) | 保持时间违例修复方法、装置及设备 | |
CN112364584B (zh) | 一种基于分布式的静态时序分析方法 | |
CN114742001B (zh) | 一种基于多fpga的系统静态时序分析方法 | |
EP0363017A2 (en) | Schematic diagram generator and schematic diagram generating method | |
CN112257365B (zh) | 一种基于几何信息并行建立时序图的方法 | |
CN110580393B (zh) | 一种门级网表修改后的快速收敛建立时间的方法 | |
CN103092258B (zh) | 时钟产生电路自校正系统及其校正方法 | |
Huang et al. | Application-specific network-on-chip synthesis with topology-aware floorplanning | |
CN109783956A (zh) | 基于区域划分的最大跳变时间违例修复方法及系统 | |
CN106960087B (zh) | 一种时钟分布网络结构及其生成方法 | |
CN104992032B (zh) | 一种多电压域设计中保持时间的修正方法 | |
CN103678741A (zh) | 一种集成电路版图验证中短路路径的图形优化方法 | |
CN105958850B (zh) | 基于优化归并排序的模块化多电平换流器电容均压方法 | |
CN101369294A (zh) | SoC布局的平面布图规划方法 | |
US20140223249A1 (en) | System and method for scan chain re-ordering | |
CN107315863B (zh) | 布局优化方法及装置、终端及存储介质 | |
US8966428B2 (en) | Fixed-outline floorplanning approach for mixed-size modules | |
CN110795909A (zh) | 片上电源开关链的构建方法、装置、设备及存储介质 | |
CN116167330A (zh) | 时钟树综合方法、装置、电子设备及计算机可读存储介质 | |
US6691293B2 (en) | Layout instrument for semiconductor integrated circuits, layout method for semiconductor integrated circuits and recording medium that stores a program for determining layout of semiconductor integrated circuits | |
CN114722547A (zh) | 光伏组件串线排布确定方法、装置、电子设备及存储介质 | |
CN114757139A (zh) | 层次化设计中穿透模块层次的模块引脚对齐方法 | |
CN112858873A (zh) | 一种基于二端测试的引脚资源分配方法及系统 | |
CN114896941B (zh) | 一种时钟树的布局优化方法、优化装置和相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |