WO2023015536A1 - Method for placing macrocells of integrated circuit - Google Patents

Method for placing macrocells of integrated circuit Download PDF

Info

Publication number
WO2023015536A1
WO2023015536A1 PCT/CN2021/112360 CN2021112360W WO2023015536A1 WO 2023015536 A1 WO2023015536 A1 WO 2023015536A1 CN 2021112360 W CN2021112360 W CN 2021112360W WO 2023015536 A1 WO2023015536 A1 WO 2023015536A1
Authority
WO
WIPO (PCT)
Prior art keywords
tangent
macro
macrocells
candidate
region
Prior art date
Application number
PCT/CN2021/112360
Other languages
French (fr)
Chinese (zh)
Inventor
焦润
沈嘉华
张锐
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to PCT/CN2021/112360 priority Critical patent/WO2023015536A1/en
Priority to CN202180099753.0A priority patent/CN117561514A/en
Publication of WO2023015536A1 publication Critical patent/WO2023015536A1/en

Links

Images

Classifications

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

Definitions

  • Embodiments of the present disclosure generally relate to the technical field of computer-aided design of integrated circuits, and more particularly, relate to a method for laying out macrocells of an integrated circuit, an electronic device, a computer-readable storage medium, and a computer program product.
  • the current layout of macrocells mainly relies on manual layout planning, and more practical constraints need to be considered when placing macrocells, such as macrocells need to be placed on the border of the die, distance constraints between macrocells, and design levels structure etc.
  • the placement of macro cells is very dependent on the experience of engineers, and has a great impact on the subsequent global layout and routing. Poor macrocell placement results lead to repeated iterations, rework.
  • Embodiments of the present disclosure provide a method, an electronic device, a computer-readable storage medium, and a computer program product for laying out macrocells of an integrated circuit, aiming to solve the above-mentioned problems and others existing in conventional macrocell layout schemes Potential problems.
  • a method for laying out a macrocell of an integrated circuit comprising: selecting a region to be divided in a layout space; setting a plurality of candidate tangent lines in the region to be divided; and Selecting a target tangent from the plurality of candidate tangents based on the initial positions of the plurality of macro-units in the region to be segmented in the layout space and the positions of centers of gravity of each cluster obtained by clustering the plurality of macro-units
  • the area to be divided is divided into two sub-areas, and each sub-area is used to place at least one cluster of macro units.
  • the target tangent can be used to adaptively divide the layout area according to the actual placement requirements of the macro units in each cluster, so as to realize parallel placement of multiple modules.
  • selecting the target tangent from the plurality of candidate tangents includes: for each candidate tangent, based on the initial positions of the plurality of macro units in the layout space and the The center of gravity position of each cluster obtained by unit clustering, calculating the classification loss used to reflect the mixing degree of the macrounits on both sides of the candidate tangent in the region to be segmented; and selecting the candidate tangent with the smallest classification loss as the target tangent.
  • the target tangent can be accurately selected from multiple candidate tangents based on the classification loss.
  • calculating the classification loss used to reflect the mixing degree of the macro-units located on both sides of the candidate tangent in the region to be segmented includes: The clusters on both sides of the candidate tangent are assigned different classification labels; the macro units whose initial positions are located on both sides of the candidate tangent in the region to be divided are assigned different prediction labels; for each macro in the region to be divided Unit, based on whether the predicted label of the macrounit matches the classification label of the cluster to which the macrounit belongs and the distance between the macrounit and the candidate tangent, calculate the loss function related to the macrounit; and for each macrounit The loss functions are weighted and summed to determine the classification loss.
  • the loss function related to the macro-unit can be determined based on whether the predicted label matches the classification label and the distance between the macro-unit and the candidate tangent, so as to further determine the classification loss.
  • the loss function includes at least one of the following: an exponential loss function, a hinge loss function, a 0-1 loss function, or a Sigmoid loss function.
  • the distance comprises a Euclidean distance.
  • assigning different classification labels to the clusters whose center of gravity positions are located on both sides of the candidate tangent in the region to be segmented comprises: assigning the clusters whose center of gravity positions are located on the first side of the candidate tangent in the region to be segmented
  • the clusters of the to-be-segmented region are assigned a first classification label
  • the clusters whose barycenter position is located on the second side of the candidate tangent in the region to be segmented are assigned a second classification label, and the second classification label is different from the first classification label
  • Assigning different prediction labels to the macro-units in the region to be segmented whose initial positions are on both sides of the candidate tangent includes: assigning the macro-units in the region to be segmented whose initial positions are on the first side of the candidate tangent A prediction label, and assigning a second prediction label to the macro-unit whose initial position is on the second side of the candidate tangent in the region to be divided, the second prediction label is
  • the method further includes: after selecting the target tangent, adding perturbation to the target tangent to obtain one or more scrambled tangents near the target tangent; and the one or more scrambling tangents, arranging the plurality of macro-units; and selecting an actual tangent from the target tangent and the one or more scrambling tangents based on the arrangement result, the actual The tangent divides the area to be divided into two adjusted sub-areas.
  • an actual tangent that is more in line with actual placement requirements can be selected from the target tangent and the corresponding scrambling tangent, so that the placement effect of the macro unit can be further optimized.
  • the region to be divided is initially selected as the layout space.
  • the entire layout space can be adaptively divided according to the actual placement requirements of the macro units in each cluster.
  • the method further includes: selecting a sub-region containing two or more clusters in the two sub-regions as a new region to be segmented; setting a plurality of bars in the new region to be segmented a new candidate tangent; and based on the initial position of the macro-unit in the new region to be divided in the layout space and the position of the center of gravity of each cluster contained in the new region to be divided, from the plurality of new Select a new target tangent from the candidate tangents to divide the new region to be segmented into two new sub-regions.
  • the layout space can be sequentially partitioned into multiple sub-regions using target tangents.
  • the method further includes: after dividing a plurality of sub-regions in the layout space by using a plurality of target tangent lines, respectively placing the macrocells in each cluster in corresponding sub-regions.
  • placing the macrocells in each cluster in the corresponding sub-areas includes: for each cluster, selecting macrocells with the same device type and a hierarchical similarity above a first threshold; for each cluster , form the selected macrocells into an array; for each cluster, place the array in the corresponding subregion; and for each cluster, place the macrocells other than the macrocells in the array in the corresponding in the subregion.
  • the layout regularity of the macrocells can be improved
  • placing the macro-units in each cluster in corresponding sub-regions further includes: for each cluster, limiting the number of macro-units in the array to not exceed a second threshold. In such an embodiment, the size of the array can be reasonably adjusted according to design requirements.
  • forming the selected macrocells into an array includes: for each cluster, calculating the total area of the selected macrocells; for each cluster, based on the total area and the corresponding The boundary length of the region determines a desired height of the array; and based on the desired height, a target number of rows for the array is determined.
  • the shape of the array can be reasonably selected and placed according to the size of the layout area, so as to further improve the regularity of the layout of the macro-units.
  • the method further includes: evaluating the layout result of the macro-unit based on the difference between the shape of the core area except the plurality of sub-areas in the layout space and a predetermined shape.
  • evaluation can be easily performed on the layout results of the macro-cells, and a reasonable layout can be realized based on such evaluation results.
  • the predetermined shape includes an oval or a rectangle.
  • the method further includes: evaluating the layout result of the macrocell based on the boundary utilization of the layout space.
  • the method further includes: for each sub-area, adjusting the orientation of the macro-units contained therein so that the pin positions of the macro-units close to the boundary of the sub-area are oriented in the layout space except for the The core area outside the multiple sub-areas, and the pin positions of the remaining macrocells are arranged back-to-back.
  • the method further includes: performing mixed-size layout on the macro cells and standard cells in the layout space at the same time, by optimizing the line length between the macro cells and the standard cells in the layout space and the The layout density of the macro-units in the layout space is determined, and the initial position of each macro-unit in the layout space is determined. In such an embodiment, the initial position of the macrocell in the layout space can be easily determined.
  • the method further includes: based on the design hierarchy information of the macrocells in the layout space, the distance between the macrocells in the layout space and/or the distance between the cells in the layout space
  • the interconnection number of , the macrocells in the layout space are clustered into multiple clusters.
  • the macrocells can be accurately clustered by considering the design hierarchy information of the macrocells, the distance between the macrocells and the number of interconnections.
  • the plurality of candidate tangents includes a plurality of first candidate tangents along a vertical direction and/or a plurality of second candidate tangents along a horizontal direction.
  • the plurality of first candidate tangent lines are arranged at equal intervals.
  • the plurality of second candidate tangent lines are arranged at equal intervals.
  • an electronic device comprising: a processor; and a memory coupled to the processor and including instructions stored thereon, which when executed by the processor cause The electronic device executes the method according to the first aspect of the present disclosure.
  • a computer-readable storage medium stores machine-executable instructions, when the machine-executable instructions are executed by at least one processor, such that The at least one processor implements the method according to the first aspect of the present disclosure.
  • a computer program product tangibly stored on a computer-readable storage medium and comprising machine-executable instructions which when executed by a device The device is caused to perform the method according to the first aspect of the present disclosure.
  • FIG. 1 shows a flowchart of a method for laying out macrocells of an integrated circuit according to an embodiment of the disclosure.
  • Figure 2 shows the initial positions of some macrocells in a partial layout space.
  • Fig. 3 shows a flowchart for determining target tangents in layout space.
  • FIG. 4A shows multiple candidate tangent lines set for a region to be segmented.
  • FIG. 4B shows a target tangent determined for a region to be segmented.
  • Fig. 5 shows multiple candidate tangent lines set for another region to be segmented.
  • Fig. 6 shows a target tangent determined for another region to be segmented.
  • Fig. 7 shows a plurality of scrambling tangents arranged around the target tangent as shown in Fig. 4B.
  • FIG. 8 shows an array of macrocells arranged in a sub-area.
  • FIG. 9 shows a plurality of sub-regions divided in the layout space.
  • Figure 10 shows an ellipse constructed in layout space.
  • FIG. 11 shows the tree structure obtained when each region to be divided is divided by different target tangents.
  • FIG. 12 shows an exemplary arrangement of pins of three columns of macrocells.
  • Figure 13 shows a schematic block diagram of an example device that may be used to implement embodiments of the present disclosure.
  • the term “comprise” and its variants mean open inclusion, ie “including but not limited to”.
  • the term “or” means “and/or” unless otherwise stated.
  • the term “based on” means “based at least in part on”.
  • the terms “one example embodiment” and “one embodiment” mean “at least one example embodiment.”
  • the term “another embodiment” means “at least one further embodiment”.
  • the devices in the chip are roughly divided into two types: macro cells and standard cells.
  • the size of a macrocell is large compared to the size of a standard cell, for example, the size of a macrocell may be several thousand times larger than that of a standard cell. Because large-sized devices have a great influence on the overall layout of the chip, the macro cells are usually placed first, and then the standard cells are placed in the chip layout. After the macro cell and the standard cell are placed, the macro cell and the standard cell are wound to connect the macro cell and the standard cell.
  • Macrocell placement has practical constraints. For example, macro-units cannot overlap. In this case, using coordinates to represent the layout is not ideal, because it is difficult to define the rules that macro-units cannot overlap based on coordinates, which makes subsequent optimization inconvenient. Therefore, the existing macrocell layout schemes mainly focus on how to encode the layout, instead of using coordinates to encode the layout, but to use a special data structure to encode the layout. For example, one layout may be placed against the left side of the layout space, corresponding to one data structure, and another layout may be placed against the right side of the layout space, corresponding to a different data structure. According to these two data structures, the real layout can be obtained through the calculation process, that is, the layout can be optimized by means of encoding.
  • a conventional macrocell layout scheme is a tree-based coding method.
  • the nodes of the tree are arranged in a certain order, and after some calculations, the tree can be translated into a specific layout. Therefore, what needs to be done is to optimize the structure of the tree to obtain the optimal tree, so that the optimal layout result can be obtained after translation.
  • This solution can handle pre-positioning better. For example, in actual engineering design, it is required that some modules must be placed in a specific position (such as the lower left corner) and cannot be placed in other positions. This tree-based scheme can handle this situation well.
  • this tree-based layout scheme also has some disadvantages, such as too large a search space and relatively low layout optimization efficiency.
  • this conventional layout method usually takes the center of gravity of the module as the center, and allocates a layout area for each module according to a given area and a fixed aspect ratio, so this is a deterministic layout method. If there is not enough space in the currently selected area, this layout method will expand the current area according to a certain ratio, and then search for a position where the macro unit can be placed in the new area.
  • the layout area is only divided according to the area, and the aspect ratio is fixed, which cannot meet the needs of changing macrocell shapes. For example, many macro cells are long strips, in which case it is unreasonable to allocate the layout area according to the area.
  • Embodiments of the present disclosure provide a method for laying out macrocells of an integrated circuit, which can cluster macrocells that need to be laid out into multiple clusters according to hierarchical information, and can Adaptively use the target tangent to divide the layout area according to the demand, so as to realize the parallel placement of multiple modules.
  • a method for laying out macrocells of an integrated circuit which can cluster macrocells that need to be laid out into multiple clusters according to hierarchical information, and can Adaptively use the target tangent to divide the layout area according to the demand, so as to realize the parallel placement of multiple modules.
  • FIG. 1 shows a flowchart of a method 100 for laying out macrocells of an integrated circuit according to an embodiment of the disclosure.
  • the method 100 includes: at 101, determining the initial positions of multiple macro-units in the layout space; at 102, clustering the multiple macro-units into multiple clusters; at 103, based on the initial position of each macro unit and the center of gravity position of each cluster, multiple target tangents are determined in the layout space, and the multiple target tangents divide a plurality of sub-regions in the layout space, and each sub-region is used for placing the corresponding clusters; and at 104, placing the macro-units of each cluster in corresponding sub-regions.
  • multiple macro cells and standard cells can be simultaneously placed with mixed sizes.
  • the initial positions of the multiple macro cells in the layout space can be determined by optimizing the line length between the multiple macro cells and the standard cell, so as to avoid the disorder of the data flow.
  • Jai-Ming Lin You-Lun Deng, Ya-Chu Yang, Jia-Jian Chen and Yao-Chieh Chen et al. in "IEEE/ACM International Conference on Computer-Aided Design, Digest of Technical Papers "A Novel Macro Placement Approach based on Simulated Evolution Algorithm” published on ICCAD discloses a method for determining the initial position of a macrocell by optimizing the line length between multiple macrocells and standard cells. The entire content of this document is incorporated herein by reference.
  • the initial positions of the multiple macro cells in the layout space may be determined by optimizing the line length between the multiple macro cells and the standard cell and the layout density of the multiple macro cells.
  • the layout density of the macro-units is further considered, so that the macro-units can be separated as much as possible and the data flow disorder can be avoided.
  • the initial position of the macro unit determined at 101 may not be very precise, but it can reflect the information that needs to be physically considered during the layout, such as roughly which direction the macro unit needs to be placed in the layout space, such as on the left, right, and bottom wait.
  • FIG. 2 shows the determined initial positions of some macrocells in the layout space. Fig. 2 only shows a part of the layout space, but not the whole layout space. As shown in FIG. 2 , rectangular blocks are used to represent macro units, some rectangular blocks are filled with vertical line patterns, some rectangular blocks are filled with horizontal line patterns, and some rectangular blocks are filled with oblique line patterns.
  • Different fill patterns respectively indicate macrocells in different clusters generated at 102, the macrocells in the first cluster are represented by 201, the macrocells in the second cluster are represented by 202, and the macrocells in the third cluster are represented by 203 , which will be further elaborated below.
  • the plurality of macrocells are clustered into a plurality of clusters based on the design hierarchy information of the plurality of macrocells.
  • the level information refers to the level of division of different modules, and the sub-modules belonging to the same module should be physically placed together. In this way, a shorter winding length can be achieved.
  • the current module A for realizing computing functions can be divided into several sub-modules B1, B2 and B3. Since module A is functionally cohesive, all sub-modules B1, B2, and B3 within this module are used to implement computing functions, so these sub-modules should also be physically placed together, which can reduce communication overhead.
  • a scoring function score(x, y) in order to cluster multiple macro-units into multiple clusters, can be defined first, represented by the following formula (1):
  • score(x, y) a ⁇ Distance(x, y)+b ⁇ Hierarch_Diff(x, y)+c ⁇ Connectivity(x, y) (1).
  • the scoring function score(x,y) is used to measure the closeness of the association between any two macrounits x and y, where Distance(x,y) represents the distance between the initially arranged macrounits x and y in the layout space Distance, Hierarchy_Diff(x,y) indicates the similarity between macrounit x and y at the design level, Connectivity(x,y) indicates the interconnection between macrounit x and y, a, b and c are weights respectively coefficient. The larger the Distance(x,y) is, the larger the distance between the two macro-units is, and the smaller the Distance(x,y) is, the smaller the distance between the two macro-units is.
  • the scoring function score(x,y) can be obtained by weighting and summing Distance(x,y), Hierarchy_Diff(x,y) and Connectivity(x,y).
  • the scoring function score(x, y) Based on the above scoring function score(x, y), the higher the score of the macrounit x and y, the higher the closeness of the two macrounits. Such macrounits need to be combined to form modules and placed together. By continuously merging similar macrocells from the bottom up, the macrocells in the layout space can be clustered into multiple clusters. In such an embodiment, the scoring function score(x, y) further considers the distance between macro-units and the number of interconnections on the basis of considering the design level information of multiple macro-units, so that it can more accurately evaluate Macrounits are clustered.
  • the macrocells in the first cluster are indicated by 201 , shown as rectangles filled with a vertical line pattern, comprising a total of five macrocells.
  • the macrocells in the second cluster are indicated by 202 and are shown as rectangles filled with a horizontal line pattern, comprising a total of six macrocells.
  • the macrocells in the third cluster are denoted by 203 and are shown as rectangles filled with an oblique line pattern, comprising a total of two macrocells.
  • macrocells can also be clustered in other ways, such as only based on the design hierarchy information of macrocells, based on both the design hierarchy information of macrocells and the distance between macrocells, and based on the design Both the hierarchy information and the number of interconnections between macrocells, etc., the scope of the present disclosure is not limited in this respect.
  • each cluster generated at 102 it needs to be allocated an actual layout area in the layout space.
  • multiple target tangent lines are determined in the layout space, so as to divide the layout space into multiple sub-regions for placing each cluster.
  • Fig. 3 shows a flowchart for determining target tangents in layout space.
  • the determination of the target tangent in the layout space includes: at 1031, selecting a region to be divided in the layout space; at 1032, setting a plurality of candidate tangents in the region to be divided and at 1033, based on the initial positions of the plurality of macro-units in the region to be divided in the layout space and the positions of the centers of gravity of each cluster obtained by clustering the plurality of macro-units, from the plurality of A target tangent is selected from the candidate tangents to divide the area to be segmented into two sub-areas, and each sub-area is used to place at least one cluster of macro-units.
  • selecting the target tangent from the plurality of candidate tangents includes: for each candidate tangent, based on the initial position of the macro-units in the region to be segmented in the layout space and the clustering of the macro-units in the region to be segmented to obtain The position of the center of gravity of each cluster of , calculate the classification loss used to reflect the mixing degree of the macrounits on both sides of the candidate tangent in the region to be segmented; and select the candidate tangent with the smallest classification loss as the target tangent.
  • the target tangent can be accurately selected from multiple candidate tangents based on the classification loss.
  • the target tangent can be accurately selected from multiple candidate tangents based on the classification loss.
  • FIG. 4A shows multiple candidate tangent lines 301 set for a region 300 to be segmented.
  • the region to be divided 300 includes three clusters, and the macro-units of each cluster are respectively represented by rectangles with different filling patterns.
  • the macrocells in the first cluster are indicated by 201 and are shown as rectangles filled with a vertical line pattern, comprising five macrocells in total.
  • the macrocells in the second cluster are indicated by 202 and are shown as rectangles filled with a horizontal line pattern, comprising a total of six macrocells.
  • the macrocells in the third cluster are indicated by 203 and are shown as rectangles filled with an oblique line pattern, comprising a total of two macrocells.
  • a plurality of candidate tangent lines 301 are set in the region to be segmented 300 .
  • the plurality of candidate tangent lines 301 includes a plurality of first candidate tangent lines extending along a vertical direction.
  • the plurality of candidate tangent lines 301 may further include a plurality of second candidate tangent lines extending along the horizontal direction. Using such candidate tangents 301 , the region to be divided 300 can be divided along the vertical and/or horizontal direction.
  • multiple first candidate tangent lines may be arranged at equal intervals.
  • multiple second candidate tangents can also be set at equal intervals.
  • the multiple first candidate tangent lines may not be arranged at equal intervals.
  • the multiple second candidate tangents may not be equally spaced. The scope of the present disclosure is not limited in this regard.
  • the candidate tangent 301 may not extend along the vertical or horizontal direction, but extend along an oblique direction, and such a tangent can also divide the region 300 to be divided.
  • the candidate tangent 301 may also be a curved line or a broken line, and such a tangent can also divide the region 300 to be divided.
  • 10 candidate tangent lines 301 are set in the region to be segmented 300 . It should be understood that the number of candidate tangent lines 301 may be more or less, which may be set according to specific design requirements, and the scope of the present disclosure is not limited in this regard.
  • calculating the classification loss used to reflect the mixing degree of the macrounits on both sides of the candidate tangent 301 in the region to be segmented 300 includes: The clusters on both sides of the candidate tangent 301 are given different classification labels; the macro units whose initial positions in the region 300 to be divided are located on both sides of the candidate tangent 301 are given different prediction labels; for each macro in the region 300 to be divided unit, based on whether the predicted label of the macrounit matches the classification label of the cluster to which the macrounit belongs and the distance of the macrounit from the candidate tangent line 301, calculates a loss function related to the macrounit; and related to each macrounit The weighted sum of the loss functions is used to determine the classification loss.
  • the loss function related to the macro-unit can be determined based on whether the predicted label matches the classification label and the distance between the macro-unit and the candidate tangent 301 , so as to further determine the classification loss.
  • any candidate tangent 301 assign a first classification label (for example 0) to the cluster whose barycenter position is located on the first side (for example, the left side) of the candidate tangent 301 in the region 300 to be segmented, and assign The center of gravity position in the area to be divided 300 is located on the second side (for example, the right side) of the candidate tangent 301.
  • the macro-units on the first side of the tangent line 301 are assigned a first prediction label (for example, 0), and the macro-units in the area to be divided 300 whose initial positions are on the second side of the candidate tangent line 301 are assigned a second prediction label (for example, 1).
  • the first category label is different from the second category label
  • the first predicted label is different from the second predicted label
  • the first predicted label matches the first category label
  • the second predicted label matches the second category label.
  • any candidate tangent 301 assign a first classification label (for example, 1) to the cluster whose barycenter position is located on the first side (for example, the left side) of the candidate tangent 301 in the region to be segmented 300, Assign a second classification label (such as 0) to the cluster whose center of gravity position is located on the second side (for example, the right side) of the candidate tangent line 301 in the region to be divided 300, and assign a second classification label (for example, 0) to the cluster whose initial position in the region to be divided 300 is located at the candidate tangent line
  • the macro-units on the first side of 301 are assigned a first prediction label (for example, 1), and the macro-units whose initial positions are located on the second side of the candidate tangent line 301 in the area to be divided 300 are assigned a second prediction label (for example, 0) .
  • the first category label is different from the second category label
  • the first predicted label is different from the second predicted label
  • first classification labels and second classification labels may be assigned to the clusters in the region to be segmented 300, and the macrounits in the region to be segmented 300 may be assigned Other types of first predicted label and second predicted label, as long as the first class label is different from the second class label, the first predictive label is different from the second predictive label, the first predictive label matches the first class label, and the second It is sufficient that the predicted label matches the second classification label.
  • Equation (2) an exponential loss function l(z) expressed by Equation (2) is defined:
  • f controls the steepness of the loss function
  • z indicates the quality of the sample classification result (that is, the result of classifying the macrounit).
  • the distance from each macrounit x to the candidate tangent l is calculated as an index d(x,l) to measure the classification result of each macrounit, expressed by the following formula (3).
  • l 2 (x,l) represents the Euclidean distance from the center of the macrounit x to the candidate tangent l.
  • the following formula (4) is used to weight and sum the loss functions related to each macro-unit in the region to be segmented 300 to obtain the total classification loss for the candidate tangent l.
  • Wx represents a weighting coefficient for each macrounit x.
  • the weighting coefficient Wx can be set smaller, and for clusters with a small number of macro-units, the weighting coefficient Wx can be set larger to solve the problem of unbalanced classification of macro-units.
  • the classification loss can be calculated for each candidate tangent 301 shown in FIG. 4A .
  • the candidate tangent 301 with the smallest classification loss can be selected as the target tangent.
  • FIG. 4B shows the target tangent 302 determined for the region to be segmented 300 .
  • the selected target tangent 302 is one of the candidate tangents 301 shown in FIG. 4A .
  • the target tangent line 302 divides the area to be divided into two sub-areas, that is, the first area 303 on the left and the second area 304 on the right.
  • the first area 303 contains five macrocells 201 in the first cluster
  • the second area 304 contains six macrocells 202 in the second cluster and two macrocells 203 in the third cluster. Since the second region 304 includes two clusters, the second region 304 can be used as a new region to be divided, and the process of determining the target tangent line as described above can be repeated.
  • the layout space can be sequentially partitioned into multiple sub-regions using target tangents.
  • FIG. 5 shows a plurality of candidate tangent lines 305 set for the second region 304 . Similar to the candidate tangent 301 in the region to be segmented 300 as described above, for each candidate tangent 305, assign different classification labels to the clusters whose center of gravity positions in the second region 304 are located on both sides of the candidate tangent 305; In the second area 304, the macro-units whose initial positions are located on both sides of the candidate tangent line 305 are given different prediction labels; for each macro-unit in the second area 304, based on the prediction label of the macro-unit and the cluster to which the macro-unit belongs Whether the classification label matches and the distance of the macro-unit from the candidate tangent 305, use formula (2) and formula (3) to calculate the loss function related to the macro-unit; and use formula (4) to the relevant macro-unit
  • the loss function performs a weighted sum to determine the classification loss.
  • FIG. 6 shows a target tangent 306 determined for the second region 304 .
  • the selected target tangent 306 is one of the candidate tangents 305 shown in FIG. 5 .
  • the region to be divided may be selected as the entire layout space.
  • the region to be segmented is selected as the result obtained by cutting the corresponding region to be segmented by the previous target tangent, including two or more Subregions of multiple clusters. In this way, the layout space can be sequentially divided into a plurality of sub-regions using the target tangent.
  • the macro-units that need layout can be clustered into multiple clusters according to the hierarchical information, and the layout area can be adaptively divided by the target tangent according to the actual placement requirements of the macro-units in each cluster, so that Realize parallel placement of multiple modules.
  • the division of the layout space is described by taking the exponential loss function as an example of the loss function. It should be understood that in other embodiments, other loss functions may also be used to calculate the classification loss, such as a hinge loss function, a 0-1 loss function, or a Sigmoid loss function. Using these loss functions, it is also possible to determine the target tangents in the region to be segmented.
  • the Euclidean distance from the center of the macrounit x to the candidate tangent l is used as the index d(x,l) to measure the classification result of each macrounit. It should be understood that, in other embodiments, other distances than the Euclidean distance may also be used as the index d(x,l) to measure the classification result of each macro unit.
  • FIG. 4B shows the target tangent 302 determined for the region to be segmented 300 .
  • the target tangent 302 may not be the optimal tangent for the region 300 to be segmented.
  • a disturbance can be added to the target tangent 302 to obtain one or more scrambled tangents 307 near the target tangent 302 .
  • the target tangent 302 and the scrambling tangent 307 a plurality of macro-units in the region to be divided 300 are placed respectively, and based on the placement result, the one with the best actual placement effect is selected from the target tangent 302 and the scrambling tangent 307. Actual tangents to split the area to be segmented into two adjusted sub-areas.
  • the scrambling tangent 307 may be selected randomly, or may be selected at a predetermined distance from the target tangent 302 , and the scope of the present disclosure is not limited in this respect.
  • the scrambling process described above for the target tangent 302 may be performed to obtain the corresponding actual tangent, thereby dividing the layout space into multiple adjusted sub-regions. In this way, an actual tangent that is more in line with actual placement requirements can be selected from the target tangent and the corresponding scrambling tangent, so that the placement effect of the macro-unit can be further optimized.
  • the macro-units of each cluster are respectively placed in the corresponding sub-regions.
  • macro cells of the same type and with a high degree of similarity in design levels can be formed into an array for placement. Since all macrocells have unique numbers, the similarity between two macrocells can be determined based on the macrocell numbers.
  • another scoring function score2(x, y) represented by the following formula (5) can be defined to determine the hierarchical similarity between two macro-units x and y.
  • Hierarchy_Diff(x,y) indicates the similarity between macrounit x and y at the design level. The larger the Hierarchy_Diff(x,y), the higher the similarity between the two macrounits at the design level. Hierarchy_Diff(x,y) The smaller the , the lower the similarity between the two macrocells at the design level.
  • the hierarchical similarity between these two macrounits is 1, because macrounits x and y Share /A this level.
  • the hierarchical similarity between two macrounits is 2, because macrounits x and y Share the two levels of /A/B.
  • a first threshold For each cluster, macrocells with the same device type and a hierarchical similarity above a first threshold may be selected to form an array.
  • the first threshold may be set to 1. In this case, macrocells with the same device type and a hierarchical similarity of more than 1 are selected to form an array.
  • the first threshold may be set to two. In this case, select macrocells with the same device type and a hierarchical similarity of 2 or more to form an array. In other embodiments, the first threshold can be set higher, which can be determined according to design requirements.
  • the first threshold may be set to be the same or different for each cluster, and the scope of the present disclosure is not limited in this regard.
  • a constraint on the size of the array may be added, for example, a second threshold is set so that the size of the array (that is, the number of macro-units in the array) cannot exceed the second threshold. In this way, the size of the array can be reasonably adjusted according to design requirements.
  • each sub-region after determining the macro-units that need to form the array, it is also necessary to determine the shape of the array. For example, for an array containing 8 macro-units, it can be arranged in a 4x2 array or a 2x4 array.
  • the shape of the array can be determined according to the area of the macro-units that need to form the array and the boundary lengths of the corresponding sub-regions where these macro-units will be placed.
  • the ideal height ideaHeight of the array is first defined, expressed by the following formula (6):
  • total_macro_area indicates the total area of macro cells that need to form an array in a sub-area
  • boundary_length indicates the boundary length of the sub-area where the macro cells will be placed
  • scale is a coefficient greater than or equal to 1 used to control the height of the array. The specific value of the coefficient scale can be set according to design requirements.
  • the ideal height ideaHeight of the array can be calculated. Subsequently, according to the ideal height ideaHeight, the optimal number of rows best_row can be determined according to the following formula (7).
  • h(m) indicates the height of the array when the number of rows is m; abs is the absolute value function, and argmin m is the value of m when abs(ideaHeight-h(m)) is the minimum value.
  • the number of rows m of the array when the height h(m) of the array is closest to the ideal height ideaHeight can be taken as the optimal number of rows best_row.
  • FIG. 8 shows a macrocell array 309 arranged in a sub-area 308, the array includes three rows of macrocells, and each row has six macrocells arranged.
  • the shape of the array can also be determined to be close to a square or other shape, so that the macro units that need to form the array can be placed therein.
  • the shape of the array can also be determined in other ways, and the scope of the present disclosure is not limited in this respect.
  • FIG. 9 shows a plurality of sub-regions 308 divided in the layout space 400 .
  • the area except the sub-area 308 is the core area 310
  • the core area 310 is used for arranging standard units.
  • the method 100 further includes: evaluating the layout result of the macro-unit based on the difference between the shape of the core region 310 except the plurality of sub-regions 308 in the layout space 400 and a predetermined shape. For example, assuming that the area of the core area 310 is areaA, the center of the core area 310 is (xA, yA), and the ratio of the height to width of the core area is ⁇ , then an ellipse B represented by the following formula (8) can be constructed:
  • the area of the ellipse B is made equal to the area areaA of the core area 310 .
  • the value of the difference loss2 between the core area 310 and the ellipse B corresponds to the shaded area in FIG. 10 .
  • evaluation can be easily performed on the layout results of the macro-cells, and a reasonable layout can be realized based on such evaluation results.
  • the layout result of the macrocell may be evaluated based on the difference between the shape of the core area 310 and the rectangular shape.
  • the layout results of the macrocells can also be evaluated based on the boundary utilization of the layout space. The higher the boundary utilization, the higher the regularity. In other embodiments, the layout results of the macrocells may also be evaluated in other ways, and the present disclosure is not limited in this respect.
  • a tree structure can be obtained, as shown in Figure 11.
  • Node A represents the area to be segmented
  • nodes B and B' indicate that the area to be segmented is divided by using different horizontal target tangents
  • nodes C and C' indicate that the area to be segmented is further divided by using different vertical target tangents.
  • Nodes B and B' and nodes C and C' are legal target tangents.
  • the layout results can be evaluated in the manner described above.
  • the result search may be performed using depth-first traversal (DFS).
  • other tree search methods such as breadth-first traversal (BFS), or heuristic search methods, such as Monte Carlo Tree Search (MCTS), may be used for result search.
  • BFS depth-first traversal
  • MCTS Monte Carlo Tree Search
  • the method 100 further includes: for each subregion, adjusting the orientation of the macrocells contained therein, so that the pin positions of the macrocells close to the boundary of the subregion are oriented to the layout space except for a plurality of subregions The core area of the macrocell, and the pin positions of the remaining macrocells are arranged back-to-back.
  • FIG. 12 shows an exemplary arrangement of pins of three columns of macrocells. As shown in FIG.
  • the pins 511 of the macrocells 51 in the first row near the border of the subregions are facing the core region except for a plurality of subregions in the layout space, and the pins 521 of the macrocells 52 in the second row and the third row
  • the pins 531 of the macrocell 53 are arranged back to back.
  • FIG. 13 shows a schematic block diagram of a device 1300 that can be used to implement embodiments of the present disclosure.
  • device 1300 includes a central processing unit (CPU) 1301 that can be programmed according to computer program instructions stored in read only memory (ROM) 1302 or loaded from storage unit 1308 into random access memory (RAM) 1303. computer program instructions to perform various appropriate actions and processes.
  • ROM read only memory
  • RAM random access memory
  • computer program instructions to perform various appropriate actions and processes In the RAM 1303, various programs and data necessary for the operation of the device 1300 can also be stored.
  • the CPU 1301, ROM 1302, and RAM 1303 are connected to each other through a bus 1304.
  • An input/output (I/O) interface 1305 is also connected to the bus 1304 .
  • I/O input/output
  • the I/O interface 1305 includes: an input unit 1306, such as a keyboard, a mouse, etc.; an output unit 1307, such as various types of displays, speakers, etc.; a storage unit 1308, such as a magnetic disk, an optical disk, etc. ; and a communication unit 1309, such as a network card, a modem, a wireless communication transceiver, and the like.
  • the communication unit 1309 allows the device 1300 to exchange information/data with other devices through a computer network such as the Internet and/or various telecommunication networks.
  • method 100 can be executed by the processing unit 1301 .
  • method 100 may be implemented as a computer software program tangibly embodied on a machine-readable medium, such as storage unit 1308 .
  • part or all of the computer program may be loaded and/or installed on the device 1300 via the ROM 1302 and/or the communication unit 1309.
  • a computer program is loaded into RAM 1303 and executed by CPU 1301, one or more steps of method 100 described above may be performed.
  • the present disclosure may be a method, apparatus, system and/or computer program product.
  • a computer program product may include a computer-readable storage medium having computer-readable program instructions thereon for carrying out various aspects of the present disclosure.
  • a computer readable storage medium may be a tangible device that can retain and store instructions for use by an instruction execution device.
  • a computer readable storage medium may be, for example, but not limited to, an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing.
  • Computer-readable storage media include: portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), or flash memory), static random access memory (SRAM), compact disc read only memory (CD-ROM), digital versatile disc (DVD), memory stick, floppy disk, mechanically encoded device, such as a printer with instructions stored thereon A hole card or a raised structure in a groove, and any suitable combination of the above.
  • RAM random access memory
  • ROM read-only memory
  • EPROM erasable programmable read-only memory
  • flash memory static random access memory
  • SRAM static random access memory
  • CD-ROM compact disc read only memory
  • DVD digital versatile disc
  • memory stick floppy disk
  • mechanically encoded device such as a printer with instructions stored thereon
  • a hole card or a raised structure in a groove and any suitable combination of the above.
  • computer-readable storage media are not to be construed as transient signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., pulses of light through fiber optic cables), or transmitted electrical signals.
  • Computer readable program instructions described herein may be downloaded from a computer readable storage medium to a respective computing/processing device, or downloaded to an external computer or external storage device over a network, such as the Internet, a local area network, a wide area network, and/or a wireless network.
  • the network may include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers, and/or edge servers.
  • a network adapter card or a network interface in each computing/processing device receives computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium in each computing/processing device .
  • Computer program instructions for performing the operations of the present disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or Source or object code written in any combination, including object-oriented programming languages—such as Smalltalk, C++, etc., and conventional procedural programming languages—such as the “C” language or similar programming languages.
  • Computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer, or entirely on the remote computer or server implement.
  • the remote computer can be connected to the user computer through any kind of network, including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computer (such as via the Internet using an Internet service provider). connect).
  • LAN local area network
  • WAN wide area network
  • an electronic circuit such as a programmable logic circuit, field programmable gate array (FPGA), or programmable logic array (PLA)
  • FPGA field programmable gate array
  • PDA programmable logic array
  • These computer readable program instructions may be provided to a processing unit of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine such that when executed by the processing unit of the computer or other programmable data processing apparatus , producing an apparatus for realizing the functions/actions specified in one or more blocks in the flowchart and/or block diagram.
  • These computer-readable program instructions can also be stored in a computer-readable storage medium, and these instructions cause computers, programmable data processing devices and/or other devices to work in a specific way, so that the computer-readable medium storing instructions includes An article of manufacture comprising instructions for implementing various aspects of the functions/acts specified in one or more blocks in flowcharts and/or block diagrams.
  • each block in a flowchart or block diagram may represent a module, a portion of a program segment, or an instruction that includes one or more Executable instructions.
  • the functions noted in the block may occur out of the order noted in the figures. For example, two blocks in succession may, in fact, be executed substantially concurrently, or they may sometimes be executed in the reverse order, depending upon the functionality involved.
  • each block of the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations can be implemented by a dedicated hardware-based system that performs the specified function or action , or may be implemented by a combination of dedicated hardware and computer instructions.

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

