CN100405379C - A Fast Method for Routability Analysis of Integrated Circuits - Google Patents
A Fast Method for Routability Analysis of Integrated Circuits Download PDFInfo
- Publication number
- CN100405379C CN100405379C CNB2006100122714A CN200610012271A CN100405379C CN 100405379 C CN100405379 C CN 100405379C CN B2006100122714 A CNB2006100122714 A CN B2006100122714A CN 200610012271 A CN200610012271 A CN 200610012271A CN 100405379 C CN100405379 C CN 100405379C
- Authority
- CN
- China
- Prior art keywords
- point
- limit
- pin
- grg
- gauze
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
- Image Analysis (AREA)
Abstract
本发明属于IC CAD领域,其特征在于,一次含有以下步骤:计算机初始化,并建立GRG图,读入布线资源和电路网表;用Prim算法拆分多端线网,得到曼哈顿距离下的最小生成树;预估计各边的走线概率:若两个引脚段的引脚处在边界框的对角处,用格路模型,若出在同一行或列时,用扩展边界框估计模型;快速布线:采用按走线概率反比结合随机选择等方式,选择布线路径。本发明通过快速完成拥挤估计,使可布性分析能服务于增量式布局或者指导布线。
The present invention belongs to the field of IC CAD, and is characterized in that it comprises the following steps at one time: computer initialization, and establishment of GRG diagram, reading in wiring resources and circuit netlist; splitting multi-terminal net by Prim algorithm, and obtaining the minimum spanning tree under Manhattan distance ; Pre-estimate the routing probability of each side: if the pins of the two pin segments are at the opposite corners of the bounding box, use the grid model; if they are in the same row or column, use the extended bounding box to estimate the model; quickly Routing: The routing path is selected by means of inverse ratio of routing probability combined with random selection. The invention enables the distributability analysis to serve incremental layout or guide routing by quickly completing congestion estimation.
Description
技术领域 technical field
集成电路计算机辅助设计(IC CAD)领域,尤其涉及标准单元(SC)总体布线领域。In the field of integrated circuit computer aided design (IC CAD), especially in the field of standard cell (SC) overall layout.
背景技术 Background technique
在传统计算机辅助IC设计的流程中,当完成布局、布线后,通过反馈走线密度信息给布局/布线器,可以通过拆线重布来一定程度上解决布线拥挤问题。然而,如果拆线重布过程仍然解决不了拥挤,设计者则不得不修改已有的布局。上述传统设计流程的问题在于,在布线之后才去获取最后的拥挤信息,而布线过程已接近设计尾声,又是一个非常耗时的过程,因此,如果修改已有的布局,意味了大部分的设计过程需要重做。In the process of traditional computer-aided IC design, after the layout and wiring are completed, the wiring density information is fed back to the layout/router, and the wiring congestion problem can be solved to a certain extent by unwiring and rerouting. However, if the rewiring process still cannot solve the congestion, the designer has to modify the existing layout. The problem with the above-mentioned traditional design process is that the final congestion information is obtained after routing, and the routing process is close to the end of the design, and it is a very time-consuming process. Therefore, if the existing layout is modified, it means that most of the The design process needs to be redone.
不难想象,如果在设计流程的较早阶段便可快速获取准确的拥挤信息,有助于指导布局/布线的进行,从而提前预见拥挤问题,并在它真正出现前就采取有效的处理措施。因此,如果修改传统流程,在布图过程中加入快速有效的功能模块,针对布局结果进行有效的拥挤评估,以作为布局的反馈信息,并指导后续的布线工作。这就避免了当后续布线最后无法完成时,再回到前面布局阶段进行重新改进的情况,从而使整个设计能够在合理的时间里完成,并减少整个物理设计中不必要的迭代。像这样,能快速有效地针对布局结果进行拥挤评估,反馈给布局并指导后续的布线工作,我们称之为可布性分析,完成可布性分析的功能模块称之为可布性分析器。It is not difficult to imagine that quickly obtaining accurate congestion information earlier in the design process can help guide the placement/routing process, so that congestion problems can be foreseen in advance and effective measures can be taken to deal with it before it actually occurs. Therefore, if the traditional process is modified, fast and effective functional modules are added to the layout process, and effective congestion evaluation is performed on the layout results to serve as layout feedback information and guide subsequent wiring work. This avoids going back to the previous layout stage for re-improvement when the subsequent routing cannot be completed in the end, so that the entire design can be completed in a reasonable time and reduce unnecessary iterations in the entire physical design. Like this, it can quickly and effectively evaluate the layout results, feed back to the layout and guide the subsequent routing work, we call it the distributability analysis, and the functional module that completes the distributability analysis is called the distributability analyzer.
在已报导和所能查阅到的国内外相关研究中,关于“针对布局后的拥挤估计的方法”的研究情况可列举、分析、总结如下:Among the related domestic and foreign researches that have been reported and can be consulted, the research situation on "methods for congestion estimation after layout" can be listed, analyzed and summarized as follows:
在介绍拥挤估计的方法之前,首先介绍一下拥挤的估计的意义。Before introducing the method of congestion estimation, first introduce the meaning of congestion estimation.
文献[P.N.Parakh,R.B.Brown and K.A.Sakallah,“Congestion Driven Quadratic Placement”,Design Automation Conference,pages 275-278,1998.][M.Wang,X.Yang,K.Egoru andM.Sarrafzadeh,“Multi-center congestion estimation and minimization during placement”,International Symposium on Physical Design,pages 147-152,2000.]将拥挤信息用于改进布局质量,[Olivier Coudert,Jason Cong,Sharad Malik,Majid Sarrafzadeh,“INCREMENTAL CAD,”ICCAD 2000,pp.236-243]将拥挤信息作为反馈来进行增量式布局,文献[R.T.Hadsell andP.H.Madden,“Improved Global Routing through Congestion Estimation”,Design AutomationConference,pages 28-31,2003.][J.Cong and P.H.Madden,“Performance Driven Multi-LayerGeneral Area Routing for PCB/MCM Designs”,Design Automation Conference,pages 356-361,1998.][Jinjun Xiong,Lei He,“Probabilistic Congestion Model Considering Shielding for CrosstalkReduction,”ASP-DAC 2005 pp.739-742.][T.Jing,X.L.Hong,H.Y.Bao,et al,“SSTT:EfficientLocal Search for GSI Global Routing”,J.Comput.Sci.& Technol.2003,18(5):pp.632-639.]将拥挤估计的信息用于改进布线。而[H-M.Chen et al.“Integrated Floorplanning and InterconnectPlannig”,International Conference on Computer Aided Design,pages 354-357,1999.][Y.Ma et al,“Dynamic global buffer planning optimization based on detail block locating and congestionanalysis”,Design Automation Conference,pages 806-811,2003.]在floorplanning中进行了拥挤驱动的优化。Literature [P.N.Parakh, R.B.Brown and K.A.Sakallah, "Congestion Driven Quadratic Placement", Design Automation Conference, pages 275-278, 1998.] [M.Wang, X.Yang, K.Egoru and M.Sarrafzadeh, "Multi-center congestion estimation and minimization during placement", International Symposium on Physical Design, pages 147-152, 2000.] Using congestion information to improve layout quality, [Olivier Coudert, Jason Cong, Sharad Malik, Majid Sarrafzadeh, "INCREMENTAL CAD," ICCAD 2000, pp.236-243] Use congestion information as feedback for incremental layout, literature [R.T.Hadsell and P.H.Madden, "Improved Global Routing through Congestion Estimation", Design Automation Conference, pages 28-31, 2003.] [J.Cong and P.H.Madden, "Performance Driven Multi-Layer General Area Routing for PCB/MCM Designs", Design Automation Conference, pages 356-361, 1998.] [Jinjun Xiong, Lei He, "Probabilistic Congestion Model Considering Shielding for Crosstalk Reduction , "ASP-DAC 2005 pp.739-742.] [T.Jing, X.L.Hong, H.Y.Bao, et al, "SSTT: Efficient Local Search for GSI Global Routing", J.Comput.Sci. & Technol.2003, 18 (5): pp.632-639.] Using information from congestion estimation to improve routing. And [H-M.Chen et al. "Integrated Floorplanning and InterconnectPlannig", International Conference on Computer Aided Design, pages 354-357, 1999.] [Y.Ma et al, "Dynamic global buffer planning optimization based on detail block locating ana and conges ", Design Automation Conference, pages 806-811, 2003.] Crowd-driven optimization in floorplanning.
通过对目前已报导和所能查阅到的国内外相关研究,关于布局后拥挤估计的方法大致可分为三类:Based on the relevant domestic and foreign researches that have been reported and can be consulted, the methods of post-layout congestion estimation can be roughly divided into three categories:
●实验估计模型●Experimental estimation model
●布线器估计模型●Router Estimation Model
●概率估计模型●Probability estimation model
实验估计模型Experimental Estimation Model
文献[C.-L.E.Cheng,“RISA:Accurate and efficient placement routability modeling,”in Proc.Int.Conf.Computer-Aided Design,June 1994,pp.690-695.]利用了大量实验得出的走线分布图(WDM:wire distribution map)来进行拥挤估计;[M.Wang and M.Sarrafzadeh,“On the behaviorof congestion minimization during placement,”in Proc.Int.Symp.Physical Design,Apr.1999,pp.145-150.]也利用了一种实验得出的拥挤估计模型。The literature [C.-L.E.Cheng, "RISA: Accurate and efficient placement routability modeling," in Proc.Int.Conf.Computer-Aided Design, June 1994, pp.690-695.] utilizes a large number of experimentally derived routing Distribution map (WDM: wire distribution map) for congestion estimation; [M.Wang and M.Sarrafzadeh, "On the behavior of congestion minimization during placement," in Proc.Int.Symp.Physical Design, Apr.1999, pp.145 -150.] also utilizes an experimentally derived crowding estimation model.
这种模型,虽然能够对拥挤度进行快速估计,但是由于它们是实验得出的模型,因此它们对例子的特性依赖过强,某种程度上,可能会丧失拥挤估计的客观性。Although such models can quickly estimate the degree of congestion, because they are experimental models, they rely too much on the characteristics of examples, and to some extent, may lose the objectivity of congestion estimation.
布线器估计模型Router Estimation Model
文献[S.Mayrhofer and U.Lauther,“Congestion-driven placement using a newmultipartitioning heuristic,”in Proc.Int.Conf.Computer-Aided Design,Nov.1990,pp.332-335.][P.N.Parakh,R.B.Brown,and K.A.Sakallah,“Congestion driven quadratic placement,”in Proc.35th Design Automation Conf.June 1998,pp.275-278.][R.S.Tsay,S.C.Chang,and J.Thorvaldson,“Early wireability checking and 2-D congestion-driven circuit placement,”in Proc.5th Annu.IEEE Int.ASIC Conf.and Exhibit,Sept.1992,pp.50-53.]采用了简化的总体布线器来估计拥挤。Literature [S.Mayrhofer and U.Lauther, "Congestion-driven placement using a new multipartitioning heuristic," in Proc.Int.Conf.Computer-Aided Design, Nov.1990, pp.332-335.] [P.N.Parakh, R.B.Brown , and K.A. Sakallah, "Congestion driven quadratic placement," in Proc.35th Design Automation Conf. June 1998, pp.275-278.] [R.S.Tsay, S.C.Chang, and J. Thorvaldson, "Early wireability checking and 2-D congestion-driven circuit placement,” in Proc.5th Annu.IEEE Int.ASIC Conf.and Exhibit, Sept.1992, pp.50-53.] uses a simplified overall router to estimate congestion.
这种模型,虽然使用了经过简化的总体布线模型,但是往往会面临在准确性和效率上的取舍问题。另一方面,由于不同的简化总体布线器的布线策略和绕线能力不同,而可能导致不同的简化总体布线器对拥挤度的估计产生不同的结果。而且,简化的拥挤估计的布线器,可能会与随后的真正布线器的结果发生不一致的情况。Although this model uses a simplified overall wiring model, it often faces a trade-off between accuracy and efficiency. On the other hand, due to the different routing strategies and routing capabilities of different simplified overall routers, different simplified overall routers may produce different results for the estimation of congestion. Moreover, the simplified congestion-estimated router may not agree with the subsequent results of the true router.
概率估计模型Probability Estimation Model
文献[J.Lou,S.Krishnamoorthy and H.S.Sheng,“Estimating Routing Congestion usingProbabilistic Analysis”,International Symposium on Physical Design,pages 112-117,2001.][H-M.Chen et al.“Integrated Floorplanning and Interconnect Plannig”,InternationalConference on Computer Aided Design,pages 354-357,1999.]则为了更好满足客观性和一致性方面的要求,提出的概率估计的方法。前者,使用了经典的组合模型(格路模型),来求解线网走线的分布情况(与实验估计模型不同)。后者,则是在只考虑简单的L型和Z型线网的前提下,对线网的走线分布进行概率的估计(结合了一些经验的估计)。Literature [J.Lou, S.Krishnamoorthy and H.S.Sheng, "Estimating Routing Congestion using Probabilistic Analysis", International Symposium on Physical Design, pages 112-117, 2001.] [H-M.Chen et al. "Integrated Floorplanning and Interconnect Plannig" International Conference on Computer Aided Design, pages 354-357, 1999.] In order to better meet the requirements of objectivity and consistency, the method of probability estimation is proposed. In the former, a classic combination model (grid model) is used to solve the distribution of wire mesh routing (different from the experimental estimation model). The latter is to estimate the probability of the routing distribution of the line net under the premise of only considering the simple L-shaped and Z-shaped line nets (combined with some empirical estimates).
此模型,能够较快速地对布局后的结果进行拥挤分析,拥挤估计值和实际布线后的情况有较好的吻合,并且能够保持良好客观性和一致性。This model can quickly analyze the congestion of the results after layout, the estimated value of congestion is in good agreement with the actual situation after wiring, and can maintain good objectivity and consistency.
然而,[J.Lou]概率估计模型局限在于,采用组合概率模型在边界框(bounding box)内所有可能路径上平均分布走线,导致分数解,故而无法得到线网精确的走线情况。而同时,对于两个引脚在同一行或列上的情况,单纯的组合模型限制了它们选择其他可能路线的空间。针对上述局限,我们提出了新的基于概率模型的估计算法。首先,利用边界框进行拥挤度的预估,对于两点共线的线网分布,采用扩展的边界框(extended bounding box)允许一定程度的合理绕线,从而能够绕过附近的过于拥挤的区域。最后在概率指导下进行实际快速布线,不使用任何迭代和优化(避免拥挤估计的不一致和客观性)。在预估拥挤度的指导下,我们以拥挤度的反比,作为随机走线的选择概率来进行实际布线。这样,可以使得各个可选范围内的路径上经过的走线数目在概率上趋于均匀,从而在局部小范围内,避免出现一部分发生高度拥挤,而另一邻近部分则比较疏松的不合理的拥挤估计情况。However, the limitation of [J.Lou] probability estimation model is that the combined probability model is used to evenly distribute the routing on all possible paths in the bounding box, resulting in a fractional solution, so it is impossible to obtain the precise routing of the wire network. At the same time, for the case where two pins are on the same row or column, the pure combination model limits the space for them to choose other possible routes. To address the above limitations, we propose a new estimation algorithm based on a probability model. First, use the bounding box to estimate the degree of congestion. For the distribution of the line network with two points collinear, the extended bounding box (extended bounding box) allows a certain degree of reasonable routing, so that it can bypass the nearby overcrowded area. . Finally the actual fast routing is guided by probabilities without using any iterations and optimizations (avoiding inconsistency and objectivity of congestion estimation). Under the guidance of the estimated congestion degree, we use the inverse ratio of the congestion degree as the selection probability of random routing for actual routing. In this way, the number of traces passing through the paths in each optional range can be made uniform in probability, so that in a small local area, it can avoid the unreasonable situation that one part is highly crowded, while the other adjacent part is relatively loose. Estimated congestion situation.
已进行过“新颖性检索”,检索报告见附件2。The "novelty search" has been carried out, and the search report is shown in Appendix 2.
发明内容 Contents of the invention
本发明的目的在于提出一种快速的集成电路可布性分析方法。本发明的总体思路是:通过快速完成估计拥挤,使可布性分析方法能够服务于增量式布局或者指导布线,从而缩短整个物理设计的周期。本发明即可布性分析方法,首先,我们扩展了现有的一种概率估计模型的技术,对问题的模型进行拥挤的预估计。其中,主要针对两个引脚处于同一行或列上的估计方法,利用本发明提出的扩展边界框(extended bounding box)的技术进行了改进。然后,对所有的线网利用预估拥挤信息并在概率的指导下,进行了本发明提出的快速的布线。为了保证可布性分析方法的客观性和一致性,此布线被限制在边界框中并且没有任何迭代和拥挤优化。这一步目的是为了使可布性分析方法得到更加精确和有实际意义的拥挤估计。The purpose of the present invention is to propose a fast integrated circuit distributability analysis method. The general idea of the present invention is: by quickly completing the estimated congestion, the distributability analysis method can serve incremental layout or guide wiring, thereby shortening the cycle of the entire physical design. The present invention is the distributability analysis method. Firstly, we expand the existing technology of a probability estimation model to pre-estimate the crowding of the problem model. Among them, the method of estimating two pins in the same row or column is mainly improved by using the technology of extended bounding box proposed by the present invention. Then, using the estimated congestion information and guided by probability, the fast routing proposed by the present invention is performed for all nets. To guarantee the objectivity and consistency of the distributability analysis method, this routing is constrained in a bounding box and without any iteration and crowding optimization. The purpose of this step is to make the distributability analysis method get more accurate and practical congestion estimation.
本发明的总体流程图如图1所示。The overall flow chart of the present invention is shown in Fig. 1 .
本发明的特征在于,它依次包含如下步骤:The present invention is characterized in that it comprises the following steps successively:
步骤1初始化并建立总体布线图Step 1 Initialize and build the general wiring diagram
步骤1.1计算机读入在一个多层布线芯片上划分总体布线单元GRC网格所必需的行数Nrow、列数Ncol;Step 1.1 The computer reads in the number of rows N row and the number of columns N col necessary for dividing the overall wiring unit GRC grid on a multilayer wiring chip;
步骤1.2求GRC的对偶图:Step 1.2 Find the dual graph of GRC:
以GRC中每个网格的中心为新的顶点,重连接各相邻网格的中心点形成新的边,从而得到总体布线图GRG;Take the center of each grid in GRC as a new vertex, and reconnect the center points of each adjacent grid to form a new edge, so as to obtain the general wiring graph GRG;
步骤1.3在步骤1.1所述的多层布线芯片上,以芯片中心为原点建立笛卡儿平面直角坐标系,并把各个布线层投影到该坐标平面上;Step 1.3 On the multilayer wiring chip described in step 1.1, establish a Cartesian plane Cartesian coordinate system with the center of the chip as the origin, and project each wiring layer onto the coordinate plane;
步骤1.4标记步骤1.2中所述各新顶点的坐标为vrow,col(x,y),并把这些新顶点的集合记为V,其中row,col分别代表该新顶点所在GRG的行和列,x,y是步骤1.3所建坐标平面的坐标;Step 1.4 Mark the coordinates of each new vertex described in step 1.2 as v row, col (x, y), and record the set of these new vertices as V, where row and col respectively represent the row and column of the GRG where the new vertex is located , x, y are the coordinates of the coordinate plane built in step 1.3;
步骤1.5为所述GRG顶点vrow,col以及连接每两个相邻顶点的GRG边ek分别编号,顶点用公式(row-1)×Ncol+col-1编号,边ek则先按行从下向上从左向右编号,再按列从左向右从下向上排号;Step 1.5 numbers the GRG vertex v row, col and the GRG edge e k connecting every two adjacent vertices respectively, and the vertices are numbered by the formula (row-1)×N col +col-1, and the edge e k is first press Rows are numbered from bottom to top and left to right, and then columns are numbered from left to right and bottom to top;
步骤1.6计算机读入每条GRG边ek的容量ck,给边ek的通道使用量λk赋初始值为0;Step 1.6 The computer reads in the capacity c k of each GRG edge e k , and assigns an initial value of 0 to the channel usage λ k of the edge e k ;
步骤2计算机读入表征电路详细的连接的网表Step 2 The computer reads in the netlist that characterizes the detailed connections of the circuit
步骤2.1读入电路中线网的总数Mnet;Step 2.1 reads in the total number Mnet of the line net in the circuit;
步骤2.2计算机对每一条线网执行:Step 2.2 The computer executes for each wire net:
步骤2.2.1读入线网的源点s和漏点集T;Step 2.2.1 read in the source point s and drain point set T of the line network;
步骤2.2.2把线网的源点s和漏点集T中所有点,映射到所述GRG的各顶点上,并用顶点编号对该点标记;Step 2.2.2 Map the source point s of the line network and all points in the leak point set T to each vertex of the GRG, and mark the point with the vertex number;
步骤2.2.3按读入顺序,为每条线网编号;Step 2.2.3 Number each net according to the reading order;
步骤3拆分所述线网中的多端线网,但两端线网保持原状;Step 3 splitting the multi-terminal nets in the nets, but keeping the nets at both ends as they are;
对于每一条多端线网执行如下操作:For each multi-terminal net, perform the following operations:
利用Prim算法求得曼哈顿距离下的最小生成树来划分两引脚端,形成按两引脚段划分顺序所构成的两引脚段序列,从而把一个多端线网划分成为一个两引脚段序列,所述的两引脚段是指该多端线网的顶点集合中,由相距近的两点构成的点对集合,在由该点对构成的路径上不存在顶点集合的其它点;Use the Prim algorithm to obtain the minimum spanning tree under the Manhattan distance to divide the two-pin end, forming a two-pin segment sequence composed of the two-pin segment division order, thereby dividing a multi-terminal line network into a two-pin segment sequence , the two-pin segment refers to a point pair set composed of two points close to each other in the vertex set of the multi-terminal line network, and there is no other point of the vertex set on the path formed by the point pair;
步骤4预估计GRG各边的走线概率;Step 4 pre-estimates the routing probability of each side of the GRG;
步骤4.1设定GRG每条边ek所对应的走线概率值pk的初始值为0;Step 4.1 Set the initial value of the routing probability value p k corresponding to each edge e k of the GRG to 0;
步骤4.2对每条两端线网或多端线网的每个两引脚段做如下操作:Step 4.2 Do the following operations for each two-pin segment of each two-terminal net or multi-terminal net:
步骤4.2.1若两个引脚u,v分别处于GRG图的左下角和右上角的位置,u为左下角引脚,v为右上角引脚;Step 4.2.1 If the two pins u and v are in the lower left corner and upper right corner of the GRG diagram respectively, u is the lower left corner pin, and v is the upper right corner pin;
如图3所示,以u作为原点建立参考用笛卡儿平面直角坐标系,横轴以列为单位,并以水平向左为正方向,若经过m段水平网格,纵轴以行为单位,以垂直向上为正方向,若经过n段垂直网格,点v(m,n)处于第I象限,原点为u(0,0),以u(0,0),v(m,n)为对顶点构成矩形框称为边界框u-v,从u点到v点任何一条可能路径的长度等于边界框u-v的半周长;As shown in Figure 3, use u as the origin to establish a Cartesian plane Cartesian coordinate system for reference. The horizontal axis is in columns, and the horizontal left is the positive direction. If you pass through m horizontal grids, the vertical axis is in row units. , taking the vertical upward as the positive direction, if passing through n segments of vertical grids, the point v(m, n) is in the Ith quadrant, the origin is u(0, 0), and u(0, 0), v(m, n ) is called a bounding box u-v to form a rectangular frame for the vertices, and the length of any possible path from point u to point v is equal to the half perimeter of the bounding box u-v;
从而,按下式得到经过边界框u-v里某条设定水平边AB(B点在A点右面)或垂直边AC(C点在A点的上面)的走线概率:Thus, the probability of routing through a set horizontal edge AB (point B is on the right of point A) or vertical edge AC (point C is above point A) in the bounding box u-v is obtained by the following formula:
经过水平边AB的走线概率为:The probability of routing through the horizontal edge AB is:
pk1=H(x,y)/T(m,n)0≤x≤m-1,0≤y≤n,p k1 = H(x, y)/T(m, n) 0≤x≤m-1, 0≤y≤n,
其中,T(m,n)表示从u(0,0)出发到点v(m,n)间可能存在的路径数,表达式为:Among them, T(m, n) represents the number of paths that may exist between starting from u(0,0) and point v(m, n), and the expression is:
H(x,y)表示从原点u(0,0)出发到点A(x,y),并经过以点A(x,y)为左端点的某一特定水平边AB的路径数,用下式表示:H(x, y) represents the number of paths starting from the origin u(0, 0) to the point A(x, y) and passing through a certain horizontal edge AB with the point A(x, y) as the left end point. The following formula represents:
H(x,y)=T(x,y)T(m-x-1,n-y),0≤x≤m-1,0≤y≤nH(x,y)=T(x,y)T(m-x-1,n-y), 0≤x≤m-1, 0≤y≤n
T(x,y)表示从原点u(0,0)到点A(x,y)间可能存在的路径数,按下式得出:T(x, y) represents the number of possible paths from the origin u(0, 0) to the point A(x, y), which can be obtained by the following formula:
T(m-x-1,n-y)表示从点B(x+1,y)出发到点v(m,n)间可能存在的路径数,用下式表示:T(m-x-1, n-y) represents the number of paths that may exist between point B(x+1, y) and point v(m, n), expressed by the following formula:
经过垂直边AC的走线概率为:The probability of routing through the vertical edge AC is:
pk2=V(x,y)/T(m,n),0≤x≤m,0≤y≤n-1,p k2 = V(x, y)/T(m, n), 0≤x≤m, 0≤y≤n-1,
其中,V(x,y)表示从原点u(0,0)出发到点A(x,y)间经过以点A(x,y)为下端点的某一特定垂直边AC的路径数,用下式表示:Among them, V(x, y) represents the number of paths starting from the origin u(0, 0) to point A(x, y) and passing through a certain vertical side AC with point A(x, y) as the lower end point, Expressed in the following formula:
V(x,y)=T(x,y)T(m-x,n-y-1),0≤x≤m,0≤y≤n-1,V(x,y)=T(x,y)T(m-x,n-y-1), 0≤x≤m, 0≤y≤n-1,
其中,T(m-x,n-y-1)表示从点C(x,y+1)出发到达点v(m,n)间可能存在的路径数,用下式表示:Among them, T(m-x, n-y-1) represents the number of paths that may exist between starting from point C(x, y+1) and arriving at point v(m, n), expressed by the following formula:
再把所得的pk1,pk2分别累加到边AB,AC上的走线概率,k1,k2分别为边AB,AC的编号;Then add the obtained p k1 and p k2 to the routing probabilities on sides AB and AC respectively, k 1 and k 2 are the numbers of sides AB and AC respectively;
步骤4.2.2若两个引脚u,v分别处于GRG图的右下角和左上角的位置,u为右下角引脚,v为右上角引脚;Step 4.2.2 If the two pins u and v are located in the lower right corner and upper left corner of the GRG diagram respectively, u is the lower right corner pin, and v is the upper right corner pin;
则以右下角的引脚u作为原点建立参考用笛卡儿平面直角坐标系,横轴以列为单位,并以水平向左为正方向,若向左经过m*段水平网格,纵轴以行为单位,以垂直向上为正方向,若经过n*段垂直网格,点v(m*,n*)处于第I象限,原点为u(0,0),以u(0,0),v(m*,n*)为对顶点构成矩形框称为为边界框u-v,从u点到v点任何一条可能路径的长度等于边界框u-v的半周长;Then use the pin u in the lower right corner as the origin to establish a Cartesian plane rectangular coordinate system for reference. The horizontal axis is in columns, and the horizontal left is the positive direction. In units of rows, with vertical upward as the positive direction, if passing through n * vertical grids, point v (m * , n * ) is in the Ith quadrant, the origin is u (0, 0), and u (0, 0) , v(m * , n * ) is called a bounding box uv for forming a rectangular frame for vertices, and the length of any possible path from point u to point v is equal to the half perimeter of the bounding box uv;
从而,按照步骤4.2.1中的方法计算经过边界框u-v里某条设定水平边AB(B点在A点左面)或垂直边AC(C点在A点的上面)的走线概率,其中,只要把步骤4.2.1中的公式里的m,n分别换成m*,n*即可;Therefore, calculate the probability of passing through a set horizontal edge AB (point B is on the left of point A) or vertical edge AC (point C is above point A) in the bounding box uv according to the method in step 4.2.1, where , just replace m and n in the formula in step 4.2.1 with m * and n * respectively;
最后,再把所得的pk1,pk2分别累加到边AB,AC上的走线概率,k1,k2分别为边AB,AC的编号;Finally, add the obtained p k1 and p k2 to the routing probabilities on sides AB and AC respectively, k 1 and k 2 are the numbers of sides AB and AC respectively;
步骤4.2.3若两个引脚u,v分别处于GRG图的同一行或列时,称两引脚点为平点对,以一个引脚为原点建立参考用笛卡儿平面直角坐标系,并使另一个引脚落在横轴或纵轴的正半轴,当处于同一行,另一个引脚落在横轴的正半轴,当处于同一列,另一个引脚落在纵轴的正半轴,然后,用扩展边界框估计法,按下面方法计算边ek上的相应走线概率:Step 4.2.3 If the two pins u and v are respectively in the same row or column of the GRG diagram, the points of the two pins are called a flat point pair, and a reference Cartesian plane Cartesian coordinate system is established with one pin as the origin, And make another pin fall on the positive semi-axis of the horizontal axis or the vertical axis. When in the same row, another pin falls on the positive semi-axis of the horizontal axis. When in the same column, the other pin falls on the positive semi-axis of the vertical axis. Positive semi-axis, then, using the extended bounding box estimation method, calculate the corresponding routing probability on the edge e k as follows:
步骤4.2.3.1按照下面方法建立扩展边界框:Step 4.2.3.1 Establish the extended bounding box according to the following method:
使同一行(列)的平点对的边界框,向垂直(水平)方向各扩展一行(列);Make the bounding boxes of the flat point pairs in the same row (column) extend to the vertical (horizontal) direction by one row (column);
步骤4.2.3.2在边界框内,在边界框扩展方向上,最多允许一次背离所述两引脚u,v所处的同一行或列的条件下,按下式计算经过的点(x,y)为左端点的某一特定的水平边的走线概率pk1和计算经过点(x,0)向上或向下的垂直边的走线概率pk2:Step 4.2.3.2 In the bounding box, in the bounding box expansion direction, under the condition that the two pins u and v are allowed to deviate from the same row or column at most once, calculate the passed point (x, y ) is the routing probability p k1 of a certain horizontal edge at the left end point and the routing probability p k2 of the vertical edge going up or down through the point (x, 0):
当u,v处于同一行时,如图4所示,When u and v are in the same row, as shown in Figure 4,
pk1=H*(x,y)/F(m′),0≤x≤m′-1,-1≤y≤1,p k1 = H * (x, y)/F(m'), 0≤x≤m'-1, -1≤y≤1,
其中,m’为点u,v间的列数,Among them, m' is the number of columns between points u and v,
F(m’)表示在扩展边界框u-v中从u到v的可能路径数,按下面公式计算:F(m') represents the number of possible paths from u to v in the extended bounding box u-v, calculated according to the following formula:
F(m’)=m’2+m’+1,m’是u和v之间相隔的列数,F(m')=m' 2 +m'+1, m' is the number of columns between u and v,
H*(x,0)表示从点u(0,0)到点(x,0)间经过以该点(x,0)为左端点的水平边的可能路径数目,用下式计算:H * (x, 0) represents the number of possible paths from the point u(0, 0) to the point (x, 0) passing through the horizontal edge with the point (x, 0) as the left end point, calculated by the following formula:
H*(x,0)=F(x)+F(m′-x-1)-1,0≤x≤m′-1,H * (x,0)=F(x)+F(m'-x-1)-1, 0≤x≤m'-1,
H*(x,±1)表示从点u(0,0)到点(x,±1)间经过以该点(x,±1)为左端点的水平边的可能路径数目,用下式计算:H * (x, ±1) represents the number of possible paths from point u(0, 0) to point (x, ±1) passing through the horizontal edge with the point (x, ±1) as the left end point, using the following formula calculate:
H*(x,±1)=(x+1)(m′-x),0≤x≤m′-1,H * (x, ±1) = (x+1)(m'-x), 0≤x≤m'-1,
其中,F(x)表示在扩展边界框u-v中从u到(x,0)的可能路径数,表达式为:F(x)=x2+x+1,Among them, F(x) represents the number of possible paths from u to (x, 0) in the extended bounding box uv, the expression is: F(x)= x2 +x+1,
F(m′-x-1)表示在扩展边界框u-v中从(x+1,0)到v(m’,0)的可能路径数,表达式为:F(m′-x-1)=(m′-x-1)2+(m′-x-1)+1;F(m'-x-1) represents the number of possible paths from (x+1, 0) to v(m', 0) in the extended bounding box uv, the expression is: F(m'-x-1) =(m'-x-1) 2 +(m'-x-1)+1;
pk2=V*(x,y)/F(m′),0≤x ≤m′-1,-1≤y≤1,p k2 = V * (x, y)/F(m'), 0≤x≤m'-1, -1≤y≤1,
其中,m’为点u,v间的列数,Among them, m' is the number of columns between points u and v,
V*(x,0)表示从u(0,0)到点(x,0),并经过与点(x,0)向上(或向下)所连的垂直边的路径数,用下列表达式计算:V * (x, 0) represents the number of paths from u(0, 0) to the point (x, 0) and passing through the vertical edge connected upwards (or downwards) with the point (x, 0), expressed as follows formula calculation:
V*(x,0)=m′,0≤x≤m′,V * (x,0)=m', 0≤x≤m',
当u,v位于同一列时,When u, v are in the same column,
设u,v之间的行数为m”,将上述表达式中m’的值用m”代入便计算出相应的pk1,pk2,Let the number of rows between u and v be m", and substitute the value of m' in the above expression with m" to calculate the corresponding p k1 , p k2 ,
然后,再将pk1,pk2累加到各边对应的pk上,k1,k2分别为各边的编号;Then, add p k1 and p k2 to the p k corresponding to each side, k 1 and k 2 are the numbers of each side;
步骤5快速布线Step 5 Quick Wiring
步骤5.1对每一条线网进行布线,流程图参见图5,具体操作如下:Step 5.1 Wiring each line net, see Figure 5 for the flowchart, and the specific operations are as follows:
步骤5.1.1读入用Prim算法划分后,并按划分顺序标过序号的两引脚段序列;Step 5.1.1 reads in the two-pin segment sequence that is divided by the Prim algorithm and marked with serial numbers in the order of division;
步骤5.1.2标记第一个两引脚段中的任一个引脚点;Step 5.1.2 Mark any pin point in the first two-pin segment;
步骤5.1.3从5.1.2中所指的引脚段开始,按标号顺序依次对于两引脚段序列中的每一个两引脚段,执行下列操作:Step 5.1.3 Beginning with the pin segment referred to in 5.1.2, perform the following operations for each two-pin segment in the sequence of two-pin segments in order of number:
步骤5.1.3.1检查当前的两引脚段的两个引脚是否都被标记;Step 5.1.3.1 checks whether both pins of the current two-pin segment are marked;
步骤5.1.3.2如果是,那么取下一个两引脚段,并重新转到步骤5.1.3.1;否则,将未标记的引脚作为起点,并执行下面步骤;Step 5.1.3.2 If yes, then remove a two-pin segment and re-go to step 5.1.3.1; otherwise, use the unlabeled pin as a starting point and perform the following steps;
步骤5.1.3.3将起点设为当前点u*,并对其标记被访问过;Step 5.1.3.3 Set the starting point as the current point u * and mark it as visited;
步骤5.1.3.4按照边界框布线的约定,找到与u*相邻的两个可行顶点集合Vp和两条可行边的集合Ep={ek1,ek2},按如下方法选择一条边:Step 5.1.3.4 According to the convention of bounding box wiring, find two feasible vertex sets V p and two feasible edge sets E p = {e k1 , e k2 } adjacent to u * , and select an edge as follows:
利用C/C++编程语言中公知的rand()函数,通过rand()/RAND_MAX产生[0,1]之间的随机数,其中RAND_MAX是公知的被定义的rand()产生随机数的最大值;Utilize the known rand() function in the C/C++ programming language to generate a random number between [0, 1] through rand()/RAND_MAX, wherein RAND_MAX is the maximum value of the known defined rand() to generate a random number;
如上方法产生一个随机数,如果这个随机数不大于pk2ck1/(pk1ck2+pk2ck1),那么选择与分子ck1对应的边ek1,即i=k1,否则选择边ek2,即i=k2;The above method generates a random number, if the random number is not greater than p k2 c k1 /(p k1 c k2 +p k2 c k1 ), then select the edge e k1 corresponding to the molecule c k1 , i.e. i=k1, otherwise select the edge e k2 , i.e. i=k2;
步骤5.1.3.5将被选边ei的另一个端点vi作为新的当前点u*;Step 5.1.3.5 takes the other endpoint v i of the selected side e i as the new current point u * ;
步骤5.1.3.6检查当前点是否被标记,如果未被标记,则标记该点并依照步骤5.1.3.4的方法选择下一个点;如果被标记,则记录所有经过路径;Step 5.1.3.6 Check whether the current point is marked, if not marked, mark the point and select the next point according to the method of step 5.1.3.4; if marked, record all the paths passed;
步骤5.2所有线网布好线后,对每条线网经过的边的通道使用量λk累加1,统计每条边上的使用量;Step 5.2 After all the wire nets are laid out, add 1 to the channel usage λ k of each side that each wire net passes through, and count the usage on each side;
步骤5.3计算各个边的拥挤度值ηk=λk/ck;Step 5.3 calculates the congestion degree value η k =λ k /c k of each edge;
步骤6输出Step 6 output
步骤6.1将拥挤估计结果和快速布线结果写入Si2推出的工业界标准的数据库平台OpenAccess;Step 6.1 writes the congestion estimation result and the fast routing result into the industry standard database platform OpenAccess launched by Si2;
步骤6.2输出评测报告。Step 6.2 outputs the evaluation report.
为了测试可布性分析算法的准确性与客观性,我们将其与另外两个拥挤估算相关方法进行比较。一个是现有的拥挤驱动的SSTT布线器[T.Jing,X.L.Hong,H.Y.Bao,et al,“SSTT:Efficient Local Search for GSI Global Routing”,J.Comput.Sci.& Technol.2003,18(5):pp.632-639.],能够提供实际布线的结果以供比较。另一个是我们依现有技术[J.Lou,S.Krishnanioorthy,and H.S.Sheng,″Estimating routing congestion using probabilistic analysis,″inPTOC.Int.Symp.on Phgsacal Design,2001]实现的传统的拥挤估计器,我们暂时称为EOPA,它采用的是概率分析模型。我们采用了6个不同大小和拥挤程度的测试例子,如表1所示。实验环境为具有3.0GHz CPU和4GB内存的Linux服务器。所有测试的方法均使用了公知的[Andrew B.Kahng,Stefanus Mantik,and Dirk Stroobandt,“Toward accurate models of achievablerouting”IEEE Tran.Computer-Aided Design,vol.20,Issue 5,May 2001 pp.648-659.]中的资源估计方法输出的结果。To test the accuracy and objectivity of the distributability analysis algorithm, we compare it with two other methods related to crowding estimation. One is the existing congestion-driven SSTT router [T.Jing, X.L.Hong, H.Y.Bao, et al, "SSTT: Efficient Local Search for GSI Global Routing", J.Comput.Sci. & Technol.2003, 18( 5): pp.632-639.], which can provide the results of actual wiring for comparison. The other is the traditional congestion estimator implemented by us according to the existing technology [J.Lou, S.Krishnanioorthy, and H.S.Sheng, "Estimating routing congestion using probabilistic analysis," in PTOC.Int.Symp.on Phgsacal Design, 2001], We tentatively call it EOPA, which uses a probabilistic analysis model. We adopt 6 test examples with different sizes and crowding levels, as shown in Table 1. The experimental environment is a Linux server with 3.0GHz CPU and 4GB memory. All tested methods used the well-known [Andrew B. Kahng, Stefanus Mantik, and Dirk Stroobandt, "Toward accurate models of achievable routing" IEEE Tran. Computer-Aided Design, vol.20, Issue 5, May 2001 pp.648- 659.] in the output of the resource estimation method.
我们使用FREe布线后的走线长度来近似估计每一个例子的线长的下界(如果我们能得出SMT,steiner minimal tree,那么变能够得到一个精确线长的下界)。于是我们定义minimumusage ratio(MUR)为FREe布线的总线长与的比值,其中ce和le分别为边e的容量和长度。于是,MUR可用来近似估计每一个例子的拥挤度值的下界,并依此较客观地说明测试例子本身的拥挤情况。表2a)的第2列和第3列分别列出了MUR和估计的近似极小总线长,第4列,则给出了SSTT布线的总线长。We use the trace length after FREe routing to approximate the lower bound of the wire length of each example (if we can get SMT, steiner minimal tree, then we can get a lower bound of the exact wire length). So we define the minimumusage ratio (MUR) as the bus length of the FREEe wiring and The ratio of , where c e and l e are the capacity and length of side e, respectively. Therefore, MUR can be used to approximately estimate the lower bound of the congestion degree value of each example, and thus more objectively explain the congestion situation of the test example itself. Columns 2 and 3 of Table 2a) list the MUR and the estimated approximate minimum bus length, respectively, and column 4 gives the bus length for SSTT routing.
表1测试例子的描述Table 1 Description of Test Cases
在表2b)中的2,3和5列分别列出了EOPA,FREe和SSTT的运行时间。可见,EOPA和FREe作为专门的拥挤估计器,比实际拥挤驱动的布线器SSTT会快很多。这样就能为布局提供比较快速的反馈。Columns 2, 3 and 5 in Table 2b) list the running times of EOPA, FREEe and SSTT, respectively. It can be seen that EOPA and FREEe, as dedicated congestion estimators, are much faster than the actual congestion-driven router SSTT. This provides relatively quick feedback on the layout.
我们对布好线网的芯片定义sigma为各个走线道拥挤度的标准差。即:We define sigma as the standard deviation of the congestion degree of each wireway for the chip with the wired network. Right now:
sigma可以用来反映布线后的拥挤区的分布情况,并可衡量GRG各边上布线资源被使用的均匀程度。sigma的值越接近于零,说明布线资源利用得越均匀,布线的质量也就越好。Sigma can be used to reflect the distribution of the crowded area after routing, and can measure the uniformity of routing resources used on each side of the GRG. The closer the value of sigma is to zero, the more evenly the wiring resources are utilized, and the better the wiring quality will be.
由于FREe和SSTT分别对线网进行了实际的布线,所以表2b)的4和6列分别给出了他们的sigma值。可以看出,FREe的sigma值和SSTT比较接近,但是略大于SSTT的sigma。说明,从某种程度上来讲,绕线优化性能越好,布出的线会越均匀。但是,作为拥挤估计器,这样的绕线优化拥挤会使它失去客观评价的意义。所以,我们能够在没有过量的绕线和优化的基础上,既保持了线长的近似极小,又能够在这样约束下达到布线资源较均匀地利用,从而较客观、准确地评价了布局后的拥挤状况,并且和SSTT结果有较好的一致性。Since FREe and SSTT have carried out the actual wiring to the line network respectively, the 4th and 6th columns of Table 2b) give their sigma values respectively. It can be seen that the sigma value of FREEe is close to that of SSTT, but slightly larger than that of SSTT. It shows that, to some extent, the better the winding optimization performance is, the more uniform the wiring will be. However, as a congestion estimator, such routing optimization congestion will make it lose the meaning of objective evaluation. Therefore, on the basis of no excessive wiring and optimization, we can not only keep the approximate minimum line length, but also achieve a more even utilization of wiring resources under such constraints, so as to objectively and accurately evaluate the post-layout layout. The congestion situation, and has a good consistency with the SSTT results.
为了进一步能说明,FREe拥挤估计的能力。不失一般性,我们以u05614为例,分别给出了EOPA,FREe和SSTT的拥挤度图,如图6a),b),c)所示。可见,图6b)和c)特征比较相近,这正是由于拥挤预估概率指导下的快速布线能带来和SSTT一致性较好的拥挤估计。与此同时,FREe又没有失去其客观性的要求。To further illustrate, the capability of FREEe congestion estimation. Without loss of generality, we take u05614 as an example and give the congestion degree diagrams of EOPA, FREEe and SSTT respectively, as shown in Fig. 6a), b), c). It can be seen that the characteristics of Figure 6 b) and c) are relatively similar, which is precisely because the fast routing under the guidance of the congestion estimation probability can bring a congestion estimation with better consistency with SSTT. At the same time, FREEe has not lost its requirement of objectivity.
表2实验结果Table 2 Experimental results
a)FREe和SSTT总的资源使用比较a) Comparison of total resource usage between FREEe and SSTT
Estimated Minimum Total Length是指由FREe布线后的总线长。Estimated Minimum Total Length refers to the bus length after wiring by FREEe.
b)性能比较b) Performance comparison
比较图6a)和b)可以看出,EOPA仅给出一些区域会产生平均意义上的拥挤,而FREe增加了实际布线后,便能精确的给出,究竟对应于GRG边的那些区域在多大程度上会出现走线拥挤。Comparing Figure 6a) and b), it can be seen that EOPA only gives some areas that will cause congestion in the average sense, while FREe can accurately show the size of those areas corresponding to the GRG side after adding the actual wiring. To a certain extent, there will be line congestion.
另外,FREe同时给出了拥挤估计后的详细报告。其中包含水平边和垂直边分别的最大拥挤度值,以及水平边和垂直边分别的超容量的和,等等。In addition, FREEe also provides a detailed report after congestion estimation. It contains the maximum congestion values for the horizontal and vertical sides, the sum of the overcapacity for the horizontal and vertical sides, and so on.
附图说明 Description of drawings
图1:本发明的总体流程图。Figure 1: Overall flow chart of the present invention.
图2:总体布线的示意图。Figure 2: Schematic of the general wiring.
图3:引脚处于左下角-右上角的两引脚段u-v及其边界框的坐标图。Figure 3: Coordinate plot of the two-pin segment u-v and its bounding box with pins in the lower left-upper right corner.
图4:平点对的两引脚段u-v及其扩展边界框的坐标图。Figure 4: Coordinate plot of the two-pin segment u–v of a flat point pair and its extended bounding box.
图5:对单个线网布线的流程图。Figure 5: Flowchart for routing a single net.
图6:测试例子u05614的拥挤度图。Figure 6: Congestion plot for test example u05614.
图7:例子u05614的GRG中的一个方框。Figure 7: A box in the GRG of example u05614.
图8:例子u05614中control线网在GRG上的走线情况。Figure 8: The wiring situation of the control line network on the GRG in the example u05614.
图9:例子u05614中m1/n7630线网在GRG上的走线情况。Figure 9: The wiring situation of the m1/n7630 line net on the GRG in the example u05614.
图10:例子u05614中m2/n7766线网在GRG上的走线情况。Figure 10: The routing of the m2/n7766 wire net on the GRG in the example u05614.
图11:例子u05614中线网在GRG上的走线情况Figure 11: Example u05614 midline network routing on GRG
(m1/U2\/mult1\/ADD1\/pog_array[2][32])。(m1/U2\/mult1\/ADD1\/pog_array[2][32]).
具体实施方式 Detailed ways
首先,在我们抽象出的问题模型上,利用经典的Prim算法求得最小生成树(MST)。并按照最小生成树的树枝生成的先后顺序,将每个多端线网划分成两引脚段(two-pin section)序列。本身是两端线网的,保持不变。其次,对于处于两个引脚处于斜对角位置的两端线网或引脚段利用现有的技术求出两引脚之间的走线分布;对于处于同一行或列的两个引脚,采用本发明提出的扩展的边界框技术求出两引脚之间的走线分布。它可以帮助其绕过过于拥挤的区域。然后,对所有的线网利用预估拥挤信息并在概率的指导下,进行了本发明提出的快速的布线。该布线技术不但可以避免布线拥挤,还可以使得各个可能路径上经过的走线数目基本均匀。First, on the problem model we abstracted, use the classic Prim algorithm to obtain the minimum spanning tree (MST). And according to the order in which the branches of the minimum spanning tree are generated, each multi-terminal net is divided into two-pin section sequences. It is a network at both ends and remains unchanged. Secondly, use the existing technology to find the wiring distribution between the two pins for the two ends of the wire network or pin segment at the diagonal position; for the two pins in the same row or column, The extended bounding box technology proposed by the present invention is used to obtain the wiring distribution between the two pins. It helps it get around overcrowded areas. Then, using the estimated congestion information and guided by probability, the fast routing proposed by the present invention is performed for all nets. This routing technology can not only avoid routing congestion, but also make the number of wires passing through each possible path substantially uniform.
对于目前IC设计中的多层布线技术,可布线区域不再是单元间的一条条的布线通道,而是一个完整的芯片平面。可采用网格方式,把整个芯片平面按行和列划分为若干个称为总体布线单元GRC的区域,然后生成GRC的对偶图,即如图2所示的总体布线图GRG。GRG由Nrow×Ncol个节点和连接这些节点的边构成。与GRCrow,col对应的节点vrow,col的坐标为GRCrow,col的中心点。连接两节点vrow1,col1和vrow2,col2的边称为ek;lk表示两节点vrow1,col1和vrow2,col2之间的曼哈顿距离,称为ek的长度;ck表示ek的容量,表示两节点vrow1,col1和vrow2,col2对应的两个GRC之间能够通过的线网的连线数。于是,线网中要连通的引脚点Pin就映射成为其所在的GRG中对应的一系列节点。这样,拥挤估计便可形式化为在此模型上求解每一条GRG边的容量被占用的情况,并映射到对偶图GRC的网格区域中的问题。另外,在这个过程中还要得到每个线网的布线树。For the current multi-layer wiring technology in IC design, the routing area is no longer a wiring channel between units, but a complete chip plane. The grid method can be used to divide the entire chip plane into several regions called the general wiring unit GRC according to the rows and columns, and then generate the dual graph of the GRC, that is, the general wiring diagram GRG shown in Figure 2. GRG consists of N row × N col nodes and edges connecting these nodes. The coordinates of the node v row , col corresponding to GRC row, col are the center point of GRC row, col . The edge connecting two nodes v row1, col1 and v row2, col2 is called e k ; l k represents the Manhattan distance between two nodes v row1, col1 and v row2, col2 , which is called the length of e k ; c k represents e The capacity of k indicates the number of connections that can pass between the two GRCs corresponding to the two nodes v row1, col1 and v row2, col2 . Therefore, the pin point Pin to be connected in the line network is mapped to a series of corresponding nodes in the GRG where it is located. In this way, congestion estimation can be formalized as a problem of solving the occupied capacity of each GRG edge on this model and mapping it to the grid area of the dual graph GRC. In addition, the wiring tree of each net is also obtained in this process.
本可布性分析方法的总体流程框图如图1所示。The overall flow chart of this distributability analysis method is shown in Figure 1.
为了实现,或者说是具体实施本项发明,我们给出以下关于发明实施的描述。In order to realize, or specifically implement the present invention, we give the following description about the implementation of the invention.
实施本发明的计算机系统:本发明所设计的可布性分析方法要在一个具体的计算机系统上得以实施,该计算机系统具体描述如下:Implement the computer system of the present invention: the distributability analysis method designed in the present invention will be implemented on a specific computer system, and this computer system is specifically described as follows:
一台Linux工作站;A Linux workstation;
Linux操作系统;Linux operating system;
Si2推出的工业界标准的数据库平台OA(OpenAccess);The industry standard database platform OA (OpenAccess) launched by Si2;
标准C/C++编程语言;Standard C/C++ programming language;
Vim编辑器、gcc/g++编译和链接器、gdb调试工具等。Vim editor, gcc/g++ compiler and linker, gdb debugging tool, etc.
现在采用一个MCNC电路实例u05614作为本发明的一个实施例,结合本发明的算法,对其进行可布性分析。该例子的规模如下:Now, a MCNC circuit instance u05614 is used as an embodiment of the present invention, combined with the algorithm of the present invention, its distributability analysis is carried out. The scale of the example is as follows:
386个压焊块,32498个标准单元,36452个线网;386 pressure soldering blocks, 32498 standard units, 36452 wire nets;
GRC网格划分205行,205列;The GRC grid is divided into 205 rows and 205 columns;
左下角点坐标(-82000,-82000);右上角点的坐标(82080,82080)。The coordinates of the lower left corner (-82000, -82000); the coordinates of the upper right corner (82080, 82080).
步骤1初始化并建立GRG:Step 1 Initialize and build GRG:
打开数据库OA,读入在多层布线芯片上划分GRC网格所必需的行数Nrow=205,列数Ncol=205。生成GRC的对偶图GRG。Open the database OA, and read in the number of rows N row =205 and the number of columns N col =205 necessary for dividing the GRC grid on the multilayer wiring chip. Generate the dual graph GRG of the GRC.
以芯片中心为原点建立坐标系,左下角点坐标为(-82000,-82000),右上角点坐标为(82080,82080)。此时,GRG图中共有42025个顶点。每个顶点都有一个对应的位置坐标(x,y),例如:左下角顶点v1,1(-81580,-81580),其左边顶点v1,2(-80760,-81580),其上面顶点v2,1(-81580,-80760),以及芯片右上角顶点v205,205(81660,81660)。可用vrow,col(x,y)表示各个顶点,其中row表示该点在GRG第几行,col表示该点在GRG第几列,(x,y)则表示在该坐标系位置。GRG上共有83640条边。Establish a coordinate system with the center of the chip as the origin, the coordinates of the lower left corner point are (-82000, -82000), and the coordinates of the upper right corner point are (82080, 82080). At this point, there are a total of 42025 vertices in the GRG graph. Each vertex has a corresponding position coordinates (x, y), for example: the lower left vertex v 1 , 1 (-81580, -81580), its left vertex v 1, 2 (-80760, -81580), its top Vertex v 2, 1 (-81580, -80760), and chip top right vertex v 205, 205 (81660, 81660). Each vertex can be represented by v row, col (x, y), where row represents the row of the point in the GRG, col represents the column of the point in the GRG, and (x, y) represents the position in the coordinate system. There are a total of 83640 edges on GRG.
为了能更好地说明问题,我们取以100行,100列的顶点为左下角的这个GRG上的方格,如图7所示。如同边一样,每个顶点都有一个唯一的编号来标志v50,100,v51,100,v51,101,v50,101的编号分别为10144,10349,10350,10145。连接四个顶点的边的编号如图7所示。In order to better illustrate the problem, we take the vertex of 100 rows and 100 columns as the grid on the lower left corner of the GRG, as shown in Figure 7. Like edges, each vertex has a unique number to mark v 50, 100 , v 51, 100 , v 51, 101 , v 50, 101 are 10144, 10349, 10350, 10145 respectively. The numbering of the edges connecting the four vertices is shown in Figure 7.
读入布线资源。这样,每条GRG边便会有一个非负数作为该边的容量。例如:e1对应的容量c1=15,e2对应的容量c2=15,e83601对应的容量c83601=9,最后一条边e83640对应的容量c83640=6。Read in routing resources. In this way, each GRG edge will have a non-negative number as the capacity of the edge. For example: e 1 corresponds to capacity c 1 =15, e 2 corresponds to capacity c 2 =15, e 83601 corresponds to capacity c 83601 =9, and the last side e 83640 corresponds to capacity c 83640 =6.
仍考察图7,其中各边对应容量为:c62066=12,c10300=15,c62270=12,c10096=15。Still looking at Fig. 7, the capacities corresponding to each side are: c 62066 =12, c 10300 =15, c 62270 =12, c 10096 =15.
步骤2读入网表:Step 2 read in the netlist:
从OA中读出网表的坐标,并将落在某个GRC中的引脚,映射为该GRC的中心点坐标,即GRG的相应顶点,并用顶点的编号表示。该例子中共有线网数为Mnet=36452,但1到257号线网为特殊线网在此设计流程中我们暂不做处理。下面枚举几个线网的情况:Read the coordinates of the netlist from the OA, and map the pins falling in a certain GRC to the coordinates of the center point of the GRC, that is, the corresponding vertices of the GRG, and represent them with the number of the vertices. In this example, the total number of nets is Mnet=36452, but nets 1 to 257 are special nets and we will not deal with them in this design process. The following enumerates the situations of several line networks:
258号线网:源点编号为19967,38个漏点(26281,28537,28541,...19517)。Line 258: the source number is 19967, and there are 38 leakage points (26281, 28537, 28541, ... 19517).
36451号线网:源点编号为21895,2个漏点(21889,21479)。Line 36451: the source number is 21895, and there are 2 leaks (21889, 21479).
18355号线网:源点编号为16977,2个漏点(16976,16990)。Line 18355: the source number is 16977, and there are 2 leaks (16976, 16990).
36452号线网:源点编号为21480,3个漏点(21476,21886,21890)。Line 36452: the source number is 21480, and there are 3 leakage points (21476, 21886, 21890).
步骤3多端线网拆分Step 3 Multi-terminal line network splitting
利用Prim的MST拆分算法结果如下:Using Prim's MST split algorithm results are as follows:
258号线网:共有39个引脚,被分为38个有序段。下面列举几个,并用引脚所对应的顶点的编号对依次表示。(19967,20371),(20371,18732),(18732,16881),...(8654,8228),(8228,7206)分别为第1,2,3,...37,38个两引脚段。Net 258: There are 39 pins in total, which are divided into 38 ordered segments. A few are listed below, and are represented sequentially by the number pairs of vertices corresponding to the pins. (19967, 20371), (20371, 18732), (18732, 16881), ... (8654, 8228), (8228, 7206) are the 1st, 2nd, 3rd, ... 37th, 38th two quotations respectively feet.
36451号线网:共有3个引脚,被分为2个有序段,依次为(21895,21889),(21889,21479)。Line 36451: There are 3 pins in total, which are divided into 2 ordered segments, which are (21895, 21889) and (21889, 21479).
18355号线网:共有3个引脚,被分为2个有序段,依次为(16977,16976)和(16977,16990)。Line 18355: There are 3 pins in total, which are divided into 2 sequential segments, which are (16977, 16976) and (16977, 16990).
36452号线网:共有4个引脚,被分为3个有序段,依次为(21480,21890),(21890,21886)和(21886,21476)。No. 36452 wire network: there are 4 pins in total, which are divided into 3 ordered segments, which are (21480, 21890), (21890, 21886) and (21886, 21476).
步骤4预估计Step 4 Pre-estimation
经过预估计得出每条边上对应的使用概率分布值。其中,两引脚共行/列的两端线网和两引脚段共有26296个,并对其使用扩展边界框的估计模型技术。例如,e1对应的使用概率分布值p1=1.16,e2对应的p2=1.16,e83601对应的p83601=3.40,最后一条边e83640对应的p83640=0.78。After pre-estimation, the corresponding use probability distribution value on each edge is obtained. Among them, there are a total of 26,296 two-terminal line nets and two-pin segments with two pins in the same row/column, and the estimation model technology of the extended bounding box is used for them. For example, e 1 corresponds to the use probability distribution value p 1 =1.16, e 2 corresponds to p 2 =1.16, e 83601 corresponds to p 83601 =3.40, and the last edge e 83640 corresponds to p 83640 =0.78.
考察图7,可得p62066=6.85,p10300=11.21,p62270=8.41,p10096=11.39。Looking at Figure 7, it can be obtained that p 62066 =6.85, p 10300 =11.21, p 62270 =8.41, and p 10096 =11.39.
步骤5快速实际布线Step 5 Quick Actual Wiring
对每一条线网按照流程图5的方法来布线。例如,在图7中以v50,100为当前点出发,产生[0,1]之间的随机数0.43,并与p10096c62066/(p62066c10096+p10096c62066)=0.57比较,前者小,那么选择c62066对应的边e62066;通过被选择的边到达下一个顶点,并将此顶点作为新的当前点。按同样的方法循环执行,直到所有线网布完为止。For each line network, wire according to the method of flow chart 5. For example, in Figure 7, starting from v 50, 100 as the current point, generate a random number 0.43 between [0, 1], and compare it with p 10096 c 62066 /(p 62066 c 10096 +p 10096 c 62066 )=0.57 , the former is small, then select the edge e 62066 corresponding to c 62066 ; reach the next vertex through the selected edge, and use this vertex as the new current point. Repeat the same method until all wire meshes are finished.
列举几个线网的布线情况如下:The wiring situation of several wire nets is listed as follows:
258号线网:名字为control,布线情况如图8中的粗连线。Line 258: the name is control, and the wiring is shown as the thick connection in Figure 8.
36451号线网:名字为m1/n7630,布线情况如图9中的粗连线。No. 36451 line network: the name is m1/n7630, and the wiring is as shown in the thick connection in Figure 9.
18355号线网:名字为m2/n7766,布线情况如图10中的粗连线。No. 18355 line network: the name is m2/n7766, and the wiring situation is shown in the thick connection in Figure 10.
36452号线网:名字为m1/U2\/mult1\/ADD1\/pog_array[2][32],布线情况如图11中的粗连线。Line network No. 36452: the name is m1/U2\/mult1\/ADD1\/pog_array[2][32], and the wiring is shown as the thick connection in Figure 11.
对所有线网布好线后,统计各个GRG边对应的通道使用量并计算拥挤度值。例如,e1对应的通道使用量λ1=1,拥挤度η1=0.07(ηk=λk/ck),e2对应的λ2=1,η2=0.07,e83601对应的λ83601=5,η83601=0.56,最后一条边e83640对应的λ83640=0,η83640=0.00。After laying out the lines for all line nets, count the channel usage corresponding to each GRG edge and calculate the congestion value. For example, e 1 corresponds to channel usage λ 1 =1, congestion degree η 1 =0.07 (η k =λ k /c k ), e 2 corresponds to λ 2 =1, η 2 =0.07, e 83601 corresponds to λ 83601 =5, η 83601 =0.56, the last edge e 83640 corresponds to λ 83640 =0, η 83640 =0.00.
考察图7,可得λ62066=6,η62066=0.50,λ10300=4,η10300=0.27,λ62270=8,η62270=0.67,λ10096=17η10096=1.13。Looking at Fig. 7, it can be obtained that λ 62066 =6, η 62066 =0.50, λ 10300 =4, η 10300 =0.27, λ 62270 =8, η 62270 =0.67, λ 10096 =17η 10096 =1.13.
步骤6输出Step 6 output
将结果写入OA,并输出报告文件。从报告中,可得maxH:2.9917 maxV:5.8980 O_H:17073.59 O_V:34288.23 B_H:1290.2151 B_V:4274.4438 Sigma:2.1634。Write the results to OA, and output the report file. From the report, maxH: 2.9917 maxV: 5.8980 O_H: 17073.59 O_V: 34288.23 B_H: 1290.2151 B_V: 4274.4438 Sigma: 2.1634.
其中,maxH水平边最大拥挤度;Among them, maxH is the maximum degree of crowding on the horizontal side;
maxV垂直边最大拥挤度;maxV Maximum congestion on the vertical side;
O_H 水平边拥挤度平方和;O_H The sum of the squares of horizontal edge congestion;
O_V 垂直边拥挤度平方和;O_V The sum of the squares of vertical edge crowding;
B_H 水平边的超容(减1)拥挤度和;B_H The overcapacity (minus 1) congestion degree sum of the horizontal side;
B_V 垂直边的超容(减1)拥挤度和;B_V Overcapacity (minus 1) congestion degree sum of vertical sides;
Sigma各边拥挤度的标准差,用来衡量是否布线资源(各边的容量)占用均匀。The standard deviation of congestion on each side of Sigma is used to measure whether the wiring resources (capacity of each side) are evenly occupied.
为了实现,或者说是具体实施本项发明,我们给出以下关于发明实施的描述。In order to realize, or specifically implement the present invention, we give the following description about the implementation of the invention.
实施本发明的计算机系统:本发明所设计的可布性分析方法要在一个具体的计算机系统上得以实施,该计算机系统具体描述如下。The computer system implementing the present invention: the distributability analysis method designed in the present invention is to be implemented on a specific computer system, and the computer system is specifically described as follows.
一台Linux服务器;A Linux server;
Linux操作系统;Linux operating system;
Si2推出的工业界标准的数据库平台OA(OpenAccess);The industry standard database platform OA (OpenAccess) launched by Si2;
标准C/C++编程语言;Standard C/C++ programming language;
Vim编辑器、gcc/g++编译和链接器、gdb调试工具等。Vim editor, gcc/g++ compiler and linker, gdb debugging tool, etc.
定理在扩展边界框u-v中的从u到v的可能路径数目为F(m)=m2+m+1,其中m是u和v之间相隔的列数或行数。Theorem The number of possible paths from u to v in the extended bounding box uv is F(m)= m2 +m+1, where m is the number of columns or rows separating u and v.
证明:prove:
不失一般性,我们假设两个顶点在坐标系中的位置分别为u(0,0)和v(m,0),如图4所示。在扩展边框中我们允许最多有一次背离(directed away)和折返(turning back)走线。因此,从v到u有三种可能方式。第一种是从v出发向上、再向右至A。而此后的连接情况则与左上-右下的相对位置一样,可能路径总数为T(m-1,1)。第二种是从v出发向下、再向右至B。根据前面的分析,其可能路径总数也为T(m-1,1)。第三种是从v直接水平向右前进至C,而可能的路径数为F(m-1)。由此可知F(m)=2T(m-1,1)+F(m-1),且有F(1)=3。Without loss of generality, we assume that the positions of the two vertices in the coordinate system are u(0, 0) and v(m, 0) respectively, as shown in Figure 4. We allow at most one directed away and turning back trace in the extended frame. Therefore, there are three possible ways to get from v to u. The first is to go up from v and then right to A. The subsequent connections are the same as the upper left-bottom right relative positions, and the total number of possible paths is T(m-1, 1). The second is to go down from v and then to the right to B. According to the previous analysis, the total number of possible paths is also T(m-1, 1). The third is to proceed horizontally right from v directly to C, and the number of possible paths is F(m-1). It can be seen that F(m)=2T(m-1, 1)+F(m-1), and F(1)=3.
对前面的递推式求解可得F(m)=m2+m+1,证毕。Solving the previous recursive formula, we can obtain F(m)=m 2 +m+1, and the proof is complete.
Claims (1)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100122714A CN100405379C (en) | 2006-06-15 | 2006-06-15 | A Fast Method for Routability Analysis of Integrated Circuits |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100122714A CN100405379C (en) | 2006-06-15 | 2006-06-15 | A Fast Method for Routability Analysis of Integrated Circuits |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1862546A CN1862546A (en) | 2006-11-15 |
CN100405379C true CN100405379C (en) | 2008-07-23 |
Family
ID=37389976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100122714A Expired - Fee Related CN100405379C (en) | 2006-06-15 | 2006-06-15 | A Fast Method for Routability Analysis of Integrated Circuits |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100405379C (en) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105426567B (en) * | 2007-03-09 | 2018-12-07 | 明导公司 | Incremental analysis of layout design data |
CN101452496B (en) * | 2007-12-06 | 2010-09-22 | 英业达股份有限公司 | Method for acquiring layout path of signal line |
CN102054660B (en) * | 2009-10-30 | 2015-10-07 | 新思科技有限公司 | Be applied to analytical approach and the device thereof of single-layer winding track |
CN102054068B (en) * | 2009-10-30 | 2014-06-18 | 新思科技(上海)有限公司 | Method and device for distributing line network in chip design |
CN101944149B (en) * | 2010-09-15 | 2012-07-04 | 清华大学 | Point-to-point wiring method for integrated circuit based on mesh-free model |
CN102831255B (en) * | 2011-06-15 | 2014-12-24 | 扬智科技股份有限公司 | Chip layout method |
CN104715097A (en) * | 2013-12-17 | 2015-06-17 | 北京华大九天软件有限公司 | Time delay improving method for pre-wiring |
CN105911450B (en) * | 2016-03-22 | 2018-03-23 | 重庆大学 | Flying probe tester open test method for optimizing route |
CN115496030B (en) * | 2022-11-15 | 2023-01-24 | 北京大学 | Analog circuit routing automation method and system capable of handling electrical and geometric constraints |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6397375B1 (en) * | 2000-02-18 | 2002-05-28 | Hewlett-Packard Company | Method for managing metal resources for over-the-block routing in integrated circuits |
CN1564319A (en) * | 2004-03-25 | 2005-01-12 | 杭州电子工业学院 | Fast analysis of superlarge integrated circit P/G distributing net |
CN1633658A (en) * | 2001-08-29 | 2005-06-29 | 英芬能技术公司 | Integrated circuit chip design |
-
2006
- 2006-06-15 CN CNB2006100122714A patent/CN100405379C/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6397375B1 (en) * | 2000-02-18 | 2002-05-28 | Hewlett-Packard Company | Method for managing metal resources for over-the-block routing in integrated circuits |
CN1633658A (en) * | 2001-08-29 | 2005-06-29 | 英芬能技术公司 | Integrated circuit chip design |
CN1564319A (en) * | 2004-03-25 | 2005-01-12 | 杭州电子工业学院 | Fast analysis of superlarge integrated circit P/G distributing net |
Also Published As
Publication number | Publication date |
---|---|
CN1862546A (en) | 2006-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100405379C (en) | A Fast Method for Routability Analysis of Integrated Circuits | |
CN1996318B (en) | Method for macro placement of semiconductor chips and multi-size hybrid placement method | |
Li et al. | Routability-driven placement and white space allocation | |
Maidee et al. | Timing-driven partitioning-based placement for island style FPGAs | |
US6480991B1 (en) | Timing-driven global placement based on geometry-aware timing budgets | |
US8037441B2 (en) | Gridded-router based wiring on a non-gridded library | |
Kahng et al. | VLSI physical design: from graph partitioning to timing closure | |
US8234615B2 (en) | Constraint programming based method for bus-aware macro-block pin placement in a hierarchical integrated circuit layout | |
US10418354B2 (en) | Integrated circuit and computer-implemented method of manufacturing the same | |
Wang et al. | On the behavior of congestion minimization during placement | |
US10366195B2 (en) | Using a Barycenter compact model for a circuit network | |
US6532572B1 (en) | Method for estimating porosity of hardmacs | |
CN114556352B (en) | Method and system for performing automatic routing | |
US20120110536A1 (en) | Statistical method for hierarchically routing layout utilizing flat route information | |
US8954915B2 (en) | Structured placement of hierarchical soft blocks during physical synthesis of an integrated circuit | |
US8539416B1 (en) | Methods, systems, and articles of manufacture for creating a hierarchical output for an operation in an electronic design | |
Zhang et al. | CROP: Fast and effective congestion refinement of placement | |
TW201926217A (en) | Method, system, and storage medium of resource planning for designing semiconductor device | |
Kahng et al. | Toward accurate models of achievable routing | |
US8738335B1 (en) | Solving a circuit network in hierarchical, multicore, and distributed computing environment | |
Frolova et al. | Delay matrix based timing-driven placement for reconfigurable systems-on-chip | |
Sham et al. | Congestion estimation with buffer planning in floorplan design | |
Chen et al. | On crossing minimization problem | |
US9293450B2 (en) | Synthesis of complex cells | |
CN108733869A (en) | A kind of extensive three dimensional integrated circuits partition method and device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080723 Termination date: 20100615 |