WO2021164268A1 - Layer distribution method considering bus and non-bus networks - Google Patents

Layer distribution method considering bus and non-bus networks Download PDF

Info

Publication number
WO2021164268A1
WO2021164268A1 PCT/CN2020/119324 CN2020119324W WO2021164268A1 WO 2021164268 A1 WO2021164268 A1 WO 2021164268A1 CN 2020119324 W CN2020119324 W CN 2020119324W WO 2021164268 A1 WO2021164268 A1 WO 2021164268A1
Authority
WO
WIPO (PCT)
Prior art keywords
layer
bus
deviation
bus line
line length
Prior art date
Application number
PCT/CN2020/119324
Other languages
French (fr)
Chinese (zh)
Inventor
刘耿耿
朱伟大
郭文忠
陈国龙
Original Assignee
福州大学
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 福州大学 filed Critical 福州大学
Publication of WO2021164268A1 publication Critical patent/WO2021164268A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement

Definitions

  • the invention belongs to the technical field of integrated circuit computer-aided design, and in particular relates to a layer allocation method considering bus and non-bus line network.
  • the bus has become a decisive factor in performance and power consumption.
  • the bus carries multiple signals and consists of a source pin group and one or more sink pin groups. If the line length of each signal between the source pin group and the sink pin group of the bus is inconsistent, it will lead to inconsistent transmission time of each signal to the same functional module, aggravate the timing disorder, and seriously affect the performance of the chip.
  • Layer allocation is an important stage of overall wiring. In this stage, the 2D wiring results of each net need to be allocated to the appropriate metal layer, and the different layers are connected through vias.
  • the layer allocation scheme has a great influence on the interconnection delay, which is one of the important factors that determine the performance of the chip.
  • the existing layer distributors do not consider the timing matching problem of the bus, which leads to the deterioration of the timing, which is far from the development trend of the actual chip.
  • the purpose of the present invention is to provide a layer allocation method that considers buses and non-bus line networks to effectively optimize the problem of bus timing disorder.
  • a layer allocation method considering bus and non-bus line network includes the following steps:
  • Step S1 Consider the heuristic cost function of the line length and the number of pins, and determine the layer allocation order of the first stage line network;
  • Step S2 Perform through-hole minimization layer assignment based on the through-hole minimization layer assignment algorithm, and obtain the initial layer assignment result;
  • Step S3 Build a deviation lookup table based on the initial layer allocation result
  • Step S4 According to the deviation look-up table, remove all the deviation bus line nets and all non-bus line nets;
  • Step S5 Consider the heuristic cost function combining the four elements of line length, pin number, signal number, and bus line length deviation, and determine the layer allocation sequence of the second-stage line network;
  • Step S6 Perform through-hole minimization layer assignment based on the through-hole minimization layer assignment algorithm, and obtain the layer assignment result;
  • Step S7 Use the bus line network application bus maximum timing optimization algorithm to optimize the bus line length deviation, and obtain the optimized layer assignment result;
  • Step S8 Determine whether there is a bus line length deviation, if there is no deviation, output the optimized layer allocation result and use it as the final layer allocation result; if there is a deviation, adjust the layer adjustment strategy based on the lookup table to obtain the final layer allocation result .
  • step S1 is specifically: the layer allocation priority of the first-stage wire net only needs to evaluate the number of pins and the line length, and the calculation formula of the priority P1 is as follows:
  • P cost is the number of pins of the net N i
  • e 1 ij is the basic cost of the edge
  • e is the edge of the net N i.
  • step S5 is specifically: the purpose of the layer allocation in the second stage is to optimize the bus line length deviation by reasonably using the through holes, so as to obtain less line length deviation while not generating too many through holes.
  • the calculation formula of priority P 2 is as follows:
  • ⁇ and ⁇ are coefficients user-defined, e 1 ij is the edge of the basic cost of, e is edge nets N i a, BD i is the i-th line length deviations bus, P cost is net N i of The number of pins, q is the signal number of the i- th bus B i.
  • the layer allocation algorithm for minimizing through holes is specifically:
  • the layer adjustment strategy based on the lookup table includes a layer adjustment strategy with a limit on the number of layers and a layer adjustment strategy with no limit on the number of layers.
  • the layer adjustment strategy of the layer number restriction is specifically:
  • the layer adjustment strategy with no limit on the number of layers is specifically:
  • bus maximum timing optimization algorithm is specifically:
  • the present invention has the following beneficial effects:
  • the present invention makes reasonable use of the influence of through holes on the timing to minimize the deviation of the bus line length, thereby effectively optimizing the problem of bus timing disorder.
  • Figure 1 is an overall wiring model in an embodiment of the present invention (a) overall wiring structure diagram, (b) overall wiring grid diagram;
  • Figure 2 is a 2.5D bus wiring process with a 3-pin wire net in an embodiment of the present invention (a) 3D wiring structure, (b) 2D wiring structure, (c) 2D wiring results, (d) layer allocation ;
  • Figure 3 is a bus composed of two 5-pin bus wire nets in an embodiment of the present invention.
  • Figure 4 is a flow chart of the method of the present invention.
  • Figure 5 is a layer allocation method for minimizing vias in an embodiment of the present invention (a) 2D wiring result, (b) 2D wiring result after preprocessing, (c) directed graph formed by depth-first search, (d) The sequence of layer adjustment, (e) the layer allocation result of side e 10;
  • Figure 6 is a layer adjustment strategy for layer number limitation in an embodiment of the present invention (a) side e 1 before layer adjustment, (b) side e 1 after layer adjustment;
  • FIG. 7 is an algorithm of a layer adjustment strategy with no limit on the number of layers in an embodiment of the present invention.
  • Figure 8 is a layer adjustment strategy with unlimited number of layers in an embodiment of the present invention (a) 2D wiring results, (b) directed graph formed by depth-first search, (c) layer adjustment order, (d) side e 5 and Side e 10 layer adjustment;
  • Figure 9 is the bus maximum timing optimization algorithm.
  • the present invention provides a layer allocation method considering bus and non-bus line network, including the following steps:
  • Step S1 Consider the heuristic cost function of the line length and the number of pins, and determine the layer allocation order of the first stage line network;
  • Step S2 Perform through-hole minimization layer assignment based on the through-hole minimization layer assignment algorithm, and obtain the initial layer assignment result;
  • Step S3 Build a deviation lookup table based on the initial layer allocation result
  • Step S4 According to the deviation look-up table, remove all the deviation bus line nets and all non-bus line nets;
  • Step S5 Consider the heuristic cost function combining the four elements of line length, pin number, signal number, and bus line length deviation, and determine the layer allocation sequence of the second-stage line network;
  • Step S6 Perform through-hole minimization layer assignment based on the through-hole minimization layer assignment algorithm, and obtain the layer assignment result;
  • Step S7 Use the bus line network application bus maximum timing optimization algorithm to optimize the bus line length deviation, and obtain the optimized layer assignment result;
  • Step S8 Determine whether there is a deviation of the bus line length. If there is no deviation, output the optimized layer allocation result and use it as the final layer allocation result; if there is a deviation, adjust a layer adjustment strategy based on a lookup table to obtain the final Layer allocation result.
  • the wiring area of the chip is distributed in multiple metal layers.
  • E k is composed of two parts, namely routing resource edge E k e and through-hole resource edge E k v .
  • Each wiring resource edge e k ij ⁇ E k e indicates that the connected wiring unit pair ( v k i , v k j ) is located in the same layer, and each through-hole resource edge e k ij ⁇ E k v represents its connection
  • the wiring unit pairs ( v k i , v k ' i ) are located on different layers.
  • Figure 1 (b) shows an overall wiring model including 4 metal layers, and each metal layer is divided into 33 G-Cells. In addition, each metal layer has only one preferred direction, and adjacent metal layers are connected through vias.
  • Layer allocation is the final stage of 2.5D overall wiring.
  • the so-called 2.5D wiring First, it maps the multi-layer wiring resources and pins to the 2D plane, as shown in Figure 2 (b); then, completes the 2D wiring on the 2D plane, as shown in Figure 2. As shown in (c); finally, use layer assignment to assign all edges to each layer, as shown in Figure 2 (d). Therefore, the task of layer allocation is to allocate each side of the 2D wiring result to a suitable metal layer to obtain the final 3D wiring result.
  • FIG on the grid G k (V k, E k), i.e. the capacity of mesh edges c (e k ij) representative of the k-th layer between G-Cell k i G-Cell k j and the adjacent available
  • the number of wiring tracks, and d ( e k ij ) represents the number of wiring tracks actually used.
  • edge overflow occurs, that is, o ( e k ij ). Therefore, according to d ( e k ij ) and c ( e k ij ), the overflow amount of the edge can be obtained, and the calculation formula for edge overflow is as follows:
  • bus ( B i ) there are r -bit signals and q bus pin groups ( PG i ).
  • one bus pin group is a source pin group ( PG i 0 )
  • q-1 bus pin groups are a sink pin group ( PG i j ).
  • the bus can be regarded as a combination of q bus wire nets ( BN i ), each bus wire net is a signal of the bus, and all the pins of the bus wire net ( BNP j ) form the bus Pin group.
  • a bus wire length deviation occurs.
  • the bus line length deviation calculation is defined as follows:
  • WPG i j ⁇ k> is the line length of the k- th pair of pins between the source pin group ( PG i 0 ) of the i- th bus and the j- th sink pin group ( PG i j), that is, the i- th
  • MWPG i j is the set of all of the pins between the PG i 0 i-bus line network and PG i j is the maximum line length.
  • Figure 3 shows a bus with 5 PGs on a 2D plane with 2 signals, that is, it is composed of 2 bus lines.
  • M and N are the number of G-Cells in the horizontal and vertical directions of a single metal layer
  • K is the number of metal layers
  • V cost is the cost of through holes
  • the priority is determined by the four elements of line length, number of pins, bus line length deviation and the number of signals. The reasons are as follows: (1) Wire length: The longer the wire length of S 1 is, the more wiring resources it needs to occupy, resulting in low utilization of better wiring resources. In addition, the longer the wire length, the greater the probability that it will encounter the exhaustion of wiring resources and the need to change layers, and the greater the probability of turning. Even if the best wiring resources are used, many through holes will be generated. Therefore, wire nets with larger wire lengths tend to be post-processed.
  • the purpose of layer allocation in the first stage is to obtain a smaller number of through holes. Therefore, the first stage of the layer allocation priority of the line network only needs to evaluate the number of pins and the line length, and the calculation formula of the priority P1 is as follows:
  • P cost N i is the number of pins
  • e 1 ij is the basic cost of the edge
  • e is the edge of the net N i.
  • the purpose of layer allocation in the second stage is to optimize the bus line length deviation by rationally using through holes, so as to obtain less line length deviation without generating too many through holes.
  • the calculation formula of priority P 2 is as follows:
  • ⁇ and ⁇ are coefficients user-defined, e 1 ij is the edge of the basic cost of, e is edge nets N i a, BD i is the i-th line length deviations bus, P cost is net N i of The number of pins, q is the signal number of the i- th bus B i.
  • the purpose of the layer allocation algorithm for minimizing through holes is to obtain a layer allocation result with a minimum number of through holes for the current network.
  • the basic idea of the algorithm is: according to the current channel capacity, without violating the constraint of edge overflow, based on dynamic programming, layer allocation is performed side by side, and finally the layer allocation scheme with the least number of through holes is selected as the final The result of the layer assignment. Specifically:
  • each wiring tree it consists of three types of nodes: root node (RN), leaf node (L( V 1 i )), and intermediate node (MN( V 1 i )).
  • R root node
  • Leaf node Leaf node
  • MN intermediate node
  • E is the root node
  • a and D are leaf nodes
  • C and B are intermediate nodes.
  • ch_v V 1 i
  • pa_v V 1 i
  • the edge connecting its child node is called the child edge ch_e ( V 1 i )
  • the edge connecting its parent node is called the parent edge pa_e ( V 1 i ).
  • the parent node of v 9 is v 10
  • the child nodes are v 4 and v 5
  • the parent side of v 9 is e 3
  • the child sides are e 4 and e 7 . Therefore, the number of through holes for each node Via ( V 1 i ) needs to be connected to three types of objects, which are the through holes that connect all of its child nodes pa_e ( ch_v ( V 1 i )) and the parent side pa_e ( V 1 i ) through holes and through holes connected to its own pins.
  • each node needs to record the best layer number ml ( V 1 i ) of its parent edge and the minimum number of through holes mv ( V 1 i ) of the subtree with V 1 i as the root node.
  • the calculation formula of mv ( V 1 i ) is as follows:
  • K is the maximum number of layers
  • k is the number of the layer where the parent edge of the current node is located
  • Via ( V 1 i ) is the number of through holes of the current node.
  • the 2D wiring results have loops, as shown in Figure 5 (a).
  • the mv ( V 1 i ) and ml ( V 1 i ) values of, take node v 9 as an example.
  • the layer adjustment strategy based on the lookup table includes a layer adjustment strategy with a limit on the number of layers and a layer adjustment strategy with no limit on the number of layers.
  • the purpose of the layer adjustment strategy of the layer limit is to adjust the layer of the bus line network with the shorter line length from the source pin to the sink pin in the bus according to the deviation look-up table without adding additional vias, so that the bus line is longer The deviation is reduced; specifically:
  • the adjusted layer should meet the following constraints: a. The overflow constraint will not be violated; b. The number of through holes required will not exceed the original number of through holes.
  • the following example is used to explain the layer adjustment strategy of the layer limit.
  • a bus with a signal number of 2 bits as shown in Figure 6, it has 1 source pin and 2 sink pins, and three sides e 1 , e 2 and e 3 need to be allocated. Since we use the layer assignment to minimize the number of through-holes to minimize the number of through-holes as the optimization goal, if we first assign the red signal 1 to the layer, in order to get the least number of through-holes, the source pin and sink pin 1 The connected edge e 1 will be allocated to the metal layer 1, and a through hole is required. Because if e 1 is allocated to metal layer 3, then it will need 3 vias. In addition, we are placing e 2 and e 3 on the metal layer 4.
  • the purpose of the layer adjustment strategy with no limit on the number of layers is to optimize the signal with serious bus timing disorder by using the influence of the vias on the timing, and to optimize the bus line length deviation by adding a certain amount of vias.
  • the layer adjustment strategy with no limit on the number of layers is specifically:
  • Randomly find an adjusted new layer if the new layer has redundant wiring resources, it can directly adjust it to the new layer, and then delete the edges on the original layer and update the through hole where the node is located. Maintain connectivity; if the new layer has no redundant wiring resources, in order to prevent overflow, select the edge of the network on the new layer to adjust to the original layer, then adjust the edge to the new layer, and finally adjust the through holes of the two edges Circumstance, so that it maintains connectivity.
  • the method of selecting the line network to be changed is as follows: 1) If there is a non-bus line network on the new layer, then select the non-bus line network; 2) If there is only a bus line network on the new layer, then select Unadjusted 3) Other conditions, no adjustment.
  • the condition for this strategy to stop is when the adjusted number of through holes is less than its user-defined threshold or all edges have been adjusted.
  • the following example is used to explain the layer adjustment technique of the layer limit.
  • Figure 8 (d-2) is the layer adjustment result obtained by adjusting e 5 and e 10 in Figure 8 (d-1) on the left.
  • the calculation formula for the required number of through holes is as follows:
  • WPG i j ⁇ k> is the line length of the k- th pair of pins between the source pin group ( PG i 0 ) of the i- th bus and the j- th sink pin group ( PG i j), that is, the i- th The line length from the source pin of the k- th bus net to the j- th sink pin in the bus.
  • MWPG i j is the set of all of the pins between the PG i 0 i-bus line network and PG i j is the maximum line length.
  • V cost is the through hole cost.
  • the purpose of the bus maximum timing optimization algorithm is to focus on optimizing the line length of the bus line network with serious timing disorder.
  • the basic idea of the algorithm is: if a non-bus line network occupies better wiring resources, then the non-bus line network will give up the wiring resources to the bus line network to optimize the line network with the longest line in the bus.
  • the bus maximum timing optimization algorithm is specifically:

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

The present invention relates to construction of a layer distributor of a super-large-scale integrated circuit in the technical field of integrated circuit computer aided designs. Due to continuous development of the manufacturing industry and appearance of a system-on-chip design concept, the number of buses between modules on a chip is rapidly increased and becomes a decisive factor of performance and power consumption. Therefore, the important influence of the bus on the chip design is fully considered, and the layer distributor considering the bus and non-bus networks is provided. The distributor is based on the following three effective methods: 1) a method for determining network priority based on a multi-element cost function; 2) a layer adjustment strategy based on a lookup table, the layer adjustment strategy comprising a layer adjustment technology with a limited number of layers and a layer adjustment technology with an unlimited number of layers; and 3) a bus maximum time series optimization algorithm. The method can guarantee that the number of through holes generated is less, the bus length deviation can be effectively optimized, and therefore the high-quality layer distribution result is obtained.

Description

考虑总线和非总线线网的层分配方法Consider the layer distribution method of bus and non-bus line network 技术领域Technical field
本发明属于集成电路计算机辅助设计技术领域,具体涉及一种考虑总线和非总线线网的层分配方法。The invention belongs to the technical field of integrated circuit computer-aided design, and in particular relates to a layer allocation method considering bus and non-bus line network.
背景技术Background technique
在现在的超大规模集成电路设计中,随着制程技术的发展,电路中的时序问题越来越突出,愈发影响新一代芯片的性能和产量。同时,随着系统级芯片概念的出现,知识产权模块的广泛应用已成为芯片设计的主流,这样使得芯片上不同模块之间的总线数量也迅速增加。尤其在多核的系统级芯片设计中,总线已成为性能和功耗的决定性因素。对于总线而言,其携带多个信号,并由一个源引脚组和一个或多个汇引脚组组成。如果总线的源引脚组与汇引脚组间各信号的线长不一致,就会导致每个信号传输到同一个功能模块的时间不一致,加剧时序紊乱,从而严重影响了芯片的性能。In the current VLSI design, with the development of process technology, the timing problems in the circuit are becoming more and more prominent, which increasingly affects the performance and yield of the new generation of chips. At the same time, with the emergence of the system-level chip concept, the widespread application of intellectual property modules has become the mainstream of chip design, which makes the number of buses between different modules on the chip also increase rapidly. Especially in the multi-core system-level chip design, the bus has become a decisive factor in performance and power consumption. For the bus, it carries multiple signals and consists of a source pin group and one or more sink pin groups. If the line length of each signal between the source pin group and the sink pin group of the bus is inconsistent, it will lead to inconsistent transmission time of each signal to the same functional module, aggravate the timing disorder, and seriously affect the performance of the chip.
技术问题technical problem
层分配是总体布线的重要阶段。在该阶段中,每个线网的2D布线结果需要被分配到合适的金属层上,不同层之间通过通孔相连。层分配方案对互连时延有很大影响,这是决定芯片性能的重要因素之一。现有的层分配器都未考虑总线的时序匹配问题,从而导致时序的恶化,与现实芯片发展趋势相差甚远。Layer allocation is an important stage of overall wiring. In this stage, the 2D wiring results of each net need to be allocated to the appropriate metal layer, and the different layers are connected through vias. The layer allocation scheme has a great influence on the interconnection delay, which is one of the important factors that determine the performance of the chip. The existing layer distributors do not consider the timing matching problem of the bus, which leads to the deterioration of the timing, which is far from the development trend of the actual chip.
技术解决方案Technical solutions
有鉴于此,本发明的目的在于提供一种考虑总线和非总线线网的层分配方法,有效地优化总线时序紊乱的问题。In view of this, the purpose of the present invention is to provide a layer allocation method that considers buses and non-bus line networks to effectively optimize the problem of bus timing disorder.
为实现上述目的,本发明采用如下技术方案:In order to achieve the above objectives, the present invention adopts the following technical solutions:
一种考虑总线和非总线线网的层分配方法,包括以下步骤:A layer allocation method considering bus and non-bus line network includes the following steps:
  步骤S1:考虑线长和引脚数的启发式代价函数,决定第一阶段线网的层分配顺序;Step S1: Consider the heuristic cost function of the line length and the number of pins, and determine the layer allocation order of the first stage line network;
  步骤S2:基于最小化通孔的层分配算法进行通孔最小化层分配,得到初始层分配结果;Step S2: Perform through-hole minimization layer assignment based on the through-hole minimization layer assignment algorithm, and obtain the initial layer assignment result;
  步骤S3:基于初始层分配结果,构建偏差查找表;Step S3: Build a deviation lookup table based on the initial layer allocation result;
  步骤S4:根据偏差查找表,将存在偏差的总线线网和所有非总线线网全部拆除;Step S4: According to the deviation look-up table, remove all the deviation bus line nets and all non-bus line nets;
步骤S5:考虑线长、引脚数、信号数和总线线长偏差四个要素组合的启发式代价函数,确定第二阶段线网的层分配顺序;Step S5: Consider the heuristic cost function combining the four elements of line length, pin number, signal number, and bus line length deviation, and determine the layer allocation sequence of the second-stage line network;
  步骤S6:基于最小化通孔的层分配算法进行通孔最小化层分配,得到层分配结果;Step S6: Perform through-hole minimization layer assignment based on the through-hole minimization layer assignment algorithm, and obtain the layer assignment result;
  步骤S7:采用总线线网应用总线最大时序优化算法,优化总线线长偏差,得到优化后的层分配结果;Step S7: Use the bus line network application bus maximum timing optimization algorithm to optimize the bus line length deviation, and obtain the optimized layer assignment result;
  步骤S8:判断是否存在总线线长偏差,若无偏差则输出优化后的层分配结果,并作为最终层分配结果;若有偏差,则基于查找表的层调整策略进行调整,得到最终层分配结果。Step S8: Determine whether there is a bus line length deviation, if there is no deviation, output the optimized layer allocation result and use it as the final layer allocation result; if there is a deviation, adjust the layer adjustment strategy based on the lookup table to obtain the final layer allocation result .
进一步的,所述步骤S1具体为:第一阶段线网的层分配优先级只需评估引脚数和线长,优先级P1的计算公式如下:Further, the step S1 is specifically: the layer allocation priority of the first-stage wire net only needs to evaluate the number of pins and the line length, and the calculation formula of the priority P1 is as follows:
Figure 58873dest_path_image001
Figure 58873dest_path_image001
其中, P cost 是线网 N i 的引脚数, e 1 ij 是边的基本代价, e是线网 N i 的边。 Wherein, P cost is the number of pins of the net N i, e 1 ij is the basic cost of the edge, e is the edge of the net N i.
进一步的,所述步骤S5具体为:第二阶段的层分配的目的是通过合理地利用通孔来优化总线线长偏差,以在获得较少的线长偏差的同时不产生过多的通孔,优先级 P2的计算公式如下: Further, the step S5 is specifically: the purpose of the layer allocation in the second stage is to optimize the bus line length deviation by reasonably using the through holes, so as to obtain less line length deviation while not generating too many through holes. , The calculation formula of priority P 2 is as follows:
Figure 516400dest_path_image002
Figure 516400dest_path_image002
其中, αβ是用户自定义的系数, e 1 ij 是边的基本代价, e是线网 N i 的边, BD i 是第 i个总线的线长偏差, P cost 是线网 N i 的引脚数, q是第 i个总线 B i 的信号数。 Wherein, α and β are coefficients user-defined, e 1 ij is the edge of the basic cost of, e is edge nets N i a, BD i is the i-th line length deviations bus, P cost is net N i of The number of pins, q is the signal number of the i- th bus B i.
进一步的,所述最小化通孔的层分配算法具体为:Further, the layer allocation algorithm for minimizing through holes is specifically:
(1)使用深度优先搜索(DFS)对线网进行预处理,将出现环路2D布线结果进行拆环,从而转化成一棵布线树;(1) Use depth-first search (DFS) to pre-process the wire network, and disassemble the loop 2D wiring results, thereby transforming them into a wiring tree;
(2)随机选择一个节点作为根节点,再使用深度优先搜索形成一个有向图,得到了动态规划下所有边的层分配顺序;(2) Randomly select a node as the root node, and then use depth-first search to form a directed graph, and obtain the layer assignment order of all edges under dynamic programming;
(3)根据有向图边的层分配顺序的逆序,得到了节点的遍历顺序;(3) According to the reverse order of the layer assignment order of the edges of the directed graph, the traversal order of the nodes is obtained;
(4)遍历节点父边的所有分配情况,计算该节点的最小通孔数,确定该节点的父边应放置的层;(4) Traverse all the distribution of the parent edge of the node, calculate the minimum number of through holes of the node, and determine the layer where the parent edge of the node should be placed;
(5)回溯所有节点的父节点所在层,构建最终的层分配结果。(5) Go back to the layer where the parent node of all nodes is located, and construct the final layer assignment result.
进一步的,所述基于查找表的层调整策略包括层数限制的层调整策略和层数不限制的层调整策略。Further, the layer adjustment strategy based on the lookup table includes a layer adjustment strategy with a limit on the number of layers and a layer adjustment strategy with no limit on the number of layers.
进一步的,所述层数限制的层调整策略具体为:Further, the layer adjustment strategy of the layer number restriction is specifically:
(1)从偏差查找表找出需要调整的汇引脚;(1) Find out the sink pins that need to be adjusted from the deviation lookup table;
(2)遍历源引脚到需要调整的汇引脚的边,找到一个度数大于1的节点;(2) Traverse the edge of the source pin to the sink pin that needs to be adjusted, and find a node with a degree greater than 1;
(3)计算该节点某个信号放置的最大层号、最小层号以及附近边所使用的通孔数;(3) Calculate the maximum layer number, minimum layer number and the number of through holes used by nearby edges of a signal of the node;
(4)在最小层号与最大层号之间移动所连接的边,保证其通孔数不会超过原通孔数;(4) Move the connected edge between the smallest layer number and the largest layer number to ensure that the number of through holes does not exceed the original number of through holes;
(5)选择偏差最小的层,将边调整到该层。(5) Select the layer with the smallest deviation and adjust the edges to this layer.
进一步的,所述层数不限制的层调整策略,具体为:Further, the layer adjustment strategy with no limit on the number of layers is specifically:
(1)基于线网的2D布线拓扑,以源引脚作为根节点,使用深度优先搜索生成一个有向图;(1) A 2D wiring topology based on the wire network, with the source pin as the root node, and using depth-first search to generate a directed graph;
(2)根据该线网的2D布线线长,对每个汇引脚进行排序,顺序按线长从小到大;(2) According to the 2D wiring length of the wire net, sort each sink pin, the order is from small to large in line length;
(3)对某个汇引脚到源引脚经过的边逐次进行层调整,设定未调整前的层为原层,调整后的层为新层;(3) Adjust the layers successively on the edge that a certain sink pin passes through to the source pin. Set the unadjusted layer as the original layer and the adjusted layer as the new layer;
(4)通过偏差查找表计算与最大信号位之间的偏差,计算所需的通孔数; (4) Calculate the deviation from the maximum signal position through the deviation look-up table, and calculate the required number of through holes;
(5)找到一个调整的新层;若新层有多余的布线资源,其可以直接将其调整到该新层上,然后将原层上的边删除并更新该节点所在通孔,使其保持连通性;若新层已经没有多余布线资源的情况,为了防止溢出,则选择新层上线网的边调整到原层上,再将边调整到新层上,最后调整两条边的通孔情况,使其保持连通性。(5) Find an adjusted new layer; if the new layer has redundant wiring resources, it can directly adjust it to the new layer, then delete the edge on the original layer and update the through hole where the node is located to keep it Connectivity; if the new layer has no redundant wiring resources, in order to prevent overflow, select the edge of the network on the new layer to adjust to the original layer, then adjust the edge to the new layer, and finally adjust the through holes of the two edges To maintain connectivity.
(6)更新整个偏差查找表,以保证偏差查找表的准确性。(6) Update the entire deviation lookup table to ensure the accuracy of the deviation lookup table.
进一步的,所述总线最大时序优化算法具体为:Further, the bus maximum timing optimization algorithm is specifically:
(1)计算每个总线的线长偏差;(1) Calculate the line length deviation of each bus;
(2)对其按照总线线长偏差从大到小进行排序;(2) Sort them according to the bus line length deviation from large to small;
(3)将非总线资源占用的布线资源让给总线线网;(3) Transfer the wiring resources occupied by non-bus resources to the bus line network;
(4)将当前的总线线网使用无溢出约束的层分配;(4) The current bus line network uses the layer allocation without overflow constraints;
(5)如果新的层分配结果的总线偏差优于原来的总线线长偏差,那么该层分配结果将代替原有的层分配结果。(5) If the bus deviation of the new layer allocation result is better than the original bus line length deviation, then the layer allocation result will replace the original layer allocation result.
有益效果Beneficial effect
本发明与现有技术相比具有以下有益效果:Compared with the prior art, the present invention has the following beneficial effects:
本发明在保证产生较少通孔数量的前提下,合理地利用通孔对时序的影响,最小化总线线长偏差,从而有效地优化总线时序紊乱的问题。On the premise of ensuring that a small number of through holes are generated, the present invention makes reasonable use of the influence of through holes on the timing to minimize the deviation of the bus line length, thereby effectively optimizing the problem of bus timing disorder.
附图说明Description of the drawings
图1 是本发明一实施例中总体布线模型 (a) 总体布线结构图,(b)总体布线网格图;Figure 1 is an overall wiring model in an embodiment of the present invention (a) overall wiring structure diagram, (b) overall wiring grid diagram;
图2 是本发明一实施例中一个有3个引脚的线网的2.5D总线布线流程 (a)3D布线结构,(b)2D布线结构,(c)2D布线结果,(d)层分配;Figure 2 is a 2.5D bus wiring process with a 3-pin wire net in an embodiment of the present invention (a) 3D wiring structure, (b) 2D wiring structure, (c) 2D wiring results, (d) layer allocation ;
图3 是本发明一实施例中一个由2个5引脚总线线网组成的总线;Figure 3 is a bus composed of two 5-pin bus wire nets in an embodiment of the present invention;
图4 是本发明的方法流程图;Figure 4 is a flow chart of the method of the present invention;
图5 是本发明一实施例中最小化通孔的层分配方法 (a)2D布线结果,(b)预处理后的2D布线结果,(c)深度优先搜索形成的有向图,(d)层调整的顺序,(e)边 e 10的层分配结果; Figure 5 is a layer allocation method for minimizing vias in an embodiment of the present invention (a) 2D wiring result, (b) 2D wiring result after preprocessing, (c) directed graph formed by depth-first search, (d) The sequence of layer adjustment, (e) the layer allocation result of side e 10;
图6 是本发明一实施例中层数限制的层调整策略(a)边 e 1 层调整前,(b)边 e 1 层调整后; Figure 6 is a layer adjustment strategy for layer number limitation in an embodiment of the present invention (a) side e 1 before layer adjustment, (b) side e 1 after layer adjustment;
图7 是本发明一实施例中层数不限制的层调整策略的算法;FIG. 7 is an algorithm of a layer adjustment strategy with no limit on the number of layers in an embodiment of the present invention;
图8 是本发明一实施例中层数不限制的层调整策略 (a)2D布线结果,(b)深度优先搜索形成的有向图,(c)层调整顺序,(d)边 e 5和边 e 10层调整; Figure 8 is a layer adjustment strategy with unlimited number of layers in an embodiment of the present invention (a) 2D wiring results, (b) directed graph formed by depth-first search, (c) layer adjustment order, (d) side e 5 and Side e 10 layer adjustment;
图9 是总线最大时序优化算法。Figure 9 is the bus maximum timing optimization algorithm.
本发明的实施方式Embodiments of the present invention
下面结合附图及实施例对本发明做进一步说明。The present invention will be further described below in conjunction with the drawings and embodiments.
  请参照图4,本发明提供一种考虑总线和非总线线网的层分配方法,包括以下步骤:Referring to Fig. 4, the present invention provides a layer allocation method considering bus and non-bus line network, including the following steps:
  步骤S1:考虑线长和引脚数的启发式代价函数,决定第一阶段线网的层分配顺序;Step S1: Consider the heuristic cost function of the line length and the number of pins, and determine the layer allocation order of the first stage line network;
  步骤S2:基于最小化通孔的层分配算法进行通孔最小化层分配,得到初始层分配结果;Step S2: Perform through-hole minimization layer assignment based on the through-hole minimization layer assignment algorithm, and obtain the initial layer assignment result;
  步骤S3:基于初始层分配结果,构建偏差查找表;Step S3: Build a deviation lookup table based on the initial layer allocation result;
  步骤S4:根据偏差查找表,将存在偏差的总线线网和所有非总线线网全部拆除;Step S4: According to the deviation look-up table, remove all the deviation bus line nets and all non-bus line nets;