Embodiments of the present disclosure relate to a method for placing macrocells of an integrated circuit, comprising: selecting a region to be partitioned in a placement space; providing multiple candidate tangent lines in the region to be partitioned; and on the basis of initial positions of multiple macrocells of the region to be partitioned in the placement space and center-of-gravity positions of clusters obtained by clustering the multiple macrocells, selecting a target tangent line from the multiple candidate tangent lines so as to partition the region to be partitioned into two subregions, each subregion being used for placing at least one cluster of macrocells. According to the embodiments of the present disclosure, a placement region can be adaptively divided by using the target tangent line according to actual placement requirements of the macrocells in the clusters, thereby implementing parallel placement of multiple modules.

Description

用于对集成电路的宏单元进行布局的方法Method for placing macrocells of an integrated circuit 技术领域technical field
本公开的实施例总体上涉及集成电路计算机辅助设计技术领域,并且更具体地,涉及一种用于对集成电路的宏单元进行布局的方法、电子设备、计算机可读存储介质以及计算机程序产品。Embodiments of the present disclosure generally relate to the technical field of computer-aided design of integrated circuits, and more particularly, relate to a method for laying out macrocells of an integrated circuit, an electronic device, a computer-readable storage medium, and a computer program product.
背景技术Background technique
随着设计和制造工艺的不断演进,集成电路的规模不断增大,甚至可能包括数十亿个晶体管。为了减小设计的复杂度,现代大规模集成电路设计往往重复使用大量的IP(Intellectual property)。在芯片设计中,布局分为三个部分:顶层布局,宏单元布局,以及标准单元摆放。宏单元布局的好坏会直接影响后续标准单元的摆放效果,并且对集成电路的性能、功耗以及面积(PPA)有较大影响。例如,简单地将宏单元和标准单元进行全局布局会导致严重的溢出和拥塞的问题。在实际产品设计过程中,往往先摆放宏单元,随后在固定宏单元的位置的情况下摆放标准单元。已有很多实用的工具可以实现标准单元的摆放。因此,对这种常见的、大型宏单元和标准单元并存的芯片设计来说,一种高效的宏单元布局方法就十分重要。As design and manufacturing processes continue to evolve, integrated circuits continue to grow in size and may even include billions of transistors. In order to reduce the complexity of the design, modern large-scale integrated circuit design often reuses a large number of IP (Intellectual property). In chip design, layout is divided into three parts: top-level layout, macrocell layout, and standard cell placement. The quality of the macro cell layout will directly affect the placement effect of subsequent standard cells, and has a greater impact on the performance, power consumption, and area (PPA) of the integrated circuit. For example, simply global placement of macrocells and standard cells can lead to severe overflow and congestion problems. In the actual product design process, the macro cells are often placed first, and then the standard cells are placed with the positions of the macro cells fixed. There are already many practical tools to realize the placement of standard units. Therefore, for this common chip design where large macrocells and standard cells coexist, an efficient macrocell layout method is very important.
当前宏单元布局主要是依靠人工进行布局规划,在宏单元摆放时需要考虑较多的实际约束,例如宏单元需要贴裸片的边界进行摆放、宏单元之间的距离约束以及设计的层次结构等。宏单元的摆放十分依赖工程师的经验,且对后续全局布局和绕线有很大的影响。较差的宏单元布局结果会导致反复的迭代、返工。The current layout of macrocells mainly relies on manual layout planning, and more practical constraints need to be considered when placing macrocells, such as macrocells need to be placed on the border of the die, distance constraints between macrocells, and design levels structure etc. The placement of macro cells is very dependent on the experience of engineers, and has a great impact on the subsequent global layout and routing. Poor macrocell placement results lead to repeated iterations, rework.
发明内容Contents of the invention
本公开的实施例提供了一种用于对集成电路的宏单元进行布局的方法、电子设备、计算机可读存储介质以及计算机程序产品,旨在解决常规的宏单元布局方案存在的上述问题以及其他潜在的问题。Embodiments of the present disclosure provide a method, an electronic device, a computer-readable storage medium, and a computer program product for laying out macrocells of an integrated circuit, aiming to solve the above-mentioned problems and others existing in conventional macrocell layout schemes Potential problems.
根据本公开的第一方面,提供了一种用于对集成电路的宏单元进行布局的方法,包括:在布局空间中选择待分割区域;在所述待分割区域中设置多条候选切线;以及基于所述待分割区域中的多个宏单元在所述布局空间中的初始位置以及由所述多个宏单元聚类得到的各个簇的重心位置,从所述多条候选切线中选择目标切线以将所述待分割区域分割成两个子区域,每个子区域用于放置至少一个簇的宏单元。According to a first aspect of the present disclosure, there is provided a method for laying out a macrocell of an integrated circuit, comprising: selecting a region to be divided in a layout space; setting a plurality of candidate tangent lines in the region to be divided; and Selecting a target tangent from the plurality of candidate tangents based on the initial positions of the plurality of macro-units in the region to be segmented in the layout space and the positions of centers of gravity of each cluster obtained by clustering the plurality of macro-units The area to be divided is divided into two sub-areas, and each sub-area is used to place at least one cluster of macro units.
在根据本公开的实施例中,能够根据各个簇中的宏单元的实际摆放需求自适应地利用目标切线划分布局区域,从而实现多模块并行摆放。In the embodiment according to the present disclosure, the target tangent can be used to adaptively divide the layout area according to the actual placement requirements of the macro units in each cluster, so as to realize parallel placement of multiple modules.
在一些实施例中,从所述多条候选切线中选择所述目标切线包括:针对每条候选切线,基于所述多个宏单元在所述布局空间中的初始位置以及由所述多个宏单元聚类得到的各个簇的重心位置,计算用于反映所述待分割区域中位于候选切线两侧的宏单元的混合程度的分类损失;以及选择所述分类损失最小的候选切线作为所述目标切线。在这样的实施例中,能够基于分类损失准确地从多条候选切线中选择出目标切线。In some embodiments, selecting the target tangent from the plurality of candidate tangents includes: for each candidate tangent, based on the initial positions of the plurality of macro units in the layout space and the The center of gravity position of each cluster obtained by unit clustering, calculating the classification loss used to reflect the mixing degree of the macrounits on both sides of the candidate tangent in the region to be segmented; and selecting the candidate tangent with the smallest classification loss as the target tangent. In such an embodiment, the target tangent can be accurately selected from multiple candidate tangents based on the classification loss.
在一些实施例中,针对每条候选切线,计算用于反映所述待分割区域中位于候选切线两侧的宏单元的混合程度的分类损失包括:向所述待分割区域中的其重心位置位于该 候选切线两侧的簇赋予不同的分类标签;向所述待分割区域中的其初始位置位于该候选切线两侧的宏单元赋予不同的预测标签;针对所述待分割区域中的每个宏单元,基于该宏单元的预测标签与该宏单元所属的簇的分类标签是否匹配以及该宏单元距该候选切线的距离,计算与该宏单元有关的损失函数;以及对与各个宏单元有关的损失函数进行加权求和以确定所述分类损失。在这样的实施例中,能够基于预测标签与分类标签是否匹配以及宏单元距候选切线的距离,来确定与宏单元有关的损失函数,从而进一步确定分类损失。In some embodiments, for each candidate tangent, calculating the classification loss used to reflect the mixing degree of the macro-units located on both sides of the candidate tangent in the region to be segmented includes: The clusters on both sides of the candidate tangent are assigned different classification labels; the macro units whose initial positions are located on both sides of the candidate tangent in the region to be divided are assigned different prediction labels; for each macro in the region to be divided Unit, based on whether the predicted label of the macrounit matches the classification label of the cluster to which the macrounit belongs and the distance between the macrounit and the candidate tangent, calculate the loss function related to the macrounit; and for each macrounit The loss functions are weighted and summed to determine the classification loss. In such an embodiment, the loss function related to the macro-unit can be determined based on whether the predicted label matches the classification label and the distance between the macro-unit and the candidate tangent, so as to further determine the classification loss.
在一些实施例中,所述损失函数包括以下至少一项:指数损失函数、铰链损失函数、0-1损失函数、或Sigmoid损失函数。In some embodiments, the loss function includes at least one of the following: an exponential loss function, a hinge loss function, a 0-1 loss function, or a Sigmoid loss function.
在一些实施例中,所述距离包括欧式距离。In some embodiments, the distance comprises a Euclidean distance.
在一些实施例中,向所述待分割区域中的其重心位置位于该候选切线两侧的簇赋予不同的分类标签包括:向所述待分割区域中的其重心位置位于候选切线的第一侧的簇赋予第一分类标签,并且向所述待分割区域中的其重心位置位于候选切线的第二侧的簇赋予第二分类标签,所述第二分类标签不同于所述第一分类标签;向所述待分割区域中的其初始位置位于该候选切线两侧的宏单元赋予不同的预测标签包括:向所述待分割区域中的其初始位置位于候选切线的第一侧的宏单元赋予第一预测标签,并且向所述待分割区域中的其初始位置位于候选切线的第二侧的宏单元赋予第二预测标签,所述第二预测标签不同于所述第一预测标签;其中所述第一预测标签与所述第一分类标签匹配,并且所述第二预测标签与所述第二分类标签匹配。在这样的实施例中,构建了一种向簇赋予分类标签以及向宏单元赋予预测标签的方式,利用这样的分类标签和预测标签,能够在后续过程中准确地找到目标切线。In some embodiments, assigning different classification labels to the clusters whose center of gravity positions are located on both sides of the candidate tangent in the region to be segmented comprises: assigning the clusters whose center of gravity positions are located on the first side of the candidate tangent in the region to be segmented The clusters of the to-be-segmented region are assigned a first classification label, and the clusters whose barycenter position is located on the second side of the candidate tangent in the region to be segmented are assigned a second classification label, and the second classification label is different from the first classification label; Assigning different prediction labels to the macro-units in the region to be segmented whose initial positions are on both sides of the candidate tangent includes: assigning the macro-units in the region to be segmented whose initial positions are on the first side of the candidate tangent A prediction label, and assigning a second prediction label to the macro-unit whose initial position is on the second side of the candidate tangent in the region to be divided, the second prediction label is different from the first prediction label; wherein the The first predicted label matches the first class label, and the second predicted label matches the second class label. In such an embodiment, a method of assigning classification labels to clusters and prediction labels to macro-units is constructed. Using such classification labels and prediction labels, the target tangent can be accurately found in the subsequent process.
在一些实施例中,所述方法还包括:在选择出所述目标切线之后,针对所述目标切线添加扰动以获得在所述目标切线附近的一条或多条加扰切线;针对所述目标切线以及所述一条或多条加扰切线,对所述多个宏单元进行摆放;以及基于摆放结果从所述目标切线以及所述一条或多条加扰切线中选择实际切线,所述实际切线将所述待分割区域分割成经调整的两个子区域。在这样的实施例中,能够从目标切线和相应的加扰切线中选择出更符合实际摆放需求的实际切线,从而能够进一步优化宏单元的摆放效果。In some embodiments, the method further includes: after selecting the target tangent, adding perturbation to the target tangent to obtain one or more scrambled tangents near the target tangent; and the one or more scrambling tangents, arranging the plurality of macro-units; and selecting an actual tangent from the target tangent and the one or more scrambling tangents based on the arrangement result, the actual The tangent divides the area to be divided into two adjusted sub-areas. In such an embodiment, an actual tangent that is more in line with actual placement requirements can be selected from the target tangent and the corresponding scrambling tangent, so that the placement effect of the macro unit can be further optimized.
在一些实施例中,所述待分割区域被初始选择为所述布局空间。在这样的实施例中,能够根据各个簇中的宏单元的实际摆放需求自适应地对整个布局空间进行划分。In some embodiments, the region to be divided is initially selected as the layout space. In such an embodiment, the entire layout space can be adaptively divided according to the actual placement requirements of the macro units in each cluster.
在一些实施例中,所述方法还包括:选择所述两个子区域中的包含两个或更多个簇的子区域作为新的待分割区域;在所述新的待分割区域中设置多条新的候选切线;以及基于所述新的待分割区域中的宏单元在所述布局空间中的初始位置以及所述新的待分割区域中包含的各个簇的重心位置,从所述多条新的候选切线中选择新的目标切线以将所述新的待分割区域分割成两个新的子区域。在这样的实施例中,能够利用目标切线顺序地将布局空间分割成多个子区域。In some embodiments, the method further includes: selecting a sub-region containing two or more clusters in the two sub-regions as a new region to be segmented; setting a plurality of bars in the new region to be segmented a new candidate tangent; and based on the initial position of the macro-unit in the new region to be divided in the layout space and the position of the center of gravity of each cluster contained in the new region to be divided, from the plurality of new Select a new target tangent from the candidate tangents to divide the new region to be segmented into two new sub-regions. In such an embodiment, the layout space can be sequentially partitioned into multiple sub-regions using target tangents.
在一些实施例中,所述方法还包括:在利用多条目标切线在所述布局空间中分割出多个子区域之后,将各个簇中的宏单元分别放置在相应的子区域中。In some embodiments, the method further includes: after dividing a plurality of sub-regions in the layout space by using a plurality of target tangent lines, respectively placing the macrocells in each cluster in corresponding sub-regions.
在一些实施例中,将各个簇中的宏单元分别放置在相应的子区域中包括:针对每个簇,选择具有相同器件类型且层次相似度在第一阈值以上的宏单元;针对每个簇,将所选择的宏单元组成阵列;针对每个簇,将所述阵列放置在相应的子区域中;以及针对每 个簇,将除了所述阵列中的宏单元之外的宏单元放置在相应的子区域中。在这样的实施例中,通过将相同器件类型且层次相似的宏单元组成阵列,能够提升宏单元的布局规整度In some embodiments, placing the macrocells in each cluster in the corresponding sub-areas includes: for each cluster, selecting macrocells with the same device type and a hierarchical similarity above a first threshold; for each cluster , form the selected macrocells into an array; for each cluster, place the array in the corresponding subregion; and for each cluster, place the macrocells other than the macrocells in the array in the corresponding in the subregion. In such an embodiment, by forming an array of macrocells of the same device type and similar in hierarchy, the layout regularity of the macrocells can be improved
在一些实施例中,将各个簇中的宏单元分别放置在相应的子区域中还包括:针对每个簇,将所述阵列中的宏单元的数目限制为不超过第二阈值。在这样的实施例中,能够根据设计需求合理地调整阵列的大小。In some embodiments, placing the macro-units in each cluster in corresponding sub-regions further includes: for each cluster, limiting the number of macro-units in the array to not exceed a second threshold. In such an embodiment, the size of the array can be reasonably adjusted according to design requirements.
在一些实施例中,针对每个簇,将所选择的宏单元组成阵列包括:针对每个簇,计算所选择的宏单元的总面积;针对每个簇,基于所述总面积以及相应的子区域的边界长度确定所述阵列的理想高度;以及基于所述理想高度,确定所述阵列的目标行数。在这样的实施例中,能够根据布局区域的大小合理地选择阵列形状进行摆放,进一步提升宏单元的布局规整度。In some embodiments, for each cluster, forming the selected macrocells into an array includes: for each cluster, calculating the total area of the selected macrocells; for each cluster, based on the total area and the corresponding The boundary length of the region determines a desired height of the array; and based on the desired height, a target number of rows for the array is determined. In such an embodiment, the shape of the array can be reasonably selected and placed according to the size of the layout area, so as to further improve the regularity of the layout of the macro-units.
在一些实施例中,所述方法还包括:基于所述布局空间中除所述多个子区域之外的核心区域的形状与预定形状之间的差异,来对宏单元的布局结果进行评估。在这样实施例中,能够容易地针对宏单元的布局结果进行评估,并且基于这样的评估结果能够实现合理的布局。In some embodiments, the method further includes: evaluating the layout result of the macro-unit based on the difference between the shape of the core area except the plurality of sub-areas in the layout space and a predetermined shape. In such an embodiment, evaluation can be easily performed on the layout results of the macro-cells, and a reasonable layout can be realized based on such evaluation results.
在一些实施例中,所述预定形状包括椭圆形或矩形。In some embodiments, the predetermined shape includes an oval or a rectangle.
在一些实施例中,所述方法还包括:基于所述布局空间的边界利用率,来对宏单元的布局结果进行评估。In some embodiments, the method further includes: evaluating the layout result of the macrocell based on the boundary utilization of the layout space.
在一些实施例中,所述方法还包括:针对每个子区域,调整其中所包含的宏单元的朝向,使得贴近该子区域的边界的宏单元的引脚位置朝向所述布局空间中除所述多个子区域之外的核心区域,并且其余的宏单元的引脚位置背对背布置。通过利用这种方式布置宏单元的引脚,能够减小布局产生的拥塞。In some embodiments, the method further includes: for each sub-area, adjusting the orientation of the macro-units contained therein so that the pin positions of the macro-units close to the boundary of the sub-area are oriented in the layout space except for the The core area outside the multiple sub-areas, and the pin positions of the remaining macrocells are arranged back-to-back. By arranging the pins of the macrocell in this way, it is possible to reduce the congestion caused by layout.
在一些实施例中,所述方法还包括:对所述布局空间中的宏单元和标准单元同时进行混合尺寸布局,通过优化所述布局空间中的宏单元与标准单元之间的线长以及所述布局空间中的宏单元的布局密度,确定各个宏单元在所述布局空间中的初始位置。在这样的实施例中,能够容易地确定宏单元在布局空间中的初始位置。In some embodiments, the method further includes: performing mixed-size layout on the macro cells and standard cells in the layout space at the same time, by optimizing the line length between the macro cells and the standard cells in the layout space and the The layout density of the macro-units in the layout space is determined, and the initial position of each macro-unit in the layout space is determined. In such an embodiment, the initial position of the macrocell in the layout space can be easily determined.
在一些实施例中,所述方法还包括:基于所述布局空间中的宏单元的设计层次信息、所述布局空间中的宏单元之间的距离和/或所述布局空间中的单元之间的互连数目,将所述布局空间中的宏单元聚类成多个簇。在这样的实施例中,通过考虑宏单元的设计层次信息、宏单元之间的距离和互连数目,能够精确地对宏单元进行聚类。In some embodiments, the method further includes: based on the design hierarchy information of the macrocells in the layout space, the distance between the macrocells in the layout space and/or the distance between the cells in the layout space The interconnection number of , the macrocells in the layout space are clustered into multiple clusters. In such an embodiment, the macrocells can be accurately clustered by considering the design hierarchy information of the macrocells, the distance between the macrocells and the number of interconnections.
在一些实施例中,所述多条候选切线包括沿垂直方向的多条第一候选切线和/或沿水平方向的多条第二候选切线。In some embodiments, the plurality of candidate tangents includes a plurality of first candidate tangents along a vertical direction and/or a plurality of second candidate tangents along a horizontal direction.
在一些实施例中,所述多条第一候选切线等间隔设置。In some embodiments, the plurality of first candidate tangent lines are arranged at equal intervals.
在一些实施例中,所述多条第二候选切线等间隔设置。In some embodiments, the plurality of second candidate tangent lines are arranged at equal intervals.
根据本公开的第二方面,提供了一种电子设备,包括:处理器;以及存储器,耦合至所述处理器并且包括存储于其上的指令,所述指令在由所述处理器执行时使所述电子设备执行根据本公开的第一方面的方法。According to a second aspect of the present disclosure, there is provided an electronic device comprising: a processor; and a memory coupled to the processor and including instructions stored thereon, which when executed by the processor cause The electronic device executes the method according to the first aspect of the present disclosure.
根据本公开的第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有机器可执行指令,当所述机器可执行指令在被至少一个处理器执行时,使得所述至少一个处理器实现根据本公开的第一方面的方法。According to a third aspect of the present disclosure, a computer-readable storage medium is provided, the computer-readable storage medium stores machine-executable instructions, when the machine-executable instructions are executed by at least one processor, such that The at least one processor implements the method according to the first aspect of the present disclosure.
根据本公开的第四方面,提供了一种计算机程序产品,所述计算机程序产品被有形地存储在计算机可读存储介质中并且包括机器可执行指令,所述机器可执行指令在由设备执行时使所述设备执行根据本公开的第一方面的方法。According to a fourth aspect of the present disclosure there is provided a computer program product tangibly stored on a computer-readable storage medium and comprising machine-executable instructions which when executed by a device The device is caused to perform the method according to the first aspect of the present disclosure.
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开内容的关键特征或主要特征,也无意限制本公开内容的范围。This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or principal characteristics of the disclosure, nor is it intended to limit the scope of the disclosure.
附图说明Description of drawings
通过参考附图阅读下文的详细描述,本公开的实施例的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例而非限制性的方式示出了本公开的若干实施例。The above and other objects, features and advantages of embodiments of the present disclosure will become readily understood by reading the following detailed description with reference to the accompanying drawings. In the drawings, several embodiments of the present disclosure are shown by way of example and not limitation.
图1示出了根据本公开的实施例的用于对集成电路的宏单元进行布局的方法的流程图。FIG. 1 shows a flowchart of a method for laying out macrocells of an integrated circuit according to an embodiment of the disclosure.
图2示出了一些宏单元在部分布局空间中的初始位置。Figure 2 shows the initial positions of some macrocells in a partial layout space.
图3示出了在布局空间中确定目标切线的流程图。Fig. 3 shows a flowchart for determining target tangents in layout space.
图4A示出了针对一个待分割区域设置的多条候选切线。FIG. 4A shows multiple candidate tangent lines set for a region to be segmented.
图4B示出了针对一个待分割区域确定的目标切线。FIG. 4B shows a target tangent determined for a region to be segmented.
图5示出了针对另一个待分割区域设置的多条候选切线。Fig. 5 shows multiple candidate tangent lines set for another region to be segmented.
图6示出了针对另一个待分割区域确定的目标切线。Fig. 6 shows a target tangent determined for another region to be segmented.
图7示出了在如图4B所示的目标切线附近设置的多条加扰切线。Fig. 7 shows a plurality of scrambling tangents arranged around the target tangent as shown in Fig. 4B.
图8示出了在一个子区域中摆放的宏单元阵列。FIG. 8 shows an array of macrocells arranged in a sub-area.
图9示出了在布局空间中分割出的多个子区域。FIG. 9 shows a plurality of sub-regions divided in the layout space.
图10示出了在布局空间中构造的椭圆。Figure 10 shows an ellipse constructed in layout space.
图11示出了针对每个待分割区域由不同目标切线进行划分的情况下得到的树结构。FIG. 11 shows the tree structure obtained when each region to be divided is divided by different target tangents.
图12示出了三列宏单元的引脚的示例性布置。FIG. 12 shows an exemplary arrangement of pins of three columns of macrocells.
图13示出了可以用来实施本公开的实施例的示例设备的示意性框图。Figure 13 shows a schematic block diagram of an example device that may be used to implement embodiments of the present disclosure.
在各个附图中,相同或对应的标号表示相同或对应的部分。In the respective drawings, the same or corresponding reference numerals denote the same or corresponding parts.
具体实施方式Detailed ways
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。Preferred embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although preferred embodiments of the present disclosure are shown in the drawings, it should be understood that the present disclosure can be embodied in various forms and should not be limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art.
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“上”、“下”、“前”、“后”等指示放置或者位置关系的词汇均基于附图所示的方位或者位置关系,仅为了便于描述本公开的原理,而不是指示或者暗示所指的元件必须具有特定的方位、以特定的方位构造或操作,因此不能理解为对本公开的限制。As used herein, the term "comprise" and its variants mean open inclusion, ie "including but not limited to". The term "or" means "and/or" unless otherwise stated. The term "based on" means "based at least in part on". The terms "one example embodiment" and "one embodiment" mean "at least one example embodiment." The term "another embodiment" means "at least one further embodiment". The terms "upper", "lower", "front", "rear" and other words indicating placement or positional relationship are based on the orientation or positional relationship shown in the drawings, and are only for the convenience of describing the principles of the present disclosure, rather than indicating or implying References to elements must have a particular orientation, be constructed, or operate in a particular orientation, and thus should not be construed as limiting the disclosure.
芯片中的器件大致分为宏单元和标准单元两类。宏单元的尺寸与标准单元的尺寸相 比而言较大,例如宏单元的尺寸可能达到标准单元的几千倍。因为大尺寸的器件对芯片整体布局的影响较大,因此在进行芯片布局时通常先摆放宏单元,再摆放标准单元。在摆放好宏单元和标准单元之后,再对宏单元和标准单元进行绕线,以将宏单元和标准单元连接起来。The devices in the chip are roughly divided into two types: macro cells and standard cells. The size of a macrocell is large compared to the size of a standard cell, for example, the size of a macrocell may be several thousand times larger than that of a standard cell. Because large-sized devices have a great influence on the overall layout of the chip, the macro cells are usually placed first, and then the standard cells are placed in the chip layout. After the macro cell and the standard cell are placed, the macro cell and the standard cell are wound to connect the macro cell and the standard cell.
宏单元布局是有实际约束的。例如,宏单元之间不能出现重叠,在这种情况下用坐标表示布局不太理想,因为难以基于坐标定义宏单元之间不能重叠的规则,导致后续优化不方便。因此,现有的宏单元布局方案主要关注如何对布局进行编码,替代利用坐标进行编码,而是采用特殊的数据结构对布局进行编码。例如,一种布局可以贴着布局空间的左边摆放,对应一个数据结构,另一种布局可以贴着布局空间的右边摆放,对应另一个不同的数据结构。根据这两个数据结构可以通过计算过程得到真实的布局,即利用编码的方式来实现对布局进行优化。Macrocell placement has practical constraints. For example, macro-units cannot overlap. In this case, using coordinates to represent the layout is not ideal, because it is difficult to define the rules that macro-units cannot overlap based on coordinates, which makes subsequent optimization inconvenient. Therefore, the existing macrocell layout schemes mainly focus on how to encode the layout, instead of using coordinates to encode the layout, but to use a special data structure to encode the layout. For example, one layout may be placed against the left side of the layout space, corresponding to one data structure, and another layout may be placed against the right side of the layout space, corresponding to a different data structure. According to these two data structures, the real layout can be obtained through the calculation process, that is, the layout can be optimized by means of encoding.
一种常规的宏单元布局方案是基于树的编码方法。树的节点按某种顺序排列,经过一些运算,可以将树翻译成具体的布局。因此,需要做的是优化树的结构,得到最优的树,从而经过翻译可以得到最优的布局结果。这种方案能够比较好地处理预摆放。例如,在实际工程设计中,要求某些模块必须摆放在特定位置(例如左下角),而不能摆放在其他位置,这种基于树的方案能很好地处理这种情况。但是这种基于树的布局方案也有一些缺点,例如搜索空间太大,布局优化效率比较低等。比如,对于搜索空间大小是100的树(100个候选量),可能需要迭代二十轮、三十轮或更多轮。发明人发现,导致这个问题的主要原因是,这种常规布局方案对整个布局进行编码,而没有考虑模块概念。然而,在实际摆放的过程中,是有非常清晰的模块概念的。比如,大模块可以细分为几个小模块。工程师在摆放的时候,先确定小模块的位置,摆放小模块从而组成大模块,这样的实现过程在常规布局方案中很难实现。A conventional macrocell layout scheme is a tree-based coding method. The nodes of the tree are arranged in a certain order, and after some calculations, the tree can be translated into a specific layout. Therefore, what needs to be done is to optimize the structure of the tree to obtain the optimal tree, so that the optimal layout result can be obtained after translation. This solution can handle pre-positioning better. For example, in actual engineering design, it is required that some modules must be placed in a specific position (such as the lower left corner) and cannot be placed in other positions. This tree-based scheme can handle this situation well. However, this tree-based layout scheme also has some disadvantages, such as too large a search space and relatively low layout optimization efficiency. For example, for a tree with a search space size of 100 (100 candidates), twenty, thirty or more iterations may be required. The inventors found that the main reason for this problem is that this conventional layout scheme encodes the entire layout without considering the module concept. However, in the actual placement process, there is a very clear module concept. For example, a large module can be subdivided into several smaller modules. When placing them, the engineer first determines the position of the small modules, and then places the small modules to form a large module. Such an implementation process is difficult to achieve in conventional layout schemes.
也有一些宏单元布局方案提出了模块化的摆放,利用设计层次信息来帮助衡量宏单元之间的紧密程度,比如同一子模块下面的宏单元可以放得比较近。在这种方案中,可以通过抽取设计信息,判断哪两个宏单元可以摆放地比较近。在划分布局区域时,这种常规的布局方法通常以模块重心为中心,按照给定的面积、以固定的长宽比为每个模块分配布局区域,因而这是一种确定性的布局方法。若当前选择的区域中没有足够的空间,这种布局方法会按照一定比例扩大当前的区域,再在新的区域中寻找可摆放宏单元的位置。然而,仅仅按照面积划分布局区域,且长宽比固定,不能适应宏单元形状多变的需求。例如,很多宏单元是长条形,在这种情况下按面积来分配布局区域很不合理。There are also some macro-unit layout schemes that propose modular placement, and use design level information to help measure the closeness between macro-units. For example, macro-units under the same sub-module can be placed closer together. In this scheme, it can be judged which two macro-units can be placed relatively close by extracting design information. When dividing the layout area, this conventional layout method usually takes the center of gravity of the module as the center, and allocates a layout area for each module according to a given area and a fixed aspect ratio, so this is a deterministic layout method. If there is not enough space in the currently selected area, this layout method will expand the current area according to a certain ratio, and then search for a position where the macro unit can be placed in the new area. However, the layout area is only divided according to the area, and the aspect ratio is fixed, which cannot meet the needs of changing macrocell shapes. For example, many macro cells are long strips, in which case it is unreasonable to allocate the layout area according to the area.
还有一些宏单元布局方案没有利用树结构进行编码,而是用等高线结构进行编码。每次摆放完一个宏单元之后,布局空间往中间沿伸到新的边角。后续宏单元可以根据新的边角继续进行摆放,从而实现宏单元的不重叠摆放。然而,这样的布局方案也没有考虑宏单元的层次信息,搜索空间太大、布局优化效率低。There are also some macrocell layout schemes that do not use the tree structure for encoding, but use the contour line structure for encoding. After placing a macro unit each time, the layout space extends to the middle edge to a new corner. Subsequent macro units can continue to be placed according to the new corners, so as to achieve non-overlapping placement of macro units. However, such a layout scheme does not consider the hierarchical information of the macro-units, the search space is too large, and the layout optimization efficiency is low.
本公开的实施例提供了一种用于对集成电路的宏单元进行布局的方法,能够根据层次信息将需要布局的宏单元聚类成多个簇,并且根据各个簇中的宏单元的实际摆放需求自适应地利用目标切线划分布局区域,从而实现多模块并行摆放。在下文中将参考附图结合示例性实施例来详细描述本公开的原理。Embodiments of the present disclosure provide a method for laying out macrocells of an integrated circuit, which can cluster macrocells that need to be laid out into multiple clusters according to hierarchical information, and can Adaptively use the target tangent to divide the layout area according to the demand, so as to realize the parallel placement of multiple modules. Hereinafter, the principle of the present disclosure will be described in detail with reference to the accompanying drawings and exemplary embodiments.
图1示出了根据本公开的实施例的用于对集成电路的宏单元进行布局的方法100的流程图。如图1所示,方法100包括:在101处,确定多个宏单元在布局空间中的初始 位置;在102处,基于多个宏单元的设计层次信息,将多个宏单元聚类成多个簇;在103处,基于各个宏单元的初始位置以及各个簇的重心位置,在布局空间中确定多条目标切线,多条目标切线在布局空间中分割出多个子区域,每个子区域用于放置相应的簇;以及在104处,将各个簇的宏单元分别放置在相应的子区域中。FIG. 1 shows a flowchart of a method 100 for laying out macrocells of an integrated circuit according to an embodiment of the disclosure. As shown in FIG. 1 , the method 100 includes: at 101, determining the initial positions of multiple macro-units in the layout space; at 102, clustering the multiple macro-units into multiple clusters; at 103, based on the initial position of each macro unit and the center of gravity position of each cluster, multiple target tangents are determined in the layout space, and the multiple target tangents divide a plurality of sub-regions in the layout space, and each sub-region is used for placing the corresponding clusters; and at 104, placing the macro-units of each cluster in corresponding sub-regions.
在101处,为了确定多个宏单元在布局空间中的初始位置,可以对多个宏单元和标准单元同时进行混合尺寸布局。At 101 , in order to determine the initial positions of multiple macro cells in the layout space, multiple macro cells and standard cells can be simultaneously placed with mixed sizes.
在一些实施例中,可以通过优化多个宏单元与标准单元之间的线长,来确定多个宏单元在布局空间中的初始位置,避免数据流错乱的情况。在由Jai-Ming Lin,You-Lun Deng,Ya-Chu Yang,Jia-Jian Chen和Yao-Chieh Chen等人于2019年11月在“IEEE/ACM International Conference on Computer-Aided Design,Digest of Technical Papers,ICCAD”上发表的文献“A Novel Macro Placement Approach based on Simulated Evolution Algorithm”中公开了一种通过优化多个宏单元与标准单元之间的线长来确定宏单元的初始位置的方法。该文献的整体内容通过引用并入本文。In some embodiments, the initial positions of the multiple macro cells in the layout space can be determined by optimizing the line length between the multiple macro cells and the standard cell, so as to avoid the disorder of the data flow. In November 2019 by Jai-Ming Lin, You-Lun Deng, Ya-Chu Yang, Jia-Jian Chen and Yao-Chieh Chen et al. in "IEEE/ACM International Conference on Computer-Aided Design, Digest of Technical Papers "A Novel Macro Placement Approach based on Simulated Evolution Algorithm" published on ICCAD discloses a method for determining the initial position of a macrocell by optimizing the line length between multiple macrocells and standard cells. The entire content of this document is incorporated herein by reference.
在另一些实施例中,可以通过优化多个宏单元与标准单元之间的线长以及多个宏单元的布局密度,确定多个宏单元在布局空间中的初始位置。在这样的实施例中,进一步考虑了宏单元的布局密度,从而能够尽量将宏单元分开,并且避免数据流错乱的情况。In some other embodiments, the initial positions of the multiple macro cells in the layout space may be determined by optimizing the line length between the multiple macro cells and the standard cell and the layout density of the multiple macro cells. In such an embodiment, the layout density of the macro-units is further considered, so that the macro-units can be separated as much as possible and the data flow disorder can be avoided.
在其他实施例中,还可以通过其他方法来确定多个宏单元在布局空间中的初始位置,本公开的范围在此方面不受限制。In other embodiments, other methods may also be used to determine the initial positions of the multiple macro-units in the layout space, and the scope of the present disclosure is not limited in this regard.
在101处所确定的宏单元的初始位置可能不是很精准,但是其能够反映在布局时物理上需要考虑的信息,比如宏单元大致需要放在布局空间的哪个方位,例如放在左边、右边、下边等。图2示出了所确定的一些宏单元在布局空间中的初始位置。图2仅示出了布局空间的一部分,而并未示出整个布局空间。如图2所示,采用矩形块来表示宏单元,一些矩形块利用垂直线条图案填充,一些矩形块利用水平线条图案填充,一些矩形块利用倾斜线条图案填充。不同的填充图案分别指示在102处所生成的不同簇中的宏单元,第一簇中的宏单元由201表示,第二簇中的宏单元由202表示,第三簇中的宏单元由203表示,这将在下文中进一步详细说明。The initial position of the macro unit determined at 101 may not be very precise, but it can reflect the information that needs to be physically considered during the layout, such as roughly which direction the macro unit needs to be placed in the layout space, such as on the left, right, and bottom wait. FIG. 2 shows the determined initial positions of some macrocells in the layout space. Fig. 2 only shows a part of the layout space, but not the whole layout space. As shown in FIG. 2 , rectangular blocks are used to represent macro units, some rectangular blocks are filled with vertical line patterns, some rectangular blocks are filled with horizontal line patterns, and some rectangular blocks are filled with oblique line patterns. Different fill patterns respectively indicate macrocells in different clusters generated at 102, the macrocells in the first cluster are represented by 201, the macrocells in the second cluster are represented by 202, and the macrocells in the third cluster are represented by 203 , which will be further elaborated below.
在102处,基于多个宏单元的设计层次信息,将多个宏单元聚类成多个簇。层次信息指的是不同的模块划分的层次,属于同一个模块的子模块应该在物理上摆放在一起,利用这种方式可以实现较短的绕线线长。例如,用于实现运算功能的当前模块A可以分为几个子模块B1、B2和B3。由于模块A在功能上是内聚的,该模块内的所有子模块B1、B2和B3都用于实现运算功能,因此这些子模块在物理上也应该放在一起,这可以降低通信开销。At 102, the plurality of macrocells are clustered into a plurality of clusters based on the design hierarchy information of the plurality of macrocells. The level information refers to the level of division of different modules, and the sub-modules belonging to the same module should be physically placed together. In this way, a shorter winding length can be achieved. For example, the current module A for realizing computing functions can be divided into several sub-modules B1, B2 and B3. Since module A is functionally cohesive, all sub-modules B1, B2, and B3 within this module are used to implement computing functions, so these sub-modules should also be physically placed together, which can reduce communication overhead.
在一些实施例中,为了将多个宏单元聚类成多个簇,可以首先定义一个打分函数score(x,y),由下式(1)表示:In some embodiments, in order to cluster multiple macro-units into multiple clusters, a scoring function score(x, y) can be defined first, represented by the following formula (1):
score(x,y)=a·Distance(x,y)+b·Hierarch_Diff(x,y)+c·Connectivity(x,y)     (1)。score(x, y) = a·Distance(x, y)+b·Hierarch_Diff(x, y)+c·Connectivity(x, y) (1).
打分函数score(x,y)用于衡量任意两个宏单元x和y之间的关联的紧密程度,其中Distance(x,y)表示在布局空间中初始布置的宏单元x和y之间的距离,Hierarchy_Diff(x,y)表示宏单元x和y在设计层次上的相似度,Connectivity(x,y)表示宏单元x和y之间的互连的多少,a、b和c分别为权重系数。Distance(x,y)越大,表示两个宏单元之间的距离越大,Distance(x,y)越小,表示两个宏单元之间的距离越小。Hierarchy_Diff(x,y)越大,表示两 个宏单元在设计层次上的相似度越高,Hierarchy_Diff(x,y)越小,表示两个宏单元在设计层次上的相似度越低。Connectivity(x,y)越大,表示两个宏单元之间的互连越多,Connectivity(x,y)越小,表示两个宏单元之间的互连越少。通过将Distance(x,y)、Hierarchy_Diff(x,y)以及Connectivity(x,y)加权求和,可以得到打分函数score(x,y)。The scoring function score(x,y) is used to measure the closeness of the association between any two macrounits x and y, where Distance(x,y) represents the distance between the initially arranged macrounits x and y in the layout space Distance, Hierarchy_Diff(x,y) indicates the similarity between macrounit x and y at the design level, Connectivity(x,y) indicates the interconnection between macrounit x and y, a, b and c are weights respectively coefficient. The larger the Distance(x,y) is, the larger the distance between the two macro-units is, and the smaller the Distance(x,y) is, the smaller the distance between the two macro-units is. The larger the Hierarchy_Diff(x, y), the higher the similarity between the two macro-units at the design level, and the smaller the Hierarchy_Diff(x, y), the lower the similarity between the two macro-units at the design level. The larger the Connectivity (x, y), the more interconnections between two macro-units, and the smaller the Connectivity (x, y), the less interconnections between two macro-units. The scoring function score(x,y) can be obtained by weighting and summing Distance(x,y), Hierarchy_Diff(x,y) and Connectivity(x,y).
基于上述打分函数score(x,y),宏单元x和y的得分越高表明两个宏单元的紧密程度越高,这样的宏单元需要合并组成模块,摆放在一起。通过自底向上不断合并相近的宏单元,可以将布局空间中的宏单元聚类成多个簇。在这样的实施例中,打分函数score(x,y)在考虑了多个宏单元的设计层次信息的基础上,进一步考虑了宏单元之间的距离和互连数目,因而能够更加精确地对宏单元进行聚类。Based on the above scoring function score(x, y), the higher the score of the macrounit x and y, the higher the closeness of the two macrounits. Such macrounits need to be combined to form modules and placed together. By continuously merging similar macrocells from the bottom up, the macrocells in the layout space can be clustered into multiple clusters. In such an embodiment, the scoring function score(x, y) further considers the distance between macro-units and the number of interconnections on the basis of considering the design level information of multiple macro-units, so that it can more accurately evaluate Macrounits are clustered.
在图2中示出了宏单元的三个簇,第一簇中的宏单元由201表示,显示为利用垂直线条图案填充的矩形,共包括五个宏单元。第二簇中的宏单元由202表示,显示为利用水平线条图案填充的矩形,共包括六个宏单元。第三簇中的宏单元由203表示,显示为利用倾斜线条图案填充的矩形,共包括两个宏单元。Three clusters of macrocells are shown in FIG. 2 . The macrocells in the first cluster are indicated by 201 , shown as rectangles filled with a vertical line pattern, comprising a total of five macrocells. The macrocells in the second cluster are indicated by 202 and are shown as rectangles filled with a horizontal line pattern, comprising a total of six macrocells. The macrocells in the third cluster are denoted by 203 and are shown as rectangles filled with an oblique line pattern, comprising a total of two macrocells.
在其他实施例中,还可以以其他方式对宏单元进行聚类,例如仅基于宏单元的设计层次信息,基于宏单元的设计层次信息以及宏单元之间的距离二者,基于宏单元的设计层次信息以及宏单元之间的互连数目二者等,本公开的范围在此方面不受限制。In other embodiments, macrocells can also be clustered in other ways, such as only based on the design hierarchy information of macrocells, based on both the design hierarchy information of macrocells and the distance between macrocells, and based on the design Both the hierarchy information and the number of interconnections between macrocells, etc., the scope of the present disclosure is not limited in this respect.
针对在102处生成的每个簇,需要在布局空间中为其分配一个实际布局的区域。为此,在103处,基于各个宏单元的初始位置以及各个簇的重心位置,在布局空间中确定多条目标切线,以将布局空间分割成用于放置各个簇的多个子区域。For each cluster generated at 102, it needs to be allocated an actual layout area in the layout space. To this end, at 103, based on the initial position of each macrocell and the position of the center of gravity of each cluster, multiple target tangent lines are determined in the layout space, so as to divide the layout space into multiple sub-regions for placing each cluster.
图3示出了在布局空间中确定目标切线的流程图。在一个实施例中,如图3所示,对于布局空间中的目标切线的确定包括:在1031处,在布局空间中选择待分割区域;在1032处,在待分割区域中设置多条候选切线;以及在1033处,基于所述待分割区域中的多个宏单元在所述布局空间中的初始位置以及由所述多个宏单元聚类得到的各个簇的重心位置,从所述多条候选切线中选择目标切线以将所述待分割区域分割成两个子区域,每个子区域用于放置至少一个簇的宏单元。Fig. 3 shows a flowchart for determining target tangents in layout space. In one embodiment, as shown in FIG. 3 , the determination of the target tangent in the layout space includes: at 1031, selecting a region to be divided in the layout space; at 1032, setting a plurality of candidate tangents in the region to be divided and at 1033, based on the initial positions of the plurality of macro-units in the region to be divided in the layout space and the positions of the centers of gravity of each cluster obtained by clustering the plurality of macro-units, from the plurality of A target tangent is selected from the candidate tangents to divide the area to be segmented into two sub-areas, and each sub-area is used to place at least one cluster of macro-units.
在一些实施例中,从多条候选切线中选择目标切线包括:针对每条候选切线,基于待分割区域中的宏单元在布局空间中的初始位置以及由待分割区域中的宏单元聚类得到的各个簇的重心位置,计算用于反映待分割区域中位于候选切线两侧的宏单元的混合程度的分类损失;以及选择分类损失最小的候选切线作为目标切线。在这样的实施例中,能够基于分类损失准确地从多条候选切线中选择出目标切线。候选切线两侧的宏单元的混合程度越高,表明该候选切线的分类效果越差(例如同一个簇中的宏单元被分在了候选切线的两侧),因而分类损失越大。候选切线两侧的宏单元的混合程度越低,表明该候选切线的分类效果越好(例如同一个簇中的宏单元基本上都被分在了候选切线的同一侧),因而分类损失越小。在这样的实施例中,能够基于分类损失准确地从多条候选切线中选择出目标切线。In some embodiments, selecting the target tangent from the plurality of candidate tangents includes: for each candidate tangent, based on the initial position of the macro-units in the region to be segmented in the layout space and the clustering of the macro-units in the region to be segmented to obtain The position of the center of gravity of each cluster of , calculate the classification loss used to reflect the mixing degree of the macrounits on both sides of the candidate tangent in the region to be segmented; and select the candidate tangent with the smallest classification loss as the target tangent. In such an embodiment, the target tangent can be accurately selected from multiple candidate tangents based on the classification loss. The higher the mixing degree of the macrounits on both sides of the candidate tangent, the worse the classification effect of the candidate tangent (for example, the macrounits in the same cluster are classified on both sides of the candidate tangent), and thus the greater the classification loss. The lower the mixing degree of the macrounits on both sides of the candidate tangent, the better the classification effect of the candidate tangent (for example, the macrounits in the same cluster are basically classified on the same side of the candidate tangent), so the classification loss is smaller . In such an embodiment, the target tangent can be accurately selected from multiple candidate tangents based on the classification loss.
图4A示出了针对一个待分割区域300设置的多条候选切线301。如图4A所示,待分割区域300中包括三个簇,各个簇的宏单元分别由具有不同的填充图案的矩形来表示。第一簇中的宏单元由201表示,显示为利用垂直线条图案填充的矩形,共包括五个宏单元。第二簇中的宏单元由202表示,显示为利用水平线条图案填充的矩形,共包括六个宏单元。第三簇中的宏单元由203表示,显示为利用倾斜线条图案填充的矩形,共包括 两个宏单元。在待分割区域300中设置了多条候选切线301。FIG. 4A shows multiple candidate tangent lines 301 set for a region 300 to be segmented. As shown in FIG. 4A , the region to be divided 300 includes three clusters, and the macro-units of each cluster are respectively represented by rectangles with different filling patterns. The macrocells in the first cluster are indicated by 201 and are shown as rectangles filled with a vertical line pattern, comprising five macrocells in total. The macrocells in the second cluster are indicated by 202 and are shown as rectangles filled with a horizontal line pattern, comprising a total of six macrocells. The macrocells in the third cluster are indicated by 203 and are shown as rectangles filled with an oblique line pattern, comprising a total of two macrocells. A plurality of candidate tangent lines 301 are set in the region to be segmented 300 .
在一些实施例中,如图4A所示,多条候选切线301包括沿垂直方向延伸的多条第一候选切线。在一些实施例中,多条候选切线301还可以包括沿水平方向延伸的多条第二候选切线。利用这样的候选切线301,能够沿垂直和/或水平方向将待分割区域300分割开。In some embodiments, as shown in FIG. 4A , the plurality of candidate tangent lines 301 includes a plurality of first candidate tangent lines extending along a vertical direction. In some embodiments, the plurality of candidate tangent lines 301 may further include a plurality of second candidate tangent lines extending along the horizontal direction. Using such candidate tangents 301 , the region to be divided 300 can be divided along the vertical and/or horizontal direction.
在一些实施例中,多条第一候选切线可以等间隔设置。类似地,多条第二候选切线也可以等间隔设置。在另一些实施例中,多条第一候选切线可以并非等间隔设置。类似地,多条第二候选切线也可以并非等间隔设置。本公开的范围在此方面不受限制。In some embodiments, multiple first candidate tangent lines may be arranged at equal intervals. Similarly, multiple second candidate tangents can also be set at equal intervals. In some other embodiments, the multiple first candidate tangent lines may not be arranged at equal intervals. Similarly, the multiple second candidate tangents may not be equally spaced. The scope of the present disclosure is not limited in this regard.
在一些实施例中,候选切线301也可以并非沿着垂直或水平方向延伸,而是沿着倾斜方向延伸,这样的切线同样能够将待分割区域300分割开。另外,应当理解,在其他实施例中,替代直线,候选切线301也可以为曲线或折线,这样的切线同样能够将待分割区域300分割开。In some embodiments, the candidate tangent 301 may not extend along the vertical or horizontal direction, but extend along an oblique direction, and such a tangent can also divide the region 300 to be divided. In addition, it should be understood that in other embodiments, instead of a straight line, the candidate tangent 301 may also be a curved line or a broken line, and such a tangent can also divide the region 300 to be divided.
如图4A所示,在待分割区域300中设置了10条候选切线301。应当理解,候选切线301的数目可以更多或更少,这可以根据具体设计需求进行设定,本公开的范围在此方面不受限制。As shown in FIG. 4A , 10 candidate tangent lines 301 are set in the region to be segmented 300 . It should be understood that the number of candidate tangent lines 301 may be more or less, which may be set according to specific design requirements, and the scope of the present disclosure is not limited in this regard.
在一些实施例中,针对每条候选切线301,计算用于反映待分割区域300中位于候选切线301两侧的宏单元的混合程度的分类损失包括:向待分割区域300中的其重心位置位于该候选切线301两侧的簇赋予不同的分类标签;向待分割区域300中的其初始位置位于该候选切线301两侧的宏单元赋予不同的预测标签;针对待分割区域300中的每个宏单元,基于该宏单元的预测标签与该宏单元所属的簇的分类标签是否匹配以及该宏单元距该候选切线301的距离,计算与该宏单元有关的损失函数;以及对与各个宏单元有关的损失函数进行加权求和以确定分类损失。在这样的实施例中,能够基于预测标签与分类标签是否匹配以及宏单元距候选切线301的距离,来确定与宏单元有关的损失函数,从而进一步确定分类损失。In some embodiments, for each candidate tangent 301 , calculating the classification loss used to reflect the mixing degree of the macrounits on both sides of the candidate tangent 301 in the region to be segmented 300 includes: The clusters on both sides of the candidate tangent 301 are given different classification labels; the macro units whose initial positions in the region 300 to be divided are located on both sides of the candidate tangent 301 are given different prediction labels; for each macro in the region 300 to be divided unit, based on whether the predicted label of the macrounit matches the classification label of the cluster to which the macrounit belongs and the distance of the macrounit from the candidate tangent line 301, calculates a loss function related to the macrounit; and related to each macrounit The weighted sum of the loss functions is used to determine the classification loss. In such an embodiment, the loss function related to the macro-unit can be determined based on whether the predicted label matches the classification label and the distance between the macro-unit and the candidate tangent 301 , so as to further determine the classification loss.
在一个实施例中,针对任意一条候选切线301,向待分割区域300中的其重心位置位于该候选切线301的第一侧(例如左侧)的簇赋予第一分类标签(例如0),向待分割区域300中的其重心位置位于该候选切线301的第二侧(例如右侧)的簇赋予第二分类标签(例如1),向待分割区域300中的其初始位置位于该候选切线301的第一侧的宏单元赋予第一预测标签(例如0),并且向待分割区域300中的其初始位置位于该候选切线301的第二侧的宏单元赋予第二预测标签(例如1)。第一分类标签与第二分类标签不同,第一预测标签与第二预测标签不同,第一预测标签与第一分类标签匹配,并且第二预测标签与第二分类标签匹配。In one embodiment, for any candidate tangent 301, assign a first classification label (for example 0) to the cluster whose barycenter position is located on the first side (for example, the left side) of the candidate tangent 301 in the region 300 to be segmented, and assign The center of gravity position in the area to be divided 300 is located on the second side (for example, the right side) of the candidate tangent 301. The macro-units on the first side of the tangent line 301 are assigned a first prediction label (for example, 0), and the macro-units in the area to be divided 300 whose initial positions are on the second side of the candidate tangent line 301 are assigned a second prediction label (for example, 1). The first category label is different from the second category label, the first predicted label is different from the second predicted label, the first predicted label matches the first category label, and the second predicted label matches the second category label.
在另一个实施例中,针对任意一条候选切线301,向待分割区域300中的其重心位置位于该候选切线301的第一侧(例如左侧)的簇赋予第一分类标签(例如1),向待分割区域300中的其重心位置位于该候选切线301的第二侧(例如右侧)的簇赋予第二分类标签(例如0),向待分割区域300中的其初始位置位于该候选切线301的第一侧的宏单元赋予第一预测标签(例如1),并且向待分割区域300中的其初始位置位于该候选切线301的第二侧的宏单元赋予第二预测标签(例如0)。第一分类标签与第二分类标签不同,第一预测标签与第二预测标签不同,第一预测标签与第一分类标签匹配,并且第二预测标签与第二分类标签匹配。In another embodiment, for any candidate tangent 301, assign a first classification label (for example, 1) to the cluster whose barycenter position is located on the first side (for example, the left side) of the candidate tangent 301 in the region to be segmented 300, Assign a second classification label (such as 0) to the cluster whose center of gravity position is located on the second side (for example, the right side) of the candidate tangent line 301 in the region to be divided 300, and assign a second classification label (for example, 0) to the cluster whose initial position in the region to be divided 300 is located at the candidate tangent line The macro-units on the first side of 301 are assigned a first prediction label (for example, 1), and the macro-units whose initial positions are located on the second side of the candidate tangent line 301 in the area to be divided 300 are assigned a second prediction label (for example, 0) . The first category label is different from the second category label, the first predicted label is different from the second predicted label, the first predicted label matches the first category label, and the second predicted label matches the second category label.
应当理解,在其他实施例中,针对任意一条候选切线301,可以向待分割区域300中的簇赋予其他类型的第一分类标签和第二分类标签,并且向待分割区域300中的宏单元赋予其他类型的第一预测标签和第二预测标签,只要第一分类标签与第二分类标签不同、第一预测标签与第二预测标签不同、第一预测标签与第一分类标签匹配、并且第二预测标签与第二分类标签匹配即可。It should be understood that, in other embodiments, for any candidate tangent line 301, other types of first classification labels and second classification labels may be assigned to the clusters in the region to be segmented 300, and the macrounits in the region to be segmented 300 may be assigned Other types of first predicted label and second predicted label, as long as the first class label is different from the second class label, the first predictive label is different from the second predictive label, the first predictive label matches the first class label, and the second It is sufficient that the predicted label matches the second classification label.
利用第一分类标签、第二分类标签、第一预测标签以及第二预测标签,可以确定与待分割区域300中的每个宏单元有关的损失函数。为此,定义了由式(2)表示的指数损失函数l(z):Using the first classification label, the second classification label, the first prediction label and the second prediction label, a loss function related to each macro-unit in the region to be segmented 300 can be determined. To this end, an exponential loss function l(z) expressed by Equation (2) is defined:
l(z)=exp(-fz)          (2),l(z)=exp(-fz) (2),
其中f控制损失函数的陡峭程度,z表示样本分类结果(即对宏单元分类的结果)的好坏。具体计算损失时,针对一条候选切线l,对于分类正确的宏单元(即预测标签与分类标签匹配的宏单元),使l(z)较小,即z为一个正数;对于分类错误的宏单元(即预测标签与分类标签不匹配的宏单元),使l(z)较大,即z为一个负数。Among them, f controls the steepness of the loss function, and z indicates the quality of the sample classification result (that is, the result of classifying the macrounit). When calculating the loss specifically, for a candidate tangent line l, for a correctly classified macrounit (that is, a macrounit whose prediction label matches the classification label), make l(z) smaller, that is, z is a positive number; for a wrongly classified macrounit Units (i.e., macrounits whose predicted label does not match the class label), make l(z) large, ie z is a negative number.
在一个实施例中,计算每个宏单元x到候选切线l的距离作为衡量每个宏单元的分类结果好坏的指标d(x,l),由下式(3)表示。In one embodiment, the distance from each macrounit x to the candidate tangent l is calculated as an index d(x,l) to measure the classification result of each macrounit, expressed by the following formula (3).
Figure PCTCN2021112360-appb-000001
Figure PCTCN2021112360-appb-000001
其中l 2(x,l)表示宏单元x的中心到候选切线l的欧式距离。 where l 2 (x,l) represents the Euclidean distance from the center of the macrounit x to the candidate tangent l.
针对待分割区域300中的每个宏单元,结合式(2)和式(3)可以计算出损失函数l(x)=exp(-f*d(x,l))。For each macro unit in the area to be divided 300, the loss function l(x)=exp(-f*d(x, l)) can be calculated by combining formula (2) and formula (3).
随后,针对候选切线l,利用下式(4)将与待分割区域300中的每个宏单元有关的损失函数加权求和,可以得到针对候选切线l总的分类损失loss。Subsequently, for the candidate tangent l, the following formula (4) is used to weight and sum the loss functions related to each macro-unit in the region to be segmented 300 to obtain the total classification loss for the candidate tangent l.
Figure PCTCN2021112360-appb-000002
Figure PCTCN2021112360-appb-000002
其中Wx表示针对每个宏单元x的加权系数。对于宏单元数目较多的簇,可以将加权系数Wx设置得较小,而对于宏单元数目较少的簇,可以将加权系数Wx设置得较大,以解决宏单元分类不平衡的问题。Where Wx represents a weighting coefficient for each macrounit x. For clusters with a large number of macro-units, the weighting coefficient Wx can be set smaller, and for clusters with a small number of macro-units, the weighting coefficient Wx can be set larger to solve the problem of unbalanced classification of macro-units.
利用上述方式,可以针对图4A中所示的每条候选切线301,计算出分类损失loss。在此基础上,可以选择分类损失最小的候选切线301作为目标切线。图4B示出了针对待分割区域300确定的目标切线302。如图4B所示,所选择的目标切线302是图4A中所示的候选切线301中的一条。Using the above method, the classification loss can be calculated for each candidate tangent 301 shown in FIG. 4A . On this basis, the candidate tangent 301 with the smallest classification loss can be selected as the target tangent. FIG. 4B shows the target tangent 302 determined for the region to be segmented 300 . As shown in FIG. 4B , the selected target tangent 302 is one of the candidate tangents 301 shown in FIG. 4A .
如图4B所示,目标切线302将待分割区域分割成两个子区域,即左侧的第一区域303和右侧的第二区域304。第一区域303中包含第一簇中的五个宏单元201,第二区域304中包含第二簇中的六个宏单元202以及第三簇中的两个宏单元203。由于第二区域304中包括两个簇,因此接下来可以将第二区域304作为新的待分割区域,并且重复执行如上所述的确定目标切线的过程。在这样的实施例中,能够利用目标切线顺序地将布局空间分割成多个子区域。As shown in FIG. 4B , the target tangent line 302 divides the area to be divided into two sub-areas, that is, the first area 303 on the left and the second area 304 on the right. The first area 303 contains five macrocells 201 in the first cluster, and the second area 304 contains six macrocells 202 in the second cluster and two macrocells 203 in the third cluster. Since the second region 304 includes two clusters, the second region 304 can be used as a new region to be divided, and the process of determining the target tangent line as described above can be repeated. In such an embodiment, the layout space can be sequentially partitioned into multiple sub-regions using target tangents.
图5示出了针对第二区域304设置的多条候选切线305。与如上所述的待分割区域300中的候选切线301类似,针对每条候选切线305,向第二区域304中的其重心位置位 于该候选切线305两侧的簇赋予不同的分类标签;向第二区域304中的其初始位置位于该候选切线305两侧的宏单元赋予不同的预测标签;针对第二区域304中的每个宏单元,基于该宏单元的预测标签与该宏单元所属的簇的分类标签是否匹配以及该宏单元距该候选切线305的距离,利用式(2)和式(3)计算与该宏单元有关的损失函数;并且利用式(4)对与各个宏单元有关的损失函数进行加权求和以确定分类损失loss。以此方式,可以针对图5中所示的每条候选切线305,分别计算出分类损失loss。在此基础上,可以选择分类损失最小的候选切线305作为目标切线。图6示出了针对第二区域304确定的目标切线306。如图6所示,所选择的目标切线306是图5中所示的候选切线305中的一条。FIG. 5 shows a plurality of candidate tangent lines 305 set for the second region 304 . Similar to the candidate tangent 301 in the region to be segmented 300 as described above, for each candidate tangent 305, assign different classification labels to the clusters whose center of gravity positions in the second region 304 are located on both sides of the candidate tangent 305; In the second area 304, the macro-units whose initial positions are located on both sides of the candidate tangent line 305 are given different prediction labels; for each macro-unit in the second area 304, based on the prediction label of the macro-unit and the cluster to which the macro-unit belongs Whether the classification label matches and the distance of the macro-unit from the candidate tangent 305, use formula (2) and formula (3) to calculate the loss function related to the macro-unit; and use formula (4) to the relevant macro-unit The loss function performs a weighted sum to determine the classification loss. In this way, the classification loss can be calculated separately for each candidate tangent 305 shown in FIG. 5 . On this basis, the candidate tangent 305 with the smallest classification loss can be selected as the target tangent. FIG. 6 shows a target tangent 306 determined for the second region 304 . As shown in FIG. 6 , the selected target tangent 306 is one of the candidate tangents 305 shown in FIG. 5 .
通过在布局空间中选择待分割区域,并且利用上述方式在每个待分割区域中确定目标切线,可以在布局空间中分割出多个子区域,以用于摆放相应的簇。针对多条目标切线中的第一条目标切线,待分割区域可以被选择为整个布局空间。针对多条目标切线中的除了第一条目标切线之外的任一其他目标切线,待分割区域被选择为由前一目标切线对相应的待分割区域进行切割而得到的、包含两个或更多个簇的子区域。以此方式,能够利用目标切线顺序地将布局空间分割成多个子区域。By selecting the region to be divided in the layout space and determining the target tangent in each region to be divided in the above manner, multiple sub-regions can be divided in the layout space for arranging corresponding clusters. For the first target tangent among the plurality of target tangents, the region to be divided may be selected as the entire layout space. For any target tangent except the first target tangent among the plurality of target tangents, the region to be segmented is selected as the result obtained by cutting the corresponding region to be segmented by the previous target tangent, including two or more Subregions of multiple clusters. In this way, the layout space can be sequentially divided into a plurality of sub-regions using the target tangent.
在根据本公开的实施例中,能够根据层次信息将需要布局的宏单元聚类成多个簇,并且根据各个簇中的宏单元的实际摆放需求自适应地利用目标切线划分布局区域,从而实现多模块并行摆放。In the embodiment according to the present disclosure, the macro-units that need layout can be clustered into multiple clusters according to the hierarchical information, and the layout area can be adaptively divided by the target tangent according to the actual placement requirements of the macro-units in each cluster, so that Realize parallel placement of multiple modules.
在上述实施例中,以指数损失函数作为损失函数的示例描述了对布局空间的划分。应当理解,在其他实施例中,还可以采用其他损失函数来计算分类损失,诸如铰链损失函数、0-1损失函数、或Sigmoid损失函数。利用这些损失函数,同样能够确定待分割区域中的目标切线。In the above embodiments, the division of the layout space is described by taking the exponential loss function as an example of the loss function. It should be understood that in other embodiments, other loss functions may also be used to calculate the classification loss, such as a hinge loss function, a 0-1 loss function, or a Sigmoid loss function. Using these loss functions, it is also possible to determine the target tangents in the region to be segmented.
在上述实施例中,采用宏单元x的中心到候选切线l的欧式距离来作为衡量每个宏单元的分类结果好坏的指标d(x,l)。应当理解,在其他实施例中,还可以采用欧式距离之外的其他距离来作为衡量每个宏单元的分类结果好坏的指标d(x,l)。In the above embodiments, the Euclidean distance from the center of the macrounit x to the candidate tangent l is used as the index d(x,l) to measure the classification result of each macrounit. It should be understood that, in other embodiments, other distances than the Euclidean distance may also be used as the index d(x,l) to measure the classification result of each macro unit.
如上所述,图4B示出了针对待分割区域300确定的目标切线302。然而,目标切线302可能不是针对待分割区域300的最优切线。为此,如图7所示,可以在确定了目标切线302之后,并且在确定下一条目标切线之前,针对目标切线302添加扰动以获得在目标切线302附近的一条或多条加扰切线307。随后,针对目标切线302以及加扰切线307,分别对待分割区域300中的多个宏单元进行摆放,并且基于摆放结果从目标切线302以及加扰切线307中选择实际摆放效果最优的实际切线,以将待分割区域分割成经调整的两个子区域。加扰切线307可以随机选取,也可以是以与目标切线302相距预定距离进行选取,本公开的范围在此方面不受限制。As mentioned above, FIG. 4B shows the target tangent 302 determined for the region to be segmented 300 . However, the target tangent 302 may not be the optimal tangent for the region 300 to be segmented. To this end, as shown in FIG. 7 , after the target tangent 302 is determined and before the next target tangent is determined, a disturbance can be added to the target tangent 302 to obtain one or more scrambled tangents 307 near the target tangent 302 . Subsequently, for the target tangent 302 and the scrambling tangent 307, a plurality of macro-units in the region to be divided 300 are placed respectively, and based on the placement result, the one with the best actual placement effect is selected from the target tangent 302 and the scrambling tangent 307. Actual tangents to split the area to be segmented into two adjusted sub-areas. The scrambling tangent 307 may be selected randomly, or may be selected at a predetermined distance from the target tangent 302 , and the scope of the present disclosure is not limited in this respect.
针对在布局空间中确定的每条目标切线,都可以执行针对目标切线302如上所述的加扰过程,以获得相应的实际切线,从而将布局空间分割成经调整的多个子区域。以此方式,能够从目标切线和相应的加扰切线中选择出更符合实际摆放需求的实际切线,从而能够进一步优化宏单元的摆放效果。For each target tangent determined in the layout space, the scrambling process described above for the target tangent 302 may be performed to obtain the corresponding actual tangent, thereby dividing the layout space into multiple adjusted sub-regions. In this way, an actual tangent that is more in line with actual placement requirements can be selected from the target tangent and the corresponding scrambling tangent, so that the placement effect of the macro-unit can be further optimized.
如图1所示,在布局空间中确定了用于摆放各个簇的相应子区域之后,在104处,将各个簇的宏单元分别放置在相应的子区域中。为了使摆放后的布局区域有比较好的规整度,可以将相同类型且设计层次相似度高的宏单元组成阵列进行摆放。由于所有的宏 单元都有唯一编号,因此可以基于宏单元的编号来确定两个宏单元之间的相似度。为此,可以定义由下式(5)表示的另一打分函数score2(x,y)来确定两个宏单元x和y之间的层次相似度。As shown in FIG. 1 , after the corresponding sub-regions for arranging each cluster are determined in the layout space, at 104 , the macro-units of each cluster are respectively placed in the corresponding sub-regions. In order to have better regularity in the layout area after placement, macro cells of the same type and with a high degree of similarity in design levels can be formed into an array for placement. Since all macrocells have unique numbers, the similarity between two macrocells can be determined based on the macrocell numbers. To this end, another scoring function score2(x, y) represented by the following formula (5) can be defined to determine the hierarchical similarity between two macro-units x and y.
score2(x,y)=hierarch_Diff(x,y)     (5),score2(x, y) = hierarchy_Diff(x, y) (5),
Hierarchy_Diff(x,y)表示宏单元x和y在设计层次上的相似度,Hierarchy_Diff(x,y)越大,表示两个宏单元在设计层次上的相似度越高,Hierarchy_Diff(x,y)越小,表示两个宏单元在设计层次上的相似度越低。Hierarchy_Diff(x,y) indicates the similarity between macrounit x and y at the design level. The larger the Hierarchy_Diff(x,y), the higher the similarity between the two macrounits at the design level. Hierarchy_Diff(x,y) The smaller the , the lower the similarity between the two macrocells at the design level.
例如,假设宏单元x的编号为/A/B/C并且宏单元y的编号为/A/D/E,则这两个宏单元之间的层次相似度为1,因为宏单元x和y共享/A这一个层次。类似的,假设宏单元x的编号为/A/B/C并且宏单元y的编号为/A/B/E,则两个宏单元之间的层次相似度为2,因为宏单元x和y共享/A/B这两个层次。For example, suppose macrounit x is numbered /A/B/C and macrounit y is numbered /A/D/E, then the hierarchical similarity between these two macrounits is 1, because macrounits x and y Share /A this level. Similarly, assuming that the number of macrounit x is /A/B/C and the number of macrounit y is /A/B/E, the hierarchical similarity between two macrounits is 2, because macrounits x and y Share the two levels of /A/B.
针对每个簇,可以选择具有相同器件类型且层次相似度在第一阈值以上的宏单元以用于组成阵列。在一些实施例中,可以将第一阈值设置为1。在此情况下,将选择器件类型相同且层次相似度在1以上的宏单元组成阵列。在一些实施例中,可以将第一阈值设置为2。在此情况下,将选择器件类型相同且层次相似度在2以上的宏单元组成阵列。在其他实施例中,可以将第一阈值设置为更高,这可以根据设计要求来确定。另外,对于每个簇,第一阈值可以被设置为相同或不同,本公开的范围在此方面不受限制。For each cluster, macrocells with the same device type and a hierarchical similarity above a first threshold may be selected to form an array. In some embodiments, the first threshold may be set to 1. In this case, macrocells with the same device type and a hierarchical similarity of more than 1 are selected to form an array. In some embodiments, the first threshold may be set to two. In this case, select macrocells with the same device type and a hierarchical similarity of 2 or more to form an array. In other embodiments, the first threshold can be set higher, which can be determined according to design requirements. In addition, the first threshold may be set to be the same or different for each cluster, and the scope of the present disclosure is not limited in this regard.
在实际组成阵列时,可以添加阵列大小的约束,例如设置第二阈值,使得阵列的大小(即阵列中的宏单元的数目)不能超过该第二阈值。以此方式,能够根据设计需求合理地调整阵列的大小。When actually forming an array, a constraint on the size of the array may be added, for example, a second threshold is set so that the size of the array (that is, the number of macro-units in the array) cannot exceed the second threshold. In this way, the size of the array can be reasonably adjusted according to design requirements.
针对每个子区域,在确定了需要组成阵列的宏单元之后,还需要确定阵列的形状。例如,对于一个包含8个宏单元的阵列,其可以摆放成4x2的阵列,也可以摆放成2x4的阵列。For each sub-region, after determining the macro-units that need to form the array, it is also necessary to determine the shape of the array. For example, for an array containing 8 macro-units, it can be arranged in a 4x2 array or a 2x4 array.
在一个实施例中,阵列的形状可以根据需要组成阵列的宏单元的面积以及这些宏单元将要摆放在其中的相应子区域的边界长度来确定。为此,首先定义了阵列的理想高度ideaHeight,由下式(6)表示:In one embodiment, the shape of the array can be determined according to the area of the macro-units that need to form the array and the boundary lengths of the corresponding sub-regions where these macro-units will be placed. To this end, the ideal height ideaHeight of the array is first defined, expressed by the following formula (6):
Figure PCTCN2021112360-appb-000003
Figure PCTCN2021112360-appb-000003
其中total_macro_area表示某个子区域中需要组成阵列的宏单元的总面积,boundary_length表示该子区域的将要摆放宏单元的边界长度,scale是用于控制阵列的高度的大于或等于1的系数。系数scale的具体数值可以根据设计需求来设定。Among them, total_macro_area indicates the total area of macro cells that need to form an array in a sub-area, boundary_length indicates the boundary length of the sub-area where the macro cells will be placed, and scale is a coefficient greater than or equal to 1 used to control the height of the array. The specific value of the coefficient scale can be set according to design requirements.
利用式(6),可以计算出阵列的理想高度ideaHeight。随后,根据理想高度ideaHeight,可以根据下式(7)确定最优行数best_row。Using formula (6), the ideal height ideaHeight of the array can be calculated. Subsequently, according to the ideal height ideaHeight, the optimal number of rows best_row can be determined according to the following formula (7).
best_row=argmin mabs(ideaHeight-h(m))       (7), best_row=argmin m abs(ideaHeight-h(m)) (7),
其中h(m)表示行数为m时,阵列的高度;abs为求绝对值函数,argmin m为使abs(ideaHeight-h(m))为最小值时m的值。 Among them, h(m) indicates the height of the array when the number of rows is m; abs is the absolute value function, and argmin m is the value of m when abs(ideaHeight-h(m)) is the minimum value.
根据式(7),可以取阵列的高度h(m)与理想高度ideaHeight最为接近时阵列的行数m,作为最优行数best_row。According to formula (7), the number of rows m of the array when the height h(m) of the array is closest to the ideal height ideaHeight can be taken as the optimal number of rows best_row.
随后,针对每个簇,将所选择的宏单元组成阵列并放置在相应的子区域中,并且将 除了阵列中的宏单元之外的宏单元也放置在相应的子区域中。图8示出了在一个子区域308中摆放的宏单元阵列309,该阵列包含三行宏单元,每行布置了六个宏单元。通过将相同器件类型且层次相似的宏单元组成阵列,能够提升宏单元的布局规整度。Then, for each cluster, the selected macrocells are arrayed and placed in the corresponding subregion, and the macrocells other than the macrocells in the array are also placed in the corresponding subregion. FIG. 8 shows a macrocell array 309 arranged in a sub-area 308, the array includes three rows of macrocells, and each row has six macrocells arranged. By forming an array of macrocells of the same device type and similar layers, the layout regularity of the macrocells can be improved.
在一些实施例中,针对每个子区域,在确定了需要组成阵列的宏单元之后,还可以将阵列的形状确定为接近正方形或其他形状,从而将需要组成阵列的宏单元摆放在其中。在其他实施例中,还以通过其他方式确定阵列的形状,本公开的范围在此方面不受限制。In some embodiments, for each sub-area, after determining the macro units that need to form the array, the shape of the array can also be determined to be close to a square or other shape, so that the macro units that need to form the array can be placed therein. In other embodiments, the shape of the array can also be determined in other ways, and the scope of the present disclosure is not limited in this respect.
在布局空间中形成多个子区域之后,可以对子区域的布局结果进行评估。由于宏单元之间连接很少,并且此时标准单元的位置未知,因而无法准确地计算线长。根据专家经验,摆放完宏单元之后剩余的核心区域的规整度越高越好。图9示出了在布局空间400中分割出的多个子区域308。在布局空间400中,除了子区域308之外的区域为核心区域310,核心区域310用于摆放标准单元。After forming a plurality of subregions in the layout space, the layout results of the subregions can be evaluated. Since there are few connections between macrocells and the location of the standard cells is unknown at this time, it is not possible to accurately calculate the line length. According to expert experience, the higher the regularity of the remaining core area after placing the macro-units, the better. FIG. 9 shows a plurality of sub-regions 308 divided in the layout space 400 . In the layout space 400 , the area except the sub-area 308 is the core area 310 , and the core area 310 is used for arranging standard units.
在一些实施例中,方法100还包括:基于布局空间400中除多个子区域308之外的核心区域310的形状与预定形状之间的差异,来对宏单元的布局结果进行评估。例如,假设核心区域310的面积为areaA,核心区域310的中心为(xA,yA),核心区域的高与宽的比值为γ,则可以构造出由下式(8)表示的椭圆B:In some embodiments, the method 100 further includes: evaluating the layout result of the macro-unit based on the difference between the shape of the core region 310 except the plurality of sub-regions 308 in the layout space 400 and a predetermined shape. For example, assuming that the area of the core area 310 is areaA, the center of the core area 310 is (xA, yA), and the ratio of the height to width of the core area is γ, then an ellipse B represented by the following formula (8) can be constructed:
Figure PCTCN2021112360-appb-000004
Figure PCTCN2021112360-appb-000004
其中,
Figure PCTCN2021112360-appb-000005
使得椭圆B的面积等于核心区域310的面积areaA。
in,
Figure PCTCN2021112360-appb-000005
The area of the ellipse B is made equal to the area areaA of the core area 310 .
以此方式,构造了一个面积与核心区域310的面积相等的椭圆B,如图10所示。随后,按照下式(9)计算核心区域310与椭圆B之间的差异loss2。In this way, an ellipse B having an area equal to that of the core region 310 is constructed, as shown in FIG. 10 . Subsequently, the difference loss2 between the core region 310 and the ellipse B is calculated according to the following formula (9).
loss2=∫l(A(θ),B(θ))dθ      (9),loss2=∫l(A(θ), B(θ))dθ (9),
其中A(θ)和B(θ)分别表示圆周角为θ时,核心区域310和椭圆B上的点到中心(xA,yA)的距离;l(A(θ),B(θ))=max(0,B(θ)-A(θ)),即只考虑A(θ)<B(θ)的情况。根据图形化来看,核心区域310与椭圆B之间的差异loss2的值对应于图10中的阴影区域。loss2的值越小,表明核心区域310越接近于椭圆,核心区域310越规整,对整体绕线越有利。在这样实施例中,能够容易地针对宏单元的布局结果进行评估,并且基于这样的评估结果能够实现合理的布局。Wherein A(θ) and B(θ) represent respectively when the circumference angle is θ, the distance from the point on the core area 310 and the ellipse B to the center (xA, yA); l(A(θ), B(θ))= max(0, B(θ)-A(θ)), that is, only consider the case of A(θ)<B(θ). Graphically, the value of the difference loss2 between the core area 310 and the ellipse B corresponds to the shaded area in FIG. 10 . The smaller the value of loss2 is, the closer the core area 310 is to an ellipse, and the more regular the core area 310 is, the more favorable it is for the overall winding. In such an embodiment, evaluation can be easily performed on the layout results of the macro-cells, and a reasonable layout can be realized based on such evaluation results.
在一些实施例中,可能希望核心区域310的形状接近于矩形形状。在这种情况下,可以基于核心区域310的形状与矩形形状之间的差异,来对宏单元的布局结果进行评估。在一些实施例中,还可以基于布局空间的边界利用率,来对宏单元的布局结果进行评估。边界利用率越高,规整度越高。在其他实施例中,还可以以其他方式对宏单元的布局结果进行评估,本公开在此方面不受限制。In some embodiments, it may be desirable for the shape of the core region 310 to approximate a rectangular shape. In this case, the layout result of the macrocell may be evaluated based on the difference between the shape of the core area 310 and the rectangular shape. In some embodiments, the layout results of the macrocells can also be evaluated based on the boundary utilization of the layout space. The higher the boundary utilization, the higher the regularity. In other embodiments, the layout results of the macrocells may also be evaluated in other ways, and the present disclosure is not limited in this respect.
在一些情况下,针对每个待分割区域,可能存在不止一条目标切线,不同的目标切线对应不同的划分。持续做出这样的划分,可以得到一个树结构,如图11所示。节点A表示待分割区域,节点B和B’表示采用不同的水平目标切线对待分割区域进行划分,节点C和C’表示进一步采用不同的垂直目标切线对待分割区域进行划分。节点B和B’以及节点C和C’均是合法的目标切线。可以利用如上所述的方式对布局结果进行评估。 在一些实施例中,可以使用深度优先遍历(DFS)进行结果搜索。在其他实施例中,可以使用其他的树搜索方法进行结果搜索,如宽度优先遍历(BFS),或者使用启发式搜索方法进行结果搜索,如蒙特卡洛树搜索(MCTS)。In some cases, for each region to be divided, there may be more than one target tangent, and different target tangents correspond to different divisions. By continuing to make such divisions, a tree structure can be obtained, as shown in Figure 11. Node A represents the area to be segmented, nodes B and B' indicate that the area to be segmented is divided by using different horizontal target tangents, and nodes C and C' indicate that the area to be segmented is further divided by using different vertical target tangents. Nodes B and B' and nodes C and C' are legal target tangents. The layout results can be evaluated in the manner described above. In some embodiments, the result search may be performed using depth-first traversal (DFS). In other embodiments, other tree search methods, such as breadth-first traversal (BFS), or heuristic search methods, such as Monte Carlo Tree Search (MCTS), may be used for result search.
在一些实施例中,方法100还包括:针对每个子区域,调整其中所包含的宏单元的朝向,使得贴近该子区域的边界的宏单元的引脚位置朝向布局空间中除多个子区域之外的核心区域,并且其余的宏单元的引脚位置背对背布置。图12示出了三列宏单元的引脚的示例性布置。如图12所示,靠近子区域的边界的第一列宏单元51的引脚511朝向布局空间中除多个子区域之外的核心区域,第二列宏单元52的引脚521和第三列宏单元53的引脚531背对背布置。通过利用这种方式布置宏单元的引脚,能够减小布局产生的拥塞。In some embodiments, the method 100 further includes: for each subregion, adjusting the orientation of the macrocells contained therein, so that the pin positions of the macrocells close to the boundary of the subregion are oriented to the layout space except for a plurality of subregions The core area of the macrocell, and the pin positions of the remaining macrocells are arranged back-to-back. FIG. 12 shows an exemplary arrangement of pins of three columns of macrocells. As shown in FIG. 12 , the pins 511 of the macrocells 51 in the first row near the border of the subregions are facing the core region except for a plurality of subregions in the layout space, and the pins 521 of the macrocells 52 in the second row and the third row The pins 531 of the macrocell 53 are arranged back to back. By arranging the pins of the macrocell in this way, it is possible to reduce the congestion caused by layout.
图13示出了一个可以用来实施本公开的实施例的设备1300的示意性框图。如图13所示,设备1300包括中央处理单元(CPU)1301,其可以根据存储在只读存储器(ROM)1302中的计算机程序指令或者从存储单元1308加载到随机访问存储器(RAM)1303中的计算机程序指令,来执行各种适当的动作和处理。在RAM 1303中,还可存储设备1300操作所需的各种程序和数据。CPU 1301、ROM 1302以及RAM 1303通过总线1304彼此相连。输入/输出(I/O)接口1305也连接至总线1304。FIG. 13 shows a schematic block diagram of a device 1300 that can be used to implement embodiments of the present disclosure. As shown in FIG. 13 , device 1300 includes a central processing unit (CPU) 1301 that can be programmed according to computer program instructions stored in read only memory (ROM) 1302 or loaded from storage unit 1308 into random access memory (RAM) 1303. computer program instructions to perform various appropriate actions and processes. In the RAM 1303, various programs and data necessary for the operation of the device 1300 can also be stored. The CPU 1301, ROM 1302, and RAM 1303 are connected to each other through a bus 1304. An input/output (I/O) interface 1305 is also connected to the bus 1304 .
设备1300中的多个部件连接至I/O接口1305,包括:输入单元1306,例如键盘、鼠标等;输出单元1307,例如各种类型的显示器、扬声器等;存储单元1308,例如磁盘、光盘等;以及通信单元1309,例如网卡、调制解调器、无线通信收发机等。通信单元1309允许设备1300通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。Multiple components in the device 1300 are connected to the I/O interface 1305, including: an input unit 1306, such as a keyboard, a mouse, etc.; an output unit 1307, such as various types of displays, speakers, etc.; a storage unit 1308, such as a magnetic disk, an optical disk, etc. ; and a communication unit 1309, such as a network card, a modem, a wireless communication transceiver, and the like. The communication unit 1309 allows the device 1300 to exchange information/data with other devices through a computer network such as the Internet and/or various telecommunication networks.
上文所描述的各个过程和处理,例如方法100,可由处理单元1301执行。例如,在一些实施例中,方法100可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1308。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1302和/或通信单元1309而被载入和/或安装到设备1300上。当计算机程序被加载到RAM 1303并由CPU 1301执行时,可以执行上文描述的方法100的一个或多个步骤。Various procedures and processes described above, such as the method 100 , can be executed by the processing unit 1301 . For example, in some embodiments, method 100 may be implemented as a computer software program tangibly embodied on a machine-readable medium, such as storage unit 1308 . In some embodiments, part or all of the computer program may be loaded and/or installed on the device 1300 via the ROM 1302 and/or the communication unit 1309. When a computer program is loaded into RAM 1303 and executed by CPU 1301, one or more steps of method 100 described above may be performed.
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。The present disclosure may be a method, apparatus, system and/or computer program product. A computer program product may include a computer-readable storage medium having computer-readable program instructions thereon for carrying out various aspects of the present disclosure.
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是—但不限于—电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。A computer readable storage medium may be a tangible device that can retain and store instructions for use by an instruction execution device. A computer readable storage medium may be, for example, but not limited to, an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of computer-readable storage media include: portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), or flash memory), static random access memory (SRAM), compact disc read only memory (CD-ROM), digital versatile disc (DVD), memory stick, floppy disk, mechanically encoded device, such as a printer with instructions stored thereon A hole card or a raised structure in a groove, and any suitable combination of the above. As used herein, computer-readable storage media are not to be construed as transient signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., pulses of light through fiber optic cables), or transmitted electrical signals.
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或 外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。Computer readable program instructions described herein may be downloaded from a computer readable storage medium to a respective computing/processing device, or downloaded to an external computer or external storage device over a network, such as the Internet, a local area network, a wide area network, and/or a wireless network. The network may include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers, and/or edge servers. A network adapter card or a network interface in each computing/processing device receives computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium in each computing/processing device .
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。Computer program instructions for performing the operations of the present disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or Source or object code written in any combination, including object-oriented programming languages—such as Smalltalk, C++, etc., and conventional procedural programming languages—such as the “C” language or similar programming languages. Computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer, or entirely on the remote computer or server implement. In cases involving a remote computer, the remote computer can be connected to the user computer through any kind of network, including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computer (such as via the Internet using an Internet service provider). connect). In some embodiments, an electronic circuit, such as a programmable logic circuit, field programmable gate array (FPGA), or programmable logic array (PLA), can be customized by utilizing state information of computer-readable program instructions, which can Various aspects of the present disclosure are implemented by executing computer readable program instructions.
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。Aspects of the present disclosure are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the disclosure. It should be understood that each block of the flowcharts and/or block diagrams, and combinations of blocks in the flowcharts and/or block diagrams, can be implemented by computer-readable program instructions.
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。These computer readable program instructions may be provided to a processing unit of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine such that when executed by the processing unit of the computer or other programmable data processing apparatus , producing an apparatus for realizing the functions/actions specified in one or more blocks in the flowchart and/or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, and these instructions cause computers, programmable data processing devices and/or other devices to work in a specific way, so that the computer-readable medium storing instructions includes An article of manufacture comprising instructions for implementing various aspects of the functions/acts specified in one or more blocks in flowcharts and/or block diagrams.
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。It is also possible to load computer-readable program instructions into a computer, other programmable data processing device, or other equipment, so that a series of operational steps are performed on the computer, other programmable data processing device, or other equipment to produce a computer-implemented process , so that instructions executed on computers, other programmable data processing devices, or other devices implement the functions/actions specified in one or more blocks in the flowcharts and/or block diagrams.
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in a flowchart or block diagram may represent a module, a portion of a program segment, or an instruction that includes one or more Executable instructions. In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks in succession may, in fact, be executed substantially concurrently, or they may sometimes be executed in the reverse order, depending upon the functionality involved. It should also be noted that each block of the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations, can be implemented by a dedicated hardware-based system that performs the specified function or action , or may be implemented by a combination of dedicated hardware and computer instructions.
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也 不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。Having described various embodiments of the present disclosure above, the foregoing description is exemplary, not exhaustive, and is not limited to the disclosed embodiments. Many modifications and alterations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein is chosen to best explain the principles of the various embodiments, practical applications or technical improvements over technologies in the market, or to enable other persons of ordinary skill in the art to understand the various embodiments disclosed herein.

Claims (25)

  1. 一种用于对集成电路的宏单元进行布局的方法,其特征在于,包括:A method for laying out macrocells of an integrated circuit, comprising:
    在布局空间中选择待分割区域;Select the area to be divided in the layout space;
    在所述待分割区域中设置多条候选切线;以及setting a plurality of candidate tangent lines in the region to be segmented; and
    基于所述待分割区域中的多个宏单元在所述布局空间中的初始位置以及由所述多个宏单元聚类得到的各个簇的重心位置,从所述多条候选切线中选择目标切线以将所述待分割区域分割成两个子区域,每个子区域用于放置至少一个簇的宏单元。Selecting a target tangent from the plurality of candidate tangents based on the initial positions of the plurality of macro-units in the region to be segmented in the layout space and the positions of centers of gravity of each cluster obtained by clustering the plurality of macro-units The area to be divided is divided into two sub-areas, and each sub-area is used to place at least one cluster of macro units.
  2. 根据权利要求1所述的方法,其特征在于,从所述多条候选切线中选择所述目标切线包括:The method according to claim 1, wherein selecting the target tangent from the plurality of candidate tangents comprises:
    针对每条候选切线,基于所述多个宏单元在所述布局空间中的初始位置以及由所述多个宏单元聚类得到的各个簇的重心位置,计算用于反映所述待分割区域中位于候选切线两侧的宏单元的混合程度的分类损失;以及For each candidate tangent, based on the initial positions of the plurality of macro-units in the layout space and the positions of the centers of gravity of each cluster obtained by clustering the plurality of macro-units, calculate the A classification loss for the degree of mixture of macrounits lying on both sides of the candidate tangent; and
    选择所述分类损失最小的候选切线作为所述目标切线。The candidate tangent with the smallest classification loss is selected as the target tangent.
  3. 根据权利要求2所述的方法,其特征在于,针对每条候选切线,计算用于反映所述待分割区域中位于候选切线两侧的宏单元的混合程度的分类损失包括:The method according to claim 2, wherein, for each candidate tangent, calculating the classification loss used to reflect the mixing degree of the macro-units located on both sides of the candidate tangent in the region to be segmented comprises:
    向所述待分割区域中的其重心位置位于该候选切线两侧的簇赋予不同的分类标签;Assigning different classification labels to the clusters whose barycenter positions are located on both sides of the candidate tangent line in the region to be segmented;
    向所述待分割区域中的其初始位置位于该候选切线两侧的宏单元赋予不同的预测标签;assigning different prediction labels to the macro-units whose initial positions are located on both sides of the candidate tangent in the region to be segmented;
    针对所述待分割区域中的每个宏单元,基于该宏单元的预测标签与该宏单元所属的簇的分类标签是否匹配以及该宏单元距该候选切线的距离,计算与该宏单元有关的损失函数;以及For each macro-unit in the area to be segmented, based on whether the predicted label of the macro-unit matches the classification label of the cluster to which the macro-unit belongs and the distance between the macro-unit and the candidate tangent, calculate the loss function; and
    对与各个宏单元有关的损失函数进行加权求和以确定所述分类损失。A weighted sum of the loss functions associated with each macro-unit is performed to determine the classification loss.
  4. 根据权利要求3所述的方法,其特征在于,所述损失函数包括以下至少一项:指数损失函数、铰链损失函数、0-1损失函数、或Sigmoid损失函数。The method according to claim 3, wherein the loss function includes at least one of the following: an exponential loss function, a hinge loss function, a 0-1 loss function, or a Sigmoid loss function.
  5. 根据权利要求3所述的方法,其特征在于,所述距离包括欧式距离。The method of claim 3, wherein the distance comprises a Euclidean distance.
  6. 根据权利要求3所述的方法,其特征在于,向所述待分割区域中的其重心位置位于该候选切线两侧的簇赋予不同的分类标签包括:向所述待分割区域中的其重心位置位于候选切线的第一侧的簇赋予第一分类标签,并且向所述待分割区域中的其重心位置位于候选切线的第二侧的簇赋予第二分类标签,所述第二分类标签不同于所述第一分类标签;The method according to claim 3, wherein assigning different classification labels to the clusters whose center of gravity positions are located on both sides of the candidate tangent in the region to be segmented comprises: assigning the center of gravity position to the region to be segmented The clusters located on the first side of the candidate tangent are assigned a first classification label, and the clusters whose barycenter position is located on the second side of the candidate tangent in the region to be segmented are assigned a second classification label, and the second classification label is different from said first classification label;
    向所述待分割区域中的其初始位置位于该候选切线两侧的宏单元赋予不同的预测标签包括:向所述待分割区域中的其初始位置位于候选切线的第一侧的宏单元赋予第一预测标签,并且向所述待分割区域中的其初始位置位于候选切线的第二侧的宏单元赋予第二预测标签,所述第二预测标签不同于所述第一预测标签;Assigning different prediction labels to the macro-units in the region to be segmented whose initial positions are on both sides of the candidate tangent includes: assigning the macro-units in the region to be segmented whose initial positions are on the first side of the candidate tangent a prediction label, and assigning a second prediction label to a macrounit whose initial position is on the second side of the candidate tangent in the region to be divided, the second prediction label being different from the first prediction label;
    其中所述第一预测标签与所述第一分类标签匹配,并且所述第二预测标签与所述第二分类标签匹配。wherein the first predicted label matches the first class label, and the second predicted label matches the second class label.
  7. 根据权利要求1所述的方法,其特征在于,还包括:The method according to claim 1, further comprising:
    在选择出所述目标切线之后,针对所述目标切线添加扰动以获得在所述目标切线附近的一条或多条加扰切线;After the target tangent is selected, adding a perturbation to the target tangent to obtain one or more scrambled tangents near the target tangent;
    针对所述目标切线以及所述一条或多条加扰切线,对所述多个宏单元进行摆放;以及arranging the plurality of macrocells for the target tangent and the one or more scrambling tangents; and
    基于摆放结果从所述目标切线以及所述一条或多条加扰切线中选择实际切线,所述实际切线将所述待分割区域分割成经调整的两个子区域。An actual tangent is selected from the target tangent and the one or more scrambling tangents based on the arrangement result, and the actual tangent divides the area to be divided into two adjusted sub-areas.
  8. 根据权利要求1所述的方法,其特征在于,所述待分割区域被初始选择为所述布局空间。The method according to claim 1, wherein the region to be divided is initially selected as the layout space.
  9. 根据权利要求1所述的方法,其特征在于,还包括:The method according to claim 1, further comprising:
    选择所述两个子区域中的包含两个或更多个簇的子区域作为新的待分割区域;Selecting a sub-region containing two or more clusters in the two sub-regions as a new region to be divided;
    在所述新的待分割区域中设置多条新的候选切线;以及setting a plurality of new candidate tangent lines in the new region to be segmented; and
    基于所述新的待分割区域中的宏单元在所述布局空间中的初始位置以及所述新的待分割区域中包含的各个簇的重心位置,从所述多条新的候选切线中选择新的目标切线以将所述新的待分割区域分割成两个新的子区域。Based on the initial position of the macro-unit in the new area to be divided in the layout space and the position of the center of gravity of each cluster contained in the new area to be divided, select a new tangent line from the plurality of new candidate tangents The target tangent to divide the new region to be segmented into two new sub-regions.
  10. 根据权利要求9所述的方法,其特征在于,还包括:The method according to claim 9, further comprising:
    在利用多条目标切线在所述布局空间中分割出多个子区域之后,将各个簇中的宏单元分别放置在相应的子区域中。After a plurality of sub-regions are divided in the layout space by using a plurality of target tangent lines, the macro-units in each cluster are respectively placed in corresponding sub-regions.
  11. 根据权利要求10所述的方法,其特征在于,将各个簇中的宏单元分别放置在相应的子区域中包括:The method according to claim 10, wherein placing the macrocells in each cluster in corresponding sub-regions comprises:
    针对每个簇,选择具有相同器件类型且层次相似度在第一阈值以上的宏单元;For each cluster, selecting macrocells having the same device type and a hierarchical similarity above a first threshold;
    针对每个簇,将所选择的宏单元组成阵列;For each cluster, forming an array of selected macrocells;
    针对每个簇,将所述阵列放置在相应的子区域中;以及For each cluster, placing the array in a corresponding subregion; and
    针对每个簇,将除了所述阵列中的宏单元之外的宏单元放置在相应的子区域中。For each cluster, macrocells other than those in the array are placed in the corresponding sub-region.
  12. 根据权利要求11所述的方法,其特征在于,将各个簇中的宏单元分别放置在相应的子区域中还包括:The method according to claim 11, wherein placing the macrocells in each cluster in corresponding sub-regions further comprises:
    针对每个簇,将所述阵列中的宏单元的数目限制为不超过第二阈值。For each cluster, the number of macrocells in the array is limited to not exceed a second threshold.
  13. 根据权利要求11所述的方法,其特征在于,针对每个簇,将所选择的宏单元组成阵列包括:The method according to claim 11, wherein, for each cluster, forming an array of selected macrocells comprises:
    针对每个簇,计算所选择的宏单元的总面积;For each cluster, calculate the total area of the selected macrocells;
    针对每个簇,基于所述总面积以及相应的子区域的边界长度确定所述阵列的理想高度;以及for each cluster, determining a desired height of the array based on the total area and the boundary length of the corresponding sub-region; and
    基于所述理想高度,确定所述阵列的目标行数。Based on the desired height, a target number of rows for the array is determined.
  14. 根据权利要求10所述的方法,其特征在于,还包括:The method according to claim 10, further comprising:
    基于所述布局空间中除所述多个子区域之外的核心区域的形状与预定形状之间的差异,来对宏单元的布局结果进行评估。The layout result of the macro-unit is evaluated based on the difference between the shape of the core area except the plurality of sub-areas in the layout space and a predetermined shape.
  15. 根据权利要求14所述的方法,其特征在于,所述预定形状包括椭圆形或矩形。The method of claim 14, wherein the predetermined shape comprises an oval or a rectangle.
  16. 根据权利要求10所述的方法,其特征在于,还包括:The method according to claim 10, further comprising:
    基于所述布局空间的边界利用率,来对宏单元的布局结果进行评估。The layout result of the macrocell is evaluated based on the boundary utilization rate of the layout space.
  17. 根据权利要求10所述的方法,其特征在于,还包括:The method according to claim 10, further comprising:
    针对每个子区域,调整其中所包含的宏单元的朝向,使得贴近该子区域的边界的宏单元的引脚位置朝向所述布局空间中除所述多个子区域之外的核心区域,并且其余的宏单元的引脚位置背对背布置。For each sub-area, adjusting the orientation of the macro-units contained therein, so that the pin positions of the macro-units close to the boundary of the sub-area are oriented towards the core area in the layout space except for the multiple sub-areas, and the rest The pin locations of the macrocells are arranged back-to-back.
  18. 根据权利要求1所述的方法,其特征在于,还包括:The method according to claim 1, further comprising:
    对所述布局空间中的宏单元和标准单元同时进行混合尺寸布局,通过优化所述布局空间中的宏单元与标准单元之间的线长以及所述布局空间中的宏单元的布局密度,确定各个宏单元在所述布局空间中的初始位置。Simultaneously perform mixed-size layout on the macrocells and standard cells in the layout space, and determine by optimizing the line length between the macrocells and standard cells in the layout space and the layout density of the macrocells in the layout space The initial position of each macrocell in the layout space.
  19. 根据权利要求1所述的方法,其特征在于,还包括:The method according to claim 1, further comprising:
    基于所述布局空间中的宏单元的设计层次信息、所述布局空间中的宏单元之间的距离和/或所述布局空间中的单元之间的互连数目,将所述布局空间中的宏单元聚类成多个簇。Based on the design hierarchy information of the macrocells in the layout space, the distance between the macrocells in the layout space and/or the number of interconnections between the cells in the layout space, the Macrounits cluster into multiple clusters.
  20. 根据权利要求1所述的方法,其特征在于,所述多条候选切线包括沿垂直方向的多条第一候选切线和/或沿水平方向的多条第二候选切线。The method according to claim 1, wherein the multiple candidate tangents include multiple first candidate tangents along the vertical direction and/or multiple second candidate tangents along the horizontal direction.
  21. 根据权利要求20所述的方法,其特征在于,所述多条第一候选切线等间隔设置。The method according to claim 20, wherein the plurality of first candidate tangent lines are arranged at equal intervals.
  22. 根据权利要求20所述的方法,其特征在于,所述多条第二候选切线等间隔设置。The method according to claim 20, wherein the plurality of second candidate tangent lines are arranged at equal intervals.
  23. 一种电子设备,包括:An electronic device comprising:
    处理器;以及processor; and
    存储器,耦合至所述处理器并且包括存储于其上的指令,所述指令在由所述处理器执行时使所述电子设备执行根据权利要求1-22中任一项所述的方法。A memory coupled to the processor and comprising instructions stored thereon which, when executed by the processor, cause the electronic device to perform the method of any one of claims 1-22.
  24. 一种计算机可读存储介质,所述计算机可读存储介质上存储有机器可执行指令,当所述机器可执行指令在被至少一个处理器执行时,使得所述至少一个处理器实现根据权利要求1-22中任一项所述的方法。A computer-readable storage medium, on which machine-executable instructions are stored, when the machine-executable instructions are executed by at least one processor, the at least one processor implements the The method of any one of 1-22.
  25. 一种计算机程序产品,所述计算机程序产品被有形地存储在计算机可读存储介质中 并且包括机器可执行指令,所述机器可执行指令在由设备执行时使所述设备执行根据权利要求1-22中的任一项所述的方法。A computer program product tangibly stored on a computer-readable storage medium and comprising machine-executable instructions which, when executed by a device, cause the device to perform the The method described in any one of 22.
PCT/CN2021/112360 2021-08-12 2021-08-12 Method for placing macrocells of integrated circuit WO2023015536A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2021/112360 WO2023015536A1 (en) 2021-08-12 2021-08-12 Method for placing macrocells of integrated circuit
CN202180099753.0A CN117561514A (en) 2021-08-12 2021-08-12 Method for laying out macro-cells of an integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2021/112360 WO2023015536A1 (en) 2021-08-12 2021-08-12 Method for placing macrocells of integrated circuit

Publications (1)

Publication Number Publication Date
WO2023015536A1 true WO2023015536A1 (en) 2023-02-16

Family

ID=85199779

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/112360 WO2023015536A1 (en) 2021-08-12 2021-08-12 Method for placing macrocells of integrated circuit

Country Status (2)

Country Link
CN (1) CN117561514A (en)
WO (1) WO2023015536A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116663483A (en) * 2023-07-31 2023-08-29 全芯智造技术有限公司 Method, apparatus and medium for chip layout
CN116911245A (en) * 2023-07-31 2023-10-20 曲阜师范大学 Layout method, system, equipment and storage medium of integrated circuit
CN117650099A (en) * 2023-12-08 2024-03-05 江苏京创先进电子科技有限公司 Semiconductor chip cutting method, system, dicing saw and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101145169A (en) * 2007-06-14 2008-03-19 上海芯域微电子有限公司 Module group, macrocell, standard unit synchronous layout convergence method and system for SoC integrated circuit automatic layout design
US20080120582A1 (en) * 2006-11-17 2008-05-22 Kabushiki Kaisha Toshiba Semiconductor layout design apparatus, semiconductor layout design method and computer readable medium
US20090031269A1 (en) * 2007-07-27 2009-01-29 Springsoft, Inc. Analytical global placement for an integrated circuit
JP2020052807A (en) * 2018-09-27 2020-04-02 東芝情報システム株式会社 Layout design device and layout design program
CN112699631A (en) * 2021-01-14 2021-04-23 安徽省东科半导体有限公司 Design optimization method for solving problem of wiring congestion at corner of wiring channel

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080120582A1 (en) * 2006-11-17 2008-05-22 Kabushiki Kaisha Toshiba Semiconductor layout design apparatus, semiconductor layout design method and computer readable medium
CN101145169A (en) * 2007-06-14 2008-03-19 上海芯域微电子有限公司 Module group, macrocell, standard unit synchronous layout convergence method and system for SoC integrated circuit automatic layout design
US20090031269A1 (en) * 2007-07-27 2009-01-29 Springsoft, Inc. Analytical global placement for an integrated circuit
JP2020052807A (en) * 2018-09-27 2020-04-02 東芝情報システム株式会社 Layout design device and layout design program
CN112699631A (en) * 2021-01-14 2021-04-23 安徽省东科半导体有限公司 Design optimization method for solving problem of wiring congestion at corner of wiring channel

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116663483A (en) * 2023-07-31 2023-08-29 全芯智造技术有限公司 Method, apparatus and medium for chip layout
CN116911245A (en) * 2023-07-31 2023-10-20 曲阜师范大学 Layout method, system, equipment and storage medium of integrated circuit
CN116663483B (en) * 2023-07-31 2023-10-20 全芯智造技术有限公司 Method, apparatus and medium for chip layout
CN116911245B (en) * 2023-07-31 2024-03-08 曲阜师范大学 Layout method, system, equipment and storage medium of integrated circuit
CN117650099A (en) * 2023-12-08 2024-03-05 江苏京创先进电子科技有限公司 Semiconductor chip cutting method, system, dicing saw and storage medium

