CN114548025B - Automated script writing and usage to solve long-line timing delays in physical design - Google Patents
Automated script writing and usage to solve long-line timing delays in physical design Download PDFInfo
- Publication number
- CN114548025B CN114548025B CN202210266806.XA CN202210266806A CN114548025B CN 114548025 B CN114548025 B CN 114548025B CN 202210266806 A CN202210266806 A CN 202210266806A CN 114548025 B CN114548025 B CN 114548025B
- Authority
- CN
- China
- Prior art keywords
- line
- coordinate
- inv
- script
- added
- 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.)
- Active
Links
- 238000013515 script Methods 0.000 title claims abstract description 89
- 238000013461 design Methods 0.000 title claims abstract description 41
- 230000001934 delay Effects 0.000 title claims description 9
- 238000000034 method Methods 0.000 claims abstract description 39
- 238000005457 optimization Methods 0.000 claims abstract description 20
- 238000012938 design process Methods 0.000 claims abstract description 4
- 238000004804 winding Methods 0.000 claims description 12
- 238000012986 modification Methods 0.000 claims description 8
- 230000004048 modification Effects 0.000 claims description 8
- 230000000694 effects Effects 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000002474 experimental method Methods 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 abstract description 3
- 239000004065 semiconductor Substances 0.000 description 2
- 101001121408 Homo sapiens L-amino-acid oxidase Proteins 0.000 description 1
- 102100026388 L-amino-acid oxidase Human genes 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/396—Clock trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2117/00—Details relating to the type or aim of the circuit design
- G06F2117/10—Buffer insertion
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
Description
技术领域Technical Field
本发明涉及半导体技术领域,特别涉一种解决物理设计长线时序延迟的自动化脚本编写及使用方法。The present invention relates to the field of semiconductor technology, and in particular to an automatic script writing and using method for solving long-line timing delay in physical design.
背景技术Background Art
随着半导体工艺进展到40nm、28nm及更低,芯片设计中物理层面的时序满足成为设计难点。实践发现,物理设计布线后,线延迟带来的影响远远大于逻辑设计本身所包含的标准单元所带来的影响。虽然自动布局布线工具能够实现优化,但是针对特殊要求或时序紧张的路径,需要物理设计工程师逐条进行人工优化。如果路径数量多,则会造成很大的工作量,延长设计周期。As semiconductor processes advance to 40nm, 28nm and below, physical timing in chip design becomes a design difficulty. Practice has found that after physical design and routing, the impact of line delay is far greater than the impact of standard cells contained in the logic design itself. Although automatic layout and routing tools can achieve optimization, physical design engineers are required to manually optimize paths with special requirements or tight timing one by one. If there are many paths, it will cause a lot of workload and extend the design cycle.
发明内容Summary of the invention
为了解决上述技术问题,本发明提供一种设计周期短,优化效率高的解决物理设计长线时序延迟的自动化脚本编写及使用方法。In order to solve the above technical problems, the present invention provides an automated script writing and using method for solving long-line timing delay in physical design with a short design cycle and high optimization efficiency.
本发明解决上述问题的技术方案是:一种解决物理设计长线时序延迟的自动化脚本编写及使用方法,包括以下步骤:The technical solution of the present invention to solve the above problem is: an automated script writing and using method for solving long-line timing delay in physical design, comprising the following steps:
步骤S1:设置逻辑连接脚本,针对时序违例路径,通过设定起始点、终点、拐点,判断缓冲器BUF标准单元的添加定位和连接、反相器INV标准单元的添加定位和连接,保证逻辑一致性;Step S1: Setting a logic connection script, for the timing violation path, by setting the starting point, the end point, and the turning point, determining the adding location and connection of the buffer BUF standard unit, and the adding location and connection of the inverter INV standard unit, to ensure logic consistency;
步骤S2:设置主脚本,设定时序违例路径的全局变量;Step S2: Setting the main script and setting the global variables of the timing violation path;
步骤S3:在floorplan阶段找出待优化的时序违例路径;Step S3: Find the timing violation path to be optimized in the floorplan stage;
步骤S4:根据待优化的时序违例路径的信息,以及设计的布局规划,设置起始点、终点、拐点的参数,设置待优化的时序违例路径的线名和所连接的终点标准单元端口名;Step S4: according to the information of the timing violation path to be optimized and the layout plan of the design, set the parameters of the starting point, the end point, and the inflection point, and set the line name of the timing violation path to be optimized and the name of the connected end point standard cell port;
步骤S5:基于逻辑连接脚本和主脚本,根据不同的设计工艺,更换缓冲器BUF、反相器INV的标准单元类型,更换所插入的缓冲器BUF、反相器INV之间的横纵向间距,选择所需要的参数;Step S5: Based on the logic connection script and the main script, according to different design processes, the standard unit types of the buffer BUF and the inverter INV are changed, the horizontal and vertical spacings between the inserted buffer BUF and the inverter INV are changed, and the required parameters are selected;
步骤S6:在布局布线前,在布局布线PR工具里完成优化。Step S6: Before layout and routing, complete optimization in the layout and routing PR tool.
上述解决物理设计长线时序延迟的自动化脚本编写及使用方法,步骤S1中,逻辑连接脚本对需要优化的线路径的优化逻辑为,找到这条线所接的起点和终点的坐标,根据坐标值来计算;优先判断上下左右的走线方向,再根据起点和终点的坐标计算出路径长度,结合设置的间距来插入优化时序的标准单元;因此首先设置该时序违例路径的起点和终点坐标;设置的变量如下:路径起始点x坐标x_begin,路径起始点y坐标y_begin,路径终点x坐标x_end,路径终点y坐标y_end;In the above-mentioned automated script writing and using method for solving the long-line timing delay of physical design, in step S1, the optimization logic of the logic connection script for the line path to be optimized is to find the coordinates of the starting point and the end point of the line, and calculate according to the coordinate values; give priority to judging the routing direction of up, down, left, and right, and then calculate the path length according to the coordinates of the starting point and the end point, and insert the standard unit of the optimized timing in combination with the set spacing; therefore, first set the coordinates of the starting point and the end point of the timing violation path; set the variables as follows: the x coordinate of the path starting point x_begin, the y coordinate of the path starting point y_begin, the x coordinate of the path end point x_end, and the y coordinate of the path end point y_end;
为了适应具体版图FloorPlan的情况,设置中间的拐点,如果需要进行分支,也可以通过拐点实现;需要注意的是,因为是拐点,所以每两个点之间的连线,该线段起点终点必须做到横平竖直,拐点变量设置为:拐点x坐标x_trunk*,拐点y坐标y_trunk*;上述的*为任意序号,用于区分多个拐点时表示不同变量。In order to adapt to the specific situation of FloorPlan, set the inflection point in the middle. If branching is required, it can also be achieved through the inflection point. It should be noted that because it is an inflection point, the starting and ending points of the line between every two points must be horizontal and vertical. The inflection point variables are set to: inflection point x coordinate x_trunk*, inflection point y coordinate y_trunk*; the above * is an arbitrary serial number, which is used to distinguish different variables when multiple inflection points are used.
上述解决物理设计长线时序延迟的自动化脚本编写及使用方法,步骤S1中,在后端物理设计中,如果在进行floorplan后,时序违例路径的起点和终点坐标都已经固定,那么就直接设定具体的值,如果无法确定,则通过dbget的形式来找出相对应的坐标,为的定制路径提供可实行的方案。In the above-mentioned automated script writing and using method for solving long-line timing delays in physical design, in step S1, in the back-end physical design, if the starting point and end point coordinates of the timing violation path are fixed after floorplanning, then the specific values are set directly. If they cannot be determined, the corresponding coordinates are found through dbget to provide a feasible solution for the customized path.
上述解决物理设计长线时序延迟的自动化脚本编写及使用方法,步骤S1中,判断缓冲器BUF标准单元的添加定位和连接、反相器INV标准单元的添加定位和连接的过程为:In the above-mentioned method for writing and using an automated script to solve the long-line timing delay in physical design, in step S1, the process of determining the addition location and connection of the buffer BUF standard unit and the addition location and connection of the inverter INV standard unit is as follows:
(1)根据线段长度来计算出需要插入的反相器数量:(1) Calculate the number of inverters that need to be inserted based on the length of the line segment:
首先通过起点和终点的坐标进行上下左右四个方向的判断,然后根据距离和设置的间距计算得出反相器对数a,因为反相器必须成对添加,才能保证逻辑的一致性,但是不能保证的是,路径长度正好满足以固定间距成对插入反相器后,剩余的长度不会超过规定的长度,所以对a进行取整,设为b(int(a)),后续插入的INV对数即为b,对b进行判断,如果(a-b)大于规定的长度,插入一个缓冲器BUF,如果(a-b)小于规定的长度,则不插入;First, the coordinates of the starting point and the end point are used to determine the four directions of up, down, left, and right. Then, the inverter pair number a is calculated based on the distance and the set spacing. Inverters must be added in pairs to ensure logical consistency. However, it cannot be guaranteed that the path length will not exceed the specified length after the inverters are inserted in pairs at a fixed spacing. Therefore, a is rounded and set to b(int(a)). The number of INV pairs to be inserted subsequently is b. b is determined. If (a-b) is greater than the specified length, a buffer BUF is inserted. If (a-b) is less than the specified length, no buffer is inserted.
(2)设定循环逻辑:(2) Set loop logic:
循环的逻辑为,当满足循环条件时,加入一组反相器INV和其连接线net,将当前变量所对应的反相器INV与上一个变量的反相器进行连接,并根据变量计算得出这对反相器的坐标位置,位置的计算通过在起始坐标上累加相应数量的要求距离得出,因此在循环外提前加入一组反相器INV和其连接线net;The logic of the loop is that when the loop condition is met, a set of inverters INV and their connecting lines net are added, the inverter INV corresponding to the current variable is connected to the inverter of the previous variable, and the coordinate position of the pair of inverters is calculated according to the variables. The position is calculated by accumulating the required distance of the corresponding number on the starting coordinates, so a set of inverters INV and their connecting lines net are added in advance outside the loop;
考虑到降低转换时间对延迟的影响,在起始位置加入一个缓冲器BUF,再添加第一对反相器INV;起始位置设为起始单元的边上;在将缓冲器BUF和第一对反相器INV这三个标准单元与起始单元连接后,最后一个标准单元,即第二个反相器的输出端不连,在之后的判断中进行连接;Considering the effect of reducing the conversion time on the delay, a buffer BUF is added at the starting position, and then the first pair of inverters INV is added; the starting position is set to the edge of the starting unit; after the three standard units of the buffer BUF and the first pair of inverters INV are connected to the starting unit, the output end of the last standard unit, that is, the second inverter, is not connected, and is connected in the subsequent judgment;
缓冲器BUF的坐标通过计算得出,当横向并由左至右添加时:The coordinates of the buffer BUF are calculated, when added horizontally and from left to right:
第一个BUF的x坐标即为x1,y坐标即为y1;The x coordinate of the first BUF is x1, and the y coordinate is y1;
第一个INV的x坐标即为x1+distance_x,y坐标即为y1;The x coordinate of the first INV is x1+distance_x, and the y coordinate is y1;
第二个INV的x坐标即为x1+2*distance_x,y坐标即为y1;The x coordinate of the second INV is x1+2*distance_x, and the y coordinate is y1;
distance_x为设定的横向间距;其他朝向同理推得;distance_x is the set horizontal distance; the same applies to other directions;
并且设置一个特殊的字符target的缩写tar来对添加的标准单元和线进行命名,使用终点标准单元名和其端口名组成的字符;And set a special character target abbreviation tar to name the added standard unit and line, using the character composed of the endpoint standard unit name and its port name;
因为所添加的标准单元和线需要独有的命名,这样可保证,在使用中不会出现重复的名字导致脚本无法执行;Because the added standard cells and lines need unique names, this ensures that there will be no duplicate names that will cause the script to fail to execute;
命名如下:The naming is as follows:
第一个BUF名:[expr$trunk_num]_BUF_0_$tarFirst BUF name: [expr$trunk_num]_BUF_0_$tar
第一个INV名:[expr$trunk_num]_INV0_0_$tarFirst INV name: [expr$trunk_num]_INV0_0_$tar
第二个INV名:[expr$trunk_num]_INV1_0_$tarSecond INV name: [expr$trunk_num]_INV1_0_$tar
trunk_num指第几段线段,INV0_0指第0对INV的第0个INV,INV1_0指第0对INV的第一个INV;trunk_num refers to the line segment number, INV0_0 refers to the 0th INV of the 0th pair of INVs, and INV1_0 refers to the first INV of the 0th pair of INVs;
在加入一组反相器INV后,进行判断,共有三种情况,这三种情况下,终止线都设为相同的名字,从而保证一致性,方便后续执行;After adding a set of inverters INV, there are three cases to be judged. In these three cases, the termination lines are set to the same name to ensure consistency and facilitate subsequent execution;
以下所有单元位置的计算都以横向并由左至右添加时得出,其他朝向同理更换为加减或由计算x换为计算y推得;All the calculations for the following unit positions are obtained by adding horizontally from left to right. The same is true for other directions by changing to addition and subtraction or by changing from calculating x to calculating y.
1)a-1<0.51) a-1<0.5
这种情况下,在最开始的一组INV后直接结束,加入终止线;In this case, it ends directly after the first set of INVs and adds a termination line;
2)0.5<=a-1<12) 0.5 <= a-1 < 1
这种情况下,加入一个缓冲器后直接结束,加入终止线;In this case, add a buffer and end directly, adding a termination line;
缓冲器BUF的x坐标为x1+2*distance_x+distance_x,y坐标即为y1;The x coordinate of buffer BUF is x1+2*distance_x+distance_x, and the y coordinate is y1;
3)1<=a-13) 1 <= a-1
这种情况下,通过循环去判断加入的反相器INV数量;In this case, the number of inverters INV added is determined through a loop;
循环的判断条件为The judgment condition of the loop is
for{set i 0}{i<($a-2)}{incr i}{…………}for{set i 0}{i<($a-2)}{incr i}{…………}
即设置i初始值为0,当满足i<a-2的时候,将i加上1,即由0变为1,并执行大括号内省略号的命令,执行完后重新进行判定i是否小于a-2,如果还满足,则继续加1,即由1变为2,一直到判断不满足为止;That is, the initial value of i is set to 0. When i<a-2 is satisfied, i is increased by 1, that is, it changes from 0 to 1, and the command in the curly brackets is executed. After execution, it is re-determined whether i is less than a-2. If it is still satisfied, it continues to increase by 1, that is, it changes from 1 to 2, until it is judged that it is not satisfied;
大括号内执行的命令包括:The commands executed within the curly braces include:
一)设置变量num=i+1;1) Set variable num=i+1;
二)设置last_cell:[expr$trunk_num]_INV1_[expr$i]_$tar;2) Set last_cell: [expr$trunk_num]_INV1_[expr$i]_$tar;
三)设置postfix[expr$i+1]_$tar;3) Set postfix[expr$i+1]_$tar;
即成对添加的第一个INV的名字为:[expr$trunk_num]_INV0_postfix,第二个INV的名字为[expr$trunk_num]_INV1_postfix,发现上面所设置的last_cell,即为在最开始时添加的三个标准单元中连接关系最后的那级INV;即可实现循环内添加的INV与之前添加的INV的连接关系;而第一个INV的x坐标为$x1+(2*($num+1)-1)*$distance_x,y坐标为y1;第二个INV的x坐标为$x1+2*($num+1)*$distance_x,y坐标为y1;That is, the name of the first INV added in pair is: [expr$trunk_num]_INV0_postfix, and the name of the second INV is [expr$trunk_num]_INV1_postfix. It is found that the last_cell set above is the INV with the last connection relationship among the three standard cells added at the beginning; the connection relationship between the INV added in the loop and the previously added INV can be realized; and the x coordinate of the first INV is $x1+(2*($num+1)-1)*$distance_x, and the y coordinate is y1; the x coordinate of the second INV is $x1+2*($num+1)*$distance_x, and the y coordinate is y1;
而其末尾是否需要追加BUF,分为两种情况:Whether BUF needs to be added at the end depends on two situations:
I)a-b<0.5I)a-b<0.5
这种情况下,在循环后直接结束,加入终止线;In this case, end directly after the loop and add a termination line;
II)0.5<=a-bII) 0.5 <= a-b
这种情况下,加入一个缓冲器后直接结束,加入终止线;In this case, add a buffer and end directly, adding a termination line;
缓冲器BUF的x坐标为循环中最后一个INV的x坐标加上distance_x,y坐标为y1;而加入的缓冲器BUF的命名建议与情况2)时加入的缓冲器一致;所有条件下设置的终止线的名字一致,这样可在发生需要第二段线段的时候作为初始线;The x coordinate of the buffer BUF is the x coordinate of the last INV in the loop plus distance_x, and the y coordinate is y1; the naming suggestion of the added buffer BUF is the same as the buffer added in case 2); the name of the end line set under all conditions is the same, so that it can be used as the initial line when the second line segment is needed;
(3)设定线段之间的连接方式:(3) Set the connection method between line segments:
每段线段都是用以上(1)和(2)的单段逻辑去执行,而除了起始所连接的线有所不同之外,其余都是一致的,所以将第一段的终止线设为第二段的起始线,实现线段间的连接,从而实现优化路径的转向;第二、第三段……路径,以此类推;Each line segment is executed using the single-segment logic of (1) and (2) above. Except for the different lines connected at the beginning, the rest are the same. Therefore, the end line of the first segment is set as the start line of the second segment to achieve the connection between the line segments, thereby realizing the turning of the optimized path; the second, third, and so on.
当出现某一线段小于两倍间距时,有两种方案:When a line segment is less than twice the spacing, there are two solutions:
第一种:不对该线段执行添加,改为手动添加一个BUF和一条net,将手动添加的BUF和net与该线段的前一线段和后一线段连接起来;The first method: do not add the line segment, but manually add a BUF and a net, and connect the manually added BUF and net to the previous and next line segments of the line segment;
第二种:直接将该线段的前一线段和后一线段连接起来,忽略该线段,保证当前线段的水平或竖直即可。The second method: directly connect the previous line segment and the next line segment of the line segment, ignore the line segment, and ensure that the current line segment is horizontal or vertical.
上述解决物理设计长线时序延迟的自动化脚本编写及使用方法,步骤S2中,主脚本对于所选用BUF、INV的类型,以及横纵向间距的具体大小,连线的属性,通过设置单一变量来进行试验,选择最优方案;In the above-mentioned automated script writing and using method for solving the timing delay of long lines in physical design, in step S2, the main script conducts experiments by setting a single variable for the types of BUF and INV selected, the specific sizes of the horizontal and vertical spacings, and the properties of the connection, and selects the best solution;
所有逻辑连接脚本中命令需要的设定的全局变量,需要优化的线名begin_net;优化线逻辑连接输出端的标准单元tar_cell;输出端标准单元与该线相接的端口名tar_term;设定的横向间距distance_x;设定的纵向间距distance_y;设定的缓冲器类型BUF_cell;设定的反相器类型INV_cell;都通过设置为变量,来将其移动到主脚本中一起设置,从而实现对这些变量的统一修改,保证不会遗漏的同时,又能够固化逻辑连接脚本,不再对其进行修改,避免修改造成逻辑连接脚本无法执行。All global variables required by the commands in the logic connection script include the line name begin_net that needs to be optimized; the standard cell tar_cell at the output end of the optimized line logic connection; the port name tar_term at which the output end standard cell is connected to the line; the set horizontal spacing distance_x; the set vertical spacing distance_y; the set buffer type BUF_cell; the set inverter type INV_cell; all are set as variables and moved to the main script for setting together, so as to achieve unified modification of these variables, ensuring that they will not be missed, and solidifying the logic connection script so that it will not be modified again, avoiding the modification causing the logic connection script to be unable to execute.
上述解决物理设计长线时序延迟的自动化脚本编写及使用方法,步骤S2中,逻辑连接脚本中是以线段的模式去计算,所以在主脚本中也按线段区分,来多次调用逻辑连接脚本,线段的起点终点设置如下:线段起点x坐标x1;线段起点y坐标y1;线段终点x坐标x2;线段终点y坐标y2。In the above-mentioned automated script writing and using method for solving long-line timing delay in physical design, in step S2, the logic connection script is calculated in line segment mode, so the main script is also divided into line segments to call the logic connection script multiple times, and the starting and ending points of the line segments are set as follows: the x coordinate of the starting point of the line segment is x1; the y coordinate of the starting point of the line segment is y1; the x coordinate of the end point of the line segment is x2; the y coordinate of the end point of the line segment is y2.
上述解决物理设计长线时序延迟的自动化脚本编写及使用方法,步骤S2中,为了更好地降低线延迟,后端物理设计中对绕线属性进行调整,因此也在主脚本中对绕线属性进行设置,绕线属性为:关于多倍线宽多倍间距的参数设置NDR;NDR规则执行力度设置NDR_effort;最高绕线层设置top_route_layer;最低绕线层设置bottom_route_layer;工具自动绕线时满足最高最低绕线层设置的力度pre_layer_effort;权重参数net_weight。In the above-mentioned automated script writing and using method for solving long-line timing delay in physical design, in step S2, in order to better reduce line delay, the winding attributes are adjusted in the back-end physical design, and therefore the winding attributes are also set in the main script, and the winding attributes are: NDR is a parameter setting for multiple line widths and multiple spacings; NDR rule execution strength is set NDR_effort; the highest winding layer is set to top_route_layer; the lowest winding layer is set to bottom_route_layer; pre_layer_effort is the strength to meet the highest and lowest winding layer settings when the tool automatically winds; and weight parameter net_weight.
上述解决物理设计长线时序延迟的自动化脚本编写及使用方法,步骤S3中,在布局布线前,即floorplan阶段就根据布局规划进行时序优化,代替后续工具的自动优化,实现最优的时序优化。In the above-mentioned automated script writing and using method for solving long-line timing delay in physical design, in step S3, timing optimization is performed according to the layout plan before layout and routing, that is, in the floorplan stage, to replace the automatic optimization of subsequent tools and achieve the best timing optimization.
上述解决物理设计长线时序延迟的自动化脚本编写及使用方法,步骤S5中,所添加的标准单元以所优化的时序违例路径的相关信息命名,具有唯一性,不会出现命名重复导致脚本失败的情况。In the above-mentioned automated script writing and using method for solving long-line timing delay in physical design, in step S5, the added standard cells are named with the relevant information of the optimized timing violation path, which is unique and will not cause script failure due to repeated naming.
本发明的有益效果在于:The beneficial effects of the present invention are:
1、本发明具体应用于芯片数字物理设计布局布线阶段,以解决先进工艺下越来越大的线延迟带来的影响,针对物理层面上的长路径,使线延迟最低,本发明的脚本分为两层:一层为主脚本,设置关于优化对象的全局变量,如线名、线宽、单元类型等;另一层为逻辑连接脚本,实现标准单元的添加定位、标准单元的连接,保证逻辑一致性,可以在使用中不进行任何修改。1. The present invention is specifically applied to the layout and wiring stage of chip digital physical design to solve the impact of increasing line delay under advanced technology, and to minimize line delay for long paths on the physical level. The script of the present invention is divided into two layers: one layer is the main script, which sets global variables about the optimization object, such as line name, line width, unit type, etc.; the other layer is the logic connection script, which realizes the addition and positioning of standard units and the connection of standard units to ensure logical consistency, and no modification is required during use.
2、本发明的脚本可以通过设定缓冲器Buffer、反相器Inverter之间的间距,布线的线宽、同层线的线间距以及缓冲器反相器的单元类型来具体实现降低线延迟的效果,因为是脚本形式,且该脚本所需设置的变量都预先设置为全局环境变量,所以在对该脚本相关变量进行修改时,只需要修改很少几处。因此,在找到最优解的过程中,可以通过控制变量法调整相关变量,达到快速地迭代。并且在后期具体布局布线阶段中,因为变量清晰明确,又可能因为会有多次使用不同上述变量的情况,该固定化脚本可以结合布局布线工具的相关命令,如INNOVUS的dbget等,和TCL语法中的循环语句,达到对后端布局布线流程的固定,使后续迭代更加快速和不易犯错。2. The script of the present invention can specifically achieve the effect of reducing line delay by setting the spacing between the buffer Buffer and the inverter Inverter, the line width of the wiring, the line spacing of the same-layer line, and the unit type of the buffer inverter. Because it is in the form of a script, and the variables required to be set in the script are pre-set as global environment variables, when modifying the relevant variables of the script, only a few changes need to be made. Therefore, in the process of finding the optimal solution, the relevant variables can be adjusted by the control variable method to achieve rapid iteration. And in the later specific layout and wiring stage, because the variables are clear and unambiguous, and because there may be multiple uses of different variables, the fixed script can be combined with the relevant commands of the layout and wiring tools, such as INNOVUS's dbget, etc., and the loop statement in the TCL syntax, to achieve the fixation of the back-end layout and wiring process, so that subsequent iterations are faster and less prone to errors.
3、本发明还可以运用于对关键时钟树做定制化处理,手动做时钟树,降低时钟路径上的延迟,易于满足建立时间要求。或者对需要平衡的多个模块或存储体等做平衡,包括地址、数据、时钟的平衡,从而满足读写要求等。3. The present invention can also be used to customize the key clock tree, manually make the clock tree, reduce the delay on the clock path, and easily meet the establishment time requirements. Or balance multiple modules or storage bodies that need to be balanced, including address, data, and clock balance, so as to meet the read and write requirements.
附图说明BRIEF DESCRIPTION OF THE DRAWINGS
图1为本发明的流程图。FIG. 1 is a flow chart of the present invention.
具体实施方式DETAILED DESCRIPTION
下面结合附图和实施例对本发明作进一步的说明。The present invention will be further described below in conjunction with the accompanying drawings and embodiments.
如图1所示,一种解决物理设计长线时序延迟的自动化脚本编写及使用方法,包括以下步骤:As shown in FIG1 , an automated script writing and using method for solving long-line timing delay in physical design includes the following steps:
步骤S1:设置逻辑连接脚本,针对时序违例路径,通过设定起始点、终点、拐点,判断缓冲器BUF标准单元的添加定位和连接、反相器INV标准单元的添加定位和连接,保证逻辑一致性。Step S1: Set up a logic connection script, and for the timing violation path, determine the addition location and connection of the buffer BUF standard unit and the addition location and connection of the inverter INV standard unit by setting the starting point, end point, and inflection point to ensure logic consistency.
逻辑连接脚本对需要优化的线路径的优化逻辑为,找到这条线所接的起点和终点的坐标,根据坐标值来计算;优先判断上下左右的走线方向,再根据起点和终点的坐标计算出路径长度,结合设置的间距来插入优化时序的标准单元;因此首先设置该时序违例路径的起点和终点坐标;设置的变量如下:路径起始点x坐标x_begin,路径起始点y坐标y_begin,路径终点x坐标x_end,路径终点y坐标y_end;The optimization logic of the logic connection script for the line path that needs to be optimized is to find the coordinates of the starting point and the end point of this line, and calculate according to the coordinate values; first determine the routing direction of up, down, left, and right, and then calculate the path length according to the coordinates of the starting point and the end point, and insert the standard unit of the optimized timing in combination with the set spacing; therefore, first set the coordinates of the starting point and the end point of the timing violation path; the variables set are as follows: the x coordinate of the path starting point x_begin, the y coordinate of the path starting point y_begin, the x coordinate of the path end point x_end, and the y coordinate of the path end point y_end;
为了适应具体版图FloorPlan的情况,设置中间的拐点,如果需要进行分支,也可以通过拐点实现;需要注意的是,因为是拐点,所以每两个点之间的连线,该线段起点终点必须做到横平竖直,拐点变量设置为:拐点x坐标x_trunk*,拐点y坐标y_trunk*;上述的*为任意序号,用于区分多个拐点时表示不同变量。In order to adapt to the specific situation of FloorPlan, set the inflection point in the middle. If branching is required, it can also be achieved through the inflection point. It should be noted that because it is an inflection point, the starting and ending points of the line between every two points must be horizontal and vertical. The inflection point variables are set to: inflection point x coordinate x_trunk*, inflection point y coordinate y_trunk*; the above * is an arbitrary serial number, which is used to distinguish different variables when multiple inflection points are used.
在后端物理设计中,如果在进行floorplan后,时序违例路径的起点和终点坐标都已经固定,那么就直接设定具体的值,如果无法确定,则通过dbget的形式来找出相对应的坐标,为的定制路径提供可实行的方案。In the back-end physical design, if the starting and ending coordinates of the timing violation path are fixed after floorplanning, then the specific values are set directly. If they cannot be determined, the corresponding coordinates are found through dbget to provide a feasible solution for the customized path.
判断缓冲器BUF标准单元的添加定位和连接、反相器INV标准单元的添加定位和连接的过程为:The process of determining the addition location and connection of the buffer BUF standard cell and the addition location and connection of the inverter INV standard cell is as follows:
(1)根据线段长度来计算出需要插入的反相器数量:(1) Calculate the number of inverters that need to be inserted based on the length of the line segment:
首先通过起点和终点的坐标进行上下左右四个方向的判断,然后根据距离和设置的间距计算得出反相器对数a,因为反相器必须成对添加,才能保证逻辑的一致性,但是不能保证的是,路径长度正好满足以固定间距成对插入反相器后,剩余的长度不会超过规定的长度,所以对a进行取整,设为b(int(a)),后续插入的INV对数即为b,对b进行判断,如果(a-b)大于规定的长度,插入一个缓冲器BUF,如果(a-b)小于规定的长度,则不插入;First, the coordinates of the starting point and the end point are used to determine the four directions of up, down, left, and right. Then, the inverter pair number a is calculated based on the distance and the set spacing. Inverters must be added in pairs to ensure logical consistency. However, it cannot be guaranteed that the path length will not exceed the specified length after the inverters are inserted in pairs at a fixed spacing. Therefore, a is rounded and set to b(int(a)). The number of INV pairs to be inserted subsequently is b. b is determined. If (a-b) is greater than the specified length, a buffer BUF is inserted. If (a-b) is less than the specified length, no buffer is inserted.
(2)设定循环逻辑:(2) Set loop logic:
循环的逻辑为,当满足循环条件时,加入一组反相器INV和其连接线net,将当前变量所对应的反相器INV与上一个变量的反相器进行连接,并根据变量计算得出这对反相器的坐标位置,位置的计算通过在起始坐标上累加相应数量的要求距离得出,因此在循环外提前加入一组反相器INV和其连接线net;The logic of the loop is that when the loop condition is met, a set of inverters INV and their connecting lines net are added, the inverter INV corresponding to the current variable is connected to the inverter of the previous variable, and the coordinate position of the pair of inverters is calculated according to the variables. The position is calculated by accumulating the required distance of the corresponding number on the starting coordinates, so a set of inverters INV and their connecting lines net are added in advance outside the loop;
考虑到降低转换时间对延迟的影响,在起始位置加入一个缓冲器BUF,再添加第一对反相器INV;起始位置设为起始单元的边上;在将缓冲器BUF和第一对反相器INV这三个单元与起始单元连接后,最后一个单元,即第二个反相器的输出端不连,在之后的判断中进行连接;Considering the effect of reducing the conversion time on the delay, a buffer BUF is added at the starting position, and then the first pair of inverters INV is added; the starting position is set to the edge of the starting unit; after the buffer BUF and the first pair of inverters INV are connected to the starting unit, the output end of the last unit, that is, the second inverter, is not connected and is connected in the subsequent judgment;
缓冲器BUF的坐标通过计算得出,当横向并由左至右添加时:The coordinates of the buffer BUF are calculated, when added horizontally and from left to right:
第一个BUF的x坐标即为x1,y坐标即为y1;The x coordinate of the first BUF is x1, and the y coordinate is y1;
第一个INV的x坐标即为x1+distance_x,y坐标即为y1;The x coordinate of the first INV is x1+distance_x, and the y coordinate is y1;
第二个INV的x坐标即为x1+2*distance_x,y坐标即为y1;The x coordinate of the second INV is x1+2*distance_x, and the y coordinate is y1;
distance_x为设定的横向间距;其他朝向同理推得;distance_x is the set horizontal distance; the same applies to other directions;
并且设置一个特殊的字符target的缩写tar来对添加的标准单元和线进行命名,使用终点标准单元名和其端口名组成的字符;And set a special character target abbreviation tar to name the added standard unit and line, using the character composed of the endpoint standard unit name and its port name;
因为所添加的标准单元和线需要独有的命名,这样可保证,在使用中不会出现重复的名字导致脚本无法执行;Because the added standard cells and lines need unique names, this ensures that there will be no duplicate names that will cause the script to fail to execute;
命名如下:The naming is as follows:
第一个BUF名:[expr$trunk_num]_BUF_0_$tarFirst BUF name: [expr$trunk_num]_BUF_0_$tar
第一个INV名:[expr$trunk_num]_INV0_0_$tarFirst INV name: [expr$trunk_num]_INV0_0_$tar
第二个INV名:[expr$trunk_num]_INV1_0_$tarSecond INV name: [expr$trunk_num]_INV1_0_$tar
trunk_num指第几段线段,INV0_0指第0对INV的第0个INV,INV1_0指第0对INV的第一个INV;trunk_num refers to the line segment number, INV0_0 refers to the 0th INV of the 0th pair of INVs, and INV1_0 refers to the first INV of the 0th pair of INVs;
在加入一组反相器INV后,进行判断,共有三种情况,这三种情况下,终止线都设为相同的名字,从而保证一致性,方便后续执行。After adding a group of inverters INV, there are three cases for judgment. In these three cases, the termination lines are set to the same name to ensure consistency and facilitate subsequent execution.
以下所有单元位置的计算都以横向并由左至右添加时得出,其他朝向同理更换为加减或由计算x换为计算y推得;All the calculations for the following unit positions are obtained by adding horizontally from left to right. The same is true for other directions by changing to addition and subtraction or by changing from calculating x to calculating y.
1)a-1<0.51) a-1<0.5
这种情况下,在最开始的一组INV后直接结束,加入终止线;In this case, it ends directly after the first set of INVs and adds a termination line;
2)0.5<=a-1<12) 0.5 <= a-1 < 1
这种情况下,加入一个缓冲器后直接结束,加入终止线;In this case, add a buffer and end directly, adding a termination line;
缓冲器BUF的x坐标为x1+2*distance_x+distance_x,y坐标即为y1;The x coordinate of buffer BUF is x1+2*distance_x+distance_x, and the y coordinate is y1;
3)1<=a-13) 1 <= a-1
这种情况下,通过循环去判断加入的反相器INV数量;In this case, the number of inverters INV added is determined through a loop;
循环的判断条件为The judgment condition of the loop is
for{set i 0}{i<($a-2)}{incr i}{…………}for{set i 0}{i<($a-2)}{incr i}{…………}
即设置i初始值为0,当满足i<a-2的时候,将i加上1,即由0变为1,并执行大括号内省略号的命令,执行完后重新进行判定i是否小于a-2,如果还满足,则继续加1,即由1变为2,一直到判断不满足为止;That is, the initial value of i is set to 0. When i<a-2 is satisfied, i is increased by 1, that is, it changes from 0 to 1, and the command in the curly brackets is executed. After execution, it is re-determined whether i is less than a-2. If it is still satisfied, it continues to increase by 1, that is, it changes from 1 to 2, until it is judged that it is not satisfied;
大括号内执行的命令包括:The commands executed within the curly braces include:
一)设置变量num=i+1;1) Set variable num=i+1;
二)设置last_cell:[expr$trunk_num]_INV1_[expr$i]_$tar;2) Set last_cell: [expr$trunk_num]_INV1_[expr$i]_$tar;
三)设置postfix[expr$i+1]_$tar;3) Set postfix[expr$i+1]_$tar;
即成对添加的第一个INV的名字为:[expr$trunk_num]_INV0_postfix,第二个INV的名字为[expr$trunk_num]_INV1_postfix,发现上面所设置的last_cell,即为在最开始时添加的三个标准单元中连接关系最后的那级INV;即可实现循环内添加的INV与之前添加的INV的连接关系;而第一个INV的x坐标为$x1+(2*($num+1)-1)*$distance_x,y坐标为y1;第二个INV的x坐标为$x1+2*($num+1)*$distance_x,y坐标为y1;That is, the name of the first INV added in pair is: [expr$trunk_num]_INV0_postfix, and the name of the second INV is [expr$trunk_num]_INV1_postfix. It is found that the last_cell set above is the INV with the last connection relationship among the three standard cells added at the beginning; the connection relationship between the INV added in the loop and the previously added INV can be realized; and the x coordinate of the first INV is $x1+(2*($num+1)-1)*$distance_x, and the y coordinate is y1; the x coordinate of the second INV is $x1+2*($num+1)*$distance_x, and the y coordinate is y1;
而其末尾是否需要追加BUF,分为两种情况:Whether BUF needs to be added at the end depends on two situations:
I)a-b<0.5I)a-b<0.5
这种情况下,在循环后直接结束,加入终止线;In this case, end directly after the loop and add a termination line;
II)0.5<=a-bII) 0.5 <= a-b
这种情况下,加入一个缓冲器后直接结束,加入终止线;In this case, add a buffer and end directly, adding a termination line;
缓冲器BUF的x坐标为循环中最后一个INV的x坐标加上distance_x,y坐标为y1;而加入的缓冲器BUF的命名建议与情况2)时加入的缓冲器一致;所有条件下设置的终止线的名字一致,这样可在发生需要第二段线段的时候作为初始线。The x coordinate of the buffer BUF is the x coordinate of the last INV in the loop plus distance_x, and the y coordinate is y1; the naming suggestion of the added buffer BUF is consistent with the buffer added in case 2); the name of the end line set under all conditions is consistent, so that it can be used as the initial line when the second line segment is needed.
(3)设定线段之间的连接方式:(3) Set the connection method between line segments:
每段线段都是用以上(1)和(2)的单段逻辑去执行,而除了起始所连接的线有所不同之外,其余都是一致的,所以将第一段的终止线设为第二段的起始线,实现线段间的连接,从而实现优化路径的转向;第二、第三段……路径,以此类推;Each line segment is executed using the single-segment logic of (1) and (2) above. Except for the different lines connected at the beginning, the rest are the same. Therefore, the end line of the first segment is set as the start line of the second segment to achieve the connection between the line segments, thereby realizing the turning of the optimized path; the second, third, and so on.
当出现某一线段小于两倍间距时,有两种方案:When a line segment is less than twice the spacing, there are two solutions:
第一种:不对该线段执行添加,改为手动添加一个BUF和一条net,将手动添加的BUF和net与该线段的前一线段和后一线段连接起来;The first method: do not add the line segment, but manually add a BUF and a net, and connect the manually added BUF and net to the previous and next line segments of the line segment;
第二种:直接将该线段的前一线段和后一线段连接起来,忽略该线段,保证当前线段的水平或竖直即可。The second method: directly connect the previous line segment and the next line segment of the line segment, ignore the line segment, and ensure that the current line segment is horizontal or vertical.
步骤S2:设置主脚本,设定时序违例路径的全局变量。Step S2: Set up the main script and set the global variables of the timing violation path.
主脚本对于所选用BUF、INV的类型,以及横纵向间距的具体大小,连线的属性,通过设置单一变量来进行试验,选择最优方案;The main script tests the selected BUF and INV types, the specific sizes of the horizontal and vertical spacing, and the properties of the connection by setting a single variable to select the best solution;
针对TCL脚本环境,简单地进行说明。预先设定具体字符串的值,如set a1,后续使用$a来直接读取1这个值,这个方法的好处是:修改时只要修改最初set的值,不管在脚本中用到多少次a,这次修改使后面所有的a都做出相应改动,不用逐个修改;For the TCL script environment, a brief explanation is given. Pre-set the value of a specific string, such as set a1, and then use $a to directly read the value 1. The advantage of this method is that when modifying, you only need to modify the value of the initial set. No matter how many times a is used in the script, this modification will make corresponding changes to all subsequent a, without having to modify them one by one;
所有逻辑连接脚本中命令需要的设定的全局变量,需要优化的线名begin_net;优化线逻辑连接输出端的标准单元tar_cell;输出端标准单元与该线相接的端口名tar_term;设定的横向间距distance_x;设定的纵向间距distance_y;设定的缓冲器类型BUF_cell;设定的反相器类型INV_cell;都通过设置为变量,来将其移动到主脚本中一起设置,从而实现对这些变量的统一修改,保证不会遗漏的同时,又能够固化逻辑连接脚本,不再对其进行修改,避免修改造成逻辑连接脚本无法执行。如设置横向间距distance_x,在主脚本里设置set distance_x200,而在逻辑连接脚本中所有需要使用这个具体的横向间距200的地方,都可以调用$distance_x这个值,来替代200这个具体值。All global variables required by commands in the logic connection script, such as the line name begin_net that needs to be optimized, the standard cell tar_cell at the output end of the optimization line logic connection, the port name tar_term that the output end standard cell connects to the line, the set horizontal spacing distance_x, the set vertical spacing distance_y, the set buffer type BUF_cell, and the set inverter type INV_cell, are all set as variables to move them to the main script and set them together, so as to achieve unified modification of these variables, ensure that they will not be missed, and solidify the logic connection script so that it will not be modified again, avoiding the modification causing the logic connection script to fail to execute. For example, to set the horizontal spacing distance_x, set set distance_x200 in the main script, and in all places in the logic connection script where this specific horizontal spacing 200 is needed, the value $distance_x can be called to replace the specific value 200.
逻辑连接脚本中是以线段的模式去计算,所以在主脚本中也按线段区分,来多次调用逻辑连接脚本,线段的起点终点设置如下:线段起点x坐标x1;线段起点y坐标y1;线段终点x坐标x2;线段终点y坐标y2。The logical connection script is calculated in line segment mode, so the main script is also divided into line segments to call the logical connection script multiple times. The starting and ending points of the line segments are set as follows: the x coordinate of the starting point of the line segment is x1; the y coordinate of the starting point of the line segment is y1; the x coordinate of the end point of the line segment is x2; the y coordinate of the end point of the line segment is y2.
为了更好地降低线延迟,后端物理设计中对绕线属性进行调整,因此也在主脚本中对绕线属性进行设置,使用逻辑也很简单。示例参考的布局布线工具为INNOVUS,其中对线属性设置的命令为setNetattribute,所以绕线属性为:关于多倍线宽多倍间距的参数设置NDR;NDR规则执行力度设置NDR_effort;最高绕线层设置top_route_layer;最低绕线层设置bottom_route_layer;工具自动绕线时满足最高最低绕线层设置的力度pre_layer_effort;权重参数net_weight。In order to better reduce line delay, the routing attributes are adjusted in the back-end physical design, so the routing attributes are also set in the main script, and the logic of use is also very simple. The layout and routing tool referenced by the example is INNOVUS, in which the command for setting the line attributes is setNetattribute, so the routing attributes are: NDR is set for parameters related to multiple line widths and multiple spacings; NDR rule execution strength is set to NDR_effort; the highest routing layer is set to top_route_layer; the lowest routing layer is set to bottom_route_layer; the strength pre_layer_effort that meets the highest and lowest routing layer settings when the tool automatically routes; and the weight parameter net_weight.
步骤S3:在floorplan阶段找出待优化的时序违例路径。Step S3: Find the timing violation path to be optimized in the floorplan stage.
在布局布线前,即floorplan阶段就根据布局规划进行时序优化,代替后续工具的自动优化,实现最优的时序优化。Before layout and routing, that is, in the floorplan stage, timing optimization is performed according to the layout plan, replacing the automatic optimization of subsequent tools to achieve the best timing optimization.
步骤S4:根据待优化的时序违例路径的信息,以及设计的布局规划,设置起始点、终点、拐点的参数,设置待优化的时序违例路径的线名和所连接的终点标准单元端口名。Step S4: according to the information of the timing violation path to be optimized and the layout plan of the design, set the parameters of the starting point, end point and inflection point, set the line name of the timing violation path to be optimized and the name of the connected end point standard cell port.
步骤S5:基于逻辑连接脚本和主脚本,根据不同的设计工艺,更换缓冲器BUF、反相器INV的标准单元类型,更换所插入的缓冲器BUF、反相器INV之间的横纵向距离的设置,选择所需要的参数。Step S5: Based on the logic connection script and the main script, according to different design processes, the standard unit types of the buffer BUF and the inverter INV are changed, the settings of the horizontal and vertical distances between the inserted buffer BUF and the inverter INV are changed, and the required parameters are selected.
所添加的标准单元以所优化的时序违例路径的相关信息命名,具有唯一性,不会出现命名重复导致脚本失败的情况。The added standard cells are named with the relevant information of the optimized timing violation path, which is unique and will not cause the script to fail due to repeated naming.
步骤S6:在布局布线前,在布局布线PR工具里完成优化。Step S6: Before layout and routing, complete optimization in the layout and routing PR tool.
本发明还可更进一步运用,比如:The present invention can also be further applied, for example:
1.起始点和终点的坐标可以通过dbget命令获取,如[dbget[dbgettop.insts.name cell1–p1].pt_x]可以获得名字为cell1的单元的x坐标,y坐标则将pt_x换成pt_y。通过这种方法,可以将关键逻辑单元定位,不再需要手动的去确定坐标,减少人工工作量。更进一步,可以通过IP的Pin或者IO的Port去获取其连接的net名,找到该net的另一个连接单元,获取其坐标。关于坐标的获取方式很多,也能实现更智能的效果。1. The coordinates of the starting point and the end point can be obtained through the dbget command, such as [dbget[dbgettop.insts.name cell1–p1].pt_x] to obtain the x coordinate of the cell named cell1, and the y coordinate is pt_y instead of pt_x. In this way, the key logic unit can be located without manually determining the coordinates, thus reducing the manual workload. Furthermore, the name of the net to which it is connected can be obtained through the Pin of the IP or the Port of the IO, and the coordinates of another connected unit of the net can be found. There are many ways to obtain coordinates, which can also achieve smarter results.
2.在该脚本外再包一层相关脚本,用于获取起点、终点坐标,获取起始线(begin_net),和目标cell和Term。可以用dbget获取需要优化的路径的关键单元。2. Wrap a layer of related scripts outside this script to obtain the coordinates of the starting point and the end point, the starting line (begin_net), and the target cell and term. You can use dbget to obtain the key cells of the path that needs to be optimized.
3.可以将如第二段数量增加,在保证连接关系的情况下,实现路径分支。需要具体问题具体设置。能够运用于时钟树或总线分支等。3. You can increase the number of the second segment to achieve path branching while ensuring the connection relationship. Specific settings are required for specific problems. It can be applied to clock trees or bus branches, etc.
本发明还可用于对关键时钟树做定制化处理,手动做时钟树,降低时钟路径上的延迟,易于满足建立时间要求;或者对需要平衡的多个模块或存储体等做平衡,包括地址、数据、时钟的平衡,从而满足读写要求。The present invention can also be used to customize key clock trees, manually build clock trees, reduce delays on clock paths, and easily meet setup time requirements; or balance multiple modules or storage bodies that need to be balanced, including address, data, and clock balance, so as to meet read and write requirements.
Claims (9)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210266806.XA CN114548025B (en) | 2022-03-17 | 2022-03-17 | Automated script writing and usage to solve long-line timing delays in physical design |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210266806.XA CN114548025B (en) | 2022-03-17 | 2022-03-17 | Automated script writing and usage to solve long-line timing delays in physical design |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114548025A CN114548025A (en) | 2022-05-27 |
CN114548025B true CN114548025B (en) | 2024-09-10 |
Family
ID=81662913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210266806.XA Active CN114548025B (en) | 2022-03-17 | 2022-03-17 | Automated script writing and usage to solve long-line timing delays in physical design |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114548025B (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115659901B (en) * | 2022-09-07 | 2023-07-07 | 上海为旌科技有限公司 | Distance wiring optimization method and device for chip physical design |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001325320A (en) * | 2000-05-16 | 2001-11-22 | Matsushita Electric Ind Co Ltd | Method and device for computing delay of semiconductor integrated circuit |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014056522A (en) * | 2012-09-13 | 2014-03-27 | Fujitsu Semiconductor Ltd | Layout method for semiconductor integrated circuit, layout program for semiconductor integrated circuit, and layout device for semiconductor integrated circuit |
US8997031B2 (en) * | 2013-03-13 | 2015-03-31 | Taiwan Semiconductor Manufacturing Company, Ltd. | Timing delay characterization method, memory compiler and computer program product |
CN109583103B (en) * | 2018-12-04 | 2023-02-17 | 珠海一微半导体股份有限公司 | Time sequence repairing method based on time margin |
-
2022
- 2022-03-17 CN CN202210266806.XA patent/CN114548025B/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001325320A (en) * | 2000-05-16 | 2001-11-22 | Matsushita Electric Ind Co Ltd | Method and device for computing delay of semiconductor integrated circuit |
Also Published As
Publication number | Publication date |
---|---|
CN114548025A (en) | 2022-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102467582B (en) | Method and system for optimizing wiring constraint in integrated circuit design | |
CN108009055B (en) | Method and device for repairing hold time violation | |
CN107908884B (en) | Interactive ECO method for improving time sequence by adjusting clock tree branches | |
WO2000038228A1 (en) | Rough wiring method and apparatus and recording medium storing rough wiring program | |
CN107315863B (en) | Layout optimization method and device, terminal and storage medium | |
CN114548025B (en) | Automated script writing and usage to solve long-line timing delays in physical design | |
US11138136B2 (en) | System and method for routing bus including buffer | |
WO2022100630A1 (en) | Method and device for efficiently evaluating feed-through pipeline stage number of chip | |
CN114492282B (en) | Signal line layout processing method and device, chip and storage medium | |
CN108804809A (en) | Emulation mode, system and the Wiring structure of DDR circuits | |
CN109426671B (en) | A method and device for generating a boundary scan chain, and a computer-readable storage medium | |
JP2006164132A (en) | Method for net list creation and method for layout design for semiconductor integrated circuit | |
CN117236253B (en) | FPGA wiring method and device, computer equipment and storage medium | |
CN112417800B (en) | Integrated circuit processing method, integrated circuit verification device and electronic equipment | |
CN115129642B (en) | Chip bus delay adjustment method, electronic equipment and medium | |
CN113743044B (en) | Timing path correction method, device, medium and chip structure | |
CN114417779A (en) | Chip connection method and device, computer equipment and computer readable storage medium | |
CN116776816A (en) | Low-power consumption clock tree comprehensive implementation method based on deferred merging strategy | |
CN116542215A (en) | Clock tree design method, device, design equipment, storage medium and integrated circuit | |
CN114896941B (en) | Layout optimization method, optimization device and related equipment of clock tree | |
CN114880982A (en) | Clock tree generation method, device, equipment, storage medium and chip | |
CN113449477B (en) | Digital circuit connection method, digital circuit connection device, electronic equipment and storage medium | |
CN118036527B (en) | A method for achieving timing closure by dividing ultra-large-scale SOC into module groups | |
CN115129641B (en) | Bidirectional interconnection bus delay adjustment method, electronic equipment and medium | |
CN115129640B (en) | Bidirectional interconnection bus delay adjustment method, electronic equipment and medium |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |