WO2023130434A1 - Layout design method and apparatus, device, medium and program product - Google Patents
Layout design method and apparatus, device, medium and program product Download PDFInfo
- Publication number
- WO2023130434A1 WO2023130434A1 PCT/CN2022/070963 CN2022070963W WO2023130434A1 WO 2023130434 A1 WO2023130434 A1 WO 2023130434A1 CN 2022070963 W CN2022070963 W CN 2022070963W WO 2023130434 A1 WO2023130434 A1 WO 2023130434A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- layout
- grid
- gradient
- initial
- density
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 116
- 238000013461 design Methods 0.000 title description 23
- 238000003860 storage Methods 0.000 claims abstract description 11
- 239000002131 composite material Substances 0.000 claims description 58
- 238000004364 calculation method Methods 0.000 claims description 38
- 230000015572 biosynthetic process Effects 0.000 claims description 29
- 238000003786 synthesis reaction Methods 0.000 claims description 29
- 230000008859 change Effects 0.000 claims description 19
- 239000000203 mixture Substances 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 58
- 238000009826 distribution Methods 0.000 abstract description 6
- 238000005457 optimization Methods 0.000 description 26
- 238000010586 diagram Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 14
- 230000005684 electric field Effects 0.000 description 12
- 238000003892 spreading Methods 0.000 description 10
- 230000007480 spreading Effects 0.000 description 10
- 230000000694 effects Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 238000004519 manufacturing process Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 239000006185 dispersion Substances 0.000 description 5
- 238000002922 simulated annealing Methods 0.000 description 5
- 238000012512 characterization method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000011478 gradient descent method Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000005686 electrostatic field Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005530 etching Methods 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000011423 initialization method Methods 0.000 description 1
- 238000005468 ion implantation Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000000465 moulding Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000000206 photolithography Methods 0.000 description 1
- 238000005498 polishing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000000427 thin-film deposition Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000003466 welding Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
Definitions
- Embodiments of the present disclosure generally relate to the field of chip design, and more specifically relate to methods, devices, devices, media and program products for designing layouts.
- physical design is the process of converting gate-level netlist into geometric layout.
- Physical design mainly includes steps such as division, layout planning, layout, clock tree synthesis, and wiring, among which layout is an important step in the early stage of physical design.
- Layout is mainly used to determine the placement of circuit units in the chip, and can be further subdivided into Global Placement (GP), Legalization (LG) and Detailed Placement (DP).
- GP Global Placement
- LG Legalization
- DP Detailed Placement
- LSI design physical design is one of the important steps.
- the location of the standard unit is an important link.
- the placement of standard units includes global placement (GP) and detailed layout.
- the main purpose of global placement is to place standard units on the design area according to a certain optimization goal, but at the same time, a certain degree of standardization is allowed.
- the location of the unit overlaps, and the optimization goal here can be expressed by indicators such as wire length (WL), routing congestion (congestion) or delay, or a combination of them.
- a common indicator used to represent wire length is the half parameter wire length (HPWL).
- the detailed layout is based on the overall layout to eliminate the overlap between layout units and improve the delay.
- embodiments of the present disclosure aim to provide a method, apparatus and electronic device for designing a layout for improving the quality of the overall layout.
- a method for designing a layout includes: based on the netlist data of the chip, initializing a plurality of circuit units in the chip in a grid array in the layout area to obtain an initial layout of the plurality of circuit units in the grid array, the netlist data at least indicating The size of multiple circuit cells and the connection relationship of multiple circuit cells; based on the initial layout and netlist data, determine the synthetic items of the layout parameters of the initial layout, and the synthetic items are based on the initial items of the layout parameters and the layout parameters associated with the layout parameters locally averaged terms of the set; and determining a target layout of the plurality of circuit cells in the grid array based on the synthesized term and the initialized layout.
- the layout process not only the gradient of the layout parameter itself is considered, but also the local average gradient associated with the layout parameter is considered, so that the layout optimization of the circuit unit can be performed with the synthetic gradient.
- layout parameters such as line length and layout compactness of circuit cells have both their own unique gradient influences and local overall gradient influences during the layout iteration process.
- the final layout result obtained according to the first aspect of the present disclosure can lead to improved layout quality, for example, reduced final line length such as HPWL characterization.
- the layout parameters include the gradient of the connection line length of the first circuit unit among the plurality of circuit units
- the synthesis item includes the synthesis gradient of the connection line length
- the gradient indicates the maximum rate of change of the layout parameter and
- the direction with the maximum rate of change, based on the initial layout and the netlist data to determine the synthetic item of the layout parameters of the initial layout includes: based on the netlist data and the initial layout, calculating the first initial gradient of the connection line length of the first circuit unit; Table data, determining a first associated circuit unit set of the first circuit unit; calculating a first local average gradient based on the first initial gradient and the initial gradient of the connecting line length of each associated circuit unit in the first associated circuit unit set; and Based on the first initial gradient and the first local average gradient, a resultant gradient of the connecting line length of the first circuit unit is calculated.
- determining the composite gradient of the layout parameters of the initialization layout based on the initialization layout and the netlist data includes: for each circuit unit in the plurality of circuit units, calculating each Respective initial gradients for the circuit cells, determining a respective set of associated circuit cells for each circuit cell, computing a respective local average gradient for each circuit cell, and computing a respective resultant gradient for the connecting line lengths for each circuit cell.
- determining the first associated circuit unit set of the first circuit unit based on the netlist data includes: determining the first associated circuit unit of the first circuit unit based on the netlist data and the first associated parameter set, the first associated parameter is used to specify the level of the physical connection of the first circuit unit.
- the first association parameter is used to specify that the level of the physical connection of the first circuit unit is level 1 indicating direct connection.
- the layout parameter includes the degree of density of the first grid in the grid array
- the degree of density of the first grid represents the degree of density of the circuit units in the first grid
- the synthesis item includes The synthesis density of the circuit cells in the first grid, based on the initialization layout and the netlist data
- determining the synthesis item of the layout parameters of the initialization layout includes: based on the initialization layout and the netlist data, calculating the first initial density of the first grid.
- determining the composite gradient of the layout parameters of the initialization layout based on the initialization layout and the netlist data includes: for each grid in the grid array, in a manner similar to the above, calculating The corresponding initial denseness of each grid, determine the respective associated grid set of each grid, calculate the corresponding local average denseness of each grid, and calculate the corresponding composite denseness of each grid, and based on each grid
- the composite density of the grid determines the density of circuit cells within the grid.
- determining the first set of associated circuit units of the first circuit unit based on the initialization layout includes: determining the set of associated grids of the first grid based on the initialization layout and the second association parameter, and the second The association parameter is used to specify the grid level adjacent to the first grid.
- the second association parameter is used to designate the adjacent grid level of the first grid as level 1 representing direct adjacency.
- determining the composite gradient of the layout parameters of the initialization layout based on the initialization layout and the netlist data includes: determining the initial gradient and the local average gradient of the layout parameters based on the initialization layout and the netlist data; calculating the initial a first product of the gradient and the first coefficient; calculating a second product of the local average gradient and the second coefficient; and adding the first product to the second product to determine a resultant gradient of the layout parameter.
- the sum of the first coefficient and the second coefficient is 1.
- the method further includes: determining an initial value of the layout parameter; and setting the second coefficient to a negative value in response to the initial value being higher than the first threshold.
- the layout parameter may be the density of cells in the grid of the grid array
- the initial value may be the initial value of the density of cells in a grid.
- an apparatus for designing a layout includes: an initialization module, a composite item determination module and a target layout determination module.
- the initialization module is configured to: based on the netlist data of the chip, initialize the multiple circuit units in the chip in the grid array in the layout area, so as to obtain the initialization layout of the multiple circuit units in the grid array, and the netlist data At least the dimensions of the plurality of circuit units and the connection relationship of the plurality of circuit units are indicated.
- the synthesis item determining module is configured to: determine the synthetic gradient of the layout parameters of the initial layout based on the initial layout and the netlist data, the synthetic gradient is based on the initial gradient of the layout parameters and the local average gradient of the layout parameter set associated with the layout parameters, the gradient Indicates the maximum rate of change of the layout parameter and the direction with the maximum rate of change.
- the target layout determining module is configured to: determine the target layout of the plurality of circuit cells in the grid array based on the synthetic gradient and the initial layout. In the layout process, not only the gradient of the layout parameter itself is considered, but also the local average gradient associated with the layout parameter is considered, so that the layout optimization of the circuit unit can be performed with the synthetic gradient.
- a plurality of associated circuit units can be evenly spread out during the layout process, and can also maintain a tight connection relationship during the spread out process.
- layout parameters such as line length and layout compactness of circuit cells have both their own unique gradient influences and local overall gradient influences during the layout iteration process.
- the final layout result obtained according to the first aspect of the present disclosure can lead to improved layout quality, for example, reduced final line length such as HPWL characterization.
- the layout parameter includes a connection line length of a first circuit unit among the plurality of circuit units.
- the synthesis item determination module includes: a calculation module configured to calculate the first initial gradient of the connection line length of the first circuit unit based on the netlist data and the initialization layout; the associated circuit unit set determination module is configured to: based on the netlist data, determining the first associated circuit unit set of the first circuit unit; the calculation module is further configured to: calculate the first partial an average gradient; and based on the first initial gradient and the first local average gradient, calculating a resultant gradient of the connecting line length of the first circuit unit.
- determining the composite gradient of the layout parameters of the initialization layout based on the initialization layout and the netlist data includes: for each circuit unit in the plurality of circuit units, calculating each Respective initial gradients for the circuit cells, determining a respective set of associated circuit cells for each circuit cell, computing a respective local average gradient for each circuit cell, and computing a respective resultant gradient for the connecting line lengths for each circuit cell.
- the associated circuit unit set determining module is further configured to: determine the first associated circuit unit set of the first circuit unit based on the netlist data and the first associated parameter, and the first associated parameter is used at the level specifying the physical connection of the first circuit unit.
- the first association parameter is used to specify that the level of the physical connection of the first circuit unit is level 1 indicating direct connection. In other words, only the local average gradients of the first circuit unit and related circuit units directly connected to the first circuit unit are considered when calculating the synthetic gradient of the line length above. In this way, the calculation amount and the subsequent iteration time can be reduced, and the overall layout line length of the circuit cells in the overall layout process can still be significantly reduced.
- the layout parameter includes the density of the first grid in the grid array
- the density of the first grid represents the density of the circuit units in the first grid
- the synthesis item includes
- the synthesis item determination module is further configured to: calculate the first initial density of the first grid based on the initial layout and netlist data; determine the first initial density based on the initial layout.
- an associated grid set of meshes based on the first initial density and the corresponding initial density of each associated mesh in the associated grid set, a first local average density is calculated; based on the first initial density and the first local average The degree of density is to calculate the density of synthesis of the first grid; and based on the density of synthesis of the first grid, determine the first degree of density of synthesis of the circuit units in the first grid.
- the composite item determination module is further configured to: for each grid in the grid array, in a manner similar to the above, calculate the corresponding initial density of each grid, and determine each the respective associated grid sets of grids, calculate the corresponding local average density of each grid, and calculate the corresponding composite density of each grid, and determine the circuit within the grid based on the composite density of grids density of units.
- the associated grid set determination module is further configured to: determine the associated grid set of the first grid based on the initialized layout and the second associated parameter, and the second associated parameter is used to specify the The grid level adjacent to the first grid.
- the second association parameter is used to designate the adjacent grid level of the first grid as level 1 representing direct adjacency.
- the synthetic term determination module is further configured to: determine the initial term and the local average term of the layout parameters based on the initialization layout and the netlist data; calculate the first product of the initial term and the first coefficient ; calculating a second product of the local mean term and the second coefficient; and adding the first product to the second product to determine a resultant term of the layout parameter.
- the sum of the first coefficient and the second coefficient is 1.
- the device further includes an initial value determination module configured to determine an initial value of the layout parameter; and a setting module configured to set the second Coefficients are set to negative values.
- the layout parameter may be the density of cells in the grid of the grid array
- the initial value may be the initial value of the density of cells in a grid.
- an electronic device comprising: at least one processor; at least one memory, the at least one memory is coupled to the at least one processor and stores instructions for execution by the at least one processor, the instructions When executed by at least one processor, an apparatus is caused to perform the method according to the first aspect.
- a computer readable storage medium stores a computer program which, when executed by a processor, implements the method according to the first aspect.
- a computer program product comprising computer executable instructions which, when executed by a processor, cause a computer to implement the method according to the first aspect.
- Figure 1 shows a flow chart of the design and manufacture process of an integrated circuit
- Figure 2 shows a block diagram of an example environment according to some embodiments of the present disclosure
- Figure 3 shows a schematic diagram of an exemplary initial layout
- FIG. 4 shows a flowchart of a method for designing a layout according to some embodiments of the present disclosure
- Fig. 5 shows a schematic diagram of dividing layout areas according to some embodiments of the present disclosure
- Fig. 6 shows a schematic diagram of the connection relationship of circuit units according to some embodiments of the present disclosure
- FIG. 7 shows a schematic diagram of a synthetic gradient of a circuit unit according to some embodiments of the present disclosure
- Figure 8 shows a schematic diagram of a composite gradient of circuit cell density in a grid according to some embodiments of the present disclosure
- FIG. 9 shows a schematic block diagram of an electronic device 900 according to some embodiments of the present disclosure.
- Fig. 10 shows a schematic block diagram of an example device 1000 that may be used to implement embodiments of the present disclosure.
- the term “comprising” and its similar expressions should be interpreted as an open inclusion, that is, “including but not limited to”.
- the term “based on” should be understood as “based at least in part on”.
- the term “one embodiment” or “the embodiment” should be read as “at least one embodiment”.
- the terms “first”, “second”, etc. may refer to different or the same object.
- the term “and/or” means at least one of the two items associated with it. For example "A and/or B" means A, B, or A and B. Other definitions, both express and implied, may also be included below.
- the simulated annealing algorithm can effectively accelerate the layout speed of the integrated circuit to a certain extent, but the two problems that this method cannot solve are: firstly, the running time of the algorithm is still relatively long , although the size of the solution space is optimized in this improved algorithm, the randomness of simulated annealing fundamentally restricts the running time gain; secondly, the high temperature and low temperature parameters proposed by the algorithm are different in each specific IC layout situation , which leads to the need to spend a lot of time on the optimization of hyperparameters when using this method, and the increase in workload and the limited benefit of runtime.
- a solution for designing a layout is proposed to solve one or more of the above-mentioned problems and other potential problems.
- the layout units can be fully dispersed during the overall layout, and the connection relationship of the layout units on each wiring network can be improved to a certain extent. Tightness is maintained. That is, layout cells with strong connection relationships are sufficiently close in the final layout result. So as to achieve the goal of line length optimization.
- FIG. 1 shows a flowchart of a design and manufacture process 100 for an integrated circuit.
- the design-to-manufacture process 100 begins with specification development 110 .
- the functional and performance requirements that the integrated circuit needs to meet are determined.
- circuit design 122 is first performed by means of electronic design automation (EDA) software.
- EDA electronic design automation
- the physical design 124 is performed to determine the layout and wiring of the circuit units in the integrated circuit, so as to obtain the circuit layout.
- mask fabrication 126 may be performed to obtain masks for forming the designed circuits on the wafer.
- stage of manufacturing 130 integrated circuits are formed on the wafer through processes such as photolithography, etching, ion implantation, thin film deposition, and polishing.
- stage of packaging 140 the wafer is diced to obtain bare chips, and the bare chips are packaged through processes such as bonding, welding, and molding to obtain chips.
- the resulting chip is tested in a testing 150 stage to ensure that the performance of the finished chip meets the requirements established in specification 110 .
- the tested chips 160 can be delivered to customers.
- the physical design 124 mainly includes steps such as division, layout planning, layout, clock tree synthesis, and wiring, and involves evaluation indicators such as routability, delay, power consumption, area, and manufacturability.
- Layout is an important part of physical design and includes overall layout, legalization, and detailed layout.
- the main purpose of the overall layout is to place the circuit units in the layout area according to a certain optimization goal, and a certain degree of overlap of the circuit units is allowed in the overall layout. After the overall layout, it is necessary to legalize the circuit units to be placed in legal positions, and to eliminate the overlap between the circuit units.
- Meticulous layout is to further reduce line length, improve delay, and reduce congestion on the basis of legalization results.
- Legalization is an intermediate link in the layout process, and its layout quality has a major impact on the final evaluation indicators. Therefore, it is expected to ensure legalized layout quality, thereby shortening the physical design cycle and improving chip development efficiency.
- FIG. 2 shows a block diagram of an example environment 200 according to some embodiments of the present disclosure.
- example environment 200 may generally include electronic device 230 .
- the electronic device 230 may be a device having computing functions such as a personal computer, a workstation, a server, and the like. The scope of the present disclosure is not limited in this regard.
- the electronic device 230 may take as input the netlist data 210 for the chip and the initial layout 220 for the chip.
- the chip can comprise, for example, a plurality of circuit units.
- the plurality of circuit units includes at least one group of movable circuit units.
- the plurality of circuit units may also include a set of fixed circuit units.
- a "movable circuit unit” means a circuit unit whose position can be changed in a layout scheme according to various embodiments of the present disclosure.
- the removable circuit unit may be a standard unit such as a gate, for example.
- the movable circuit unit may also be any other suitable unit whose position is set to be changeable, and the scope of the present disclosure is not limited in this respect.
- a "fixed circuit unit” refers to a circuit unit whose position has been predetermined and cannot be changed in the layout scheme according to the various embodiments of the present disclosure.
- the fixed circuit cells may be macrocells, for example.
- “Macro unit” refers to a pre-defined logic function realization unit composed of flip-flops and arithmetic logic units with a higher abstraction level than logic gates. It should be understood that the fixed circuit unit may also be any other suitable unit whose position is set to be unchangeable, and the scope of the present disclosure is not limited in this regard.
- circuit unit is usually used to refer to a “movable circuit unit”. ” for ease of description.
- the netlist data 210 may at least indicate the size of the multiple circuit units in the chip and the connection relationship of the multiple circuit units. In some embodiments, the netlist data 210 may also indicate information such as chip layout area and process parameters, and the scope of the present disclosure is not limited in this respect.
- the initial layout 220 may indicate the positions of multiple circuit units of the chip in the layout area, for example, the coordinates of each circuit unit.
- the initial layout 220 may be a layout obtained through an overall layout, in which a certain degree of overlap exists among some circuit units. It should be understood that the initial layout 220 may also be any other suitable layout to be optimized, and the scope of the present disclosure is not limited in this respect.
- netlist data 210 and initial layout 220 may be entered into electronic device 230 by a user. In some embodiments, the netlist data 210 and the initial layout 220 may have been pre-stored in the electronic device 230 . In some embodiments, electronic device 230 may also be communicatively coupled to other devices to obtain netlist data 210 and initial layout 220 from other devices. The scope of the present disclosure is not limited in this respect. It should be noted that although netlist data 210 and initial layout 220 are shown as two separate files in FIG. Unrestricted in this respect.
- the electronic device 230 may divide the layout area of the chip into grid arrays based on the netlist data 210, and then determine the priorities of multiple candidate paths for moving the movable circuit units therein for the overloaded grids in the grid array of the layout area. level, and determine the final target layout 240 according to the determined priority and the initial layout 220 . This will be described in further detail below with reference to FIGS. 3 to 10 .
- FIG. 3 shows a schematic diagram of an exemplary initial layout 220 .
- a movable circuit unit 320 for the purposes of illustration and simplification, in the example shown in FIG. is a movable circuit unit 320) and four fixed circuit units 330-1 to 330-4 (separately or collectively referred to as fixed circuit unit 330).
- some circuit units overlap to a certain extent.
- movable circuit unit 320-5 overlaps with movable circuit units 320-2, 320-3, 320-5, and 320-6.
- the fixed circuit unit 330-3 overlaps with the movable circuit unit 320-11.
- the layout area 310 of the chip can also have any other suitable shape, and the number of the movable circuit unit 320 and the fixed circuit unit 330 included in the chip can also be any other suitable value, and the scope of the present disclosure is within This aspect is not limited.
- FIG. 4 shows a flowchart of a method 400 for designing a layout according to some embodiments of the present disclosure.
- the method 400 may be executed by the electronic device 230 as shown in FIG. 2 . It should be appreciated that method 400 may also include additional blocks not shown and/or blocks shown may be omitted, and that the scope of the present disclosure is not limited in this regard.
- the electronic device 230 may, for example, preprocess input files such as netlist files and design related information. For example, the length and width information of standard cells and macro cells are obtained from the netlist information, and the largest rectangular area is divided on the area to be placed, and the target layout density is calculated.
- the electronic device can then be initialized in the layout area using initialization methods such as random initialization and quadratic initialization. Further, the electronic device 230 may divide the layout area, for example, divide it into a grid array including a plurality of grids.
- Fig. 5 shows a schematic diagram of dividing layout areas according to some embodiments of the present disclosure.
- FIG. 5 includes illustrations 501 , illustrations 502 , and illustrations 503 , wherein illustration 501 shows the initial layout 220 shown in FIG. 3 , and illustration 502 shows a grid array 510 according to some embodiments of the present disclosure.
- diagram 503 shows the result of using grid array 510 in diagram 502 to divide initial layout 220 in diagram 501 .
- grid array 510 includes 16 grids 520-1 through 520-16 (individually and collectively referred to as grid 520). These grids 520-1 to 520-16 have a rectangular shape, and have the same height and the same width, ie, the determined first height and first width.
- Electronic device 230 may utilize grid array 510 in illustration 502 to divide layout area 310 of initial layout 220 in illustration 501 .
- a portion of circuit units may be located in one grid 520, for example, movable circuit unit 320-7 and fixed circuit unit 330-3 are located in grids 520-5 and 520-13, respectively.
- a part of circuit units may cover two or more grids 520 at the same time, for example, fixed circuit unit 330-2 covers grids 520-4 and 520-8. Since the position of the fixed circuit unit 330 will not be changed, when using this grid array 510 to divide the layout area 310, it is necessary to additionally calculate the fixed circuit unit 330- 2 occupied area.
- the electronic device 230 may also divide the layout area into 310 is divided irregularly into an array of grids, a first grid in the array of grids having a different height or width than a second grid in the array of grids.
- the height of grid 520-4 may be increased to the height of fixed circuit unit 330-2, and the height of grid 520-8 may be correspondingly decreased.
- the width of grid 520-4 may be reduced to the width of fixed circuit unit 330-2, and the width of grid 520-3 may be increased accordingly.
- the size of a part of the grids 520 in the grid array can be adapted to the size of the fixed circuit unit 330, and these grids 520 previously fully occupied by the fixed circuit unit 330 are no longer considered in subsequent operations, thereby
- the operating efficiency of the method according to the present disclosure can be improved.
- solutions according to various embodiments of the present disclosure will be described with reference to regular rectangular grid array 510 in illustration 502 . It should be understood that the solutions according to the various embodiments of the present disclosure are also applicable to irregularly divided grid arrays, and the scope of the present disclosure is not limited in this respect.
- the electronic device 230 determines a resultant gradient of layout parameters of the initialization layout based on the initialization layout and the netlist data.
- the composite gradient is based on an initial gradient of the layout parameter and a local average gradient of a set of layout parameters associated with the layout parameter, where the gradient indicates a maximum rate of change of the layout parameter and a direction having the maximum rate of change.
- the layout parameter includes the length of the connection line of the first circuit unit among the plurality of circuit units.
- the electronic device 230 determines the composite gradient of the layout parameters of the initialization layout based on the initialization layout and the netlist data: based on the netlist data and the initialization layout, calculating the first initial gradient of the connection line length of the first circuit unit; based on the netlist data, determining The first associated circuit unit set of the first circuit unit; based on the first initial gradient and the initial gradient of the connection line length of each associated circuit unit in the first associated circuit unit set, calculate the first local average gradient; and based on the first initial The gradient and the first local average gradient are used to calculate the resultant gradient of the connecting line length of the first circuit unit. This embodiment will be described below with reference to FIGS. 6 and 7 .
- FIG. 6 shows a schematic diagram of the connection relationship of circuit units according to some embodiments of the present disclosure.
- Circuit cells C1 to C8 are schematically shown in FIG. 6 , and these circuit cells may be located at different positions in the grid array. For ease of description, grid arrays and other circuit units are not shown here.
- the circuit unit C1 is directly connected to the circuit units C2, C3 and C4.
- Circuit unit C3 is connected to C5, circuit unit C4 is connected to C6 and C7, and circuit unit C7 and C8 are connected.
- FIG. 7 shows a schematic diagram of a composite gradient of a circuit unit according to some embodiments of the present disclosure. In FIG. 7 , for ease of illustration, the connection lines between the various circuit units are omitted, but it can be understood that each circuit unit in FIG.
- FIG. 7 has the connection relationship shown in FIG. 6 .
- the initial gradient of a circuit cell is shown by a thin solid arrow
- the local average gradient of a circuit cell is shown by a thin dashed arrow
- the resultant gradient of a circuit cell is shown by a thick solid arrow
- the gradients indicate layout parameters
- the maximum rate of change and the direction with the maximum rate of change such as the maximum rate of change and the direction with the maximum rate of change of the line length of the circuit unit.
- the gradient can actually be represented by a vector.
- the initial gradients of the circuit cells C1 to C8 can be calculated based on the netlist data and the initialization layout using an analytical optimization function obtained by Lagrangian relaxation technique.
- the following formula can be used to calculate the local average gradient of each circuit unit.
- gl i represents the local average gradient of the i-th circuit module
- n i represents the number of circuit units associated with the i-th circuit unit
- j represents the j-th circuit unit
- k represents the first associated parameter, which is used to specify the level of physical connection of the i-th circuit unit, and Indicates the initial gradient of each associated circuit unit under the condition that the associated parameter is k.
- the circuit unit C1 is taken as an example for description below.
- k may be specified by the designer or be 1 by default.
- the associated circuit units of the first circuit unit C1 are the circuit units directly connected to the first circuit unit C1, ie the circuit units C2, C3 and C4.
- gl 1 denotes the local average gradient of the first circuit cell C1, which depends on the initial gradients of the circuit cells C1 to C4. It can be understood that since the circuit units connected to each circuit unit may be different, the local average gradient of each circuit unit may be different. Although a specific calculation manner of the local average gradient is shown by formula (1), this is only for illustration and not limiting the scope of the present disclosure. Other local average gradient calculation methods can be used to calculate the local average gradient.
- the first circuit unit C1 when k is 2, taking the first circuit unit C1 as an example, its associated circuit units are the circuit units directly connected to the first circuit unit C1 and the circuit units directly connected to these circuit units. Connected circuit unit unit.
- the association level of the first circuit unit C1 is two levels, which includes circuit units C2, C3, C4 and circuit units directly connected to the circuit units C2, C3, C4, that is, the association level of the first circuit unit C1
- the circuit unit further includes circuit units C5, C6 and C7.
- the associated circuit units of the first circuit unit C1 include C2-C7.
- the composite gradient of each unit can be calculated.
- the composite gradient can be calculated by the following equation (2).
- ⁇ represents the contribution ratio of the local average gradient and the initial gradient of the circuit unit to the composite gradient.
- the value of ⁇ usually takes a value between 0 and 1, and can be specified by the designer or has a default value.
- Equation (3) is used here to show a specific calculation method of the composite gradient, this is only for illustration and not to limit the scope of the present disclosure. Composite gradients may be calculated using other composite gradient calculation methods.
- the composite gradient calculation shown above can be performed for each circuit unit in the chip. Alternatively, the composite gradient calculation shown above may also be performed on a specific part of the circuit units in the chip, which is not limited in the present disclosure.
- both the unique gradient influence of the circuit unit and the local overall gradient influence can be maintained during the layout process. In this way, it is possible to avoid an increase in line length caused by over-dispersion of associated circuit units in the spreading process of the circuit units. In other words, in this way, the overall layout line length of the circuit units in the overall layout process can be reduced.
- FIG. 8 shows a schematic diagram of a resultant gradient of density of circuit cells in a grid according to some embodiments of the present disclosure.
- element fill metrics may indicate how densely packed circuit cells are within corresponding grids 520 in grid array 510 .
- element fill metrics may also be referred to as cell fill metrics.
- the grid 520 - 6 in the grid array 510 is exemplarily described as the first grid in the following description.
- the electronic device 230 can use the size information of each circuit unit in the netlist data 210 to calculate the total area of the circuit units located in the first grid 520-6.
- the circuit cells 320-1 to 320-6 have portions located at the first grid 520-6.
- the circuit units 320-1 to 320-6 are at least partially located in the first grid 520-6.
- the first grid 520-6 has an area An.
- the cell density can be expressed as At/An.
- the ratio of the overall total area Ac of the circuit units 320-1 to 320-6 to the An of the first grid 520-6 can be used to calculate the unit density, which is not discussed in this disclosure. limit.
- GL i represents the local average density of the i-th grid
- n i represents the number of grids associated with the i-th grid
- j represents the j-th grid
- k represents the second associated parameter, which is used for specifies the grid level adjacent to the i-th grid, and Indicates the initial density of each associated grid under the condition that the associated parameter is k.
- the description below takes the first grid 520-6 as an example.
- k can be specified by the designer or be 1 by default.
- the associated grids of the first grid 520-6 are grids directly adjacent to the first grid 520-6, that is, grids 520-1, 520-2, 520-3, 520-5, 520-7, 520-9, 520-10, and 520-11.
- GL i represents the local average density of the first grid 520-6, which depends on the grids 520-1, 520-2, 520-3, 520-5, 520-7, 520-9, The initial density of 520-10 and 520-11. It can be understood that since the adjacent grids of each grid can be different, the local average density of each grid can be different.
- the combined density of each unit can be calculated.
- the synthesis intensity can be calculated by the following formula (2).
- ⁇ represents the contribution ratio of the local average density and the initial density of the grid to the composite density.
- the value of ⁇ usually takes a value between 0 and 1, and can be specified by the designer or has a default value.
- the value of ⁇ can also take a negative value. For example, an initial value of the density of circuit units of the first grid 520 - 6 may be calculated, and if the initial value is higher than a first threshold, ⁇ may be set as a negative number.
- the final result of the average field density calculation formula (6) is greater than the initial density, which is equivalent to the Mesh congested areas are multiplied by a factor greater than 1.
- the thick arrow representing the resultant gradient of the first mesh 520-6 is longer than the thin arrow representing the initial gradient of the first mesh 520-6.
- the initial denseness of the grid such as the second grid 520-3 is partly smaller than the average field denseness value
- the final result in the average field denseness calculation formula (6) is smaller than the initial denseness, which is equivalent to A factor less than 1 is multiplied for under-congested areas. For example, as shown in FIG.
- thick arrows representing the composite density of the second grid 520 - 3 are shorter than thin arrows representing the initial density of the second grid 520 - 3 .
- Such a "Matthew effect" can cause circuit cells in more congested grids to spread out more quickly, while circuit cells in less congested grids generally move less.
- formula (6) is used here to show a specific calculation method of the synthesis intensity, this is only for illustration and not to limit the scope of the present disclosure. Other calculation methods of composition intensity can be used to calculate the composition intensity.
- the compositing intensity calculation shown above can be performed for each grid in the layout area.
- the synthesis intensity calculation shown above may also be performed on a specific mesh in the chip, and this disclosure is not limited thereto.
- the value of the density of circuit units of each grid may be calculated first, and compared with the second threshold. If it is not higher than the second threshold, it indicates that the density of circuit units in the grid is low, and no adjustment is required. If above the second threshold, then use the method of synthesis density above to adjust the circuit cells in the grid. In this way, the time and computation for computing the compositing intensity of the mesh can be reduced, and the time and computation for subsequent iterations correspondingly reduced.
- an electrostatic field model may also be used to approximately describe the uniformity of layout unit distribution, and a result of uniform density distribution may be obtained by solving a Poisson (possion) equation.
- the effect of the local mean field can also be considered, and the calculation formula is still consistent with the aforementioned formula (6).
- the local additional weighted calculation is performed on the electric field distribution calculated by the electric field model.
- each grid In addition to its own electric field contribution (that is, the initial electric field), each grid also considers the average contribution of the surrounding adjacent grids at the grid position to obtain a smooth The electric field distribution is improved, so that the change of the subsequent electric field gradient tends to be smooth.
- the definition of the association grid may be the same as the above definition of the association grid in FIG. 8 , which will not be repeated here.
- the electric field distribution of grids such as the first grid 520-6 it can be divided into two parts.
- the first part is the electric field strength obtained by solving the possion equation in the electric field model, and the second part is such as the first grid
- the calculation formula of the average gradient field contribution of grids such as grid 520-6 as the center of 3x3, 5x5, etc. is still as described in the aforementioned formula (6).
- the final gradient of each layout unit is also a relatively continuous transition, thereby improving the final convergence result to a certain extent.
- the general value in the above formula (6) can be a positive value, so that a smoother layout optimization result with better quality can be obtained.
- a target layout of the plurality of circuit cells in the grid array is determined.
- at least one of the synthetic gradient of the line length of the above circuit unit and the synthetic density of the circuit unit in the grid can be used as the gradient of the iterative solution, and utilize such as Adam or Nesterov optimizer
- the optimizer performs an iterative solution. For example, in one embodiment, it can be solved iteratively by using the following optimization objective function (7).
- WL(x,y) represents the HPWL under the current layout
- D(x,y) represents the density of standard units corresponding to the current layout
- ⁇ represents the weighting coefficient, and can be specified by the designer or use the default value.
- a local average gradient may be applied to at least one of the line length gradient of the circuit unit and the density of the circuit units in the grid, so as to obtain a corresponding synthesis item.
- the layout process not only the layout parameters themselves, but also the local average items associated with the layout parameters can be considered, so that the layout optimization of the circuit cells can be performed with the synthesized items.
- layout parameters such as line length and layout compactness of circuit cells have both their own unique influence and local overall influence during the layout iteration process.
- the final layout result obtained according to the first aspect of the present disclosure can lead to improved layout quality, for example, reduced final line length such as HPWL characterization.
- the mean fields of different scales can be calculated and combined.
- an attenuation coefficient ⁇ can be added to the mean field gradient to improve the convergence quality and a negative ⁇ can be added to the mean field gradient to speed up the convergence speed.
- FIG. 9 shows a schematic block diagram of an electronic device 900 according to some embodiments of the present disclosure.
- the electronic device 900 may be implemented as or included in the electronic device 230 of FIG. 2 .
- the electronic device 900 may include a plurality of modules for performing corresponding steps in the method 400 as discussed in FIG. 4 .
- the electronic device 900 includes an initialization module 902 configured to: based on the netlist data of the chip, initialize a plurality of circuit units in the chip in a grid array in the layout area, so as to obtain a plurality of circuit units In the initial layout in the grid array, the netlist data at least indicates the size of the plurality of circuit units and the connection relationship of the plurality of circuit units.
- the electronic device 900 further includes a composite item determination module 904 configured to: determine a composite item of the layout parameters of the initialization layout based on the initialization layout and the netlist data, the composite item is based on the initial item of the layout parameters and the layout parameters associated with the layout parameters The local average term of the set.
- the electronic device 900 further includes a target layout determination module 906 configured to: determine a target layout of the plurality of circuit units in the grid array based on the synthesized item and the initialization layout. In the layout process, not only the gradient of the layout parameter itself is considered, but also the local average gradient associated with the layout parameter is considered, so that the layout optimization of the circuit unit can be performed with the synthetic gradient.
- a plurality of associated circuit units can be evenly spread out during the layout process, and can also maintain a tight connection relationship during the spread out process.
- layout parameters such as line length and layout compactness of circuit cells have both their own unique gradient influences and local overall gradient influences during the layout iteration process.
- the final layout result obtained according to the first aspect of the present disclosure can lead to improved layout quality, for example, reduced final line length such as HPWL characterization.
- the layout parameters include the gradient of the connection line length of the first circuit unit among the plurality of circuit units
- the composite item includes the composite gradient of the connection line length
- the gradient indicates the maximum change rate of the layout parameter and the maximum change rate of the layout parameter. direction.
- the synthetic item determination module 904 includes: a calculation module configured to calculate the first initial gradient of the connection line length of the first circuit unit based on the netlist data and the initialization layout; an associated circuit unit set determination module configured to: based on the netlist data , to determine the first associated circuit unit set of the first circuit unit; the calculation module is further configured to: based on the first initial gradient and the initial gradient of the connection line length of each associated circuit unit in the first associated circuit unit set, calculate the first a local average gradient; and based on the first initial gradient and the first local average gradient, calculating a resultant gradient of the connecting line length of the first circuit unit.
- determining the composite gradient of the layout parameters of the initialization layout based on the initialization layout and the netlist data includes: for each circuit unit in the plurality of circuit units, calculating the corresponding initial Gradients, determining a respective set of associated circuit units for each circuit unit, calculating a corresponding local average gradient for each circuit unit, and calculating a corresponding resultant gradient for the connecting line lengths of each circuit unit.
- the associated circuit unit set determination module is further configured to: determine the first associated circuit unit set of the first circuit unit based on the netlist data and the first associated parameter, the first associated parameter is used to specify the first circuit The level of physical connection of the unit.
- the first association parameter is used to specify that the level of the physical connection of the first circuit unit is level 1 indicating direct connection. In other words, only the local average gradients of the first circuit unit and related circuit units directly connected to the first circuit unit are considered when calculating the synthetic gradient of the line length above. In this way, the calculation amount and the subsequent iteration time can be reduced, and the overall layout line length of the circuit cells in the overall layout process can still be significantly reduced.
- the layout parameters include the density of the first grid in the grid array, the density of the first grid represents the density of the circuit units in the first grid, and the synthesis item includes The synthesis intensity of the circuit unit.
- the composite item determination module 904 is further configured to: calculate the first initial density of the first grid based on the initial layout and netlist data; determine the associated grid set of the first grid based on the initial layout; Intensity and the corresponding initial intensities of each associated grid in the associated grid set, calculating a first local average intensification; based on the first initial intensification and the first local average intensification, calculating a composite intensification for the first grid ; and based on the composition density of the first grid, determining a first composition density of the circuit cells in the first grid.
- the composite item determination module 904 is further configured to: for each grid in the grid array, in a manner similar to the above, calculate the corresponding initial density of each grid, and determine the Respective associative mesh sets, computing a corresponding local average density for each mesh, and computing a corresponding composite density for each mesh, and determining the density of circuit cells within a mesh based on the mesh's composite density .
- the associated grid set determining module is further configured to: determine an associated grid set of the first grid based on the initial layout and a second associated parameter, the second associated parameter is used to specify Neighboring grid level.
- the second association parameter is used to designate the adjacent grid level of the first grid as level 1 representing direct adjacency.
- the synthesis item determination module 904 is further configured to: determine the initial item and the local average item of the layout parameters based on the initialization layout and the netlist data; calculate the first product of the initial item and the first coefficient; calculate the local average A second product of the term and the second coefficient; and adding the first product to the second product to determine a resultant term of the layout parameter.
- the sum of the first coefficient and the second coefficient is 1.
- the electronic device 900 further includes an initial value determination module configured to determine an initial value of the layout parameter; and a setting module configured to set the second coefficient to negative value.
- the layout parameter may be the density of cells in the grid of the grid array
- the initial value may be the initial value of the density of cells in a grid.
- Fig. 10 shows a schematic block diagram of an example device 1000 that may be used to implement embodiments of the present disclosure.
- Device 1000 may be used to implement electronic device 230 .
- device 1000 includes computing unit 1001, which may be loaded into RAM 1003 and/or Computer program instructions in ROM 1002 to perform various appropriate actions and processes.
- RAM 1003 and/or the ROM 1002 various programs and data necessary for the operation of the device 1000 can also be stored.
- the computing unit 1001 and the RAM 1003 and/or ROM 1002 are connected to each other via a bus 1004.
- An input/output (I/O) interface 1005 is also connected to the bus 1004 .
- I/O input/output
- the I/O interface 1005 includes: an input unit 1006, such as a keyboard, a mouse, etc.; an output unit 1007, such as various types of displays, speakers, etc.; a storage unit 1008, such as a magnetic disk, an optical disk, etc. ; and a communication unit 1009, such as a network card, a modem, a wireless communication transceiver, and the like.
- the communication unit 1009 allows the device 1000 to exchange information/data with other devices through a computer network such as the Internet and/or various telecommunication networks.
- the computing unit 1001 may be various general-purpose and/or special-purpose processing components having processing and computing capabilities. Some examples of computing units 1001 include, but are not limited to, central processing units (CPUs), graphics processing units (GPUs), various dedicated artificial intelligence (AI) computing chips, various computing units that run machine learning model algorithms, digital signal processing processor (DSP), and any suitable processor, controller, microcontroller, etc.
- the calculation unit 1001 executes various methods and processes described above, such as the method 400 .
- method 400 may be implemented as a computer software program tangibly embodied on a machine-readable medium, such as storage unit 1008 .
- part or all of the computer program may be loaded and/or installed onto the device 1000 via RAM and/or ROM and/or the communication unit 1009 .
- a computer program When a computer program is loaded into RAM and/or ROM and executed by computing unit 1001, one or more steps of method 400 described above may be performed.
- the computing unit 1001 may be configured to execute the method 400 in any other suitable manner (for example, by means of firmware).
- Program codes for implementing the methods of the present disclosure may be written in any combination of one or more programming languages. These program codes may be provided to a processor or controller of a general-purpose computer, a special purpose computer, or other programmable data processing devices, so that the program codes, when executed by the processor or controller, make the functions/functions specified in the flow diagrams and/or block diagrams Action is implemented.
- the program code may execute entirely on the machine, partly on the machine, as a stand-alone software package partly on the machine and partly on a remote machine or entirely on the remote machine or server.
- a machine-readable medium may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device.
- a machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium.
- a machine-readable medium may include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing.
- machine-readable storage media would include one or more wire-based electrical connections, portable computer discs, hard drives, random access memory (RAM), read only memory (ROM), erasable programmable read only memory (EPROM or flash memory), optical fiber, compact disk read only memory (CD-ROM), optical storage, magnetic storage, or any suitable combination of the foregoing.
- RAM random access memory
- ROM read only memory
- EPROM or flash memory erasable programmable read only memory
- CD-ROM compact disk read only memory
- magnetic storage or any suitable combination of the foregoing.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Architecture (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
The present disclosure relates to a method for designing a layout, a program product, a storage medium and an electronic device. The method comprises: applying a local average field to a line length gradient of each circuit unit in an initialized layout and/or a density of circuit units within a grid in a grid array; and obtaining a corresponding synthesized item. The synthesized item is then used to iteratively optimize. In this way, multiple associated circuit units may be uniformly distributed in a layout process, and the tightness of a connection relationship may also be kept through the distribution process. In other words, layout parameters of the circuit units, such as line length and layout tightness, each have their own influences, and also have an overall local influence, in the layout iteration process. In this way, compared with conventional analytical overall layout, the final layout results obtained in accordance with a first aspect of the present disclosure may cause the layout quality to be improved, for example, reducing final wire length characterized by HPWL.
Description
本公开的实施例总体上涉及芯片设计领域,更具体地涉及用于设计布局的方法、装置、设备、介质以及程序产品。Embodiments of the present disclosure generally relate to the field of chip design, and more specifically relate to methods, devices, devices, media and program products for designing layouts.
在集成电路(Integrated Circuit,IC)设计中,物理设计是将门级网表转化成几何版图的过程。物理设计主要包括划分、版图规划、布局、时钟树综合、布线等步骤,其中布局是物理设计前期的重要步骤。布局主要用于确定芯片中的电路单元的摆放位置,并且可以进一步细分为整体布局(Global Placement,GP)、合法化(Legalization,LG)以及细致布局(Detailed Placement,DP)。In integrated circuit (Integrated Circuit, IC) design, physical design is the process of converting gate-level netlist into geometric layout. Physical design mainly includes steps such as division, layout planning, layout, clock tree synthesis, and wiring, among which layout is an important step in the early stage of physical design. Layout is mainly used to determine the placement of circuit units in the chip, and can be further subdivided into Global Placement (GP), Legalization (LG) and Detailed Placement (DP).
在大规模集成电路设计中,物理设计是其中一个重要步骤。而在物理设计中,标准单元的位置摆放又是其中一个重要环节。标准单元的位置摆放包括整体布局(global placement,GP)与细致布局,其中整体布局的主要目的是将标准单元按照一定的优化目标摆放到设计区域上面,但同时也允许存在一定程度的标准单元位置重叠,这里的优化目标可以用总线长(wire length,WL)、走线拥塞程度(congestion)或时延等指标来表示,也可以用它们的组合来表示。一种用于表示线长的常规指标是半周线长(half parameter wire length,HPWL)。细致布局则是在整体布局的基础上消除布局单元间的重叠并改善时延等。在现代大规模集成电路设计中,整体布局的好坏对最终芯片的性能、功耗和面积(performance-power-area,PPA)起着重要影响,同时整体布局耗时也是整个物理设计中的主要耗时环节之一。In LSI design, physical design is one of the important steps. In the physical design, the location of the standard unit is an important link. The placement of standard units includes global placement (GP) and detailed layout. The main purpose of global placement is to place standard units on the design area according to a certain optimization goal, but at the same time, a certain degree of standardization is allowed. The location of the unit overlaps, and the optimization goal here can be expressed by indicators such as wire length (WL), routing congestion (congestion) or delay, or a combination of them. A common indicator used to represent wire length is the half parameter wire length (HPWL). The detailed layout is based on the overall layout to eliminate the overlap between layout units and improve the delay. In the design of modern large-scale integrated circuits, the quality of the overall layout has an important impact on the performance, power consumption and area (performance-power-area, PPA) of the final chip, and the overall layout time is also the main factor in the entire physical design. One of the time consuming parts.
常规整体布局优化方法主要有三类:基于启发式划分的整体布局方法、基于模拟退火方法的布局方法以及解析式迭代优化布局方法等。一种解析式整体布局优化方法将优化的目标函数和相关约束通过拉格朗日松弛技术相结合,可以得到一个新的优化目标函数。通过将优化目标函数表示成可微分的解析形式,可以充分利用数学中的优化理论来进行最优布局求解。但是,由于解析式优化目标函数中的“标准单元重叠程度”项在很多模型中是一个非凸函数,梯度下降法求解往往陷入局部最优解。此外,由于并未对各连线网络上的布局单元添加局部约束,同一条连续网络上的布局单元在最终布局结果中可能分散程度较大,这会使得诸如HPWL之类的最终线长增大,布局质量欠佳。Conventional global layout optimization methods mainly fall into three categories: global layout methods based on heuristic partitioning, layout methods based on simulated annealing methods, and analytical iterative optimization layout methods. An analytical overall layout optimization method combines the optimized objective function and related constraints through Lagrangian relaxation technique to obtain a new optimized objective function. By expressing the optimization objective function into a differentiable analytical form, the optimization theory in mathematics can be fully used to solve the optimal layout. However, since the "overlap degree of standard unit" item in the analytical optimization objective function is a non-convex function in many models, the gradient descent method often falls into a local optimal solution. In addition, since no local constraints are added to the layout units on each connection network, the layout units on the same continuous network may be scattered in the final layout result, which will increase the final line length such as HPWL , the layout quality is poor.
发明内容Contents of the invention
鉴于上述问题,本公开的实施例旨在提供一种用于设计布局的方法、装置和电子设备,用于改进整体布局的质量。In view of the above-mentioned problems, embodiments of the present disclosure aim to provide a method, apparatus and electronic device for designing a layout for improving the quality of the overall layout.
在本公开的第一方面中,提供一种用于设计布局的方法。该方法包括:基于芯片的网表数据,对芯片中的多个电路单元在布局区域的网格阵列中进行初始化,以得到多个电路单元在网格阵列中的初始化布局,网表数据至少指示多个电路单元的尺寸和多个电路单元的连接关系;基于初始化布局和网表数据,确定初始化布局的布局参数的合成项,合成项基于布局参数的初始项和与布局参数相关联的布局参数集的局部平均项;以及基 于合成项和初始化布局,确定多个电路单元在网格阵列中的目标布局。在布局过程中,不仅考虑布局参数自身的梯度,还考虑布局参数相关联的局部平均梯度,从而可以以合成梯度来对电路单元进行布局优化。这样,多个相关联的电路单元在布局过程中既可以均匀散开,也可以在散开过程中保持连接关系的紧密性。换言之,诸如电路单元的线长和布局紧密程度之类的布局参数在布局迭代过程中,既有各自的独特梯度影响,又有局部的整体梯度影响。这样,相比于常规的解析式整体布局,根据本公开的第一方面所获得的最终布局结果可以使得布局质量提高,例如减小诸如HPWL表征的最终线长。In a first aspect of the present disclosure, a method for designing a layout is provided. The method includes: based on the netlist data of the chip, initializing a plurality of circuit units in the chip in a grid array in the layout area to obtain an initial layout of the plurality of circuit units in the grid array, the netlist data at least indicating The size of multiple circuit cells and the connection relationship of multiple circuit cells; based on the initial layout and netlist data, determine the synthetic items of the layout parameters of the initial layout, and the synthetic items are based on the initial items of the layout parameters and the layout parameters associated with the layout parameters locally averaged terms of the set; and determining a target layout of the plurality of circuit cells in the grid array based on the synthesized term and the initialized layout. In the layout process, not only the gradient of the layout parameter itself is considered, but also the local average gradient associated with the layout parameter is considered, so that the layout optimization of the circuit unit can be performed with the synthetic gradient. In this way, a plurality of associated circuit units can be evenly spread out during the layout process, and can also maintain a tight connection relationship during the spread out process. In other words, layout parameters such as line length and layout compactness of circuit cells have both their own unique gradient influences and local overall gradient influences during the layout iteration process. In this way, compared with the conventional analytical overall layout, the final layout result obtained according to the first aspect of the present disclosure can lead to improved layout quality, for example, reduced final line length such as HPWL characterization.
在第一方面的一种实现方式中,布局参数包括多个电路单元中的第一电路单元的连接线长的梯度,合成项包括连接线长的合成梯度,梯度指示布局参数的最大变化率和具有最大变化率的方向,基于初始化布局和网表数据确定初始化布局的布局参数的合成项包括:基于网表数据和初始化布局,计算第一电路单元的连接线长的第一初始梯度;基于网表数据,确定第一电路单元的第一关联电路单元集;基于第一初始梯度和第一关联电路单元集中的每个关联电路单元的连接线长的初始梯度,计算第一局部平均梯度;以及基于第一初始梯度和第一局部平均梯度,计算第一电路单元的连接线长的合成梯度。In an implementation manner of the first aspect, the layout parameters include the gradient of the connection line length of the first circuit unit among the plurality of circuit units, the synthesis item includes the synthesis gradient of the connection line length, and the gradient indicates the maximum rate of change of the layout parameter and The direction with the maximum rate of change, based on the initial layout and the netlist data to determine the synthetic item of the layout parameters of the initial layout includes: based on the netlist data and the initial layout, calculating the first initial gradient of the connection line length of the first circuit unit; Table data, determining a first associated circuit unit set of the first circuit unit; calculating a first local average gradient based on the first initial gradient and the initial gradient of the connecting line length of each associated circuit unit in the first associated circuit unit set; and Based on the first initial gradient and the first local average gradient, a resultant gradient of the connecting line length of the first circuit unit is calculated.
在第一方面的一种实现方式中,基于初始化布局和网表数据确定初始化布局的布局参数的合成梯度包括:针对多个电路单元中的每个电路单元,以上面类似地方式,计算每个电路单元的相应初始梯度,确定每个电路单元的各自的关联电路单元集,计算每个电路单元的相应的局部平均梯度,并且计算每个电路单元的连接线长的相应合成梯度。通过计算电路单元的合成梯度,可以在布局过程中既保持电路单元的独特梯度影响,又有局部的整体梯度影响。这样,可以避免电路单元在散开过程中相关联的电路单元过于分散所导致的线长增加。换言之,以此方式,可以减少整体布局过程中的电路单元的整体布局线长。In an implementation manner of the first aspect, determining the composite gradient of the layout parameters of the initialization layout based on the initialization layout and the netlist data includes: for each circuit unit in the plurality of circuit units, calculating each Respective initial gradients for the circuit cells, determining a respective set of associated circuit cells for each circuit cell, computing a respective local average gradient for each circuit cell, and computing a respective resultant gradient for the connecting line lengths for each circuit cell. By calculating the composite gradient of the circuit unit, both the unique gradient influence of the circuit unit and the local overall gradient influence can be maintained during the layout process. In this way, it is possible to avoid an increase in line length caused by over-dispersion of associated circuit units in the spreading process of the circuit units. In other words, in this way, the overall layout line length of the circuit units in the overall layout process can be reduced.
在第一方面的一种实现方式中,基于网表数据确定第一电路单元的第一关联电路单元集包括:基于网表数据和第一关联参数,确定第一电路单元的第一关联电路单元集,第一关联参数用于指定第一电路单元的物理连接的层级。例如,该第一关联参数用于指定第一电路单元的物理连接的层级为表示直接连接的1级。换言之,在上面计算线长的合成梯度时,仅考虑第一电路单元以及与第一电路单元直接连接的相关电路单元的局部平均梯度。这样,可以减少计算量和后续的迭代时间,并且仍能显著减少整体布局过程中的电路单元的整体布局线长。In an implementation manner of the first aspect, determining the first associated circuit unit set of the first circuit unit based on the netlist data includes: determining the first associated circuit unit of the first circuit unit based on the netlist data and the first associated parameter set, the first associated parameter is used to specify the level of the physical connection of the first circuit unit. For example, the first association parameter is used to specify that the level of the physical connection of the first circuit unit is level 1 indicating direct connection. In other words, only the local average gradients of the first circuit unit and related circuit units directly connected to the first circuit unit are considered when calculating the synthetic gradient of the line length above. In this way, the calculation amount and the subsequent iteration time can be reduced, and the overall layout line length of the circuit cells in the overall layout process can still be significantly reduced.
在第一方面的一种实现方式中,布局参数包括网格阵列中的第一网格的密集程度,第一网格的密集程度表示电路单元在第一网格内的密集程度,合成项包括第一网格内的电路单元的合成密集程度,基于初始化布局和网表数据确定初始化布局的布局参数的合成项包括:基于初始化布局和网表数据,计算第一网格的的第一初始密集程度;基于初始化布局,确定第一网格的关联网格集;基于第一初始密集程度和关联网格集中的每个关联网格的相应初始密集程度,计算第一局部平均密集程度;基于第一初始密集程度和第一局部平均密集程度,计算第一网格的合成密集程度;以及基于第一网格的合成密集程度,确定第一网格内的电路单元的第一合成密集程度。In an implementation manner of the first aspect, the layout parameter includes the degree of density of the first grid in the grid array, the degree of density of the first grid represents the degree of density of the circuit units in the first grid, and the synthesis item includes The synthesis density of the circuit cells in the first grid, based on the initialization layout and the netlist data, determining the synthesis item of the layout parameters of the initialization layout includes: based on the initialization layout and the netlist data, calculating the first initial density of the first grid. degree; based on the initial layout, determine the associated grid set of the first grid; based on the first initial dense degree and the corresponding initial dense degree of each associated grid in the associated grid set, calculate the first local average dense degree; based on the second An initial denseness and a first local average denseness, calculating a combined denseness of the first grid; and determining a first combined denseness of circuit units in the first grid based on the combined denseness of the first grid.
在第一方面的一种实现方式中,基于初始化布局和网表数据确定初始化布局的布局参数的合成梯度包括:针对网格阵列中的每个网格,以上面类似地方式,计算每个网格的相应初始密集程度,确定每个网格的各自的关联网格集,计算每个网格的相应的局部 平均密集程度,并且计算每个网格的相应合成密集程度,并且基于每个网格的合成密集程度确定网格内的电路单元的密集程度。通过每个网格的合成密集程度,可以在布局过程中既保持单个网格的独特影响,又有局部网格的整体影响。例如,可以避免多个电路单元在散开过程中再次聚集在另一网格。这样,可以使得电路单元在散开过程中更为均匀,从而获得更好的布局效果。In an implementation manner of the first aspect, determining the composite gradient of the layout parameters of the initialization layout based on the initialization layout and the netlist data includes: for each grid in the grid array, in a manner similar to the above, calculating The corresponding initial denseness of each grid, determine the respective associated grid set of each grid, calculate the corresponding local average denseness of each grid, and calculate the corresponding composite denseness of each grid, and based on each grid The composite density of the grid determines the density of circuit cells within the grid. Through the composition density of each grid, it is possible to maintain both the unique influence of individual grids and the overall influence of local grids during the layout process. For example, a plurality of circuit units can be prevented from gathering in another grid again during the spreading process. In this way, the spreading process of the circuit units can be made more uniform, so as to obtain a better layout effect.
在第一方面的一种实现方式中,基于初始化布局确定第一电路单元的第一关联电路单元集包括:基于初始化布局和第二关联参数,确定第一网格的关联网格集,第二关联参数用于指定与第一网格相邻的网格层级。例如,该第二关联参数用于指定第一网格的相邻网格层级为表示直接邻接的1级。换言之,在上面计算网格的单元密集程度的合成梯度时,仅考虑第一网格以及与第一网格直接相邻的相关网格的单元密集程度的局部平均梯度。这样,可以减少计算量和后续的迭代时间,并且仍能获得显著的布局效果。In an implementation manner of the first aspect, determining the first set of associated circuit units of the first circuit unit based on the initialization layout includes: determining the set of associated grids of the first grid based on the initialization layout and the second association parameter, and the second The association parameter is used to specify the grid level adjacent to the first grid. For example, the second association parameter is used to designate the adjacent grid level of the first grid as level 1 representing direct adjacency. In other words, when calculating the composite gradient of the cell density of the grid above, only the local average gradient of the cell density of the first grid and related grids directly adjacent to the first grid is considered. In this way, the amount of computation and subsequent iteration time can be reduced and still achieve significant layout effects.
在第一方面的一种实现方式中,基于初始化布局和网表数据确定初始化布局的布局参数的合成梯度包括:基于初始化布局和网表数据,确定布局参数的初始梯度和局部平均梯度;计算初始梯度与第一系数的第一乘积;计算局部平均梯度与第二系数的第二乘积;以及将第一乘积与第二乘积相加,以确定布局参数的合成梯度。在第一方面的一种实现方式中,第一系数和第二系数之和为1。通过设置不同的系数,可以基于电路的配置来调节布局过程中的相关参数,进而可以影响布局质量和/或布局迭代的速度以及所需的时间。例如,在布局参数为网格的单元密集程度的情形下,如果密集程度越大,就可以通过设置系数使得电路单元散开的越快,从而加快后续的迭代和减少最终收敛所需的步数。In an implementation of the first aspect, determining the composite gradient of the layout parameters of the initialization layout based on the initialization layout and the netlist data includes: determining the initial gradient and the local average gradient of the layout parameters based on the initialization layout and the netlist data; calculating the initial a first product of the gradient and the first coefficient; calculating a second product of the local average gradient and the second coefficient; and adding the first product to the second product to determine a resultant gradient of the layout parameter. In an implementation manner of the first aspect, the sum of the first coefficient and the second coefficient is 1. By setting different coefficients, relevant parameters in the layout process can be adjusted based on the configuration of the circuit, thereby affecting the layout quality and/or the speed and required time of layout iterations. For example, in the case where the layout parameter is the cell density of the grid, if the density is greater, the coefficient can be set to make the circuit cells spread out faster, thereby speeding up subsequent iterations and reducing the number of steps required for final convergence .
在第一方面的一种实现方式中,该方法还包括:确定布局参数的初始值;以及响应于初始值高于第一阈值,将第二系数设置为负值。例如,布局参数可以是网格阵列的网格中的单元密集程度,并且该初始值可以是一个网格的单元密集程度的初始值。通过在迭代之前确认布局参数的初始值并且将该初始值与阈值进行比较,可以使得越为密集的网格中的电路单元越快散开,从而节省布局迭代的计算量和时间。In an implementation manner of the first aspect, the method further includes: determining an initial value of the layout parameter; and setting the second coefficient to a negative value in response to the initial value being higher than the first threshold. For example, the layout parameter may be the density of cells in the grid of the grid array, and the initial value may be the initial value of the density of cells in a grid. By confirming the initial value of the layout parameter before the iteration and comparing the initial value with the threshold value, the circuit cells in the denser grid can be dispersed faster, thereby saving the calculation amount and time of the layout iteration.
根据本公开的第二方面,提供一种用于设计布局的装置。该装置包括:初始化模块、合成项确定模块和目标布局确定模块。初始化模块被配置为:基于芯片的网表数据,对芯片中的多个电路单元在布局区域的网格阵列中进行初始化,以得到多个电路单元在网格阵列中的初始化布局,网表数据至少指示多个电路单元的尺寸和多个电路单元的连接关系。合成项确定模块被配置为:基于初始化布局和网表数据,确定初始化布局的布局参数的合成梯度,合成梯度基于布局参数的初始梯度和与布局参数相关联的布局参数集的局部平均梯度,梯度指示布局参数的最大变化率和具有最大变化率的方向。目标布局确定模块被配置为:基于合成梯度和初始化布局,确定多个电路单元在网格阵列中的目标布局。在布局过程中,不仅考虑布局参数自身的梯度,还考虑布局参数相关联的局部平均梯度,从而可以以合成梯度来对电路单元进行布局优化。这样,多个相关联的电路单元在布局过程中既可以均匀散开,也可以在散开过程中保持连接关系的紧密性。换言之,诸如电路单元的线长和布局紧密程度之类的布局参数在布局迭代过程中,既有各自的独特梯度影响,又有局部的整体梯度影响。这样,相比于常规的解析式整体布局,根据本公开的第一方面所获得的最终布局结果可以使得布局质量提高,例如减小诸如HPWL表征的最终线长。According to a second aspect of the present disclosure, an apparatus for designing a layout is provided. The device includes: an initialization module, a composite item determination module and a target layout determination module. The initialization module is configured to: based on the netlist data of the chip, initialize the multiple circuit units in the chip in the grid array in the layout area, so as to obtain the initialization layout of the multiple circuit units in the grid array, and the netlist data At least the dimensions of the plurality of circuit units and the connection relationship of the plurality of circuit units are indicated. The synthesis item determining module is configured to: determine the synthetic gradient of the layout parameters of the initial layout based on the initial layout and the netlist data, the synthetic gradient is based on the initial gradient of the layout parameters and the local average gradient of the layout parameter set associated with the layout parameters, the gradient Indicates the maximum rate of change of the layout parameter and the direction with the maximum rate of change. The target layout determining module is configured to: determine the target layout of the plurality of circuit cells in the grid array based on the synthetic gradient and the initial layout. In the layout process, not only the gradient of the layout parameter itself is considered, but also the local average gradient associated with the layout parameter is considered, so that the layout optimization of the circuit unit can be performed with the synthetic gradient. In this way, a plurality of associated circuit units can be evenly spread out during the layout process, and can also maintain a tight connection relationship during the spread out process. In other words, layout parameters such as line length and layout compactness of circuit cells have both their own unique gradient influences and local overall gradient influences during the layout iteration process. In this way, compared with the conventional analytical overall layout, the final layout result obtained according to the first aspect of the present disclosure can lead to improved layout quality, for example, reduced final line length such as HPWL characterization.
在第二方面的一种实现方式中,布局参数包括多个电路单元中的第一电路单元的连接线长。合成项确定模块包括:计算模块,被配置为基于网表数据和初始化布局计算第一电路单元的连接线长的第一初始梯度;关联电路单元集确定模块,被配置为:基于网表数据,确定第一电路单元的第一关联电路单元集;计算模块被进一步配置为:基于第一初始梯度和第一关联电路单元集中的每个关联电路单元的连接线长的初始梯度,计算第一局部平均梯度;以及基于第一初始梯度和第一局部平均梯度,计算第一电路单元的连接线长的合成梯度。In an implementation manner of the second aspect, the layout parameter includes a connection line length of a first circuit unit among the plurality of circuit units. The synthesis item determination module includes: a calculation module configured to calculate the first initial gradient of the connection line length of the first circuit unit based on the netlist data and the initialization layout; the associated circuit unit set determination module is configured to: based on the netlist data, determining the first associated circuit unit set of the first circuit unit; the calculation module is further configured to: calculate the first partial an average gradient; and based on the first initial gradient and the first local average gradient, calculating a resultant gradient of the connecting line length of the first circuit unit.
在第二方面的一种实现方式中,基于初始化布局和网表数据确定初始化布局的布局参数的合成梯度包括:针对多个电路单元中的每个电路单元,以上面类似地方式,计算每个电路单元的相应初始梯度,确定每个电路单元的各自的关联电路单元集,计算每个电路单元的相应的局部平均梯度,并且计算每个电路单元的连接线长的相应合成梯度。通过计算电路单元的合成梯度,可以在布局过程中既保持电路单元的独特梯度影响,又有局部的整体梯度影响。这样,可以避免电路单元在散开过程中相关联的电路单元过于分散所导致的线长增加。换言之,以此方式,可以减少整体布局过程中的电路单元的整体布局线长。In an implementation manner of the second aspect, determining the composite gradient of the layout parameters of the initialization layout based on the initialization layout and the netlist data includes: for each circuit unit in the plurality of circuit units, calculating each Respective initial gradients for the circuit cells, determining a respective set of associated circuit cells for each circuit cell, computing a respective local average gradient for each circuit cell, and computing a respective resultant gradient for the connecting line lengths for each circuit cell. By calculating the composite gradient of the circuit unit, both the unique gradient influence of the circuit unit and the local overall gradient influence can be maintained during the layout process. In this way, it is possible to avoid an increase in line length caused by over-dispersion of associated circuit units in the spreading process of the circuit units. In other words, in this way, the overall layout line length of the circuit units in the overall layout process can be reduced.
在第二方面的一种实现方式中,关联电路单元集确定模块被进一步配置为:基于网表数据和第一关联参数,确定第一电路单元的第一关联电路单元集,第一关联参数用于指定第一电路单元的物理连接的层级。例如,该第一关联参数用于指定第一电路单元的物理连接的层级为表示直接连接的1级。换言之,在上面计算线长的合成梯度时,仅考虑第一电路单元以及与第一电路单元直接连接的相关电路单元的局部平均梯度。这样,可以减少计算量和后续的迭代时间,并且仍能显著减少整体布局过程中的电路单元的整体布局线长。In an implementation manner of the second aspect, the associated circuit unit set determining module is further configured to: determine the first associated circuit unit set of the first circuit unit based on the netlist data and the first associated parameter, and the first associated parameter is used at the level specifying the physical connection of the first circuit unit. For example, the first association parameter is used to specify that the level of the physical connection of the first circuit unit is level 1 indicating direct connection. In other words, only the local average gradients of the first circuit unit and related circuit units directly connected to the first circuit unit are considered when calculating the synthetic gradient of the line length above. In this way, the calculation amount and the subsequent iteration time can be reduced, and the overall layout line length of the circuit cells in the overall layout process can still be significantly reduced.
在第二方面的一种实现方式中,布局参数包括网格阵列中的第一网格的密集程度,第一网格的密集程度表示电路单元在第一网格内的密集程度,合成项包括第一网格内的电路单元的合成密集程度,合成项确定模块被进一步配置为:基于初始化布局和网表数据,计算第一网格的的第一初始密集程度;基于初始化布局,确定第一网格的关联网格集;基于第一初始密集程度和关联网格集中的每个关联网格的相应初始密集程度,计算第一局部平均密集程度;基于第一初始密集程度和第一局部平均密集程度,计算第一网格的合成密集程度;以及基于第一网格的合成密集程度,确定第一网格内的电路单元的第一合成密集程度。In an implementation manner of the second aspect, the layout parameter includes the density of the first grid in the grid array, the density of the first grid represents the density of the circuit units in the first grid, and the synthesis item includes For the synthesis density of the circuit cells in the first grid, the synthesis item determination module is further configured to: calculate the first initial density of the first grid based on the initial layout and netlist data; determine the first initial density based on the initial layout. an associated grid set of meshes; based on the first initial density and the corresponding initial density of each associated mesh in the associated grid set, a first local average density is calculated; based on the first initial density and the first local average The degree of density is to calculate the density of synthesis of the first grid; and based on the density of synthesis of the first grid, determine the first degree of density of synthesis of the circuit units in the first grid.
在第二方面的一种实现方式中,合成项确定模块被进一步配置为:针对网格阵列中的每个网格,以上面类似地方式,计算每个网格的相应初始密集程度,确定每个网格的各自的关联网格集,计算每个网格的相应的局部平均密集程度,并且计算每个网格的相应合成密集程度,以及基于网格的合成密集程度确定网格内的电路单元的密集程度。通过每个网格的单元紧密程度的合成密集程度,可以在布局过程中既保持单个网格的独特影响,又有局部网格的整体影响。例如,可以避免多个电路单元在散开过程中再次聚集在另一网格。这样,可以使得电路单元在散开过程中更为均匀,从而获得更好的布局效果。In an implementation manner of the second aspect, the composite item determination module is further configured to: for each grid in the grid array, in a manner similar to the above, calculate the corresponding initial density of each grid, and determine each the respective associated grid sets of grids, calculate the corresponding local average density of each grid, and calculate the corresponding composite density of each grid, and determine the circuit within the grid based on the composite density of grids density of units. By synthesizing the denseness of the cell compactness of each grid, it is possible to maintain both the unique influence of individual grids and the overall influence of local grids during the layout process. For example, a plurality of circuit units can be prevented from gathering in another grid again during the spreading process. In this way, the spreading process of the circuit units can be made more uniform, so as to obtain a better layout effect.
在第二方面的一种实现方式中,关联网格集确定模块被进一步配置为:基于初始化布局和第二关联参数,确定第一网格的关联网格集,第二关联参数用于指定与第一网格 相邻的网格层级。例如,该第二关联参数用于指定第一网格的相邻网格层级为表示直接邻接的1级。换言之,在上面计算网格的单元密集程度的合成梯度时,仅考虑第一网格以及与第一网格直接相邻的相关网格的单元密集程度的局部平均梯度。这样,可以减少计算量和后续的迭代时间,并且仍能获得显著的布局效果。In an implementation manner of the second aspect, the associated grid set determination module is further configured to: determine the associated grid set of the first grid based on the initialized layout and the second associated parameter, and the second associated parameter is used to specify the The grid level adjacent to the first grid. For example, the second association parameter is used to designate the adjacent grid level of the first grid as level 1 representing direct adjacency. In other words, when calculating the composite gradient of the cell density of the grid above, only the local average gradient of the cell density of the first grid and related grids directly adjacent to the first grid is considered. In this way, the amount of computation and subsequent iteration time can be reduced and still achieve significant layout effects.
在第二方面的一种实现方式中,合成项确定模块被进一步配置为:基于初始化布局和网表数据,确定布局参数的初始项和局部平均项;计算初始项与第一系数的第一乘积;计算局部平均项与第二系数的第二乘积;以及将第一乘积与第二乘积相加,以确定布局参数的合成项。在第二方面的一种实现方式中,第一系数和第二系数之和为1。通过设置不同的系数,可以基于电路的配置来调节布局过程中的相关参数,进而可以影响布局质量和/或布局迭代的速度以及所需的时间。例如,在布局参数为网格的单元密集程度的情形下,如果密集程度越大,就可以通过设置系数使得电路单元散开的越快,从而加快后续的迭代和减少最终收敛所需的步数。In an implementation of the second aspect, the synthetic term determination module is further configured to: determine the initial term and the local average term of the layout parameters based on the initialization layout and the netlist data; calculate the first product of the initial term and the first coefficient ; calculating a second product of the local mean term and the second coefficient; and adding the first product to the second product to determine a resultant term of the layout parameter. In an implementation manner of the second aspect, the sum of the first coefficient and the second coefficient is 1. By setting different coefficients, relevant parameters in the layout process can be adjusted based on the configuration of the circuit, thereby affecting the layout quality and/or the speed and required time of layout iterations. For example, in the case where the layout parameter is the cell density of the grid, if the density is greater, the coefficient can be set to make the circuit cells spread out faster, thereby speeding up subsequent iterations and reducing the number of steps required for final convergence .
在第二方面的一种实现方式中,该装置还包括初始值确定模块,被配置为确定布局参数的初始值;以及设置模块,被配置为响应于初始值高于第一阈值,将第二系数设置为负值。例如,布局参数可以是网格阵列的网格中的单元密集程度,并且该初始值可以是一个网格的单元密集程度的初始值。通过在迭代之前确认布局参数的初始值并且将该初始值与阈值进行比较,可以使得越为密集的网格中的电路单元越快散开,从而节省布局迭代的计算量和时间。In an implementation manner of the second aspect, the device further includes an initial value determination module configured to determine an initial value of the layout parameter; and a setting module configured to set the second Coefficients are set to negative values. For example, the layout parameter may be the density of cells in the grid of the grid array, and the initial value may be the initial value of the density of cells in a grid. By confirming the initial value of the layout parameter before the iteration and comparing the initial value with the threshold value, the circuit cells in the denser grid can be dispersed faster, thereby saving the calculation amount and time of the layout iteration.
根据本公开的第三方面,提供一种电子设备,包括:至少一个处理器;至少一个存储器,至少一个存储器被耦合到至少一个处理器,并且存储用于由至少一个处理器执行的指令,指令当由至少一个处理器执行时,使得设备执行根据第一方面的方法。According to a third aspect of the present disclosure, there is provided an electronic device, comprising: at least one processor; at least one memory, the at least one memory is coupled to the at least one processor and stores instructions for execution by the at least one processor, the instructions When executed by at least one processor, an apparatus is caused to perform the method according to the first aspect.
根据本公开的第四方面,提供一种计算机可读存储介质。计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现根据第一方面的方法。According to a fourth aspect of the present disclosure, a computer readable storage medium is provided. A computer-readable storage medium stores a computer program which, when executed by a processor, implements the method according to the first aspect.
根据本公开的第五方面,提供计算机程序产品包括计算机可执行指令,计算机可执行指令在被处理器执行时,使计算机实现根据第一方面的方法。According to a fifth aspect of the present disclosure, there is provided a computer program product comprising computer executable instructions which, when executed by a processor, cause a computer to implement the method according to the first aspect.
应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。It should be understood that what is described in the Summary of the Invention is not intended to limit the key or important features of the embodiments of the present disclosure, nor is it intended to limit the scope of the present disclosure. Other features of the present disclosure will be readily understood through the following description.
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:The above and other features, advantages and aspects of the various embodiments of the present disclosure will become more apparent with reference to the following detailed description when taken in conjunction with the accompanying drawings. In the drawings, identical or similar reference numerals denote identical or similar elements, wherein:
图1示出了集成电路的设计制造过程的流程图;Figure 1 shows a flow chart of the design and manufacture process of an integrated circuit;
图2示出了根据本公开的一些实施例的示例环境的框图;Figure 2 shows a block diagram of an example environment according to some embodiments of the present disclosure;
图3示出了示例性的初始布局的示意图;Figure 3 shows a schematic diagram of an exemplary initial layout;
图4示出了根据本公开的一些实施例的用于设计布局的方法的流程图;FIG. 4 shows a flowchart of a method for designing a layout according to some embodiments of the present disclosure;
图5示出了根据本公开的一些实施例的对布局区域进行划分的示意图;Fig. 5 shows a schematic diagram of dividing layout areas according to some embodiments of the present disclosure;
图6示出了根据本公开的一些实施例的电路单元的连接关系的示意图;Fig. 6 shows a schematic diagram of the connection relationship of circuit units according to some embodiments of the present disclosure;
图7示出了根据本公开的一些实施例的电路单元的合成梯度的示意图;FIG. 7 shows a schematic diagram of a synthetic gradient of a circuit unit according to some embodiments of the present disclosure;
图8示出了根据本公开的一些实施例的网格中的电路单元密集程度的合成梯度的示 意图;Figure 8 shows a schematic diagram of a composite gradient of circuit cell density in a grid according to some embodiments of the present disclosure;
图9示出了根据本公开的一些实施例的电子设备900的示意性框图;以及FIG. 9 shows a schematic block diagram of an electronic device 900 according to some embodiments of the present disclosure; and
图10示出了可以用来实施本公开的实施例的示例设备1000的示意性框图。Fig. 10 shows a schematic block diagram of an example device 1000 that may be used to implement embodiments of the present disclosure.
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although certain embodiments of the present disclosure are shown in the drawings, it should be understood that the disclosure may be embodied in various forms and should not be construed as limited to the embodiments set forth herein; A more thorough and complete understanding of the present disclosure. It should be understood that the drawings and embodiments of the present disclosure are for exemplary purposes only, and are not intended to limit the protection scope of the present disclosure.
在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。术语“和/或”表示由其关联的两项的至少一项。例如“A和/或B”表示A、B、或者A和B。下文还可能包括其他明确的和隐含的定义。In the description of the embodiments of the present disclosure, the term "comprising" and its similar expressions should be interpreted as an open inclusion, that is, "including but not limited to". The term "based on" should be understood as "based at least in part on". The term "one embodiment" or "the embodiment" should be read as "at least one embodiment". The terms "first", "second", etc. may refer to different or the same object. The term "and/or" means at least one of the two items associated with it. For example "A and/or B" means A, B, or A and B. Other definitions, both express and implied, may also be included below.
应理解,本申请实施例提供的技术方案,在以下具体实施例的介绍中,某些重复之处可能不再赘述,但应视为这些具体实施例之间已有相互引用,可以相互结合。It should be understood that for the technical solutions provided by the embodiments of the present application, in the introduction of the following specific embodiments, some repetitions may not be repeated, but it should be considered that these specific embodiments have been referred to each other and can be combined with each other.
随着集成电路制造工艺的发展和特征尺寸的减小,物理设计的复杂度也成倍增长。如上所述,合法化作为布局阶段中的一个步骤,其布局质量对最终芯片的PPA有着重大影响。常规的布局合法化方案通常整体布局优化方法主要有三类:基于启发式划分的整体布局方法、基于模拟退火方法的布局方法以及解析式迭代优化布局方法等。With the development of integrated circuit manufacturing technology and the reduction of feature size, the complexity of physical design has also increased exponentially. As mentioned above, legalization is a step in the layout stage, and its layout quality has a significant impact on the PPA of the final chip. Conventional layout legalization schemes usually have three types of overall layout optimization methods: overall layout methods based on heuristic partitioning, layout methods based on simulated annealing methods, and analytical iterative optimization layout methods.
然而这三种常规方案各自存在相应的问题。例如,对于启发式划分的整体布局方法而言,其受初始输入变化的影响较大,细微的初始输入变化可能导致大相径庭的最终布局位置,同时由于每一个子区域的布局优化是一个局域过程,这有可能造成某个子区域布局优化的同时其他区域的走线拥塞增加。对于基于模拟退火方法的布局方法而言,模拟退火算法在一定程度上能够有效地加速集成电路的布局速度,但是该方法未能解决的两个问题是:首先该算法的运行时间仍旧相对较长,虽然解空间的大小在该改进算法中得到优化,但模拟退火的随机性从根本上制约了运行时间收益;其次,该算法提出的高温低温参数在每一个具体的集成电路布局情况中都不同,这就导致了在真正使用该方法时需要花费大量时间在超参数的优化上,增加工作量的同时运行时间收益也有限。对于解析式迭代优化布局方法而言,通过将优化目标函数表示成可微分的解析形式,人们可以充分利用数学中的优化理论来进行最优布局求解。但是由于解析式优化目标函数中的“标准单元重叠程度”项在很多模型中是一个非凸函数,梯度下降法求解往往陷入局部最优解;同时,由于并未对各连线网络上的布局单元添加局部约束,同一条连线网络上的布局单元在最终布局结果中可能分散程度较大,这会使得最终线长增大,布局质量欠佳。However, these three conventional schemes each have corresponding problems. For example, for the overall layout method of heuristic partition, it is greatly affected by the change of the initial input, and the slight change of the initial input may lead to a very different final layout position. At the same time, because the layout optimization of each sub-region is a local process , which may cause routing congestion in other areas to increase while the layout of a certain sub-area is optimized. For the layout method based on the simulated annealing method, the simulated annealing algorithm can effectively accelerate the layout speed of the integrated circuit to a certain extent, but the two problems that this method cannot solve are: firstly, the running time of the algorithm is still relatively long , although the size of the solution space is optimized in this improved algorithm, the randomness of simulated annealing fundamentally restricts the running time gain; secondly, the high temperature and low temperature parameters proposed by the algorithm are different in each specific IC layout situation , which leads to the need to spend a lot of time on the optimization of hyperparameters when using this method, and the increase in workload and the limited benefit of runtime. For the analytical iterative optimization layout method, by expressing the optimization objective function into a differentiable analytical form, people can make full use of the optimization theory in mathematics to solve the optimal layout. However, since the "overlapping degree of standard unit" item in the analytical optimization objective function is a non-convex function in many models, the solution of the gradient descent method often falls into a local optimal solution; The unit adds local constraints, and the layout units on the same connection network may have a large degree of dispersion in the final layout result, which will increase the final line length and poor layout quality.
在本公开的实施例中提出了一种用于设计布局的方案,以解决上述问题和其它潜在问题中的一个或多个问题。在本公开中,通过在网表层面和/或布局网格层面引入局部平均场,布局单元能够在整体布局时既充分散开,又一定程度地使得各连线网络上的布局单元的连接关系紧密性得到保持。即,连接关系强的布局单元在最终布局结果中充分靠近。从而达到线长优化这一目标。In an embodiment of the present disclosure, a solution for designing a layout is proposed to solve one or more of the above-mentioned problems and other potential problems. In this disclosure, by introducing a local mean field at the netlist level and/or the layout grid level, the layout units can be fully dispersed during the overall layout, and the connection relationship of the layout units on each wiring network can be improved to a certain extent. Tightness is maintained. That is, layout cells with strong connection relationships are sufficiently close in the final layout result. So as to achieve the goal of line length optimization.
图1示出了集成电路的设计制造过程100的流程图。设计制造过程100开始于规格制定110。在规格制定110的阶段中,确定集成电路需要达到的功能和性能方面的要求。然后,在集成电路设计120的阶段中,首先借助于电子设计自动化(electronic design automation,EDA)软件来进行电路设计122。在确定电路之后,通过执行物理设计124来确定集成电路中的电路单元的布局和连线,从而得到电路版图。在得到电路版图之后,可以执行掩模制作126以得到用于将所设计的电路形成在晶圆上的掩模。随后,在制造130的阶段中,通过光刻、刻蚀、离子注入、薄膜沉积、抛光等工艺在晶圆上形成集成电路。在封装140的阶段中,对晶圆进行切割得到裸片,并通过黏贴、焊接、模封等工艺对裸片进行封装得到芯片。所得到的芯片在测试150的阶段中被测试,以确保成品芯片的性能满足规格制定110中所确定的要求。最终,测试合格的芯片160可以被交付客户。FIG. 1 shows a flowchart of a design and manufacture process 100 for an integrated circuit. The design-to-manufacture process 100 begins with specification development 110 . In the stage of specification formulation 110, the functional and performance requirements that the integrated circuit needs to meet are determined. Then, in the stage of integrated circuit design 120, circuit design 122 is first performed by means of electronic design automation (EDA) software. After the circuit is determined, the physical design 124 is performed to determine the layout and wiring of the circuit units in the integrated circuit, so as to obtain the circuit layout. After obtaining the circuit layout, mask fabrication 126 may be performed to obtain masks for forming the designed circuits on the wafer. Subsequently, in the stage of manufacturing 130, integrated circuits are formed on the wafer through processes such as photolithography, etching, ion implantation, thin film deposition, and polishing. In the stage of packaging 140 , the wafer is diced to obtain bare chips, and the bare chips are packaged through processes such as bonding, welding, and molding to obtain chips. The resulting chip is tested in a testing 150 stage to ensure that the performance of the finished chip meets the requirements established in specification 110 . Finally, the tested chips 160 can be delivered to customers.
物理设计124主要包括划分、版图规划、布局、时钟树综合、布线等步骤,并且涉及可布线性、时延、功耗、面积、可制造性等评估指标。布局是物理设计的一个重要环节,并且包括整体布局、合法化、以及细致布局。整体布局的主要目的是将电路单元按照一定的优化目标摆放到布局区域中,在整体布局中允许存在一定程度的电路单元重叠。在整体布局之后需要通过合法化来将电路单元摆放到合法的位置上,并且消除电路单元之间的重叠。细致布局是在合法化结果的基础上进一步减小线长、改善时延、以及降低拥塞。合法化作为布局过程中承上启下的中间环节,其布局质量对最终的评估指标有着重大影响。因此,期望保证合法化的布局质量,从而缩短物理设计周期,提高芯片开发效率。The physical design 124 mainly includes steps such as division, layout planning, layout, clock tree synthesis, and wiring, and involves evaluation indicators such as routability, delay, power consumption, area, and manufacturability. Layout is an important part of physical design and includes overall layout, legalization, and detailed layout. The main purpose of the overall layout is to place the circuit units in the layout area according to a certain optimization goal, and a certain degree of overlap of the circuit units is allowed in the overall layout. After the overall layout, it is necessary to legalize the circuit units to be placed in legal positions, and to eliminate the overlap between the circuit units. Meticulous layout is to further reduce line length, improve delay, and reduce congestion on the basis of legalization results. Legalization is an intermediate link in the layout process, and its layout quality has a major impact on the final evaluation indicators. Therefore, it is expected to ensure legalized layout quality, thereby shortening the physical design cycle and improving chip development efficiency.
图2示出了根据本公开的一些实施例的示例环境200的框图。如图2所示,示例环境200总体上可以包括电子设备230。在一些实施例中,电子设备230可以是诸如个人计算机、工作站、服务器等具有计算功能的设备。本公开的范围在此方面不受限制。电子设备230可以获取芯片的网表数据210和用于该芯片的初始布局220作为输入。该芯片例如可以包括多个电路单元。在一些实施例中,多个电路单元至少包括一组可移动电路单元。在一些实施例中,多个电路单元还可以包括一组固定电路单元。FIG. 2 shows a block diagram of an example environment 200 according to some embodiments of the present disclosure. As shown in FIG. 2 , example environment 200 may generally include electronic device 230 . In some embodiments, the electronic device 230 may be a device having computing functions such as a personal computer, a workstation, a server, and the like. The scope of the present disclosure is not limited in this regard. The electronic device 230 may take as input the netlist data 210 for the chip and the initial layout 220 for the chip. The chip can comprise, for example, a plurality of circuit units. In some embodiments, the plurality of circuit units includes at least one group of movable circuit units. In some embodiments, the plurality of circuit units may also include a set of fixed circuit units.
应当指出的是,在本公开的上下文中,“可移动电路单元”表示如下的电路单元,该电路单元的位置在根据本公开的各实施例的布局方案中可以被改变。在一些实施例中,可移动电路单元例如可以是诸如门电路之类的标准单元。应当理解的是,可移动电路单元还可以是位置被设置为可改变的其它任何合适的单元,本公开的范围在此方面不受限制。It should be noted that in the context of the present disclosure, a "movable circuit unit" means a circuit unit whose position can be changed in a layout scheme according to various embodiments of the present disclosure. In some embodiments, the removable circuit unit may be a standard unit such as a gate, for example. It should be understood that the movable circuit unit may also be any other suitable unit whose position is set to be changeable, and the scope of the present disclosure is not limited in this respect.
还应当指出的,在本公开的上下文中,“固定电路单元”表示如下的电路单元,该电路单元的位置在根据本公开的各实施例的布局方案中已经被预先确定并且不能改变。在一些实施例中,固定电路单元例如可以是宏单元。“宏单元”是指由相对逻辑门抽象级别更高的触发器、算术逻辑单元等构成的预定义逻辑功能实现单元。应当理解的是,固定电路单元还可以是位置被设置为不可改变的其它任何合适的单元,本公开的范围在此方面不受限制。在本公开中,由于布局优化都是针对可移动电路单元进行优化,因此如未明示为“固定电路单元”或不可移动的电路单元,则“电路单元”通常用于指代“可移动电路单元”,以便于描述。It should also be noted that in the context of the present disclosure, a "fixed circuit unit" refers to a circuit unit whose position has been predetermined and cannot be changed in the layout scheme according to the various embodiments of the present disclosure. In some embodiments, the fixed circuit cells may be macrocells, for example. "Macro unit" refers to a pre-defined logic function realization unit composed of flip-flops and arithmetic logic units with a higher abstraction level than logic gates. It should be understood that the fixed circuit unit may also be any other suitable unit whose position is set to be unchangeable, and the scope of the present disclosure is not limited in this regard. In this disclosure, since layout optimization is optimized for movable circuit units, if it is not explicitly stated as a "fixed circuit unit" or a non-movable circuit unit, "circuit unit" is usually used to refer to a "movable circuit unit". ” for ease of description.
在一些实施例中,网表数据210可以至少指示芯片中的多个电路单元的尺寸和多个 电路单元的连接关系。在一些实施例中,网表数据210还可以指示芯片的布局区域、工艺参数等信息,本公开的范围在此方面不受限制。In some embodiments, the netlist data 210 may at least indicate the size of the multiple circuit units in the chip and the connection relationship of the multiple circuit units. In some embodiments, the netlist data 210 may also indicate information such as chip layout area and process parameters, and the scope of the present disclosure is not limited in this respect.
在一些实施例中,初始布局220可以指示芯片的多个电路单元在布局区域中的位置,例如,各个电路单元的坐标。在一些实施例中,初始布局220可以是通过整体布局所获得的布局,其中一部分电路单元之间存在一定程度的重叠。应当理解的是,初始布局220还可以是其它任何合适的待优化布局,本公开的范围在此方面不受限制。In some embodiments, the initial layout 220 may indicate the positions of multiple circuit units of the chip in the layout area, for example, the coordinates of each circuit unit. In some embodiments, the initial layout 220 may be a layout obtained through an overall layout, in which a certain degree of overlap exists among some circuit units. It should be understood that the initial layout 220 may also be any other suitable layout to be optimized, and the scope of the present disclosure is not limited in this respect.
在一些实施例中,网表数据210和初始布局220可以由用户输入电子设备230。在一些实施例中,网表数据210和初始布局220可以已经预先被存储在电子设备230中。在一些实施例中,电子设备230还可以通信地耦连到其它设备,以从其它设备获取网表数据210和初始布局220。本公开的范围在此方面不受限制。应当指出的是,虽然在图2中网表数据210和初始布局220被示出为两个独立的文件,但是网表数据210和初始布局220还可以被整合在一个文件中,本公开的范围在此方面不受限制。In some embodiments, netlist data 210 and initial layout 220 may be entered into electronic device 230 by a user. In some embodiments, the netlist data 210 and the initial layout 220 may have been pre-stored in the electronic device 230 . In some embodiments, electronic device 230 may also be communicatively coupled to other devices to obtain netlist data 210 and initial layout 220 from other devices. The scope of the present disclosure is not limited in this respect. It should be noted that although netlist data 210 and initial layout 220 are shown as two separate files in FIG. Unrestricted in this respect.
电子设备230可以基于网表数据210将芯片的布局区域划分成网格阵列,进而针对布局区域的网格阵列中的过载网格确定用于移动其中的可移动电路单元的多个候选路径的优先级,并且根据所确定的优先级和初始布局220来确定最终的目标布局240。这将在下文中结合图3至图10进一步详细描述。The electronic device 230 may divide the layout area of the chip into grid arrays based on the netlist data 210, and then determine the priorities of multiple candidate paths for moving the movable circuit units therein for the overloaded grids in the grid array of the layout area. level, and determine the final target layout 240 according to the determined priority and the initial layout 220 . This will be described in further detail below with reference to FIGS. 3 to 10 .
图3示出了示例性的初始布局220的示意图。出于示例和简化的目的,在图3所示的示例中,芯片的布局区域310具有矩形的形状,并且芯片包括14个可移动电路单元320-1至320-14(单独或统一地被称为可移动电路单元320)以及4个固定电路单元330-1至330-4(单独或统一地被称为固定电路单元330)。如图3所示,在初始布局220中,一部分电路单元之间存在一定程度上的重叠。例如,可移动电路单元320-5与可移动电路单元320-2、320-3、320-5和320-6重叠。又例如,固定电路单元330-3与可移动电路单元320-11重叠。FIG. 3 shows a schematic diagram of an exemplary initial layout 220 . For the purposes of illustration and simplification, in the example shown in FIG. is a movable circuit unit 320) and four fixed circuit units 330-1 to 330-4 (separately or collectively referred to as fixed circuit unit 330). As shown in FIG. 3 , in the initial layout 220 , some circuit units overlap to a certain extent. For example, movable circuit unit 320-5 overlaps with movable circuit units 320-2, 320-3, 320-5, and 320-6. For another example, the fixed circuit unit 330-3 overlaps with the movable circuit unit 320-11.
应当理解的是,芯片的布局区域310还可以具有其它任何合适的形状,并且芯片所包括的可移动电路单元320和固定电路单元330的数目还可以是其它任何适合的值,本公开的范围在此方面不受限制。It should be understood that the layout area 310 of the chip can also have any other suitable shape, and the number of the movable circuit unit 320 and the fixed circuit unit 330 included in the chip can also be any other suitable value, and the scope of the present disclosure is within This aspect is not limited.
在下文中,将参考图3所示的初始布局220来描述根据本公开的各实施例的方案。应当理解的是,根据本公开的各实施例的方案还可以应用于其它任何合适的布局,本公开的范围在此方面不受限制。Hereinafter, solutions according to various embodiments of the present disclosure will be described with reference to the initial layout 220 shown in FIG. 3 . It should be understood that the solutions according to the various embodiments of the present disclosure may also be applied to any other suitable layout, and the scope of the present disclosure is not limited in this respect.
图4示出了根据本公开的一些实施例的用于设计布局的方法400的流程图。在一些实施例中,方法400可以由如图2所示的电子设备230执行。应当理解的是,方法400还可以包括未示出的附加框和/或可以省略所示出的框,本公开的范围在此方面不受限制。FIG. 4 shows a flowchart of a method 400 for designing a layout according to some embodiments of the present disclosure. In some embodiments, the method 400 may be executed by the electronic device 230 as shown in FIG. 2 . It should be appreciated that method 400 may also include additional blocks not shown and/or blocks shown may be omitted, and that the scope of the present disclosure is not limited in this regard.
在402,基于芯片的网表数据,对芯片中的多个电路单元在布局区域的网格阵列中进行初始化,以得到多个电路单元在网格阵列中的初始化布局,例如如图3所示的初始化布局。网表数据至少指示多个电路单元的尺寸和多个电路单元的连接关系。在一个实施例中,电子设备230例如可以对诸如网表文件之类的输入文件和设计相关信息进行预处理。例如,由网表信息得到标准单元和宏单元的长度和宽度信息,并且在待布局区域上划分出最大矩形区域,计算目标布局密度等。电子设备继而可以使用诸如随机初始化及Quadratic初始化之类的初始化方法在布局区域进行初始化。进一步地,电子设备230可以对布局区域进行划分,例如将其划分为包括多个网格的网格阵列。图5示出了根据 本公开的一些实施例的对布局区域进行划分的示意图。图5包括图示501、图示502和图示503,其中图示501示出了图3中所示的初始布局220,图示502示出了根据本公开的一些实施例的网格阵列510,并且图示503示出了利用图示502中的网格阵列510来划分图示501中的初始布局220所得到的结果。At 402, based on the netlist data of the chip, initialize the plurality of circuit units in the chip in the grid array of the layout area, so as to obtain the initialization layout of the plurality of circuit units in the grid array, for example as shown in FIG. 3 The initial layout. The netlist data indicates at least the size of the plurality of circuit units and the connection relationship of the plurality of circuit units. In one embodiment, the electronic device 230 may, for example, preprocess input files such as netlist files and design related information. For example, the length and width information of standard cells and macro cells are obtained from the netlist information, and the largest rectangular area is divided on the area to be placed, and the target layout density is calculated. The electronic device can then be initialized in the layout area using initialization methods such as random initialization and quadratic initialization. Further, the electronic device 230 may divide the layout area, for example, divide it into a grid array including a plurality of grids. Fig. 5 shows a schematic diagram of dividing layout areas according to some embodiments of the present disclosure. FIG. 5 includes illustrations 501 , illustrations 502 , and illustrations 503 , wherein illustration 501 shows the initial layout 220 shown in FIG. 3 , and illustration 502 shows a grid array 510 according to some embodiments of the present disclosure. , and diagram 503 shows the result of using grid array 510 in diagram 502 to divide initial layout 220 in diagram 501 .
在图示502中,网格阵列510包括16个网格520-1至520-16(单独或统一地被称为网格520)。这些网格520-1至520-16具有矩形的形状,并且具有相同的高度和相同的宽度,即所确定的第一高度和第一宽度。电子设备230可以利用图示502中的网格阵列510来划分图示501中的初始布局220的布局区域310。如图示503中所示,一部分电路单元可以位于一个网格520内,例如,可移动电路单元320-7和固定电路单元330-3分别位于网格520-5和520-13内。一部分电路单元可以同时覆盖两个或更多个网格520,例如固定电路单元330-2覆盖网格520-4和520-8。由于固定电路单元330的位置不会被改变,因此在使用这种网格阵列510来划分布局区域310时,需要针对网格520-4和520-8分别额外地计算预先被固定电路单元330-2占用的面积。In illustration 502, grid array 510 includes 16 grids 520-1 through 520-16 (individually and collectively referred to as grid 520). These grids 520-1 to 520-16 have a rectangular shape, and have the same height and the same width, ie, the determined first height and first width. Electronic device 230 may utilize grid array 510 in illustration 502 to divide layout area 310 of initial layout 220 in illustration 501 . As shown in diagram 503, a portion of circuit units may be located in one grid 520, for example, movable circuit unit 320-7 and fixed circuit unit 330-3 are located in grids 520-5 and 520-13, respectively. A part of circuit units may cover two or more grids 520 at the same time, for example, fixed circuit unit 330-2 covers grids 520-4 and 520-8. Since the position of the fixed circuit unit 330 will not be changed, when using this grid array 510 to divide the layout area 310, it is necessary to additionally calculate the fixed circuit unit 330- 2 occupied area.
为了避免这种额外计算,在一些实施例中,电子设备230还可以基于第一高度、第一宽度、以及一组固定电路单元330中的每个固定电路单元330的尺寸和位置,将布局区域310不规则地划分成网格阵列,网格阵列中的第一网格具有不同于网格阵列中的第二网格的高度或宽度。例如,参考图示502,网格520-4的高度可以被增大到固定电路单元330-2的高度,并且网格520-8的高度可以被相应地减小。类似地,网格520-4的宽度可以被减小到固定电路单元330-2的宽度,并且网格520-3的宽度可以被相应地增大。通过这种方式,可以使得网格阵列中的一部分网格520的尺寸适于固定电路单元330的尺寸,并且在后续操作中不再考虑这些被固定电路单元330预先完全占据的网格520,从而可以提高根据本公开的方法的运行效率。在下文中,将参考图示502中的规则的矩形网格阵列510来描述根据本公开的各实施例的方案。应当理解的是,根据本公开的各实施例的方案同样适用于不规则划分的网格阵列,本公开的范围在此方面不受限制。In order to avoid such additional calculations, in some embodiments, the electronic device 230 may also divide the layout area into 310 is divided irregularly into an array of grids, a first grid in the array of grids having a different height or width than a second grid in the array of grids. For example, referring to illustration 502, the height of grid 520-4 may be increased to the height of fixed circuit unit 330-2, and the height of grid 520-8 may be correspondingly decreased. Similarly, the width of grid 520-4 may be reduced to the width of fixed circuit unit 330-2, and the width of grid 520-3 may be increased accordingly. In this way, the size of a part of the grids 520 in the grid array can be adapted to the size of the fixed circuit unit 330, and these grids 520 previously fully occupied by the fixed circuit unit 330 are no longer considered in subsequent operations, thereby The operating efficiency of the method according to the present disclosure can be improved. In the following, solutions according to various embodiments of the present disclosure will be described with reference to regular rectangular grid array 510 in illustration 502 . It should be understood that the solutions according to the various embodiments of the present disclosure are also applicable to irregularly divided grid arrays, and the scope of the present disclosure is not limited in this respect.
在404,电子设备230基于初始化布局和网表数据,确定初始化布局的布局参数的合成梯度。合成梯度基于布局参数的初始梯度和与布局参数相关联的布局参数集的局部平均梯度,其中梯度指示布局参数的最大变化率和具有最大变化率的方向。At 404, the electronic device 230 determines a resultant gradient of layout parameters of the initialization layout based on the initialization layout and the netlist data. The composite gradient is based on an initial gradient of the layout parameter and a local average gradient of a set of layout parameters associated with the layout parameter, where the gradient indicates a maximum rate of change of the layout parameter and a direction having the maximum rate of change.
在一个实施例中,布局参数包括多个电路单元中的第一电路单元的连接线长。电子设备230基于初始化布局和网表数据确定初始化布局的布局参数的合成梯度包括:基于网表数据和初始化布局,计算第一电路单元的连接线长的第一初始梯度;基于网表数据,确定第一电路单元的第一关联电路单元集;基于第一初始梯度和第一关联电路单元集中的每个关联电路单元的连接线长的初始梯度,计算第一局部平均梯度;以及基于第一初始梯度和第一局部平均梯度,计算第一电路单元的连接线长的合成梯度。下面结合图6和图7来描述该实施例。In one embodiment, the layout parameter includes the length of the connection line of the first circuit unit among the plurality of circuit units. The electronic device 230 determines the composite gradient of the layout parameters of the initialization layout based on the initialization layout and the netlist data: based on the netlist data and the initialization layout, calculating the first initial gradient of the connection line length of the first circuit unit; based on the netlist data, determining The first associated circuit unit set of the first circuit unit; based on the first initial gradient and the initial gradient of the connection line length of each associated circuit unit in the first associated circuit unit set, calculate the first local average gradient; and based on the first initial The gradient and the first local average gradient are used to calculate the resultant gradient of the connecting line length of the first circuit unit. This embodiment will be described below with reference to FIGS. 6 and 7 .
图6示出了根据本公开的一些实施例的电路单元的连接关系的示意图。图6中示意性地示出了电路单元C1至C8,这些电路单元可以位于网格阵列中的不同位置处。为了便于描述,在此并未示出网格阵列和其它电路单元。电路单元C1与电路单元C2、C3和C4直接连接。电路单元C3与C5连接,电路单元C4与C6和C7连接,并且电路单元C7和C8连接。图7示出了根据本公开的一些实施例的电路单元的合成梯度的示意图。在图7中为了便于示出,省略了各个电路单元之间的连接线,但是可以理解,图7中的 各个电路单元具有图6中所示的连接关系。在图7中,电路单元的初始梯度由细实线箭头示出,电路单元的局部平均梯度由细虚线箭头示出,而电路单元的合成梯度由粗实线箭头示出,其中梯度指示布局参数的最大变化率和具有最大变化率的方向,例如电路单元的线长的最大变化率和具有最大变化率的方向。可以理解,梯度实际上可以由一个矢量表示。例如可以使用拉格朗日松弛技术得到的解析式优化函数来基于网表数据和初始化布局来计算电路单元C1至C8的初始梯度。Fig. 6 shows a schematic diagram of the connection relationship of circuit units according to some embodiments of the present disclosure. Circuit cells C1 to C8 are schematically shown in FIG. 6 , and these circuit cells may be located at different positions in the grid array. For ease of description, grid arrays and other circuit units are not shown here. The circuit unit C1 is directly connected to the circuit units C2, C3 and C4. Circuit unit C3 is connected to C5, circuit unit C4 is connected to C6 and C7, and circuit unit C7 and C8 are connected. FIG. 7 shows a schematic diagram of a composite gradient of a circuit unit according to some embodiments of the present disclosure. In FIG. 7 , for ease of illustration, the connection lines between the various circuit units are omitted, but it can be understood that each circuit unit in FIG. 7 has the connection relationship shown in FIG. 6 . In Fig. 7, the initial gradient of a circuit cell is shown by a thin solid arrow, the local average gradient of a circuit cell is shown by a thin dashed arrow, and the resultant gradient of a circuit cell is shown by a thick solid arrow, where the gradients indicate layout parameters The maximum rate of change and the direction with the maximum rate of change, such as the maximum rate of change and the direction with the maximum rate of change of the line length of the circuit unit. It can be understood that the gradient can actually be represented by a vector. For example, the initial gradients of the circuit cells C1 to C8 can be calculated based on the netlist data and the initialization layout using an analytical optimization function obtained by Lagrangian relaxation technique.
在一个实施例中,可以使用下式来计算各个电路单元的局部平均梯度。In one embodiment, the following formula can be used to calculate the local average gradient of each circuit unit.
其中,gl
i表示第i个电路模块的局部平均梯度,n
i表示与第i个电路单元相关联的电路单元的数目,j表示第j个电路单元,k表示第一关联参数,用于指定第i个电路单元的物理连接的层级,并且
表示在关联参数为k的情形下的各个相关联的电路单元的初始梯度。
Among them, gl i represents the local average gradient of the i-th circuit module, n i represents the number of circuit units associated with the i-th circuit unit, j represents the j-th circuit unit, and k represents the first associated parameter, which is used to specify the level of physical connection of the i-th circuit unit, and Indicates the initial gradient of each associated circuit unit under the condition that the associated parameter is k.
下面以电路单元C1为例进行描述,在i为1时,k可以由设计人员指定或默认为1。当k为1时,则第一电路单元C1的关联电路单元为与第一电路单元C1直接相连接的电路单元,也即电路单元C2、C3和C4。在此情形下,gl
1表示第一电路单元C1的局部平均梯度,其取决于电路单元C1至C4的初始梯度。可以理解,由于各个电路单元所连接的电路单元可以不同,因此每个电路单元的局部平均梯度可以不同。虽然在此以式子(1)示出了一种具体的局部平均梯度的计算方式,但是这仅是示意而非对本公开的范围进行限制。可以使用其它的局部平均梯度计算方式来计算局部平均梯度。在k为1的情形下,在上面计算线长的合成梯度时,仅考虑第一电路单元以及与第一电路单元直接连接的相关电路单元的局部平均梯度。这样,可以减少计算量和后续的迭代时间,并且仍能显著减少整体布局过程中的电路单元的整体布局线长。
The circuit unit C1 is taken as an example for description below. When i is 1, k may be specified by the designer or be 1 by default. When k is 1, the associated circuit units of the first circuit unit C1 are the circuit units directly connected to the first circuit unit C1, ie the circuit units C2, C3 and C4. In this case, gl 1 denotes the local average gradient of the first circuit cell C1, which depends on the initial gradients of the circuit cells C1 to C4. It can be understood that since the circuit units connected to each circuit unit may be different, the local average gradient of each circuit unit may be different. Although a specific calculation manner of the local average gradient is shown by formula (1), this is only for illustration and not limiting the scope of the present disclosure. Other local average gradient calculation methods can be used to calculate the local average gradient. In the case where k is 1, only the local average gradients of the first circuit unit and related circuit units directly connected to the first circuit unit are considered when calculating the composite gradient of the line length above. In this way, the calculation amount and the subsequent iteration time can be reduced, and the overall layout line length of the circuit cells in the overall layout process can still be significantly reduced.
在另一个实施例中,在k为2时,以第一电路单元C1为例,其关联电路单元为与第一电路单元C1直接相连接的电路单元以及与该这些直接相连接的电路单元相连接的电路单元单元。在此情形下,第一电路单元C1的关联层级为2级,其包括电路单元C2、C3、C4以及与电路单元C2、C3、C4直接连接的电路单元,即,第一电路单元C1的关联电路单元还进一步包括电路单元C5、C6和C7。此时,第一电路单元C1的关联电路单元包括C2-C7。In another embodiment, when k is 2, taking the first circuit unit C1 as an example, its associated circuit units are the circuit units directly connected to the first circuit unit C1 and the circuit units directly connected to these circuit units. Connected circuit unit unit. In this case, the association level of the first circuit unit C1 is two levels, which includes circuit units C2, C3, C4 and circuit units directly connected to the circuit units C2, C3, C4, that is, the association level of the first circuit unit C1 The circuit unit further includes circuit units C5, C6 and C7. At this time, the associated circuit units of the first circuit unit C1 include C2-C7.
在计算完成局部平均梯度之后,可以计算各个单元的合成梯度。例如,合成梯度可以通过下面的式子(2)进行计算。After calculating the local average gradient, the composite gradient of each unit can be calculated. For example, the composite gradient can be calculated by the following equation (2).
将式子(1)代入式子(2)可以得到式子(3)Substituting formula (1) into formula (2) can get formula (3)
其中α表示表示局部平均梯度与电路单元初始梯度对合成梯度的贡献比例,在本实施例中该α值通常取0和1之间的值,并且可以由设计人员指定或具有默认值。虽然在此以式子(3)示出了一种具体的合成梯度的计算方式,但是这仅是示意而非对本公开的范围进行限制。可以使用其它的合成梯度计算方式来计算合成梯度。Where α represents the contribution ratio of the local average gradient and the initial gradient of the circuit unit to the composite gradient. In this embodiment, the value of α usually takes a value between 0 and 1, and can be specified by the designer or has a default value. Although Equation (3) is used here to show a specific calculation method of the composite gradient, this is only for illustration and not to limit the scope of the present disclosure. Composite gradients may be calculated using other composite gradient calculation methods.
可以对芯片中的每个电路单元都执行上面所示的合成梯度计算。备选地,也可以对芯片中的特定部分的电路单元执行上面所示的合成梯度计算,本公开对此不进行限制。 通过计算电路单元的合成梯度,可以在布局过程中既保持电路单元的独特梯度影响,又有局部的整体梯度影响。这样,可以避免电路单元在散开过程中相关联的电路单元过于分散所导致的线长增加。换言之,以此方式,可以减少整体布局过程中的电路单元的整体布局线长。The composite gradient calculation shown above can be performed for each circuit unit in the chip. Alternatively, the composite gradient calculation shown above may also be performed on a specific part of the circuit units in the chip, which is not limited in the present disclosure. By calculating the composite gradient of the circuit unit, both the unique gradient influence of the circuit unit and the local overall gradient influence can be maintained during the layout process. In this way, it is possible to avoid an increase in line length caused by over-dispersion of associated circuit units in the spreading process of the circuit units. In other words, in this way, the overall layout line length of the circuit units in the overall layout process can be reduced.
图8示出了根据本公开的一些实施例的网格中的电路单元密集程度的合成梯度的示意图。在一些实施例中,元素填充量度可以指示电路单元在网格阵列510中的相应网格520内的密集程度。在这种情况下,元素填充量度也可以被称为单元填充量度。为了便于描述,在下文中示例性地以网格阵列510中的网格520-6作为第一网格来进行说明。电子设备230可以利用网表数据210中各个电路单元的尺寸信息来计算位于第一网格520-6内的电路单元的总面积。例如,电路单元320-1至320-6具有位于第一网格520-6的部分。换言之,电路单元320-1至320-6至少部分地位于第一网格520-6中。在计算第一网格520-6时,可以仅计算电路单元320-1至320-6中的位于第一网格520-6内的部分的总面积At,第一网格520-6具有面积An。在一个实施例中,可以将单元密集程度表示为At/An。虽然在此以上方式示出了单元密度的一种具体计算方式,但是这仅是示意,而非对本公开的范围进行限制。在另一些实施例中,例如可以使用电路单元320-1至320-6的整体的总面积Ac相对于第一网格520-6的An的比例来计算单元密集程度,本公开对此不进行限制。FIG. 8 shows a schematic diagram of a resultant gradient of density of circuit cells in a grid according to some embodiments of the present disclosure. In some embodiments, element fill metrics may indicate how densely packed circuit cells are within corresponding grids 520 in grid array 510 . In this case, element fill metrics may also be referred to as cell fill metrics. For the convenience of description, the grid 520 - 6 in the grid array 510 is exemplarily described as the first grid in the following description. The electronic device 230 can use the size information of each circuit unit in the netlist data 210 to calculate the total area of the circuit units located in the first grid 520-6. For example, the circuit cells 320-1 to 320-6 have portions located at the first grid 520-6. In other words, the circuit units 320-1 to 320-6 are at least partially located in the first grid 520-6. When calculating the first grid 520-6, only the total area At of the parts located in the first grid 520-6 among the circuit units 320-1 to 320-6 can be calculated, and the first grid 520-6 has an area An. In one embodiment, the cell density can be expressed as At/An. Although the above method shows a specific calculation method of the cell density, this is only for illustration and not to limit the scope of the present disclosure. In some other embodiments, for example, the ratio of the overall total area Ac of the circuit units 320-1 to 320-6 to the An of the first grid 520-6 can be used to calculate the unit density, which is not discussed in this disclosure. limit.
在此之后,可以使用下式来计算各个网格的局部平均密集程度。After that, the following formula can be used to calculate the local average density of each grid.
其中,GL
i表示第i个网格的局部平均密集程度,n
i表示与第i个网格相关联的网格的数目,j表示第j个网格,k表示第二关联参数,用于指定指定与第i个网格相邻的网格层级,并且
表示在关联参数为k的情形下的各个相关联的网格的初始密集程度。
Among them, GL i represents the local average density of the i-th grid, n i represents the number of grids associated with the i-th grid, j represents the j-th grid, and k represents the second associated parameter, which is used for specifies the grid level adjacent to the i-th grid, and Indicates the initial density of each associated grid under the condition that the associated parameter is k.
下面以第一网格520-6为例进行描述,在i为1时,k可以由设计人员指定或默认为1。当k为1时,则第一网格520-6的关联网格为与第一网格520-6直接相邻的网格,也即网格520-1、520-2、520-3、520-5、520-7、520-9、520-10和520-11。在此情形下,GL
i表示第一网格520-6的局部平均密集程度,其取决于网格520-1、520-2、520-3、520-5、520-7、520-9、520-10和520-11的初始密集程度。可以理解,由于各个网格所邻接的网格可以不同,因此每个网格的局部平均密集程度可以不同。虽然在此以式子(4)示出了一种具体的局部平均密集程度的计算方式,但是这仅是示意而非对本公开的范围进行限制。可以使用其它的局部平均梯度计算方式来计算局部平均密集程度。在k为1的情形下,在上面计算合成密集程度时,仅考虑第一网格520-6以及与第一网格520-6直接相邻的相关网格的局部平均密集程度。这样,可以减少计算量和后续的迭代时间,并且仍能显著减少整体布局过程中的电路单元的整体布局线长。
The description below takes the first grid 520-6 as an example. When i is 1, k can be specified by the designer or be 1 by default. When k is 1, the associated grids of the first grid 520-6 are grids directly adjacent to the first grid 520-6, that is, grids 520-1, 520-2, 520-3, 520-5, 520-7, 520-9, 520-10, and 520-11. In this case, GL i represents the local average density of the first grid 520-6, which depends on the grids 520-1, 520-2, 520-3, 520-5, 520-7, 520-9, The initial density of 520-10 and 520-11. It can be understood that since the adjacent grids of each grid can be different, the local average density of each grid can be different. Although a specific calculation method of the local average density is shown by formula (4), this is only for illustration and not to limit the scope of the present disclosure. Other local average gradient calculation methods can be used to calculate the local average density. In the case where k is 1, only the local average denseness of the first grid 520-6 and related grids directly adjacent to the first grid 520-6 is considered when calculating the combined denseness above. In this way, the calculation amount and the subsequent iteration time can be reduced, and the overall layout line length of the circuit cells in the overall layout process can still be significantly reduced.
在另一个实施例中,在k为2时,以第一网格520-6为例,其关联网格可以从上面网格520-1、520-2、520-3、520-5、520-7、520-9、520-10和520-11向外扩展一圈网格。In another embodiment, when k is 2, taking the first grid 520-6 as an example, its associated grids can be obtained from the above grids 520-1, 520-2, 520-3, 520-5, 520 -7, 520-9, 520-10, and 520-11 expand a circle of grids outward.
在计算完成局部平均密集程度之后,可以计算各个单元的合成密集程度。例如,合成密集程度可以通过下面的式子(2)进行计算。After the local average density is calculated, the combined density of each unit can be calculated. For example, the synthesis intensity can be calculated by the following formula (2).
将式子(4)代入式子(5)可以得到式子(6)Substituting formula (4) into formula (5) can get formula (6)
其中α表示表示局部平均密集程度与网格的初始密集程度对合成密集程度的贡献比例,在本实施例中该α值通常取0和1之间的值,并且可以由设计人员指定或具有默认值。在一些实施例中,该α值也可以取负值。例如,可以计算第一网格520-6的电路单元密集程度的初始值,如果该初始值高于第一阈值,则可以将α设置为负数。当α为一个负数时,若布局单元自身的初始密集程度比其平均场密集程度值部分要大,则平均场密集程度计算公式(6)中最终结果比初始密集程度大,即相当于对该网格拥塞区域乘上了大于1的系数。例如,如图8所示,表示第一网格520-6的合成梯度的粗箭头长于表示第一网格520-6的初始梯度的细箭头。如果诸如第二网格520-3之类的网格的初始密集程度其平均场密集程度值部分要小,则平均场密集程度计算公式(6)中最终结果比初始密集程度小,即相当于对欠拥塞区域乘上了小于1的系数。例如,如图8所示,表示第二网格520-3的合成密集程度的粗箭头短于表示第二网格520-3的初始密集程度的细箭头。这样一种“马太效应”可以使得较为拥塞的网格中的电路单元更为快速地分散开,而较不拥塞的网格内的电路单元则基本上移动较小。虽然在此以式子(6)示出了一种具体的合成密集程度的计算方式,但是这仅是示意而非对本公开的范围进行限制。可以使用其它的合成密集程度计算方式来计算合成密集程度。Where α represents the contribution ratio of the local average density and the initial density of the grid to the composite density. In this embodiment, the value of α usually takes a value between 0 and 1, and can be specified by the designer or has a default value. In some embodiments, the value of α can also take a negative value. For example, an initial value of the density of circuit units of the first grid 520 - 6 may be calculated, and if the initial value is higher than a first threshold, α may be set as a negative number. When α is a negative number, if the initial density of the layout unit itself is greater than its average field density value, the final result of the average field density calculation formula (6) is greater than the initial density, which is equivalent to the Mesh congested areas are multiplied by a factor greater than 1. For example, as shown in FIG. 8 , the thick arrow representing the resultant gradient of the first mesh 520-6 is longer than the thin arrow representing the initial gradient of the first mesh 520-6. If the initial denseness of the grid such as the second grid 520-3 is partly smaller than the average field denseness value, the final result in the average field denseness calculation formula (6) is smaller than the initial denseness, which is equivalent to A factor less than 1 is multiplied for under-congested areas. For example, as shown in FIG. 8 , thick arrows representing the composite density of the second grid 520 - 3 are shorter than thin arrows representing the initial density of the second grid 520 - 3 . Such a "Matthew effect" can cause circuit cells in more congested grids to spread out more quickly, while circuit cells in less congested grids generally move less. Although formula (6) is used here to show a specific calculation method of the synthesis intensity, this is only for illustration and not to limit the scope of the present disclosure. Other calculation methods of composition intensity can be used to calculate the composition intensity.
可以对布局区域中的每个网格都执行上面所示的合成密集程度计算。备选地,也可以对芯片中的特定网格执行上面所示的合成密集程度计算,本公开对此不进行限制。例如,在一些实施例中,可以首先计算各个网格的电路单元密集程度的值,并且将其和第二阈值进行比较。如果不高于第二阈值,则表明该网格中的电路单元的密集程度较低,无需调整。如果高于第二阈值,则使用上面的合成密集程度的方法来调整网格中的电路单元。这样,可以减少用于计算网格的合成密集程度的时间和计算量,并且相应地减少后续迭代的时间和计算量。The compositing intensity calculation shown above can be performed for each grid in the layout area. Alternatively, the synthesis intensity calculation shown above may also be performed on a specific mesh in the chip, and this disclosure is not limited thereto. For example, in some embodiments, the value of the density of circuit units of each grid may be calculated first, and compared with the second threshold. If it is not higher than the second threshold, it indicates that the density of circuit units in the grid is low, and no adjustment is required. If above the second threshold, then use the method of synthesis density above to adjust the circuit cells in the grid. In this way, the time and computation for computing the compositing intensity of the mesh can be reduced, and the time and computation for subsequent iterations correspondingly reduced.
在此之后,可以基于所计算得到的网格的合成密集程度,使用常规的转换方法将其转换为网格内的电路单元的合成密集程度,本公开对此不进行限制。After that, based on the calculated composite density of the grid, it may be converted into a composite density of circuit units in the grid using a conventional conversion method, which is not limited in the present disclosure.
在另一些实施例中,还可以使用静电场模型近似描述布局单元分布的均匀程度,通过求解泊松(possion)方程得到密度均匀分布的结果。在求解电场后,也可以考虑局部平均场的效应,而计算公式仍与前述式子(6)保持一致。对电场模型求出的电场分布进行局部的额外加权计算,每个网格除了自身电场贡献(即初始电场)外,还额外考虑周围相邻网格在该网格位置的平均贡献,得到一个平滑过的电场分布,使得后续电场梯度的变化趋向平滑。在此实施例中,关联网格的定义与上面针对图8的关联网格定义可以相同,在此不再赘述。In some other embodiments, an electrostatic field model may also be used to approximately describe the uniformity of layout unit distribution, and a result of uniform density distribution may be obtained by solving a Poisson (possion) equation. After solving the electric field, the effect of the local mean field can also be considered, and the calculation formula is still consistent with the aforementioned formula (6). The local additional weighted calculation is performed on the electric field distribution calculated by the electric field model. In addition to its own electric field contribution (that is, the initial electric field), each grid also considers the average contribution of the surrounding adjacent grids at the grid position to obtain a smooth The electric field distribution is improved, so that the change of the subsequent electric field gradient tends to be smooth. In this embodiment, the definition of the association grid may be the same as the above definition of the association grid in FIG. 8 , which will not be repeated here.
在计算诸如第一网格520-6之类的网格的电场分布时,可分两部分,第一部分是在电场模型中通过possion方程求解出的电场强度,第二部分则是诸如第一网格520-6之类的网格为中心的3x3、5x5等网格的平均梯度场贡献,计算公式仍如前述式子(6)所述。这样得到平滑过的电场后,每个布局单元最终梯度也是较连续过渡,从而一定程度改善最终收敛结果。在电场的实施例中,上述式子(6)中的通常取值可以为正值,从而可以获得更为平滑并且质量也更好的布局优化结果。When calculating the electric field distribution of grids such as the first grid 520-6, it can be divided into two parts. The first part is the electric field strength obtained by solving the possion equation in the electric field model, and the second part is such as the first grid The calculation formula of the average gradient field contribution of grids such as grid 520-6 as the center of 3x3, 5x5, etc. is still as described in the aforementioned formula (6). After obtaining the smoothed electric field in this way, the final gradient of each layout unit is also a relatively continuous transition, thereby improving the final convergence result to a certain extent. In the embodiment of the electric field, the general value in the above formula (6) can be a positive value, so that a smoother layout optimization result with better quality can be obtained.
再次返回至图4,在406,基于合成梯度和初始化布局,确定多个电路单元在网格阵列中的目标布局。在一个实施例中,可以使用上面的电路单元的线长合成梯度和网格中的电路单元的合成密集程度中的至少一项作为迭代求解的梯度,并且利用诸如Adam 或Nesterov优化器之类的优化器进行迭代求解。例如在一个实施例中,可以通过使用下面的优化目标函数(7)来迭代求解。Returning again to FIG. 4 , at 406 , based on the synthesized gradient and the initial layout, a target layout of the plurality of circuit cells in the grid array is determined. In one embodiment, at least one of the synthetic gradient of the line length of the above circuit unit and the synthetic density of the circuit unit in the grid can be used as the gradient of the iterative solution, and utilize such as Adam or Nesterov optimizer The optimizer performs an iterative solution. For example, in one embodiment, it can be solved iteratively by using the following optimization objective function (7).
min(WL(x,y)+λD(w,y)) (7)min(WL(x,y)+λD(w,y)) (7)
其中,WL(x,y)表示当前布局下的HPWL,D(x,y)表示当前布局对应的标准单元的密集程度,λ表示加权系数,并且可以由设计人员指定或使用默认值。Among them, WL(x,y) represents the HPWL under the current layout, D(x,y) represents the density of standard units corresponding to the current layout, λ represents the weighting coefficient, and can be specified by the designer or use the default value.
在此之后,可以对布局单元的摆放位置进行规则化并输出最终结果。在本公开的实施例中,可以对电路单元的线长梯度和网格中的电路单元的密集程度中的至少一项施加局部平均梯度,以获得相应的合成项。这可以在布局过程中,不仅考虑布局参数自身,还考虑布局参数相关联的局部平均项,从而可以以合成项来对电路单元进行布局优化。这样,多个相关联的电路单元在布局过程中既可以均匀散开,也可以在散开过程中保持连接关系的紧密性。换言之,诸如电路单元的线长和布局紧密程度之类的布局参数在布局迭代过程中,既有各自的独特影响,又有局部的整体影响。这样,相比于常规的解析式整体布局,根据本公开的第一方面所获得的最终布局结果可以使得布局质量提高,例如减小诸如HPWL表征的最终线长。After this, the placement of the layout units can be regularized and the final result output. In an embodiment of the present disclosure, a local average gradient may be applied to at least one of the line length gradient of the circuit unit and the density of the circuit units in the grid, so as to obtain a corresponding synthesis item. During the layout process, not only the layout parameters themselves, but also the local average items associated with the layout parameters can be considered, so that the layout optimization of the circuit cells can be performed with the synthesized items. In this way, a plurality of associated circuit units can be evenly spread out during the layout process, and can also maintain a tight connection relationship during the spread out process. In other words, layout parameters such as line length and layout compactness of circuit cells have both their own unique influence and local overall influence during the layout iteration process. In this way, compared with the conventional analytical overall layout, the final layout result obtained according to the first aspect of the present disclosure can lead to improved layout quality, for example, reduced final line length such as HPWL characterization.
此外,在统一计算方式进行多次局域平均场梯度计算时,可以将不同尺度的平均场进行计算与组合。进一步地,可以对平均场梯度添加衰减系数α以提高收敛质量并且对平均场梯度添加负数的α以加快收敛速度。In addition, when performing multiple local mean field gradient calculations in a unified calculation method, the mean fields of different scales can be calculated and combined. Further, an attenuation coefficient α can be added to the mean field gradient to improve the convergence quality and a negative α can be added to the mean field gradient to speed up the convergence speed.
图9示出了根据本公开的一些实施例的电子设备900的示意性框图。电子设备900可以被实现为或者被包括在图2的电子设备230中。FIG. 9 shows a schematic block diagram of an electronic device 900 according to some embodiments of the present disclosure. The electronic device 900 may be implemented as or included in the electronic device 230 of FIG. 2 .
电子设备900可以包括多个模块,以用于执行如图4中所讨论的方法400中的对应步骤。如图9所示,电子设备900包括初始化模902,被配置为:基于芯片的网表数据,对芯片中的多个电路单元在布局区域的网格阵列中进行初始化,以得到多个电路单元在网格阵列中的初始化布局,网表数据至少指示多个电路单元的尺寸和多个电路单元的连接关系。电子设备900还包括合成项确定模块904,被配置为:基于初始化布局和网表数据,确定初始化布局的布局参数的合成项,合成项基于布局参数的初始项和与布局参数相关联的布局参数集的局部平均项。电子设备900还包括目标布局确定模块906,被配置为:基于合成项和初始化布局,确定多个电路单元在网格阵列中的目标布局。在布局过程中,不仅考虑布局参数自身的梯度,还考虑布局参数相关联的局部平均梯度,从而可以以合成梯度来对电路单元进行布局优化。这样,多个相关联的电路单元在布局过程中既可以均匀散开,也可以在散开过程中保持连接关系的紧密性。换言之,诸如电路单元的线长和布局紧密程度之类的布局参数在布局迭代过程中,既有各自的独特梯度影响,又有局部的整体梯度影响。这样,相比于常规的解析式整体布局,根据本公开的第一方面所获得的最终布局结果可以使得布局质量提高,例如减小诸如HPWL表征的最终线长。The electronic device 900 may include a plurality of modules for performing corresponding steps in the method 400 as discussed in FIG. 4 . As shown in FIG. 9 , the electronic device 900 includes an initialization module 902 configured to: based on the netlist data of the chip, initialize a plurality of circuit units in the chip in a grid array in the layout area, so as to obtain a plurality of circuit units In the initial layout in the grid array, the netlist data at least indicates the size of the plurality of circuit units and the connection relationship of the plurality of circuit units. The electronic device 900 further includes a composite item determination module 904 configured to: determine a composite item of the layout parameters of the initialization layout based on the initialization layout and the netlist data, the composite item is based on the initial item of the layout parameters and the layout parameters associated with the layout parameters The local average term of the set. The electronic device 900 further includes a target layout determination module 906 configured to: determine a target layout of the plurality of circuit units in the grid array based on the synthesized item and the initialization layout. In the layout process, not only the gradient of the layout parameter itself is considered, but also the local average gradient associated with the layout parameter is considered, so that the layout optimization of the circuit unit can be performed with the synthetic gradient. In this way, a plurality of associated circuit units can be evenly spread out during the layout process, and can also maintain a tight connection relationship during the spread out process. In other words, layout parameters such as line length and layout compactness of circuit cells have both their own unique gradient influences and local overall gradient influences during the layout iteration process. In this way, compared with the conventional analytical overall layout, the final layout result obtained according to the first aspect of the present disclosure can lead to improved layout quality, for example, reduced final line length such as HPWL characterization.
在一些实施例中,布局参数包括多个电路单元中的第一电路单元的连接线长的梯度,合成项包括连接线长的合成梯度,梯度指示布局参数的最大变化率和具有最大变化率的方向。合成项确定模块904包括:计算模块,被配置为基于网表数据和初始化布局计算第一电路单元的连接线长的第一初始梯度;关联电路单元集确定模块,被配置为:基于网表数据,确定第一电路单元的第一关联电路单元集;计算模块被进一步配置为:基于第一初始梯度和第一关联电路单元集中的每个关联电路单元的连接线长的初始梯度,计 算第一局部平均梯度;以及基于第一初始梯度和第一局部平均梯度,计算第一电路单元的连接线长的合成梯度。In some embodiments, the layout parameters include the gradient of the connection line length of the first circuit unit among the plurality of circuit units, the composite item includes the composite gradient of the connection line length, and the gradient indicates the maximum change rate of the layout parameter and the maximum change rate of the layout parameter. direction. The synthetic item determination module 904 includes: a calculation module configured to calculate the first initial gradient of the connection line length of the first circuit unit based on the netlist data and the initialization layout; an associated circuit unit set determination module configured to: based on the netlist data , to determine the first associated circuit unit set of the first circuit unit; the calculation module is further configured to: based on the first initial gradient and the initial gradient of the connection line length of each associated circuit unit in the first associated circuit unit set, calculate the first a local average gradient; and based on the first initial gradient and the first local average gradient, calculating a resultant gradient of the connecting line length of the first circuit unit.
在一些实施例中,基于初始化布局和网表数据确定初始化布局的布局参数的合成梯度包括:针对多个电路单元中的每个电路单元,以上面类似地方式,计算每个电路单元的相应初始梯度,确定每个电路单元的各自的关联电路单元集,计算每个电路单元的相应的局部平均梯度,并且计算每个电路单元的连接线长的相应合成梯度。通过计算电路单元的合成梯度,可以在布局过程中既保持电路单元的独特梯度影响,又有局部的整体梯度影响。这样,可以避免电路单元在散开过程中相关联的电路单元过于分散所导致的线长增加。换言之,以此方式,可以减少整体布局过程中的电路单元的整体布局线长。In some embodiments, determining the composite gradient of the layout parameters of the initialization layout based on the initialization layout and the netlist data includes: for each circuit unit in the plurality of circuit units, calculating the corresponding initial Gradients, determining a respective set of associated circuit units for each circuit unit, calculating a corresponding local average gradient for each circuit unit, and calculating a corresponding resultant gradient for the connecting line lengths of each circuit unit. By calculating the composite gradient of the circuit unit, both the unique gradient influence of the circuit unit and the local overall gradient influence can be maintained during the layout process. In this way, it is possible to avoid an increase in line length caused by over-dispersion of associated circuit units in the spreading process of the circuit units. In other words, in this way, the overall layout line length of the circuit units in the overall layout process can be reduced.
在一些实施例中,关联电路单元集确定模块被进一步配置为:基于网表数据和第一关联参数,确定第一电路单元的第一关联电路单元集,第一关联参数用于指定第一电路单元的物理连接的层级。例如,该第一关联参数用于指定第一电路单元的物理连接的层级为表示直接连接的1级。换言之,在上面计算线长的合成梯度时,仅考虑第一电路单元以及与第一电路单元直接连接的相关电路单元的局部平均梯度。这样,可以减少计算量和后续的迭代时间,并且仍能显著减少整体布局过程中的电路单元的整体布局线长。In some embodiments, the associated circuit unit set determination module is further configured to: determine the first associated circuit unit set of the first circuit unit based on the netlist data and the first associated parameter, the first associated parameter is used to specify the first circuit The level of physical connection of the unit. For example, the first association parameter is used to specify that the level of the physical connection of the first circuit unit is level 1 indicating direct connection. In other words, only the local average gradients of the first circuit unit and related circuit units directly connected to the first circuit unit are considered when calculating the synthetic gradient of the line length above. In this way, the calculation amount and the subsequent iteration time can be reduced, and the overall layout line length of the circuit cells in the overall layout process can still be significantly reduced.
在一些实施例中,布局参数包括网格阵列中的第一网格的密集程度,第一网格的密集程度表示电路单元在第一网格内的密集程度,合成项包括第一网格内的电路单元的合成密集程度。合成项确定模块904被进一步配置为:基于初始化布局和网表数据,计算第一网格的的第一初始密集程度;基于初始化布局,确定第一网格的关联网格集;基于第一初始密集程度和关联网格集中的每个关联网格的相应初始密集程度,计算第一局部平均密集程度;基于第一初始密集程度和第一局部平均密集程度,计算第一网格的合成密集程度;以及基于第一网格的合成密集程度,确定第一网格内的电路单元的第一合成密集程度。In some embodiments, the layout parameters include the density of the first grid in the grid array, the density of the first grid represents the density of the circuit units in the first grid, and the synthesis item includes The synthesis intensity of the circuit unit. The composite item determination module 904 is further configured to: calculate the first initial density of the first grid based on the initial layout and netlist data; determine the associated grid set of the first grid based on the initial layout; Intensity and the corresponding initial intensities of each associated grid in the associated grid set, calculating a first local average intensification; based on the first initial intensification and the first local average intensification, calculating a composite intensification for the first grid ; and based on the composition density of the first grid, determining a first composition density of the circuit cells in the first grid.
在一些实施例中,合成项确定模块904被进一步配置为:针对网格阵列中的每个网格,以上面类似地方式,计算每个网格的相应初始密集程度,确定每个网格的各自的关联网格集,计算每个网格的相应的局部平均密集程度,并且计算每个网格的相应合成密集程度,以及基于网格的合成密集程度确定网格内的电路单元的密集程度。通过每个网格的单元紧密程度的合成梯度,可以在布局过程中既保持单个网格的独特梯度影响,又有局部网格的整体梯度影响。例如,可以避免多个电路单元在散开过程中再次聚集在另一网格。这样,可以使得电路单元在散开过程中更为均匀,从而获得更好的布局效果。In some embodiments, the composite item determination module 904 is further configured to: for each grid in the grid array, in a manner similar to the above, calculate the corresponding initial density of each grid, and determine the Respective associative mesh sets, computing a corresponding local average density for each mesh, and computing a corresponding composite density for each mesh, and determining the density of circuit cells within a mesh based on the mesh's composite density . Through the synthetic gradient of the cell compactness of each grid, it is possible to maintain both the unique gradient influence of a single grid and the overall gradient influence of a local grid during the layout process. For example, it is possible to prevent multiple circuit units from gathering in another grid again during the spreading process. In this way, the spreading process of the circuit units can be made more uniform, so as to obtain a better layout effect.
在一些实施例中,关联网格集确定模块被进一步配置为:基于初始化布局和第二关联参数,确定第一网格的关联网格集,第二关联参数用于指定与第一网格相邻的网格层级。例如,该第二关联参数用于指定第一网格的相邻网格层级为表示直接邻接的1级。换言之,在上面计算网格的单元密集程度的合成梯度时,仅考虑第一网格以及与第一网格直接相邻的相关网格的单元密集程度的局部平均梯度。这样,可以减少计算量和后续的迭代时间,并且仍能获得显著的布局效果。In some embodiments, the associated grid set determining module is further configured to: determine an associated grid set of the first grid based on the initial layout and a second associated parameter, the second associated parameter is used to specify Neighboring grid level. For example, the second association parameter is used to designate the adjacent grid level of the first grid as level 1 representing direct adjacency. In other words, when calculating the composite gradient of the cell density of the grid above, only the local average gradient of the cell density of the first grid and related grids directly adjacent to the first grid is considered. In this way, the amount of computation and subsequent iteration time can be reduced and still achieve significant layout effects.
在一些实施例中,合成项确定模块904被进一步配置为:基于初始化布局和网表数据,确定布局参数的初始项和局部平均项;计算初始项与第一系数的第一乘积;计算局部平均项与第二系数的第二乘积;以及将第一乘积与第二乘积相加,以确定布局参数的合成项。在第二方面的一种实现方式中,第一系数和第二系数之和为1。通过设置不同 的系数,可以基于电路的配置来调节布局过程中的相关参数,进而可以影响布局质量和/或布局迭代的速度以及所需的时间。例如,在布局参数为网格的单元密集程度的情形下,如果密集程度越大,就可以通过设置系数使得电路单元散开的越快,从而加快后续的迭代和减少最终收敛所需的步数。In some embodiments, the synthesis item determination module 904 is further configured to: determine the initial item and the local average item of the layout parameters based on the initialization layout and the netlist data; calculate the first product of the initial item and the first coefficient; calculate the local average A second product of the term and the second coefficient; and adding the first product to the second product to determine a resultant term of the layout parameter. In an implementation manner of the second aspect, the sum of the first coefficient and the second coefficient is 1. By setting different coefficients, relevant parameters in the layout process can be adjusted based on the configuration of the circuit, which in turn can affect the layout quality and/or the speed and time required for layout iterations. For example, in the case where the layout parameter is the cell density of the grid, if the density is greater, the coefficient can be set to make the circuit cells spread out faster, thereby speeding up subsequent iterations and reducing the number of steps required for final convergence .
在一些实施例中,该电子设备900还包括初始值确定模块,被配置为确定布局参数的初始值;以及设置模块,被配置为响应于初始值高于第一阈值,将第二系数设置为负值。例如,布局参数可以是网格阵列的网格中的单元密集程度,并且该初始值可以是一个网格的单元密集程度的初始值。通过在迭代之前确认布局参数的初始值并且将该初始值与阈值进行比较,可以使得越为密集的网格中的电路单元越快散开,从而节省布局迭代的计算量和时间。In some embodiments, the electronic device 900 further includes an initial value determination module configured to determine an initial value of the layout parameter; and a setting module configured to set the second coefficient to negative value. For example, the layout parameter may be the density of cells in the grid of the grid array, and the initial value may be the initial value of the density of cells in a grid. By confirming the initial value of the layout parameter before the iteration and comparing the initial value with the threshold value, the circuit cells in the denser grid can be dispersed faster, thereby saving the calculation amount and time of the layout iteration.
图10示出了可以用来实施本公开的实施例的示例设备1000的示意性框图。设备1000可以用于实现电子设备230。如图所示,设备1000包括计算单元1001,其可以根据存储在随机存取存储器(RAM)和/或只读存储器(ROM)1002的计算机程序指令或者从存储单元1008加载到RAM 1003和/或ROM 1002中的计算机程序指令,来执行各种适当的动作和处理。在RAM 1003和/或ROM 1002中,还可存储设备1000操作所需的各种程序和数据。计算单元1001和RAM 1003和/或ROM 1002通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。Fig. 10 shows a schematic block diagram of an example device 1000 that may be used to implement embodiments of the present disclosure. Device 1000 may be used to implement electronic device 230 . As shown, device 1000 includes computing unit 1001, which may be loaded into RAM 1003 and/or Computer program instructions in ROM 1002 to perform various appropriate actions and processes. In the RAM 1003 and/or the ROM 1002, various programs and data necessary for the operation of the device 1000 can also be stored. The computing unit 1001 and the RAM 1003 and/or ROM 1002 are connected to each other via a bus 1004. An input/output (I/O) interface 1005 is also connected to the bus 1004 .
设备1000中的多个部件连接至I/O接口1005,包括:输入单元1006,例如键盘、鼠标等;输出单元1007,例如各种类型的显示器、扬声器等;存储单元1008,例如磁盘、光盘等;以及通信单元1009,例如网卡、调制解调器、无线通信收发机等。通信单元1009允许设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。Multiple components in the device 1000 are connected to the I/O interface 1005, including: an input unit 1006, such as a keyboard, a mouse, etc.; an output unit 1007, such as various types of displays, speakers, etc.; a storage unit 1008, such as a magnetic disk, an optical disk, etc. ; and a communication unit 1009, such as a network card, a modem, a wireless communication transceiver, and the like. The communication unit 1009 allows the device 1000 to exchange information/data with other devices through a computer network such as the Internet and/or various telecommunication networks.
计算单元1001可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1001的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1001执行上文所描述的各个方法和处理,例如方法400。例如,在一些实施例中,方法400可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1008。在一些实施例中,计算机程序的部分或者全部可以经由RAM和/或ROM和/或通信单元1009而被载入和/或安装到设备1000上。当计算机程序加载到RAM和/或ROM并由计算单元1001执行时,可以执行上文描述的方法400的一个或多个步骤。备选地,在其他实施例中,计算单元1001可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法400。The computing unit 1001 may be various general-purpose and/or special-purpose processing components having processing and computing capabilities. Some examples of computing units 1001 include, but are not limited to, central processing units (CPUs), graphics processing units (GPUs), various dedicated artificial intelligence (AI) computing chips, various computing units that run machine learning model algorithms, digital signal processing processor (DSP), and any suitable processor, controller, microcontroller, etc. The calculation unit 1001 executes various methods and processes described above, such as the method 400 . For example, in some embodiments, method 400 may be implemented as a computer software program tangibly embodied on a machine-readable medium, such as storage unit 1008 . In some embodiments, part or all of the computer program may be loaded and/or installed onto the device 1000 via RAM and/or ROM and/or the communication unit 1009 . When a computer program is loaded into RAM and/or ROM and executed by computing unit 1001, one or more steps of method 400 described above may be performed. Alternatively, in other embodiments, the computing unit 1001 may be configured to execute the method 400 in any other suitable manner (for example, by means of firmware).
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。Program codes for implementing the methods of the present disclosure may be written in any combination of one or more programming languages. These program codes may be provided to a processor or controller of a general-purpose computer, a special purpose computer, or other programmable data processing devices, so that the program codes, when executed by the processor or controller, make the functions/functions specified in the flow diagrams and/or block diagrams Action is implemented. The program code may execute entirely on the machine, partly on the machine, as a stand-alone software package partly on the machine and partly on a remote machine or entirely on the remote machine or server.
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器 可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。In the context of the present disclosure, a machine-readable medium may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of machine-readable storage media would include one or more wire-based electrical connections, portable computer discs, hard drives, random access memory (RAM), read only memory (ROM), erasable programmable read only memory (EPROM or flash memory), optical fiber, compact disk read only memory (CD-ROM), optical storage, magnetic storage, or any suitable combination of the foregoing.
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。In addition, while operations are depicted in a particular order, this should be understood to require that such operations be performed in the particular order shown, or in sequential order, or that all illustrated operations should be performed to achieve desirable results. Under certain circumstances, multitasking and parallel processing may be advantageous. Likewise, while the above discussion contains several specific implementation details, these should not be construed as limitations on the scope of the disclosure. Certain features that are described in the context of separate embodiments can also be implemented in combination in a single implementation. Conversely, various features that are described in the context of a single implementation can also be implemented in multiple implementations separately or in any suitable subcombination.
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are merely example forms of implementing the claims.
Claims (19)
- 一种用于设计布局的方法,包括:A method for designing a layout comprising:基于芯片的网表数据,对所述芯片中的多个电路单元在布局区域的网格阵列中进行初始化,以得到所述多个电路单元在所述网格阵列中的初始化布局,所述网表数据至少指示所述多个电路单元的尺寸和所述多个电路单元的连接关系;Based on the netlist data of the chip, initialize the plurality of circuit units in the chip in the grid array of the layout area, so as to obtain the initialization layout of the plurality of circuit units in the grid array, the network The table data indicates at least the size of the plurality of circuit units and the connection relationship of the plurality of circuit units;基于所述初始化布局和所述网表数据,确定初始化布局的布局参数的合成项,所述合成项基于所述布局参数的初始项和与所述布局参数相关联的布局参数集的局部平均项;以及Based on the initialization layout and the netlist data, determining a composite item of a layout parameter of the initialization layout, the composite item is based on an initial item of the layout parameter and a local average item of a layout parameter set associated with the layout parameter ;as well as基于所述合成项和所述初始化布局,确定所述多个电路单元在所述网格阵列中的目标布局。A target layout of the plurality of circuit cells in the grid array is determined based on the synthesized items and the initialization layout.
- 根据权利要求1所述的方法,其中所述布局参数包括多个电路单元中的第一电路单元的连接线长的梯度,所述合成项包括所述连接线长的合成梯度,所述梯度指示所述布局参数的最大变化率和具有所述最大变化率的方向,基于所述初始化布局和所述网表数据确定初始化布局的布局参数的合成项包括:The method according to claim 1, wherein the layout parameters include a gradient of a connection line length of a first circuit unit among a plurality of circuit units, and the composite term includes a composite gradient of the connection line length, the gradient indicating The maximum rate of change of the layout parameters and the direction with the maximum rate of change, based on the initialization layout and the netlist data to determine the synthetic items of the layout parameters of the initialization layout include:基于所述网表数据和所述初始化布局,计算所述第一电路单元的连接线长的第一初始梯度;calculating a first initial gradient of the connection line length of the first circuit unit based on the netlist data and the initialization layout;基于所述网表数据,确定所述第一电路单元的第一关联电路单元集;determining a first set of associated circuit units of the first circuit unit based on the netlist data;基于所述第一初始梯度和所述第一关联电路单元集中的每个关联电路单元的连接线长的初始梯度,计算第一局部平均梯度;以及calculating a first local average gradient based on the first initial gradient and the initial gradient of the connection line length of each associated circuit unit in the first set of associated circuit units; and基于所述第一初始梯度和所述第一局部平均梯度,计算所述第一电路单元的连接线长的合成梯度。Based on the first initial gradient and the first local average gradient, a composite gradient of the connecting line length of the first circuit unit is calculated.
- 根据权利要求2所述的方法,其中基于所述网表数据确定所述第一电路单元的第一关联电路单元集包括:The method of claim 2, wherein determining a first set of associated circuit elements of the first circuit element based on the netlist data comprises:基于所述网表数据和第一关联参数,确定所述第一电路单元的第一关联电路单元集,所述第一关联参数用于指定所述第一电路单元的物理连接的层级。A first set of associated circuit units of the first circuit unit is determined based on the netlist data and a first association parameter, where the first association parameter is used to specify a level of physical connection of the first circuit unit.
- 根据权利要求1-3中任一项所述的方法,其中所述布局参数包括所述网格阵列中的第一网格的密集程度,所述第一网格的密集程度表示电路单元在所述第一网格内的密集程度,所述合成项包括所述第一网格内的电路单元的合成密集程度,基于所述初始化布局和所述网表数据确定初始化布局的布局参数的合成项包括:The method according to any one of claims 1-3, wherein the layout parameters include the degree of density of the first grid in the grid array, and the degree of density of the first grid indicates that the circuit unit is in the The degree of density in the first grid, the synthesis item includes the degree of synthesis density of the circuit cells in the first grid, and the synthesis item of the layout parameters of the initialization layout is determined based on the initialization layout and the netlist data include:基于所述初始化布局和所述网表数据,计算所述第一网格的的第一初始密集程度;calculating a first initial density of the first grid based on the initialization layout and the netlist data;基于所述初始化布局,确定所述第一网格的关联网格集;determining an associated grid set for the first grid based on the initialization layout;基于所述第一初始密集程度和所述关联网格集中的每个关联网格的相应初始密集程度,计算第一局部平均密集程度;calculating a first local average density based on the first initial density and the corresponding initial density of each associated mesh in the set of associated meshes;基于所述第一初始密集程度和所述第一局部平均密集程度,计算所述第一网格的合成密集程度;以及calculating a composite density of the first mesh based on the first initial density and the first local average density; and基于所述第一网格的合成密集程度,确定所述第一网格内的电路单元的第一合成密集程度。Based on the composition density of the first grid, a first composition density of circuit units in the first grid is determined.
- 根据权利要求4所述的方法,其中基于所述初始化布局确定所述第一电路单元的第一关联电路单元集包括:The method of claim 4, wherein determining a first set of associated circuit elements for the first circuit element based on the initialization layout comprises:基于所述初始化布局和第二关联参数,确定所述第一网格的关联网格集,所述第二关联 参数用于指定与所述第一网格相邻的网格层级。An associated grid set of the first grid is determined based on the initialized layout and a second associated parameter, where the second associated parameter is used to specify a grid level adjacent to the first grid.
- 根据权利要求1-5中任一项所述的方法,其中基于所述初始化布局和所述网表数据确定初始化布局的布局参数的合成项包括:The method according to any one of claims 1-5, wherein determining the synthetic item of the layout parameters of the initialization layout based on the initialization layout and the netlist data comprises:基于所述初始化布局和所述网表数据,确定所述布局参数的所述初始项和所述局部平均项;determining the initial term and the local average term of the layout parameters based on the initialization layout and the netlist data;计算所述初始项与第一系数的第一乘积;calculating a first product of the initial term and a first coefficient;计算所述局部平均项与第二系数的第二乘积;以及calculating a second product of the local average term and a second coefficient; and将所述第一乘积与所述第二乘积相加,以确定所述布局参数的合成项。Adding the first product and the second product to determine a composite term for the layout parameters.
- 根据权利要求6所述的方法,其中所述第一系数和所述第二系数之和为1。The method of claim 6, wherein the sum of the first coefficient and the second coefficient is one.
- 根据权利要求7所述的方法,还包括:The method according to claim 7, further comprising:确定所述布局参数的初始值;以及determining initial values for the layout parameters; and响应于所述初始值高于第一阈值,将所述第二系数设置为负值。In response to the initial value being higher than a first threshold, the second coefficient is set to a negative value.
- 一种用于设计布局的装置,包括:An apparatus for designing a layout, comprising:初始化模块,被配置为:基于芯片的网表数据,对所述芯片中的多个电路单元在布局区域的网格阵列中进行初始化,以得到所述多个电路单元在所述网格阵列中的初始化布局,所述网表数据至少指示所述多个电路单元的尺寸和所述多个电路单元的连接关系;The initialization module is configured to: initialize the plurality of circuit units in the chip in the grid array of the layout area based on the netlist data of the chip, so as to obtain the grid array of the plurality of circuit units in the grid array The initialization layout of the network list data at least indicates the size of the plurality of circuit units and the connection relationship of the plurality of circuit units;合成项确定模块,被配置为:基于所述初始化布局和所述网表数据,确定初始化布局的布局参数的合成项,所述合成项基于所述布局参数的初始项和与所述布局参数相关联的布局参数集的局部平均项;以及A synthetic item determination module configured to: determine a synthetic item of a layout parameter of an initialization layout based on the initial layout and the netlist data, the synthetic item is based on an initial item of the layout parameter and is related to the layout parameter The local average term of the linked layout parameter set; and目标布局确定模块,被配置为:基于所述合成梯度和所述初始化布局,确定所述多个电路单元在所述网格阵列中的目标布局。A target layout determination module configured to: determine a target layout of the plurality of circuit units in the grid array based on the synthetic gradient and the initialization layout.
- 根据权利要求9所述的装置,其中所述布局参数包括多个电路单元中的第一电路单元的连接线长的梯度,所述合成项包括所述连接线长的合成梯度,所述梯度指示所述布局参数的最大变化率和具有所述最大变化率的方向,所述合成项确定模块包括:The apparatus according to claim 9, wherein the layout parameters include a gradient of a connection line length of a first circuit unit among a plurality of circuit units, and the composite term includes a composite gradient of the connection line length, the gradient indicating The maximum rate of change of the layout parameters and the direction with the maximum rate of change, the synthetic item determination module includes:计算模块,被配置为基于所述网表数据和所述初始化布局计算所述第一电路单元的连接线长的第一初始梯度;a calculation module configured to calculate a first initial gradient of the connection line length of the first circuit unit based on the netlist data and the initialization layout;关联电路单元集确定模块,被配置为:基于所述网表数据,确定所述第一电路单元的第一关联电路单元集;An associated circuit unit set determining module configured to: determine a first associated circuit unit set of the first circuit unit based on the netlist data;所述计算模块被进一步配置为:The calculation module is further configured to:基于所述第一初始梯度和所述第一关联电路单元集中的每个关联电路单元的连接线长的初始梯度,计算第一局部平均梯度;以及calculating a first local average gradient based on the first initial gradient and the initial gradient of the connection line length of each associated circuit unit in the first set of associated circuit units; and基于所述第一初始梯度和所述第一局部平均梯度,计算所述第一电路单元的连接线长的合成梯度。Based on the first initial gradient and the first local average gradient, a composite gradient of the connecting line length of the first circuit unit is calculated.
- 根据权利要求10所述的装置,其中所述关联电路单元集确定模块被进一步配置为:The apparatus according to claim 10, wherein the associated circuit unit set determination module is further configured to:基于所述网表数据和第一关联参数,确定所述第一电路单元的第一关联电路单元集,所述第一关联参数用于指定所述第一电路单元的物理连接的层级。A first set of associated circuit units of the first circuit unit is determined based on the netlist data and a first association parameter, where the first association parameter is used to specify a level of physical connection of the first circuit unit.
- 根据权利要求9-11中任一项所述的装置,其中所述布局参数包括所述网格阵列中的第一网格的密集程度,所述第一网格的密集程度表示电路单元在所述第一网格内的密集程度,所述合成项包括所述第一网格内的电路单元的合成密集程度,所述合成项确定模块包括:The device according to any one of claims 9-11, wherein the layout parameters include the degree of density of the first grid in the grid array, and the degree of density of the first grid indicates that the circuit unit is in the The degree of density in the first grid, the synthesis item includes the degree of synthesis density of the circuit units in the first grid, and the synthesis item determination module includes:计算模块,被配置为:基于所述初始化布局和所述网表数据,计算所述第一网格的第一 初始密集程度;A calculation module configured to: calculate a first initial density of the first grid based on the initialization layout and the netlist data;关联网格集确定模块,被配置为:基于所述初始化布局,确定所述第一网格的关联网格集;An associated grid set determining module configured to: determine an associated grid set of the first grid based on the initialization layout;所述计算模块被进一步配置为:The calculation module is further configured to:基于第一初始密集程度和所述关联网格集中的每个关联网格的相应初始密集程度,计算第一局部平均密集程度;以及calculating a first local average density based on the first initial density and the corresponding initial density of each associated mesh in the set of associated meshes; and基于所述第一初始密集程度和所述第一局部平均密集程度,计算所述第一网格的第一合成密集程度;以及calculating a first composite density of the first grid based on the first initial density and the first local average density; and基于所述第一网格的合成密集程度,确定所述第一网格内的电路单元的合成密集程度。Based on the composition density of the first grid, the composition density of the circuit units in the first grid is determined.
- 根据权利要求12所述的装置,其中所述关联网格集确定模块被进一步配置为:The apparatus of claim 12, wherein the associated mesh set determination module is further configured to:基于所述初始化布局和第二关联参数,确定所述第一网格的关联网格集,所述第二关联参数用于指定与所述第一网格相邻的网格层级。An associated grid set of the first grid is determined based on the initialized layout and a second associated parameter, where the second associated parameter is used to specify a grid level adjacent to the first grid.
- 根据权利要求9-13中任一项所述的装置,其中所述合成项确定模块被进一步配置为:The device according to any one of claims 9-13, wherein the composite item determination module is further configured to:基于所述初始化布局和所述网表数据,确定所述布局参数的所述初始项和所述局部平均项;determining the initial term and the local average term of the layout parameters based on the initialization layout and the netlist data;计算所述初始项与第一系数的第一乘积;calculating a first product of the initial term and a first coefficient;计算所述局部平均项与第二系数的第二乘积;以及calculating a second product of the local average term and a second coefficient; and将所述第一乘积与所述第二乘积相加,以确定所述布局参数的合成项。Adding the first product and the second product to determine a composite term for the layout parameters.
- 根据权利要求14所述的装置,其中所述第一系数和所述第二系数之和为1。The apparatus of claim 14, wherein the sum of the first coefficient and the second coefficient is one.
- 根据权利要求15所述的装置,还包括:The apparatus of claim 15, further comprising:初始值确定模块,被配置为确定所述布局参数的初始值;以及an initial value determination module configured to determine an initial value of the layout parameter; and设置模块,被配置为响应于所述初始值高于第一阈值,将所述第二系数设置为负值。A setting module configured to set the second coefficient to a negative value in response to the initial value being higher than a first threshold.
- 一种电子设备,包括:An electronic device comprising:至少一个处理器;at least one processor;至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理器,并且存储用于由所述至少一个处理器执行的指令,所述指令当由所述至少一个处理器执行时,使得所述设备执行根据权利要求1至8中任一项所述的方法。at least one memory coupled to the at least one processor and storing instructions for execution by the at least one processor that, when executed by the at least one processor, cause the The device performs the method according to any one of claims 1-8.
- 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现根据权利要求1至8中任一项所述的方法。A computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the method according to any one of claims 1 to 8 is implemented.
- 一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机可执行指令,所述计算机可执行指令在被处理器执行时,使计算机实现根据权利要求1至8中任一项所述的方法。A computer program product, characterized in that the computer program product includes computer-executable instructions, and when the computer-executable instructions are executed by a processor, the computer implements the method according to any one of claims 1 to 8. method.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2022/070963 WO2023130434A1 (en) | 2022-01-10 | 2022-01-10 | Layout design method and apparatus, device, medium and program product |
CN202280074140.6A CN118159976A (en) | 2022-01-10 | 2022-01-10 | Method, apparatus, device, medium, and program product for designing layout |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2022/070963 WO2023130434A1 (en) | 2022-01-10 | 2022-01-10 | Layout design method and apparatus, device, medium and program product |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023130434A1 true WO2023130434A1 (en) | 2023-07-13 |
Family
ID=87072854
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2022/070963 WO2023130434A1 (en) | 2022-01-10 | 2022-01-10 | Layout design method and apparatus, device, medium and program product |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN118159976A (en) |
WO (1) | WO2023130434A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117436399A (en) * | 2023-12-22 | 2024-01-23 | 深圳鸿芯微纳技术有限公司 | Automatic layout method and device of circuit schematic diagram device and electronic equipment |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110078642A1 (en) * | 2009-09-30 | 2011-03-31 | International Business Machines Corporation | Method for Calculating Capacitance Gradients in VLSI Layouts Using A Shape Processing Engine |
CN102323960A (en) * | 2011-04-19 | 2012-01-18 | 清华大学 | Layout module distribution density smoothing method considering degree of overlapping and wire length |
CN111767689A (en) * | 2020-05-20 | 2020-10-13 | 西南科技大学 | Three-dimensional integrated circuit layout method based on graphic processing |
CN112364599A (en) * | 2020-11-27 | 2021-02-12 | 西南科技大学 | Fixed frame circuit layout planning method |
-
2022
- 2022-01-10 WO PCT/CN2022/070963 patent/WO2023130434A1/en active Application Filing
- 2022-01-10 CN CN202280074140.6A patent/CN118159976A/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110078642A1 (en) * | 2009-09-30 | 2011-03-31 | International Business Machines Corporation | Method for Calculating Capacitance Gradients in VLSI Layouts Using A Shape Processing Engine |
CN102323960A (en) * | 2011-04-19 | 2012-01-18 | 清华大学 | Layout module distribution density smoothing method considering degree of overlapping and wire length |
CN111767689A (en) * | 2020-05-20 | 2020-10-13 | 西南科技大学 | Three-dimensional integrated circuit layout method based on graphic processing |
CN112364599A (en) * | 2020-11-27 | 2021-02-12 | 西南科技大学 | Fixed frame circuit layout planning method |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117436399A (en) * | 2023-12-22 | 2024-01-23 | 深圳鸿芯微纳技术有限公司 | Automatic layout method and device of circuit schematic diagram device and electronic equipment |
CN117436399B (en) * | 2023-12-22 | 2024-03-26 | 深圳鸿芯微纳技术有限公司 | Automatic layout method and device of circuit schematic diagram device and electronic equipment |
Also Published As
Publication number | Publication date |
---|---|
CN118159976A (en) | 2024-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7520995B2 (en) | Generating integrated circuit layouts using neural networks. | |
US11853676B2 (en) | Layout context-based cell timing characterization | |
WO2023123068A1 (en) | Method and apparatus for layout design, device, medium, and program product | |
JP5667305B2 (en) | An integrated data model-based framework for design convergence from architecture optimization to physical design closure | |
Xu et al. | GoodFloorplan: Graph convolutional network and reinforcement learning-based floorplanning | |
WO2023130434A1 (en) | Layout design method and apparatus, device, medium and program product | |
CN116362194A (en) | Wiring resource pre-allocation method, device, computing equipment and storage medium | |
CN111597768A (en) | Method, apparatus and computer-readable storage medium for constructing a set of layout patterns | |
WO2022266231A1 (en) | Machine-learning-based power/ground (p/g) via removal | |
Chang et al. | ASAP: An analytical strategy for AQFP placement | |
Zhou et al. | Heterogeneous graph neural network-based imitation learning for gate sizing acceleration | |
WO2021069211A1 (en) | Method of and apparatus for processing data of a deep neural network | |
US11741282B2 (en) | Reinforcement learning-based adjustment of digital circuits | |
CN115470741A (en) | Method, electronic device and storage medium for light source mask co-optimization | |
Pham et al. | Agd: A learning-based optimization framework for eda and its application to gate sizing | |
Guan et al. | A novel thermal-aware floorplanning and tsv assignment with game theory for fixed-outline 3-D ICs | |
WO2023122911A1 (en) | Method, apparatus and device for laying out standard cells, and storage medium and program product | |
CN114970440B (en) | Wiring method of ultra-large scale integrated circuit channel | |
TW202409879A (en) | Learning-based macro placement with quality of human experts | |
Chang et al. | Flexible multiple-objective reinforcement learning for chip placement | |
Heusler et al. | Transistor sizing for large combinational digital CMOS circuits | |
He et al. | Artificial neural network application in analog layout placement design | |
TW202307719A (en) | Placement method, computer program product and non-transitory computer readable recording medium | |
CN114898169B (en) | Deep learning-based photoetching OPC database establishment method | |
CN116911245B (en) | Layout method, system, equipment and storage medium of integrated circuit |
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: 22917906 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 202280074140.6 Country of ref document: CN |
|
NENP | Non-entry into the national phase |
Ref country code: DE |