Method and apparatus for global routing of integrated circuits and storage medium

文档序号:533461 发布日期:2021-06-01 浏览:21次 中文

阅读说明:本技术 集成电路的总体布线方法及设备和存储介质 (Method and apparatus for global routing of integrated circuits and storage medium ) 是由 张旋 张亚东 陈建利 李起宏 陆涛涛 于 2021-03-15 设计创作,主要内容包括:本公开提供了集成电路的总体布线方法及设备和存储介质,该方法包括:获取集成电路的网表信息和各电路层内元件的位置信息;构造三维网格并确定三维网格内的各个网格的拥塞值;基于网表信息和位置信息确定集成电路的初始布线结果;根据拥塞值,通过拆线重布在三维空间内调整初始布线结果,并通过构建多层级的三维网格加快布线速度,得到最终布线结果。本公开能够有效降低布线的拥塞程度,改善总体布线的布线结果。(The present disclosure provides an integrated circuit general wiring method, apparatus and storage medium, the method comprising: obtaining netlist information of the integrated circuit and position information of elements in each circuit layer; constructing a three-dimensional grid and determining the congestion value of each grid in the three-dimensional grid; determining an initial routing result of the integrated circuit based on the netlist information and the position information; and adjusting an initial wiring result in the three-dimensional space through disconnecting and redistributing according to the congestion value, and accelerating the wiring speed by constructing a multi-level three-dimensional grid to obtain a final wiring result. The method and the device can effectively reduce the congestion degree of the wiring and improve the wiring result of the overall wiring.)

1. A method of global routing of an integrated circuit, comprising:

obtaining netlist information of the integrated circuit and position information of elements in each circuit layer, wherein the integrated circuit comprises the circuit layers which are parallel to each other;

constructing two-dimensional grids on each circuit layer to form a three-dimensional grid, and determining the congestion value of each grid in the three-dimensional grid based on the position information;

determining an initial routing result for the integrated circuit based on the netlist information and the location information;

and adjusting the initial wiring result according to the congestion value to obtain a final wiring result.

2. The overall wiring method as set forth in claim 1,

the three-dimensional grid is in multiple stages, and the three-dimensional grid at the current stage is obtained by combining adjacent grids of the three-dimensional grid at the previous stage;

determining a congestion value for each grid within the three-dimensional grid based on the location information, comprising: determining the congestion value of each grid in each level of the three-dimensional grid to obtain the congestion value of each level;

adjusting the initial routing result according to the congestion value, including: and determining the wiring range of the two-end net in the same circuit layer on the initial three-dimensional grid, and then determining the wiring range of the two-end net on the current-level multilayer two-dimensional grid from the wiring range of the two-end net on the next-level multilayer two-dimensional grid according to the current-level congestion value from the previous level of the initial level until the wiring range of the two-end net on the topmost multilayer two-dimensional grid is determined.

3. An overall routing method as set forth in claim 2, wherein determining a congestion value for each grid within each level of said three-dimensional grid comprises: and acquiring the number of tracks contained in each grid in the top three-dimensional grid, and determining the congestion value of each grid in the top three-dimensional grid according to the number of tracks and the position information.

4. A population routing method as in claim 3, wherein determining a congestion value for each mesh within each level of said three-dimensional mesh further comprises: and aiming at each grid of the non-top three-dimensional grid, obtaining the congestion value of each grid included in the top three-dimensional grid of the grid, and determining the congestion value of the grid according to the obtained multiple congestion values.

5. The overall routing method of claim 2, wherein determining the initial routing result based on the netlist information and the position information comprises:

mapping the location information from three-dimensional coordinates to two-dimensional coordinates;

inputting the netlist information and the two-dimensional coordinates into a FLUTE model to obtain a two-dimensional minimum right-angle Steiner tree generated by the FLUTE model;

and restoring the two-dimensional minimum right-angle Steiner tree into a three-dimensional tree structure through a layer distribution model to obtain the initial wiring result.

6. The population routing method of claim 2, wherein said starting level is determined in multiple levels of said three-dimensional network based on the length of said two-terminal nets and the mesh size of each level of said three-dimensional network.

7. The population routing method of claim 2, wherein determining the routing extent of a two-terminal net in the same circuit layer on a starting level three-dimensional grid in the initial routing result comprises:

and inputting the congestion value of the initial stage and the position information of the two ends of the two-end net into an A model, and obtaining a wiring result generated by the A model so as to obtain the wiring range of the two ends of the two-end net on the initial stage three-dimensional grid.

8. The population routing method of claim 2, wherein determining the routing range of the two-terminal net on the current-level multi-level two-dimensional grid from within the routing range of the two-terminal net on the next-level multi-level two-dimensional grid according to the current level congestion value comprises:

and inputting the current-level congestion value and the wiring range of the two-end net on the next-level multilayer two-dimensional grid into a labyrinth algorithm model, and obtaining a wiring result generated by the labyrinth algorithm model so as to obtain the wiring range of the two-end net on the current-level multilayer two-dimensional grid.

9. An integrated circuit global routing device, comprising:

a processor;

a memory for storing one or more programs;

wherein the one or more programs are executed by the processor such that the processor implements the overall wiring method of the integrated circuit of any of claims 1-8.

10. A computer-readable storage medium, on which a computer program is stored, wherein the program, when executed by a processor, implements the overall wiring method of an integrated circuit as claimed in any one of claims 1 to 8.

Technical Field

The present disclosure relates to the field of automated electronic design, and more particularly, to a method and apparatus for global routing of integrated circuits and a storage medium.

Background

In an integrated circuit design, a netlist describes the connection relationship of elements, and is generally a text file following some simple markup syntax, and is often used as a reference file for routing. With the expansion of chip scale, the number of elements in the netlist is dramatically increased, which results in a significant increase in the difficulty of integrated circuit wiring.

In order to improve routability, a modern layout tool generally divides the wiring of an integrated circuit into general wiring and detailed wiring, wherein the general wiring provides a rough wiring range for each connecting line of the detailed wiring, so that the blocking degree of the detailed wiring is effectively reduced, and the success rate of the wiring is improved. For general routing, modern layout tools employ the following techniques: mapping the three-dimensional grid to a two-dimensional space to search a wiring result, so that the space size of a search solution is reduced; and then, after a search solution is obtained in the two-dimensional space, converting the two-dimensional wiring result corresponding to the search solution into a three-dimensional wiring result by a layer distribution technology.

However, the layer allocation technology may cause the routing result of the overall routing to have a condition that the line is congested and even cannot be arranged, and the routing quality is difficult to guarantee. If the routing results of the overall routing are searched directly on the three-dimensional grid, although the quality of the routing results is improved, the time taken by the layout tool increases.

Disclosure of Invention

In order to solve the above technical problems, the present disclosure provides an overall wiring method and apparatus of an integrated circuit and a storage medium, which can improve a wiring result of the overall wiring.

In one aspect, the present disclosure provides a method for overall routing of an integrated circuit, including:

obtaining netlist information of the integrated circuit and position information of elements in each circuit layer, wherein the integrated circuit comprises the circuit layers which are parallel to each other;

constructing two-dimensional grids on each circuit layer to form a three-dimensional grid, and determining the congestion value of each grid in the three-dimensional grid based on the position information;

determining an initial routing result for the integrated circuit based on the netlist information and the location information;

and adjusting the initial wiring result according to the congestion value to obtain a final wiring result.

Optionally, the three-dimensional grid is in multiple stages, and the three-dimensional grid at the current stage is obtained by merging adjacent grids of the three-dimensional grid at the previous stage;

determining a congestion value for each grid within the three-dimensional grid based on the location information, comprising: determining the congestion value of each grid in each level of the three-dimensional grid to obtain the congestion value of each level;

adjusting the initial routing result according to the congestion value, including: and determining the wiring range of the two-end net in the same circuit layer on the initial three-dimensional grid, and then determining the wiring range of the two-end net on the current-level multilayer two-dimensional grid from the wiring range of the two-end net on the next-level multilayer two-dimensional grid according to the current-level congestion value from the previous level of the initial level until the wiring range of the two-end net on the topmost multilayer two-dimensional grid is determined.

Optionally, determining a congestion value of each grid in each level of the three-dimensional grid includes: and acquiring the number of tracks contained in each grid in the top three-dimensional grid, and determining the congestion value of each grid in the top three-dimensional grid according to the number of tracks and the position information.

Optionally, determining a congestion value of each grid in each level of the three-dimensional grid further includes: and aiming at each grid of the non-top three-dimensional grid, obtaining the congestion value of each grid included in the top three-dimensional grid of the grid, and determining the congestion value of the grid according to the obtained multiple congestion values.

Optionally, determining the initial routing result based on the netlist information and the position information comprises:

mapping the location information from three-dimensional coordinates to two-dimensional coordinates;

inputting the netlist information and the two-dimensional coordinates into a FLUTE model to obtain a two-dimensional minimum right-angle Steiner tree generated by the FLUTE model;

and restoring the two-dimensional minimum right-angle Steiner tree into a three-dimensional tree structure through a layer distribution model to obtain the initial wiring result.

Optionally, the initial stage is determined in multiple stages of the two-dimensional network according to the length of the two-terminal net and the mesh size of each stage of the three-dimensional mesh.

Optionally, determining a routing range of the two-terminal net in the same circuit layer on the three-dimensional grid at the initial level in the initial routing result includes:

and inputting the congestion value of the initial stage and the position information of the two ends of the two-end net into an A model, and obtaining a wiring result generated by the A model so as to obtain the wiring range of the two ends of the two-end net on the initial stage three-dimensional grid.

Optionally, determining a routing range of the two-terminal net on the current-level multi-layer two-dimensional grid from a routing range of the two-terminal net on the next-level multi-layer two-dimensional grid according to the current-level congestion value includes:

and inputting the current-level congestion value and the wiring range of the two-end net on the next-level multilayer two-dimensional grid into a labyrinth algorithm model, and obtaining a wiring result generated by the labyrinth algorithm model so as to obtain the wiring range of the two-end net on the current-level multilayer two-dimensional grid.

In another aspect, the present disclosure also provides an overall wiring device of an integrated circuit, including:

a processor;

a memory for storing one or more programs;

wherein the one or more programs are executed by the processor such that the processor implements any of the integrated circuit population routing methods described above.

In another aspect, the present disclosure provides a computer-readable storage medium having a computer program stored thereon, wherein the program, when executed by a processor, implements the overall wiring method of an integrated circuit as described above.

The beneficial effects of this disclosure are:

the method comprises the steps of determining the congestion value of each grid in the three-dimensional grid based on the position information, then determining the initial wiring result of the integrated circuit based on the netlist information and the position information, and adjusting the initial wiring result according to the congestion value to obtain the final wiring result. In the overall wiring process, the final wiring result is obtained by considering the congestion value caused by the distribution of the integrated circuit elements, so that the wiring congestion degree of the final wiring result can be effectively reduced, the wiring success rate is improved, and the wiring result of the overall wiring is improved.

Drawings

The above and other objects, features and advantages of the present disclosure will become more apparent from the following description of the embodiments of the present disclosure with reference to the accompanying drawings.

FIG. 1 is a flow chart illustrating an overall routing method for an integrated circuit according to the present disclosure;

FIG. 2 illustrates an exemplary initial routing result for an integrated circuit;

FIG. 3 is a schematic diagram of a multi-layer two-dimensional grid coarsening process;

FIG. 4 illustrates an exemplary three-dimensional grid;

FIG. 5 is a schematic diagram illustrating a wire thinning process;

FIG. 6 illustrates an interface of the overall routing device of the integrated circuit of the present disclosure;

fig. 7 is a schematic diagram of an overall wiring device of the integrated circuit of the present disclosure.

Detailed Description

To facilitate an understanding of the present disclosure, the present disclosure will now be described more fully with reference to the accompanying drawings. Preferred embodiments of the present disclosure are set forth in the accompanying drawings. However, the present disclosure may be embodied in different forms and is not limited to the embodiments described herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete.

Unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure belongs. The terminology used in the description of the disclosure herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure.

The modern layout tool adopts the following technology to realize overall wiring: and mapping the three-dimensional grid to a two-dimensional space to search the wiring result, and then converting the two-dimensional wiring result corresponding to the search solution into a three-dimensional wiring result through a layer distribution technology after obtaining the search solution in the two-dimensional space. In the layer allocation technology, the routing result of the overall routing has the situation of line congestion or even incapability of routing, and the routing quality is difficult to guarantee.

Based on this, the present disclosure provides an overall wiring method and apparatus of an integrated circuit and a storage medium capable of improving a wiring result of the overall wiring.

Example one

Fig. 1 is a schematic flowchart illustrating an overall wiring method of an integrated circuit according to an embodiment of the disclosure. The general wiring method of the integrated circuit provided by the first embodiment of the present disclosure is executed by a general wiring device of the integrated circuit, and referring to fig. 1, the general wiring method of the integrated circuit includes:

step S110, netlist information of the integrated circuit and position information of elements in each circuit layer are obtained.

Specifically, the netlist information is a connection relationship between elements in the integrated circuit, which only indicates that two elements have a connection relationship and does not specifically specify a path through which a connection line between the two elements passes; the position information is the position of each element in the integrated circuit, and comprises position information of some elements needing to be connected and position information of some elements not needing to be connected.

Step S120, two-dimensional grids are constructed on each layer of circuit layer to form three-dimensional grids, and the congestion value of each grid in the three-dimensional grids is determined based on the position information.

It is emphasized that the three-dimensional mesh of the disclosed embodiments differs from a cube in that there are meshes in three orthogonal planes. The three-dimensional grid according to the embodiment of the present disclosure means: multiple layers are distributed along one direction, and then each layer has a grid.

It should be noted that, in the integrated circuit integration process, the components are arranged in layers as shown in fig. 2, so that the integrated circuit includes circuit layers parallel to each other and some components are arranged on each circuit layer, wherein, for a plurality of components of the same circuit layer, if connection is needed, wires arranged in the circuit layer are used; for multiple components of different circuit layers, wires are used that pass through vias of the circuit layers if connections are required.

The above-mentioned three-dimensional grid is constructed on each circuit layer, that is, a multi-layer two-dimensional grid with the number of layers equal to the integrated circuit layer is constructed as shown in fig. 2. Specifically, the grid size of the two-dimensional grid may adopt a preset value, or the density of the element distribution may be determined according to the position information and set according to the density of the element distribution; the grids in the two-dimensional grid can be uniformly distributed, namely the sizes of the grids are set to be equal, so that the unified treatment is facilitated.

The congestion value of each grid in the three-dimensional grid is a value related to the distribution of elements in the grid. Illustratively, a mesh is completely occupied by an element, and the mesh is unable to be routed, and the congestion value of the mesh correspondingly indicates that the mesh has no space for routing.

Step S130, an initial wiring result of the integrated circuit is determined based on the netlist information and the position information.

The netlist information describes the connection relationship between elements in the integrated circuit, the position information describes the positions of the elements in the integrated circuit, and the connection path of the elements with the connection relationship can be determined according to the positions of the elements, so that the initial wiring result is obtained. The initial wiring result can be obtained based on any existing wiring method, the contribution of the position information to the initial wiring result is limited to indicating the position of the wiring element needed so as to determine the end point of the wiring, and the blocking effect of the wiring element needed and the wiring element not needed on the wiring is not considered in the initial wiring result obtaining process.

And step S140, adjusting the initial wiring result according to the congestion value to obtain a final wiring result.

It should be noted that the initial wiring result is a three-dimensional wiring result, and includes both the connection lines on the same circuit layer and the connection lines between different circuit layers. Fig. 2 shows an initial wiring result of an exemplary integrated circuit, and referring to fig. 2, the initial wiring result not only relates to the wiring between a plurality of elements in the same circuit layer (e.g., element D and element E, but also e.g., element D and element F), but also relates to the wiring between a plurality of elements in different circuit layers (e.g., element B and element C). The multiple elements on different circuit layers are connected through the through holes arranged on the circuit layers.

In the embodiment of the disclosure, the initial routing result is an initial result obtained by connecting the integrated circuit elements according to the connection relation indicated by the netlist, and the final routing result is a result obtained by adjusting the initial routing result according to the congestion value, so that the routing congestion degree is effectively reduced in the final routing result by considering the congestion value caused by the distribution of the integrated circuit elements, the routing success rate is improved, and the routing result of the overall routing is improved.

In an alternative embodiment, the three-dimensional grid is multi-level, and with reference to fig. 3: the three-dimensional grid of the current level is obtained by combining adjacent grids of the three-dimensional grid of the previous level; in step S120, determining a congestion value of each grid in the three-dimensional grid based on the location information includes: determining the congestion value of each grid in each level of three-dimensional grid to obtain the congestion value of each level; the step S140 of adjusting the initial routing result according to the congestion value includes: and determining the wiring range of the two-end net in the same circuit layer on the initial-stage three-dimensional grid from the previous stage of the initial stage, and then determining the wiring range of the two-end net on the current-stage multilayer two-dimensional grid from the wiring range of the two-end net on the next-stage multilayer two-dimensional grid according to the current-stage congestion value until the wiring range of the two-end net on the topmost multilayer two-dimensional grid is determined.

Specifically, the two-terminal net, i.e. the connection line between two terminals, in conjunction with fig. 2, two terminals of the two-terminal net on the same circuit layer can be any one of the following: elements and elements (e.g., element D and element E, and again, e.g., element D and element F), elements and stainers. Of course, the two-terminal nets herein include not only a complete net of two terminals on the same circuit layer as the initial routing result, such as the net between the element C and the via; also included are two-terminal nets resulting from splitting a complete multi-terminal net on the same circuit layer, such as the two-terminal net resulting from splitting the multi-terminal net between elements D, E, F, i.e., the net between element D and element E, and the net between element D and element F. The splitting of the multi-end net into the two-end net is carried out according to the topology information, namely, any two-end nets of two ends with connection relations are extracted from the multi-end net.

In this embodiment, the initial routing result defines the routing ends on each circuit layer for the final routing result.

The present embodiment will be described in detail below.

The above initial wiring result can be determined by the following procedure: mapping the position information from the three-dimensional coordinates to two-dimensional coordinates; inputting the netlist information and the two-dimensional coordinates into a FLUTE model (a model of a FLUTE algorithm running on the overall wiring equipment of the integrated circuit, wherein the FLUTE algorithm is a rectangular Steiner minimum tree construction algorithm based on a fast lookup table), and acquiring a two-dimensional minimum right-angle Steiner tree generated by the FLUTE model; the two-dimensional minimum right-angle Steiner tree is restored into a three-dimensional tree structure through a layer distribution model (a model for running a layer distribution algorithm on the overall wiring equipment of the integrated circuit), and a connection circuit among all elements on the three-dimensional tree structure forms an initial wiring result, so that the initial wiring result is a wiring result with the shortest circuit of the integrated circuit, the wiring redundancy is avoided, and the wiring cost is reduced.

Fig. 3 shows a multi-level three-dimensional grid. Referring to fig. 3, in the case that there is more than one circuit layer of the integrated circuit, each level of the three-dimensional grid is a multi-layer two-dimensional grid and the number of layers of the multi-layer two-dimensional grid is equal to the number of layers of the integrated circuit. In the following description, as shown in fig. 3, the uppermost three-dimensional mesh is referred to as a one-stage three-dimensional mesh and the three-dimensional meshes of respective stages are sequentially arranged.

Specifically, the current-stage three-dimensional grid is obtained by merging adjacent grids of the previous-stage three-dimensional grid, which is a process in which the three-dimensional grid is coarsened step by step in the order from top to bottom to obtain a multi-stage three-dimensional grid, and the process may be to read a first preset numerical value R and a second preset numerical value C, and then merge R × C adjacent grids in the previous-stage three-dimensional grid to obtain the current-stage three-dimensional grid, where R represents a number of merged grid lines and C represents a number of merged grid columns. In view of this, the three-dimensional grid at the lowest level in the multi-level three-dimensional grid is a three-dimensional grid with grid line number less than R or grid column number less than C, so that the total level of the multi-level three-dimensional grid is determined by the line number and column number of the one-level three-dimensional grid. The multi-level three-dimensional mesh shown in fig. 3 is obtained in the above manner, where R is 2 and C is 2.

Fig. 4 shows a one-level three-dimensional grid, where each grid has a track and some of the grids have elements distributed therein, where the track is a reference line preset in the grid during wiring, and connection lines between the elements may be arranged along the track and attached to two sides of the track, the number of tracks in one grid is often determined by the size of the grid and the preset distance between the tracks, and the larger the number of tracks in the grid is, the more connection lines are allowed to be arranged in the grid; the position of the element illustrates the space occupied by the element within the grid, the more space the element occupies within the grid the less space the grid reserves for wiring. For a one-level three-dimensional mesh, the congestion value W1(i,j)Inversely related to the number of tracks and positively related to the area of the grid occupied by the elements.

In view of this, the congestion value W for the ith row and jth column trellis (i, j) in the k-level three-dimensional trellisk(i,j)The following procedure may be used to determine:

(1) if k is 1, referring to fig. 4, the number of tracks included in each grid in the three-dimensional grid is acquired, and the congestion value W is determined from the number of tracks and the position information of the above-described element1(i,j)

(2) If k ≠ 1, acquiring the congestion value W of each grid (i ', j') of the k-level three-dimensional grid (i, j) on the (k-1) level three-dimensional grid(k-1)(i',j')And according to the obtained multiple congestion values W(k-1)(i',j')Determining a congestion value W for the meshk(i,j). In particular, the overall wiring device of the integrated circuit can scan k-level three-dimensional grids (i, j) and three levels (k-1) according to preset priority directions during executionMaintaining a mesh included on the mesh to obtain a congestion value W(k-1)(i',j')Wherein if the priority direction is horizontal, each grid is scanned by lines to extract the congestion value W(k-1)(i',j')(ii) a If the priority direction is vertical, each grid is scanned in columns to extract the congestion value W(k-1)(i',j'). According to the obtained multiple congestion values W(k-1)(i',j')Determining a congestion value W for the meshk(i,j)May be to combine a plurality of congestion values W(k-1)(i',j')Add and average to get Wk(i,j)Further, the congestion value W may be obtained by averaging the congestion values once every scanning of one line (the priority direction is horizontal) or one column (the priority direction is vertical) in the priority direction and averaging the average of the congestion values obtained at the endk(i,j)

It should be understood that, the above-mentioned determining the routing range of the two-port net on the current-level multi-layer two-dimensional grid from the routing range of the two-port net on the next-level multi-layer two-dimensional grid according to the current-level congestion value, that is, mapping the routing range on the next-level multi-layer two-dimensional grid into the current-level multi-layer two-dimensional grid, and then extracting the grid with the smaller congestion value of the current level (the smaller congestion value indicates more suitable routing space in the grid) from the mapped range in the current-level multi-layer two-dimensional grid for routing is a process of narrowing the routing range from the next level to the current level, which is a process of refining the routing. The initial stage is a stage on which the wiring thinning process is started, each stage is above the initial stage in the wiring thinning process, and the number of stages is smaller than that of the initial stage in this embodiment.

FIG. 5 exemplarily shows a refinement process from a secondary three-dimensional mesh to a primary three-dimensional mesh. Referring to fig. 5, the gray mesh in the second-level three-dimensional mesh is a routing range of the two-terminal net on the second-level three-dimensional mesh determined from a routing range of the two-terminal net on the third-level three-dimensional mesh according to the second-level congestion value. In the process of thinning the two-level three-dimensional grid to the first-level three-dimensional grid, the wiring range of the two-end net on the two-level three-dimensional grid is mapped to the first-level three-dimensional grid (namely the gray grid in the first-level three-dimensional grid), and then the wiring range of the two-end net is determined from the gray grid on the first-level three-dimensional grid according to the first-level congestion value. For example, if the congestion values of the grids passed by the dotted lines in the primary three-dimensional grid are all smaller than the grids passed by the dotted lines, the grids passed by the dotted lines are determined as the wiring range of the two elements on the primary three-dimensional grid.

The step of adjusting the initial routing result by stepwise refinement from the previous stage of the initial stage to the previous stage may be performed when a congestion value of a mesh, through which a certain two-terminal wire mesh passes in the current-stage three-dimensional mesh, in the initial routing result is greater than a threshold value. For each wire in the initial routing result, which has a congestion value of the grid passing through the current-level three-dimensional grid not greater than the congestion threshold, no adjustment may be made.

Further, the initial stage and the two-terminal nets are in a one-to-one correspondence relationship, and the initial stage is determined in multiple stages of the three-dimensional network based on the lengths of the two-terminal nets and the mesh sizes of the three-dimensional meshes of the respective stages. The larger the length of the two-end net is, the higher the number of stages of the two-end net corresponding to the initial stage is. The length ranges of all levels can be preset for the grading of the two-end net, and the initial level corresponding to the two-end net is determined through the length ranges of all levels.

Illustratively, there are three two-terminal nets in the initial routing result shown in FIG. 2: vias-C, DE and DF, and the following relationships exist for the three two-terminal nets: DE > Via-C > DF. Based on the length of the two-end net and the mesh size of each three-dimensional mesh, the three two-end nets can be determined from the multiple stages of the two-dimensional network as follows: the two-end net DE has a three-stage initial stage, the two-end net via-C has a two-stage initial stage, and the two-end net DF has a one-stage initial stage, so that the two-end net DE defines a wiring range on the initial three-dimensional grid on the three-dimensional grid shown in fig. 3, the two-end net via-C defines a wiring range on the initial three-dimensional grid on the two-dimensional grid shown in fig. 3, and the two-end net DF defines a wiring range on the initial three-dimensional grid on the one-dimensional grid shown in fig. 3.

It should be appreciated that the smaller the number of stages of the starting stage corresponding to the two-terminal net, the fewer the number of stages experienced by the two-terminal net routing range refinement, thus making the adjustment process of the initial routing results less time consuming.

Further, the above-mentioned determining the routing range of the two-terminal net in the same circuit layer on the three-dimensional grid of the initial level in the initial routing result includes: and inputting the congestion value of the initial stage and the position information of the two ends of the two-end net into the A model, and obtaining a wiring result generated by the A model so as to obtain the wiring range of the two ends of the two-end net on the initial stage three-dimensional grid. Specifically, the a-model is a model for running an a-routing algorithm on the overall routing device of the integrated circuit, the congestion value of the initial stage is input into the a-model and is used for determining the obstacles to be avoided in the a-routing algorithm (i.e., the grids with the congestion values larger than the congestion threshold), the position information of the two ends of the two-end wire network is input into the a-model and is used for determining the starting point and the end point of the route in the a-routing algorithm, and finally the a-routing algorithm searches for a route which avoids the obstacles and has the shortest distance between the starting point and the end point as a routing route, and the grid related to the routing route, i.e., the routing range of the two-end wire network on the initial stage three-dimensional grid.

Further, the determining the routing range of the two-port net on the current-level multi-layer two-dimensional grid from the routing range of the two-port net on the next-level multi-layer two-dimensional grid according to the current-level congestion value includes: and inputting the current-level congestion value and the wiring range of the two-end wire network on the next-level multilayer two-dimensional grid into the labyrinth algorithm model, and obtaining the wiring result generated by the labyrinth algorithm model so as to obtain the wiring range of the two-end wire network on the current-level multilayer two-dimensional grid. Specifically, the labyrinth algorithm model is a model for operating a labyrinth algorithm on the overall wiring equipment of the integrated circuit, a grid in a wiring range is used as a node of the labyrinth algorithm after the wiring range on the next-stage multilayer two-dimensional grid is input into the labyrinth algorithm model, and the current-stage congestion value is input into the labyrinth algorithm model and used for determining the node which cannot be searched continuously in the labyrinth algorithm, specifically, the grid with the congestion value larger than the congestion threshold value in the current-stage multilayer two-dimensional grid is the node which cannot be searched continuously in the labyrinth algorithm.

The method and the device for adjusting the initial wiring result based on the multi-level three-dimensional grid obtain the final wiring result, wherein the initial wiring result adopts a FLUTE model and a layer distribution model, and compared with the method that the initial wiring result is directly searched in a three-dimensional space, the method and the device have the advantage of short time consumption, and the initial wiring result is the wiring result with the shortest line of the integrated circuit; then, the initial routing result is adjusted based on the multi-level multi-layer two-dimensional grid, and the process can reduce the influence of the layer allocation process on the final routing result, so that the routing congestion degree is obviously reduced. In the process of adjusting the initial wiring result, the use of the multilayer two-dimensional grid enables the adjustment of the initial wiring result to be always in a three-dimensional space, and has important significance for effectively reducing the wiring congestion degree; the above-described process of progressively refining the routing and the use of the starting stage can both reduce the time taken to adjust the initial routing results.

Fig. 6 shows an interactive interface provided by the overall wiring device of an integrated circuit, in which a user sets parameters required in the wiring method of the overall wiring. Referring To FIG. 6, the overall routing of the integrated circuit is divided into Net blocks for circuit function reasons, and the combination of the "Net Name" column and the "Net To Route" column provides all netlists of an integrated circuit, wherein the "Net Name" column lists the netlists of the routing of the overall routing device of the integrated circuit. And the Auto Tap Width option automatically sets the wiring Width under the condition of checking, otherwise, the wiring Width is set through the Width column in the Layer. The Layer Name column lists the names of the circuit layers; the Avall column gives a check box so that a user can select whether element wiring is required to be carried out on a circuit layer behind the check box; selecting the priority direction by using 'H' and 'V' after the name of a certain circuit layer, wherein if the 'H' is assigned to be 1, the priority direction is horizontal, and if the 'V' is assigned to be 1, the priority direction is vertical; "Spacing" after the name of a circuit layer provides for Spacing the wires from surrounding devices or other wires.

Example two

Referring to fig. 7, the present disclosure also presents a block diagram of an exemplary device suitable for use in implementing embodiments of the present disclosure. It should be understood that the device shown in fig. 7 is only an example and should not bring any limitations to the function and scope of the disclosed embodiments.

As shown in FIG. 7, device 200 is embodied in a general purpose computing device. The components of device 200 may include, but are not limited to: one or more processors or processing units 210, a memory 220, and a bus 201 that couples the various system components (including the memory 220 and the processing unit 210).

Bus 201 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, such architectures include, but are not limited to, Industry Standard Architecture (ISA) bus, micro-channel architecture (MAC) bus, enhanced ISA bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus.

Device 200 typically includes a variety of computer system readable media. Such media may be any available media that is accessible by device 200 and includes both volatile and nonvolatile media, removable and non-removable media.

The system memory 220 may include computer system readable media in the form of volatile memory, such as Random Access Memory (RAM)221 and/or cache memory 222. The device 200 may further include other removable/non-removable, volatile/nonvolatile computer system storage media. By way of example only, storage system 223 may be used to read from and write to non-removable, nonvolatile magnetic media (not shown in FIG. 7, commonly referred to as a "hard drive"). Although not shown in FIG. 7, a magnetic disk drive for reading from and writing to a removable, nonvolatile magnetic disk (e.g., a "floppy disk") and an optical disk drive for reading from or writing to a removable, nonvolatile optical disk (e.g., a CD-ROM, DVD-ROM, or other optical media) may be provided. In these cases, each drive may be connected to bus 201 by one or more data media interfaces. Memory 220 may include at least one program product having a set (e.g., at least one) of program modules that are configured to carry out the functions of embodiments of the disclosure.

Program/utility 224 having a set (at least one) of program modules 2241 may be stored, for example, in memory 220, such program modules 2241 including, but not limited to, an operating system, one or more application programs, other program modules, and program data, each of which or some combination of which may comprise an implementation of a network environment. Program modules 2241 generally perform the functions and/or methods of the embodiments described in the embodiments of the present disclosure.

Further, the device 200 may also be communicatively coupled to a display 300 for displaying simulation results of the semiconductor devices, the display 300 may include, but is not limited to, a Liquid Crystal Display (LCD), a Light Emitting Diode (LED) display, and a plasma display. In some embodiments, the display 300 may also be a touch screen.

Further, the device 200 may also communicate with one or more devices that enable a user to interact with the device 200 and/or any devices (e.g., network cards, modems, etc.) that enable the device 200 to communicate with one or more other computing devices. Such communication may be through input/output (I/O) interfaces 230. Also, the device 200 may communicate with one or more networks (e.g., a Local Area Network (LAN), a Wide Area Network (WAN), and/or a public network such as the Internet) via the network adapter 240. As shown, network adapter 240 communicates with the other modules of device 200 via bus 201. It should be understood that although not shown in the figures, other hardware and/or software modules may be used in conjunction with device 200, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage systems, among others.

The processing unit 210 executes various functional applications and data processing by executing programs stored in the system memory 220, for example, to implement the overall wiring method of the integrated circuit provided in the first embodiment of the present disclosure.

EXAMPLE III

A third embodiment of the present disclosure further provides a computer-readable storage medium, on which a computer program (or referred to as computer-executable instructions) is stored, where the computer program is used for executing, by a processor, an overall wiring method of an integrated circuit provided in the first embodiment of the present disclosure, where the method includes:

obtaining netlist information of the integrated circuit and position information of elements in each circuit layer;

constructing two-dimensional grids on each circuit layer to form three-dimensional grids, and determining the congestion value of each grid in the three-dimensional grids based on the position information;

determining an initial routing result of the integrated circuit based on the netlist information and the position information;

and adjusting the initial wiring result according to the congestion value to obtain a final wiring result.

The computer storage media of the disclosed embodiments may take any combination of one or more computer-readable media. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the present disclosure, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.

A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated data signal may take many forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may also be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.

Computer program code for carrying out operations for embodiments of the present disclosure may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C + +, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider).

Further, in this document, the contained terms "include", "contain" or any other variation thereof are intended to cover a non-exclusive inclusion, so that a process, a method, an article or an apparatus including a series of elements includes not only those elements but also other elements not explicitly listed or inherent to such process, method, article or apparatus. Without further limitation, an element defined by the phrase "comprising an … …" does not exclude the presence of other identical elements in a process, method, article, or apparatus that comprises the element.

Finally, it should be noted that: it should be understood that the above examples are only for clearly illustrating the present disclosure, and are not intended to limit the embodiments. Other variations and modifications will be apparent to persons skilled in the art in light of the above description. And are neither required nor exhaustive of all embodiments. And obvious variations or modifications of the invention as herein taught are within the scope of the present disclosure.

15页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:飞机显示系统和方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类