步骤S5:考虑线长、引脚数、信号数和总线线长偏差四个要素组合的启发式代价函数,确定第二阶段线网的层分配顺序;Step S5: Consider the heuristic cost function combining the four elements of line length, pin number, signal number, and bus line length deviation, and determine the layer allocation sequence of the second-stage line network;
  步骤S6:基于最小化通孔的层分配算法进行通孔最小化层分配,得到层分配结果;Step S6: Perform through-hole minimization layer assignment based on the through-hole minimization layer assignment algorithm, and obtain the layer assignment result;
  步骤S7:采用总线线网应用总线最大时序优化算法,优化总线线长偏差,得到优化后的层分配结果;Step S7: Use the bus line network application bus maximum timing optimization algorithm to optimize the bus line length deviation, and obtain the optimized layer assignment result;
  步骤S8:判断是否存在总线线长偏差,若无偏差则输出优化后的层分配结果,并作为最终层分配结果;若有偏差,则一种基于基于查找表的层调整策略进行调整,得到最终层分配结果。Step S8: Determine whether there is a deviation of the bus line length. If there is no deviation, output the optimized layer allocation result and use it as the final layer allocation result; if there is a deviation, adjust a layer adjustment strategy based on a lookup table to obtain the final Layer allocation result.
   在本实施例中,在超大规模集成电路物理设计布线阶段中,芯片的布线区域分布在多个金属层,总体布线通常将每个金属层分成若干个大小相同的矩形,每个矩形被称为 G-Cell,如图1中(a)所示。因此,在总体布线阶段, K层的布线区域通常用网格图 G k = ( V k, E k )表示,其中节点 v k i V k 代表布线单元, e k ij E k 代表相邻布线单元对( v k i , v k j )的连接边。 E k 由两部分组成,分别是布线资源边 E k e 和通孔资源边 E k v 。其中每条布线资源边 e k ij E k e 表示其连接的布线单元对( v k i , v k j )位于同一层,而每条通孔资源边 e k ij E k v 代表其连接布线单元对( v k i , v k i )位于不同层。如图1中(b)给出了一个包括4层金属层,且每层金属层被划分为33个 G-Cell的总体布线模型。除此之外,每个金属层只有一个偏好方向,相邻金属层通过通孔连接。 In this embodiment, in the VLSI physical design and wiring stage, the wiring area of the chip is distributed in multiple metal layers. The overall wiring usually divides each metal layer into several rectangles of the same size, and each rectangle is called G-Cell , as shown in Figure 1 (a). Therefore, in the overall wiring stage, the wiring area of the K layer is usually represented by a grid graph G k = ( V k , E k ), where the node v k i V k represents the wiring unit, and e k ij E k represents the adjacent The connecting edge of the wiring unit pair ( v k i , v k j ). E k is composed of two parts, namely routing resource edge E k e and through-hole resource edge E k v . Each wiring resource edge e k ij E k e indicates that the connected wiring unit pair ( v k i , v k j ) is located in the same layer, and each through-hole resource edge e k ij E k v represents its connection The wiring unit pairs ( v k i , v k ' i ) are located on different layers. Figure 1 (b) shows an overall wiring model including 4 metal layers, and each metal layer is divided into 33 G-Cells. In addition, each metal layer has only one preferred direction, and adjacent metal layers are connected through vias.
层分配是2.5D总体布线的最后阶段。所谓的2.5D布线:首先,它将多层的布线资源和引脚等信息映射到2D平面上,如图2中(b)所示;然后,在2D平面上完成2D布线,如图2中(c)所示;最后,使用层分配将所有的边指定到各个层上,如图2中(d)所示。因此,层分配的任务是将2D布线结果的每条边分配到合适的金属层上,以获得最终的3D布线结果。因此,我们假设 G k = ( V k , E k )的2D模型以 G 1 = ( V 1 , E 1 )表示,其中节点 v 1 i V 1 代表2D平面上的布线网格单元, e 1 ij E 1 代表2D平面上相邻布线网格单元对( v 1 i , v 1 j )的连接边。假设 S 1 代表 G 1 = ( V 1 , E 1 )的2D布线结果,假设 S k 表示 G k = ( V k, E k )上的3D总体布线结果。图2中(d)就是图2中(c)的一个层分配结果。 Layer allocation is the final stage of 2.5D overall wiring. The so-called 2.5D wiring: First, it maps the multi-layer wiring resources and pins to the 2D plane, as shown in Figure 2 (b); then, completes the 2D wiring on the 2D plane, as shown in Figure 2. As shown in (c); finally, use layer assignment to assign all edges to each layer, as shown in Figure 2 (d). Therefore, the task of layer allocation is to allocate each side of the 2D wiring result to a suitable metal layer to obtain the final 3D wiring result. Therefore, we assume that the 2D model of G k = ( V k , E k ) is represented by G 1 = ( V 1 , E 1 ), where node v 1 i V 1 represents the wiring grid unit on the 2D plane, e 1 ij E 1 represents the connecting edges of adjacent wiring grid cell pairs ( v 1 i , v 1 j) on the 2D plane. Assume that S 1 represents the 2D wiring result of G 1 = ( V 1 , E 1 ), and assume that S k represents the 3D overall wiring result of G k = ( V k , E k ). Figure 2 (d) is the result of a layer allocation in Figure 2 (c).
  在网格图 G k = ( V k, E k )上,网格边的容量即 c( e k ij )代表第 k层上相邻 G-Cell k i G-Cell k j 之间可用的布线轨道的数量,而 d( e k ij )则表示实际已使用的布线轨道数量。当实际已使用的轨道数量超过可用的轨道数量时,则发生边溢出,即 o( e k ij )。因此,根据 d( e k ij )和 c( e k ij )可得到边的溢出量,边溢出计算公式如下所示: FIG on the grid G k = (V k, E k), i.e. the capacity of mesh edges c (e k ij) representative of the k-th layer between G-Cell k i G-Cell k j and the adjacent available The number of wiring tracks, and d ( e k ij ) represents the number of wiring tracks actually used. When the number of tracks actually used exceeds the number of tracks available, edge overflow occurs, that is, o ( e k ij ). Therefore, according to d ( e k ij ) and c ( e k ij ), the overflow amount of the edge can be obtained, and the calculation formula for edge overflow is as follows:
Figure 393089dest_path_image003
(1)
Figure 393089dest_path_image003
(1)
2D网格图 G 1 = ( V 1 , E 1 )是 G k = ( V k, E k )在2D平面上的投影,其网格边的容量 c( e 1 ij )代表的是1 ~ K层上所有 G-Cell k i G-Cell k j c( e k ij )之和,同理, d( e 1 ij )也代表是1 ~ K层上所有 d( e k ij )之和。因此,其2D网格图上边溢出数量 o( e 1 ij )的计算公式如下所示: The 2D grid graph G 1 = ( V 1 , E 1 ) is the projection of G k = ( V k , E k ) on the 2D plane, and the grid edge capacity c ( e 1 ij ) represents 1 ~ K The sum of c ( e k ij ) of all G-Cell k i and G-Cell k j on the layer. Similarly, d ( e 1 ij ) also represents the sum of all d ( e k ij ) on the 1 ~ K layer . Therefore, the calculation formula for the overflow quantity o ( e 1 ij ) on the 2D grid graph is as follows:
Figure 543447dest_path_image004
(2)
Figure 543447dest_path_image004
(2)
对于总线( B i )而言,其有 r位信号和 q个总线引脚组( PG i )。其中,1个总线引脚组为源引脚组( PG i 0 ), q-1个总线引脚组为汇引脚组( PG i j )。为了满足时序的一致,必须尽可能使在源引脚的每一个位信号传输到汇引脚组的时间尽可能相同,即源引脚组和汇引脚组之间的所有引脚对的长度相等。因此,在总体布线阶段,总线可以当作是 q个总线线网( BN i )的组合,每个总线线网就是总线的一位信号,所有总线线网的引脚( BNP j )组成了总线的引脚组。当两个总线引脚组之间的总线线网引脚对的长度不一致时,则发生了总线线长偏差。总线线长偏差计算定义如下: For the bus ( B i ), there are r -bit signals and q bus pin groups ( PG i ). Among them, one bus pin group is a source pin group ( PG i 0 ), and q-1 bus pin groups are a sink pin group ( PG i j ). In order to meet the consistency of the timing, it is necessary to make the time for each bit signal at the source pin to be transmitted to the sink pin group as much as possible, that is, the length of all pin pairs between the source pin group and the sink pin group. equal. Therefore, in the overall wiring stage, the bus can be regarded as a combination of q bus wire nets ( BN i ), each bus wire net is a signal of the bus, and all the pins of the bus wire net ( BNP j ) form the bus Pin group. When the lengths of the bus wire net pin pairs between the two bus pin groups are inconsistent, a bus wire length deviation occurs. The bus line length deviation calculation is defined as follows:
Figure 869868dest_path_image005
(3)
Figure 869868dest_path_image005
(3)
其中 WPG i j<k> 是第 i个总线的源引脚组( PG i 0 )和第 j个汇引脚组( PG i j )之间第 k对引脚的线长,即第 i个总线中第 k个总线线网的源引脚到第 j个汇引脚的线长。 MWPG i j 是第 i个总线线网的 PG i 0 PG i j 之间所有引脚组中的最大线长。图3给出了2D平面上,一个有5个 PG的总线,其带有2个信号,即由2个总线线网组成。 Where WPG i j <k> is the line length of the k- th pair of pins between the source pin group ( PG i 0 ) of the i- th bus and the j- th sink pin group ( PG i j), that is, the i- th The line length from the source pin of the k- th bus net to the j- th sink pin in the bus. MWPG i j is the set of all of the pins between the PG i 0 i-bus line network and PG i j is the maximum line length. Figure 3 shows a bus with 5 PGs on a 2D plane with 2 signals, that is, it is composed of 2 bus lines.
G 1 = ( V 1 , E 1 )不存在通孔资源边 E k v 。但是,在 S 1 进行层分配以后,不同金属层之间通过通孔相连以保持连通性,即在 G k = ( V k , E k )上存在通孔资源边 E k v 。通孔的存在会影响线长以及芯片的制作成本,从而影响到时序。通孔对线长的影响计算公式如下: When G 1 = ( V 1 , E 1 ), there is no through-hole resource edge E k v . However, after dispensing the layers S 1 between the different metal layers are connected by vias to maintain connectivity, i.e., the presence of the through holes resources on edge E k v G k = (V k, E k). The existence of the through hole will affect the line length and the production cost of the chip, thereby affecting the timing. The calculation formula for the influence of the through hole on the line length is as follows:
Figure 131085dest_path_image006
(4)
Figure 131085dest_path_image006
(4)
其中 MN分别是单个金属层水平和垂直方向的 G-Cell数目, K是金属层的层数, V cost 是通孔的代价。 Where M and N are the number of G-Cells in the horizontal and vertical directions of a single metal layer , K is the number of metal layers, and V cost is the cost of through holes.
考虑总线和非总线线网的层分配问题可以描述为:给定总体布线图 G k = ( V k, E k ),2D布线网格图 G 1 = ( V 1 , E 1 ),每条边 e k ij E k 的通道容量 c( e k ij ),一个非总线线网集合 NB = { NB 1 , NB 2 , , NB m }和一个总线集合 B = { B 1 , B 2 , , B n },以及其在 G 1 = ( V 1 , E 1 )上的2D布线结果 S 1 = { SNB 1 1 , …, SNB 1 m , SBN 1 1 , …, SBN 1 z }。对于每个非总线线网 NB j NB1jm,给定其在 G 1 = ( V 1 , E 1 )上的2D布线结果 SNB 1 j 。对于每个总线 B i B,1≤ in,给定其信号的位数 q,每位信号可看成一个单独的总线线网 BN iB i = { BN i 1, BN i 2,…, BN i q },以及在 G 1 = ( V 1 , E 1 )上的2D布线结果 SBN 1 i Considering the layer assignment problem of bus and non-bus line network, it can be described as: given overall wiring diagram G k = ( V k , E k ), 2D wiring grid diagram G 1 = ( V 1 , E 1 ), each side e k ij E k channel capacity c ( e k ij ), a non-bus line network set NB = { NB 1 , NB 2 , , NB m } and a bus set B = { B 1 , B 2 , , B n }, and its 2D wiring result S 1 = { SNB 1 1 , …, SNB 1 m , SBN 1 1 , …, SBN 1 z } on G 1 = ( V 1 , E 1 ). For each non-bus network NB j NB , 1jm , given its 2D wiring result SNB 1 j on G 1 = ( V 1 , E 1 ). For each bus B i B , 1≤ in , given the number of bits q of its signal, each signal can be regarded as a separate bus line network BN i , B i = { BN i 1 , BN i 2 ,..., BN i q }, and the 2D wiring result SBN 1 i on G 1 = ( V 1 , E 1 ).
根据线网在 G 1 = ( V 1 , E 1 )上的 S 1 ,在保证其2D拓扑结果不变和溢出数 o( e 1 ij )不增加的前提下,将 S 1 的每条边分配给 G k = ( V k, E k )的相应层上,并保证通过通孔将其所有的引脚连接起来,得到最终的3D的布线结果 S k = { SNB k 1 , …, SNB k m , SBN k 1 , …, SBN k z }。 According to the S 1 of the line network on G 1 = ( V 1 , E 1 ), under the premise that the 2D topology result remains unchanged and the overflow number o ( e 1 ij ) does not increase, each edge of S 1 is allocated Give G k = ( V k , E k ) to the corresponding layer, and ensure that all its pins are connected through through holes to obtain the final 3D wiring result S k = { SNB k 1 , …, SNB k m , SBN k 1 , …, SBN k z }.
在本实施例中,针对不同的优化目标,对于每个线网 NB j BN i ,需要计算其层分配的优先级。优先级由线长、引脚数、总线线长偏差以及信号数四个要素决定。理由如下:(1)线长: S 1 的线长越长,其需要占用越多的布线资源,造成比较好的布线资源利用率低。另外,线长越长,其遇见布线资源耗竭而需要进行换层的情况概率越大,出现拐弯的概率也越大,即使使用最好的布线资源,本身也会产生很多的通孔。因此,线长较大的线网倾向于后处理。(2)引脚数:因为具有较多引脚的线网需要频繁地连接引脚,它们的最佳布线选择方案减少,所以往往会产生较多的通孔数。若它们优先级较低,则会产生大量不必要的通孔。因此,引脚较多的线网往往先处理。(3)总线线长偏差: B i 中每个信号的线网偏差越大,越需要优先处理,从而能获得较短的线长。(4)信号数: B i 的信号数越多,其布线资源竞争越激烈,需要先占据较好的布线资源,否则总线线长偏差越严重。因此,信号越多的总线越需要优先处理。线长和引脚数因素更容易影响到通孔数,而总线线长偏差和信号数因素是为了控制总线线网的优先级。 In this embodiment, for different optimization goals, for each network NB j and BN i , it is necessary to calculate the priority of its layer allocation. The priority is determined by the four elements of line length, number of pins, bus line length deviation and the number of signals. The reasons are as follows: (1) Wire length: The longer the wire length of S 1 is, the more wiring resources it needs to occupy, resulting in low utilization of better wiring resources. In addition, the longer the wire length, the greater the probability that it will encounter the exhaustion of wiring resources and the need to change layers, and the greater the probability of turning. Even if the best wiring resources are used, many through holes will be generated. Therefore, wire nets with larger wire lengths tend to be post-processed. (2) Number of pins: Because wire nets with more pins need to connect pins frequently, their optimal wiring options are reduced, so more through holes are often produced. If they have a lower priority, a large number of unnecessary vias will be generated. Therefore, wire nets with more pins are often processed first. (3) Bus line length deviation: The larger the line network deviation of each signal in B i is, the more priority it needs to be processed, so that a shorter line length can be obtained. (4) Number of signals: The more signals of B i , the fiercer the competition for wiring resources, and better wiring resources need to be occupied first, otherwise the deviation of the bus line length will be more serious. Therefore, the bus with more signals needs priority processing. The line length and the number of pins are more likely to affect the number of through holes, and the bus line length deviation and signal number factors are to control the priority of the bus line network.
第一阶段的层分配的目的是获得较少的通孔数。因此,第一阶段线网的层分配优先级只需评估引脚数和线长,优先级P1的计算公式如下:The purpose of layer allocation in the first stage is to obtain a smaller number of through holes. Therefore, the first stage of the layer allocation priority of the line network only needs to evaluate the number of pins and the line length, and the calculation formula of the priority P1 is as follows:
Figure 862281dest_path_image001
(5)
Figure 862281dest_path_image001
(5)
其中, P cost N i 的引脚数, e 1 ij 是边的基本代价, e是线网 N i 的边。 Wherein, P cost N i is the number of pins, e 1 ij is the basic cost of the edge, e is the edge of the net N i.
第二阶段的层分配的目的是通过合理地利用通孔来优化总线线长偏差,以在获得较少的线长偏差的同时不产生过多的通孔,优先级 P2的计算公式如下: The purpose of layer allocation in the second stage is to optimize the bus line length deviation by rationally using through holes, so as to obtain less line length deviation without generating too many through holes. The calculation formula of priority P 2 is as follows:
Figure 714699dest_path_image002
(6)
Figure 714699dest_path_image002
(6)
其中, αβ是用户自定义的系数, e 1 ij 是边的基本代价, e是线网 N i 的边, BD i 是第 i个总线的线长偏差, P cost 是线网 N i 的引脚数, q是第 i个总线 B i 的信号数。 Wherein, α and β are coefficients user-defined, e 1 ij is the edge of the basic cost of, e is edge nets N i a, BD i is the i-th line length deviations bus, P cost is net N i of The number of pins, q is the signal number of the i- th bus B i.
在本实施例中,最小化通孔的层分配算法的目的是为当前线网获得一个通孔数最小化的层分配结果。该算法的基本思想是:根据当前的通道容量情况,在不违反边溢出的约束的前提下,基于动态规划,一条边一条边地进行层分配,最后选择通孔数最少的层分配方案作为最终的层分配结果。具体为:In this embodiment, the purpose of the layer allocation algorithm for minimizing through holes is to obtain a layer allocation result with a minimum number of through holes for the current network. The basic idea of the algorithm is: according to the current channel capacity, without violating the constraint of edge overflow, based on dynamic programming, layer allocation is performed side by side, and finally the layer allocation scheme with the least number of through holes is selected as the final The result of the layer assignment. Specifically:
(1)使用深度优先搜索(DFS)对线网进行预处理,将出现环路2D布线结果进行拆环,从而转化成一棵布线树;(1) Use depth-first search (DFS) to pre-process the wire network, and disassemble the loop 2D wiring results, thereby transforming them into a wiring tree;
(2)随机选择一个节点作为根节点,再使用深度优先搜索形成一个有向图,得到了动态规划下所有边的层分配顺序;(2) Randomly select a node as the root node, and then use depth-first search to form a directed graph, and obtain the layer assignment order of all edges under dynamic programming;
(3)根据有向图边的层分配顺序的逆序,得到了节点的遍历顺序;(3) According to the reverse order of the layer assignment order of the edges of the directed graph, the traversal order of the nodes is obtained;
(4)遍历节点父边的所有分配情况,计算该节点的最小通孔数,确定该节点的父边应放置的层;(4) Traverse all the distribution of the parent edge of the node, calculate the minimum number of through holes of the node, and determine the layer where the parent edge of the node should be placed;
(5)回溯所有节点的父节点所在层,构建最终的层分配结果。下述的例子用来解释说明最小化通孔的层分配算法。(5) Go back to the layer where the parent node of all nodes is located, and construct the final layer assignment result. The following example is used to explain the layer assignment algorithm for minimizing vias.
对于每棵布线树而言,其由3种节点组成:根节点(RN)、叶节点(L( V 1 i ))、中间节点(MN( V 1 i ))。如图5中(c)所示, E是根节点, AD是叶节点, CB是中间节点。对于每个节点 V 1 i V 1 ,它有两种子节点 ch_v( V 1 i )和父节点 pa_v( V 1 i )。假设连接其子节点的边称为子边 ch_e( V 1 i ),连接其父节点的边称为父边 pa_e( V 1 i )。如图5(d), v 9的父节点是 v 10,子节点是 v 4v 5v 9的父边是 e 3,子边是 e 4e 7。因此,每个节点 Via( V 1 i )的通孔数需要连接3类物件,分别是连接其所有子节点 pa_e( ch_v( V 1 i ))父边的通孔、连接其父边 pa_e( V 1 i )的通孔以及连接自身引脚的通孔。除此之外,需要每个节点都需要记录其父边的最佳层号 ml( V 1 i )以及 V 1 i 作为根节点的子树的最小通孔数 mv( V 1 i )。 mv( V 1 i )的计算公式如下: For each wiring tree, it consists of three types of nodes: root node (RN), leaf node (L( V 1 i )), and intermediate node (MN( V 1 i )). As shown in Figure 5 (c), E is the root node, A and D are leaf nodes, and C and B are intermediate nodes. For each node V 1 i V 1 , it has two kinds of child nodes ch_v ( V 1 i ) and parent nodes pa_v ( V 1 i ). Assume that the edge connecting its child node is called the child edge ch_e ( V 1 i ), and the edge connecting its parent node is called the parent edge pa_e ( V 1 i ). As shown in Figure 5(d), the parent node of v 9 is v 10 , and the child nodes are v 4 and v 5 . The parent side of v 9 is e 3 , and the child sides are e 4 and e 7 . Therefore, the number of through holes for each node Via ( V 1 i ) needs to be connected to three types of objects, which are the through holes that connect all of its child nodes pa_e ( ch_v ( V 1 i )) and the parent side pa_e ( V 1 i ) through holes and through holes connected to its own pins. In addition, each node needs to record the best layer number ml ( V 1 i ) of its parent edge and the minimum number of through holes mv ( V 1 i ) of the subtree with V 1 i as the root node. The calculation formula of mv ( V 1 i ) is as follows:
Figure 124821dest_path_image007
(7)
Figure 124821dest_path_image007
(7)
其中, K是最大的层数, k是当前节点的父边所在的层号, Via( V 1 i )是当前节点的通孔数。 Among them, K is the maximum number of layers, k is the number of the layer where the parent edge of the current node is located, and Via ( V 1 i ) is the number of through holes of the current node.
给定一个有5个引脚的线网,其2D布线结果存在环路,如图5中(a)所示。首先,使用深度优先搜索(DFS)将其拆环,得到一颗布线树,如图5中(b)所示;其次,选择节点 E作为该布线树的根节点,并对其使用深度优先搜索,得到一个有向图,如图5中(c)所示;然后,根据有向图的逆序,得到其所有的节点的遍历顺序,如图5中(d)所示;接着,计算所有节点的 mv( V 1 i )和 ml( V 1 i )值,以节点 v 9为例。已知 mv( v 4) = 3以及 mv( v 5) = 1,其父边 e 10可以分配到金属层4或者金属层2。当 ml( v 9) = 4时,如图5(e-1), mv( v 9) = mv( v 5) + mv( v 4) + Via( v 9) = 1 + 3 + 3 = 7;当 ml( V 1 i ) = 2时,如图5(e-2), mv( v 9) = mv( v 5) + mv( v 4) + Via( v 9) = 1 + 3 + 1 = 5,由此可得 ml( v 9) = 2;最后根据所有 ml( V 1 i )的值,为当前线网构建一个通孔数最少的层分配结果。 Given a wire net with 5 pins, the 2D wiring results have loops, as shown in Figure 5 (a). First, use depth-first search (DFS) to disassemble the loop to obtain a wiring tree, as shown in Figure 5 (b); secondly, select node E as the root node of the wiring tree, and use depth-first search for it , Get a directed graph, as shown in Figure 5 (c); then, according to the reverse order of the directed graph, get the traversal order of all its nodes, as shown in Figure 5 (d); then, calculate all nodes The mv ( V 1 i ) and ml ( V 1 i ) values of, take node v 9 as an example. Given that mv ( v 4 ) = 3 and mv ( v 5 ) = 1, the parent edge e 10 can be allocated to metal layer 4 or metal layer 2. When ml ( v 9 ) = 4, as shown in Figure 5(e-1), mv ( v 9 ) = mv ( v 5 ) + mv ( v 4 ) + Via ( v 9 ) = 1 + 3 + 3 = 7 ; When ml ( V 1 i ) = 2, as shown in Figure 5(e-2), mv ( v 9 ) = mv ( v 5 ) + mv ( v 4 ) + Via ( v 9 ) = 1 + 3 + 1 = 5, so ml ( v 9 ) = 2 can be obtained; finally, according to all ml ( V 1 i ) values, construct a layer assignment result with the least number of through holes for the current net.
在本实施例中,所述基于查找表的层调整策略包括层数限制的层调整策略和层数不限制的层调整策略。In this embodiment, the layer adjustment strategy based on the lookup table includes a layer adjustment strategy with a limit on the number of layers and a layer adjustment strategy with no limit on the number of layers.
所述层数限制的层调整策略目的是在不增加额外通孔的前提下,根据偏差查找表调整总线内源引脚到汇引脚线长较短的总线线网所在层,使得总线线长偏差减少;具体为:The purpose of the layer adjustment strategy of the layer limit is to adjust the layer of the bus line network with the shorter line length from the source pin to the sink pin in the bus according to the deviation look-up table without adding additional vias, so that the bus line is longer The deviation is reduced; specifically:
(1)从偏差查找表找出需要调整的汇引脚;(1) Find out the sink pins that need to be adjusted from the deviation lookup table;
(2)遍历源引脚到需要调整的汇引脚的边,找到一个度数大于1的节点;(2) Traverse the edge of the source pin to the sink pin that needs to be adjusted, and find a node with a degree greater than 1;
(3)计算该节点某个信号放置的最大层号、最小层号以及附近边所使用的通孔数;(3) Calculate the maximum layer number, minimum layer number and the number of through holes used by nearby edges of a signal of the node;
(4)在最小层号与最大层号之间移动所连接的边,保证其通孔数不会超过原通孔数;(4) Move the connected edge between the smallest layer number and the largest layer number to ensure that the number of through holes does not exceed the original number of through holes;
(5)选择偏差最小的层,将边调整到该层。(5) Select the layer with the smallest deviation and adjust the edges to this layer.
所调整的层应满足以下约束:a.不会违反溢出约束;b.需要的通孔数不会超过原通孔数。下述的例子用来解释说明层数限制的层调整策略。The adjusted layer should meet the following constraints: a. The overflow constraint will not be violated; b. The number of through holes required will not exceed the original number of through holes. The following example is used to explain the layer adjustment strategy of the layer limit.
对于一个信号数是2位的总线而言,如图6所示,其有1个源引脚和2个汇引脚,需要分配三条边 e 1 e 2 e 3 。由于我们使用最小化通孔数的层分配以最小化通孔数为优化目标,如果我们先对红色信号1进行层分配时,它为了得到最少的通孔数,源引脚与汇引脚1所连接的边 e 1 会分配到金属层1,需要1个通孔。因为如果 e 1 被分配到金属层3,那么它会需要3个通孔。另外,我们在放置 e 2 e 3 到金属层4上。由于第一层布线资源的耗竭,我们对蓝色信号2进行层分配时,它的 e 1 只能放置在金属层3,如图6中(a)所示。因为红色信号1和蓝色信号2从源引脚到汇引脚1两者之间的线长不一致,导致了其出现了时序不匹配。如果我们对红色信号1使用层数限制的层调整技术,首先,我们从偏差查找表发现,源引脚到汇引脚1存在总线线长偏差;其次,找到一个度数为2的节点;然后,计算出该节点上红色信号1所使用的最大层号是4,最小层号是1,源引脚到汇引脚1的原通孔数为4;接着,让连接的边 e 1 在金属层1到金属层4之间移动;最后,计算得 e 1 移动到金属层3比在金属层1的总线线长偏差更小,且不会违反溢出约束和通孔数约束。层调整后的结果如图6中(b)所示。 For a bus with a signal number of 2 bits, as shown in Figure 6, it has 1 source pin and 2 sink pins, and three sides e 1 , e 2 and e 3 need to be allocated. Since we use the layer assignment to minimize the number of through-holes to minimize the number of through-holes as the optimization goal, if we first assign the red signal 1 to the layer, in order to get the least number of through-holes, the source pin and sink pin 1 The connected edge e 1 will be allocated to the metal layer 1, and a through hole is required. Because if e 1 is allocated to metal layer 3, then it will need 3 vias. In addition, we are placing e 2 and e 3 on the metal layer 4. Due to the exhaustion of the wiring resources of the first layer, when we allocate the layers of the blue signal 2, its e 1 can only be placed on the metal layer 3, as shown in Figure 6 (a). Because the line length between the red signal 1 and the blue signal 2 from the source pin to the sink pin 1 is inconsistent, a timing mismatch occurs. If we use the layer adjustment technology of the layer number limit for the red signal 1, first, we find from the deviation lookup table that there is a bus line length deviation from the source pin to the sink pin 1. Second, find a node with a degree of 2; then, It is calculated that the largest layer number used by the red signal 1 on the node is 4, the smallest layer number is 1, and the number of original vias from the source pin to the sink pin 1 is 4; then, let the connected edge e 1 be on the metal layer Move from 1 to metal layer 4; finally, it is calculated that e 1 moves to metal layer 3 with a smaller deviation of the bus line length than metal layer 1, and does not violate the overflow constraint and the number of vias. The result of layer adjustment is shown in Figure 6(b).
所述层数不限制的层调整策略目的是通过利用通孔对时序的影响,以优化总线时序紊乱严重的信号,通过增加一定额度的通孔以换取较多的总线线长偏差优化。如图7所示,所述层数不限制的层调整策略具体为:The purpose of the layer adjustment strategy with no limit on the number of layers is to optimize the signal with serious bus timing disorder by using the influence of the vias on the timing, and to optimize the bus line length deviation by adding a certain amount of vias. As shown in Fig. 7, the layer adjustment strategy with no limit on the number of layers is specifically:
(1)基于线网的2D布线拓扑,以源引脚作为根节点,使用深度优先搜索生成一个有向图;(1) A 2D wiring topology based on the wire net, with the source pin as the root node, using depth-first search to generate a directed graph;
(2)根据该线网的2D布线线长,对每个汇引脚进行排序,顺序按线长从小到大;(2) According to the 2D wiring length of the wire net, sort each sink pin, and the order is from small to large in line length;
(3)对某个汇引脚到源引脚经过的边进行层调整,设定未调整前的层为原层,调整后的层为新层;(3) Perform layer adjustment on the edge that a certain sink pin passes through to the source pin. Set the unadjusted layer as the original layer and the adjusted layer as the new layer;
(4)通过偏差查找表计算与最大信号位之间的偏差,计算所需的通孔数; (4) Calculate the deviation from the maximum signal position through the deviation look-up table, and calculate the required number of through holes;
(5)随机找到一个调整的新层:若新层有多余的布线资源,其可以直接将其调整到该新层上,然后将原层上的边删除并更新该节点所在通孔,使其保持连通性;若新层已经没有多余布线资源的情况,为了防止溢出,则选择新层上线网的边调整到原层上,再将边调整到新层上,最后调整两条边的通孔情况,使其保持连通性。(5) Randomly find an adjusted new layer: if the new layer has redundant wiring resources, it can directly adjust it to the new layer, and then delete the edges on the original layer and update the through hole where the node is located. Maintain connectivity; if the new layer has no redundant wiring resources, in order to prevent overflow, select the edge of the network on the new layer to adjust to the original layer, then adjust the edge to the new layer, and finally adjust the through holes of the two edges Circumstance, so that it maintains connectivity.
在本实施例中,选择的需要换的线网方式如下:1)如果新层上有非总线线网,那么选择非总线线网;2)如果新层上只有总线线网,那么选择未调整过的总线线网;3)其他情况,不调整。In this embodiment, the method of selecting the line network to be changed is as follows: 1) If there is a non-bus line network on the new layer, then select the non-bus line network; 2) If there is only a bus line network on the new layer, then select Unadjusted 3) Other conditions, no adjustment.
(6)更新整个偏差查找表,以保证偏差查找表的准确性。(6) Update the entire deviation lookup table to ensure the accuracy of the deviation lookup table.
该策略停止的条件是当调整的通孔数小于其用户自定义的阈值或者已经将所有的边已调整。下述的例子用来解释说明层数限制的层调整技术。The condition for this strategy to stop is when the adjusted number of through holes is less than its user-defined threshold or all edges have been adjusted. The following example is used to explain the layer adjustment technique of the layer limit.
给定一个有5个引脚的线网,其2D布线结果如图8(a)所示。对于总线线网,假设 E是源引脚,我们会选择源引脚 E作为深度优先搜索的根节点,根据深度优先搜索遍历的方向,我们会得到一个如图8(b)所示的2D布线有向图;接着,根据2D布线图上汇引脚到源引脚的长度,我们得到了汇引脚的调整顺序: C D B A。换句话说,我们先调整汇引脚 C到源引脚 E之间所有边,即 e 1 e 2 e 3。其他汇引脚同理可得,最终得到如图8(c)的层调整顺序。最后,根据公式8计算需要的通孔数,按照边的层调整顺序进行调整。如图8(d-2)就是左图通过调整图8(d-1)中的 e 5e 10得到的层调整结果。需要的通孔数的计算公式如下: Given a wire net with 5 pins, the 2D wiring results are shown in Figure 8(a). For the bus line network, assuming E is the source pin, we will select the source pin E as the root node of the depth-first search. According to the direction of the depth-first search traversal, we will get a 2D wiring as shown in Figure 8(b) Directed graph; Next, according to the length of the sink pin to the source pin on the 2D wiring diagram, we get the adjustment sequence of the sink pin: C D B A. In other words, we first adjust all sides from sink pin C to source pin E , namely e 1 e 2 e 3 . The other sink pins can be obtained in the same way, and finally the layer adjustment sequence as shown in Figure 8(c) is obtained. Finally, calculate the required number of through holes according to formula 8, and adjust according to the layer adjustment sequence of the edges. Figure 8 (d-2) is the layer adjustment result obtained by adjusting e 5 and e 10 in Figure 8 (d-1) on the left. The calculation formula for the required number of through holes is as follows:
Figure 832139dest_path_image008
(8)
Figure 832139dest_path_image008
(8)
其中 WPG i j<k> 是第 i个总线的源引脚组( PG i 0 )和第 j个汇引脚组( PG i j )之间第 k对引脚的线长,即第 i个总线中第 k个总线线网的源引脚到第 j个汇引脚的线长。 MWPG i j 是第 i个总线线网的 PG i 0 PG i j 之间所有引脚组中的最大线长。 V cost 是通孔代价。 Where WPG i j <k> is the line length of the k- th pair of pins between the source pin group ( PG i 0 ) of the i- th bus and the j- th sink pin group ( PG i j), that is, the i- th The line length from the source pin of the k- th bus net to the j- th sink pin in the bus. MWPG i j is the set of all of the pins between the PG i 0 i-bus line network and PG i j is the maximum line length. V cost is the through hole cost.
在本实施例中,所述总线最大时序优化算法目的是为了着重优化时序紊乱严重的总线线网的线长。该算法的基本思想是:如果有非总线线网占用了比较好的布线资源,那么非总线线网会将布线资源让给总线线网,以优化总线中线长最长的线网。如图9所示,所述总线最大时序优化算法具体为:In this embodiment, the purpose of the bus maximum timing optimization algorithm is to focus on optimizing the line length of the bus line network with serious timing disorder. The basic idea of the algorithm is: if a non-bus line network occupies better wiring resources, then the non-bus line network will give up the wiring resources to the bus line network to optimize the line network with the longest line in the bus. As shown in Figure 9, the bus maximum timing optimization algorithm is specifically:
(1)计算每个总线的线长偏差;(1) Calculate the line length deviation of each bus;
(2)对其按照总线线长偏差从大到小进行排序;(2) Sort them according to the bus line length deviation from large to small;
(3)将非总线资源占用的布线资源让给总线线网;(3) Transfer the wiring resources occupied by non-bus resources to the bus line network;
(4)将当前的总线线网使用无溢出约束的层分配;(4) Assign the current bus line network to layers without overflow constraints;
(5)如果新的层分配结果的总线偏差优于原来的总线线长偏差,那么该层分配结果将代替原有的层分配结果。   (5) If the bus deviation of the new layer allocation result is better than the original bus line length deviation, then the layer allocation result will replace the original layer allocation result. To
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。The foregoing descriptions are only preferred embodiments of the present invention, and all equivalent changes and modifications made in accordance with the scope of the patent application of the present invention should fall within the scope of the present invention.

Claims (8)

  1. 一种考虑总线和非总线线网的层分配方法,其特征在于,包括以下步骤:A layer allocation method considering bus and non-bus line network is characterized in that it includes the following steps:
      步骤S1:考虑线长和引脚数的启发式代价函数,决定第一阶段线网的层分配顺序;Step S1: Consider the heuristic cost function of the line length and the number of pins, and determine the layer allocation order of the first stage line network;
      步骤S2:基于最小化通孔的层分配算法进行通孔最小化层分配,得到初始层分配结果;Step S2: Perform through-hole minimization layer assignment based on the through-hole minimization layer assignment algorithm, and obtain the initial layer assignment result;
      步骤S3:基于初始层分配结果,构建偏差查找表;Step S3: Build a deviation lookup table based on the initial layer allocation result;
      步骤S4:根据偏差查找表,将存在偏差的总线线网和所有非总线线网全部拆除;Step S4: According to the deviation look-up table, remove all the deviation bus line nets and all non-bus line nets;
    步骤S5:考虑线长、引脚数、信号数和总线线长偏差四个要素组合的启发式代价函数,确定第二阶段线网的层分配顺序;Step S5: Consider the heuristic cost function combining the four elements of line length, pin number, signal number, and bus line length deviation, and determine the layer allocation sequence of the second-stage line network;
      步骤S6:基于最小化通孔的层分配算法进行通孔最小化层分配,得到层分配结果;Step S6: Perform through-hole minimization layer assignment based on the through-hole minimization layer assignment algorithm, and obtain the layer assignment result;
      步骤S7:采用总线线网应用总线最大时序优化算法,优化总线线长偏差,得到优化后的层分配结果;Step S7: Use the bus line network application bus maximum timing optimization algorithm to optimize the bus line length deviation, and obtain the optimized layer assignment result;
      步骤S8:判断是否存在总线线长偏差,若无偏差则输出优化后的层分配结果,并作为最终层分配结果;若有偏差,则基于查找表的层调整策略进行调整,得到最终层分配结果。Step S8: Determine whether there is a bus line length deviation, if there is no deviation, output the optimized layer allocation result and use it as the final layer allocation result; if there is a deviation, adjust the layer adjustment strategy based on the lookup table to obtain the final layer allocation result .
  2. 根据权利要求1所述的一种考虑总线和非总线线网的层分配方法,其特征在于A layer allocation method considering bus and non-bus network according to claim 1, characterized in that
    所述步骤S1具体为:第一阶段线网的层分配优先级只需评估引脚数和线长,优先级P1的计算公式如下:The step S1 is specifically: the layer allocation priority of the first-stage wire net only needs to evaluate the number of pins and the line length, and the calculation formula of the priority P1 is as follows:
    Figure 984003dest_path_image001
     (5)
    Figure 984003dest_path_image001
    (5)
    其中, P cost 是线网 N i 的引脚数, e 1 ij 是边的基本代价, e是线网 N i 的边。 Wherein, P cost is the number of pins of the net N i, e 1 ij is the basic cost of the edge, e is the edge of the net N i.
  3. 根据权利要求1所述的一种考虑总线和非总线线网的层分配方法,其特征在于A layer allocation method considering bus and non-bus network according to claim 1, characterized in that
    所述步骤S5具体为:第二阶段的层分配的目的是通过合理地利用通孔来优化总线线长偏差,以在获得较少的线长偏差的同时不产生过多的通孔,优先级 P2的计算公式如下: The step S5 is specifically: the purpose of the layer allocation in the second stage is to optimize the bus line length deviation by rationally using the through holes, so as to obtain less line length deviation without generating too many through holes, priority The calculation formula of P 2 is as follows:
    Figure 476164dest_path_image002
     (6)
    Figure 476164dest_path_image002
    (6)
    其中, αβ是用户自定义的系数, e 1 ij 是边的基本代价, e是线网 N i 的边, BD i 是第 i个总线 B i 的线长偏差, P cost 是线网 N i 的引脚数, q是第 i个总线 B i 的信号数。 Wherein, α and β are coefficients user-defined, e 1 ij is the edge of the basic cost of, e is edge nets N i a, BD i is the line length deviation of i-th bus B i is, P cost is net N The number of pins of i , and q is the number of signals of the i- th bus B i.
  4. 根据权利要求1所述的一种考虑总线和非总线线网的层分配方法,其特征在于所述最小化通孔的层分配算法具体为:The layer allocation method considering bus and non-bus line network according to claim 1, characterized in that the layer allocation algorithm for minimizing through holes is specifically:
    使用深度优先搜索(DFS)对线网进行预处理,将出现环路2D布线结果进行拆环,从而转化成一棵布线树;Use depth-first search (DFS) to pre-process the wire network, and disassemble the loop 2D wiring results, thereby transforming them into a wiring tree;
    随机选择一个节点作为根节点,再使用深度优先搜索形成一个有向图,得到了动态规划下所有边的层分配顺序;Randomly select a node as the root node, and then use depth-first search to form a directed graph, and obtain the layer assignment order of all edges under dynamic programming;
    根据有向图边的层分配顺序的逆序,得到了节点的遍历顺序;According to the reverse order of the layer assignment order of the edges of the directed graph, the traversal order of the nodes is obtained;
    遍历节点父边的所有分配情况,计算该节点的最小通孔数,确定该节点的父边应放置的层;Traverse all the distributions of the parent side of the node, calculate the minimum number of through holes for the node, and determine the layer where the parent side of the node should be placed;
    回溯所有节点的父节点所在层,构建最终的层分配结果。Go back to the layer of the parent node of all nodes and construct the final layer assignment result.
  5. 根据权利要求1所述的一种考虑总线和非总线线网的层分配方法,其特征在于:所述基于查找表的层调整策略包括层数限制的层调整策略和层数不限制的层调整策略。A layer allocation method considering bus and non-bus line networks according to claim 1, wherein the layer adjustment strategy based on the lookup table includes a layer adjustment strategy with a limit on the number of layers and a layer adjustment with no limit on the number of layers. Strategy.
  6. 根据权利要求5所述的一种考虑总线和非总线线网的层分配方法,其特征在于,所述层数限制的层调整策略具体为:The layer allocation method considering bus and non-bus line network according to claim 5, wherein the layer adjustment strategy of the layer number limitation is specifically:
    (1)从偏差查找表找出需要调整的汇引脚;(1) Find out the sink pins that need to be adjusted from the deviation lookup table;
    (2)遍历源引脚到需要调整的汇引脚的边,找到一个度数大于1的节点;(2) Traverse the edge of the source pin to the sink pin that needs to be adjusted, and find a node with a degree greater than 1;
    (3)计算该节点某个信号放置的最大层号、最小层号以及附近边所使用的通孔数;(3) Calculate the maximum layer number, minimum layer number and the number of through holes used by nearby edges of a signal of the node;
    (4)在最小层号与最大层号之间移动所连接的边,保证其通孔数不会超过原通孔数;(4) Move the connected edge between the smallest layer number and the largest layer number to ensure that the number of through holes does not exceed the original number of through holes;
    (5)选择偏差最小的层,将边调整到该层。(5) Select the layer with the smallest deviation and adjust the edges to this layer.
  7. 根据权利要求5所述的一种考虑总线和非总线线网的层分配方法,其特征在于,所述层数部限制的层调整策略,具体为:The layer allocation method considering bus and non-bus line network according to claim 5, wherein the layer adjustment strategy of the layer number part restriction is specifically:
    (1)基于线网的2D布线拓扑,以源引脚作为根节点,使用深度优先搜索生成一个有向图;(1) A 2D wiring topology based on the wire net, with the source pin as the root node, using depth-first search to generate a directed graph;
    (2)根据该线网的2D布线线长,对每个汇引脚进行排序,顺序按线长从小到大;(2) According to the 2D wiring length of the wire net, sort each sink pin, the order is from small to large in line length;
    (3)对某个汇引脚到源引脚经过的边逐次进行层调整,设定未调整前的层为原层,调整后的层为新层;(3) Adjust the layers successively on the edge that a certain sink pin passes through to the source pin. Set the unadjusted layer as the original layer and the adjusted layer as the new layer;
    (4)通过偏差查找表计算与最大信号位之间的偏差,计算所需的通孔数;(4) Calculate the deviation from the maximum signal position through the deviation look-up table, and calculate the required number of through holes;
    (5)随机找到一个调整的新层:若新层有多余的布线资源,其可以直接将其调整到该新层上,然后将原层上的边删除并更新该节点所在通孔,使其保持连通性;若新层已经没有多余布线资源的情况,则选择新层上线网的边调整到原层上,再将边调整到新层上,最后调整两条边的通孔情况,使其保持连通性。(5) Randomly find an adjusted new layer: If the new layer has redundant wiring resources, it can directly adjust it to the new layer, and then delete the edge on the original layer and update the through hole where the node is located. Maintain connectivity; if the new layer has no redundant wiring resources, select the edge of the network on the new layer to adjust to the original layer, then adjust the edge to the new layer, and finally adjust the through holes of the two edges to make it Maintain connectivity.
    (6)更新整个偏差查找表,以保证偏差查找表的准确性。(6) Update the entire deviation lookup table to ensure the accuracy of the deviation lookup table.
  8. 根据权利要求1所述的一种考虑总线和非总线线网的层分配方法,其特征在于,所述总线最大时序优化算法具体为:The method for layer allocation considering buses and non-bus line networks according to claim 1, wherein the bus maximum timing optimization algorithm is specifically:
    (1)计算每个总线的线长偏差;(1) Calculate the line length deviation of each bus;
    (2)对其按照总线线长偏差从大到小进行排序;(2) Sort them according to the bus line length deviation from large to small;
    (3)将非总线资源占用的布线资源让给总线线网;(3) Transfer the wiring resources occupied by non-bus resources to the bus line network;
    (4)将当前的总线线网使用无溢出约束的层分配;(4) Assign the current bus line network to layers without overflow constraints;
    (5)如果新的层分配结果的总线偏差优于原来的总线线长偏差,那么该层分配结果将代替原有的层分配结果。(5) If the bus deviation of the new layer allocation result is better than the original bus line length deviation, then the layer allocation result will replace the original layer allocation result.
PCT/CN2020/119324 2020-02-17 2020-09-30 Layer distribution method considering bus and non-bus networks WO2021164268A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010096468.0A CN111291525B (en) 2020-02-17 2020-02-17 Layer allocation method considering bus and non-bus net
CN202010096468.0 2020-02-17

Publications (1)

Publication Number Publication Date
WO2021164268A1 true WO2021164268A1 (en) 2021-08-26

Family

ID=71017961

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/119324 WO2021164268A1 (en) 2020-02-17 2020-09-30 Layer distribution method considering bus and non-bus networks

Country Status (2)

Country Link
CN (1) CN111291525B (en)
WO (1) WO2021164268A1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113723711A (en) * 2021-09-29 2021-11-30 东南大学 Location prediction method for unit movement in global wiring
CN113822008A (en) * 2021-09-29 2021-12-21 东南大学 Ultra-large-scale integrated circuit wiring method based on multi-pin simultaneous diffusion search
CN113887166A (en) * 2021-10-12 2022-01-04 福州大学 Orbit allocation method based on integer linear programming and two-stage division strategy
CN114970442A (en) * 2022-05-31 2022-08-30 福州大学 Multilayer global wiring method considering bus perception
CN115859899A (en) * 2023-02-06 2023-03-28 北京大学 Method for integrated circuit standard unit layout migration with multiple driving capacities

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111291525B (en) * 2020-02-17 2022-04-08 福州大学 Layer allocation method considering bus and non-bus net
CN111723545B (en) * 2020-06-19 2022-07-08 福州大学 Parallel layer distribution method based on through hole perception under super-large scale integrated circuit
CN113449479B (en) * 2021-06-30 2022-05-10 福州大学 Layer distribution method considering bus time sequence matching
US11734486B2 (en) * 2021-09-07 2023-08-22 International Business Machines Corporation Sweepline triangulation for spanning graphs
CN115270694B (en) * 2022-08-28 2024-06-21 上海华大九天信息科技有限公司 Method for realizing wiring based on bus topology mode
CN116384321B (en) * 2023-04-11 2023-11-07 之江实验室 2.5D overall wiring method and system based on deep reinforcement learning

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000331038A (en) * 1999-05-21 2000-11-30 Nec Corp Rough wiring route layer assignment system
CN109033580A (en) * 2018-07-11 2018-12-18 中国矿业大学(北京) A kind of Layer assignment method applied to three dimensional integrated circuits
CN110032815A (en) * 2019-04-19 2019-07-19 福州大学 Octagonal steiner tree construction method based on cultural gene
CN110705204A (en) * 2019-09-27 2020-01-17 福州大学 Time sequence perception layer distribution method based on multi-stage strategy
CN111291525A (en) * 2020-02-17 2020-06-16 福州大学 Layer allocation method considering bus and non-bus net

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544088A (en) * 1993-06-23 1996-08-06 International Business Machines Corporation Method of I/O pin assignment in a hierarchial packaging system
US5930499A (en) * 1996-05-20 1999-07-27 Arcadia Design Systems, Inc. Method for mixed placement of structured and non-structured circuit elements
US6957410B2 (en) * 2000-12-07 2005-10-18 Cadence Design Systems, Inc. Method and apparatus for adaptively selecting the wiring model for a design region
JP2003100876A (en) * 2001-09-21 2003-04-04 Mitsubishi Electric Corp Semiconductor integrated circuit device
CN1279480C (en) * 2002-12-17 2006-10-11 清华大学 Integrated wiring method of standard units with carrying optimization of time delay based on considering coupling effect
US7516425B2 (en) * 2005-12-22 2009-04-07 Industrial Technology Research Institute Method for generating minimal leakage current input vector using heuristics
JP5054359B2 (en) * 2006-12-01 2012-10-24 パナソニック株式会社 Semiconductor integrated circuit and manufacturing method thereof
CN101281548A (en) * 2007-04-06 2008-10-08 英业达股份有限公司 System and method for laying elements
CN102103564B (en) * 2009-12-22 2013-08-07 中兴通讯股份有限公司 Method and system for realizing bus connection
CN103634251B (en) * 2013-12-18 2017-01-11 福建三元达通讯股份有限公司 Automatic frequency correction method and system
CN105468128A (en) * 2014-07-30 2016-04-06 比亚迪股份有限公司 Management method and management device for internal power consumption of SOC (System on Chip)
CN104809284B (en) * 2015-05-29 2020-04-24 清华大学 Method for planning interconnected micro-bump matrix among stacked three-dimensional integrated chip chips
CN107203676B (en) * 2017-06-22 2022-02-25 格兰菲智能科技有限公司 Method for improving time sequence performance of integrated circuit design and data processing system
CN109585403B (en) * 2017-09-29 2020-09-25 恒劲科技股份有限公司 Sensor package and method of making the same
CN110032808B (en) * 2019-04-16 2022-05-13 福州大学 Track distributor construction method based on hybrid discrete particle swarm optimization
CN110795907B (en) * 2019-09-30 2021-05-18 福州大学 X-structure Steiner minimum tree construction method considering wiring resource relaxation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000331038A (en) * 1999-05-21 2000-11-30 Nec Corp Rough wiring route layer assignment system
CN109033580A (en) * 2018-07-11 2018-12-18 中国矿业大学(北京) A kind of Layer assignment method applied to three dimensional integrated circuits
CN110032815A (en) * 2019-04-19 2019-07-19 福州大学 Octagonal steiner tree construction method based on cultural gene
CN110705204A (en) * 2019-09-27 2020-01-17 福州大学 Time sequence perception layer distribution method based on multi-stage strategy
CN111291525A (en) * 2020-02-17 2020-06-16 福州大学 Layer allocation method considering bus and non-bus net

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113723711A (en) * 2021-09-29 2021-11-30 东南大学 Location prediction method for unit movement in global wiring
CN113822008A (en) * 2021-09-29 2021-12-21 东南大学 Ultra-large-scale integrated circuit wiring method based on multi-pin simultaneous diffusion search
CN113723711B (en) * 2021-09-29 2022-10-28 东南大学 Location prediction method for unit movement in global wiring
CN113822008B (en) * 2021-09-29 2022-11-04 东南大学 Ultra-large-scale integrated circuit wiring method based on multi-pin simultaneous diffusion search
CN113887166A (en) * 2021-10-12 2022-01-04 福州大学 Orbit allocation method based on integer linear programming and two-stage division strategy
CN114970442A (en) * 2022-05-31 2022-08-30 福州大学 Multilayer global wiring method considering bus perception
CN115859899A (en) * 2023-02-06 2023-03-28 北京大学 Method for integrated circuit standard unit layout migration with multiple driving capacities
CN115859899B (en) * 2023-02-06 2023-05-16 北京大学 Method for migrating multiple-driving-capability integrated circuit standard unit layout

Also Published As

Publication number Publication date
CN111291525B (en) 2022-04-08
CN111291525A (en) 2020-06-16

Similar Documents

Publication Publication Date Title
WO2021164268A1 (en) Layer distribution method considering bus and non-bus networks
CN110795908B (en) Bus sensing overall wiring method driven by deviation
CN110795907B (en) X-structure Steiner minimum tree construction method considering wiring resource relaxation
KR101178990B1 (en) High speed clock distribution transmission line network
CN103413796B (en) The large port interconnection class chip that a kind of substrate multi-chip is integrated and implementation method
CN111814420B (en) Overall wiring method based on topological optimization and heuristic search
TW201820185A (en) Method for generating three-dimensional integrated circuit design
US20090189641A1 (en) Integrated circuit device and layout design method therefor
JPH08221451A (en) Layout design method for data path circuit
CN115983187A (en) Multi-strategy-based layer distribution method considering bus deviation
CN112651207B (en) Physical realization method and system for asynchronous circuit
CN115659901B (en) Distance wiring optimization method and device for chip physical design
WO2021253685A1 (en) Parallel layer allocation method based on through-hole perception under super-large-scale integrated circuit
TWI707270B (en) Planning method for power metal lines
WO2021169302A1 (en) Via pillar perception layer distributor capable of minimizing time delay and overflow under advanced manufacturing process
US6615401B1 (en) Blocked net buffer insertion
CN113836846B (en) Integrated circuit pessimistic path analysis method for GPU (graphics processing Unit) accelerated computation
Fang et al. Exploration on routing configuration of HNoC with intelligent on-chip resource management
CN112131822A (en) CPU chip and design method thereof
JP3288190B2 (en) LSI layout design method and device
CN112420089B (en) Storage device, connection method and device, and computer-readable storage medium
Daneshtalab et al. Cluster-based topologies for 3D stacked architectures
CN116663488B (en) Multi-level overall wiring method and system
CN114423184B (en) Special-shaped anti-bonding pad manufacturing method and device, electronic equipment and storage medium
CN113312875B (en) Time delay optimization layer distribution method based on preference mechanism

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20920236

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20920236

Country of ref document: EP

Kind code of ref document: A1