Also Published As

Publication number Publication date
CN117561514A (en) 2024-02-13

Similar Documents

Publication Publication Date Title
WO2023015536A1 (en) Method for placing macrocells of integrated circuit
Chen et al. PROS: A plug-in for routability optimization applied in the state-of-the-art commercial EDA tool using deep learning
US6480991B1 (en) Timing-driven global placement based on geometry-aware timing budgets
Hu et al. A survey on multi-net global routing for integrated circuits
US8370783B2 (en) Systems and methods for probabilistic interconnect planning
US6557145B2 (en) Method for design optimization using logical and physical information
Lin et al. POLAR: Placement based on novel rough legalization and refinement
US7966595B1 (en) Method and system for approximate placement in electronic designs
Cong et al. An enhanced multilevel routing system
Tang et al. A survey on steiner tree construction and global routing for vlsi design
Darav et al. High performance global placement and legalization accounting for fence regions
US11966682B2 (en) Fast independent checker for extreme ultraviolet (EUV) routing
US11983476B2 (en) Technology-independent line end routing
Lin et al. A row-based algorithm for non-integer multiple-cell-height placement
Tsota et al. Guiding global placement with wire density
US20230385514A1 (en) Using machine trained network during routing to modify locations of vias in an ic design
CN113468847A (en) Integrated circuit global layout method based on non-integer multiple line height unit
Chen et al. Multilevel full-chip gridless routing considering optical proximity correction
US20230274067A1 (en) Using pixel-based definition of an integrated circuit design to perform machine-trained routing
Mirsadeghi et al. PTRAM: A parallel topology-and routing-aware mapping framework for large-scale HPC systems
Cheng et al. Obstacle-avoiding length-matching bus routing considering nonuniform track resources
Minz et al. Layer assignment for reliable system-on-package
Zhu et al. Topology‐Aware Bus Routing in Complex Networks of Very‐Large‐Scale Integration with Nonuniform Track Configurations and Obstacles
Chen Intelligent Chip Layout Synthesis and Analysis
Mohtavipour et al. A quad-form clustered mapping approach for large-scale applications of reconfigurable computing systems

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: 21953153

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 202180099753.0

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE