WO2023035250A1 - Procédé de placement dans une puce, et dispositif, support et produit programme - Google Patents
Procédé de placement dans une puce, et dispositif, support et produit programme Download PDFInfo
- Publication number
- WO2023035250A1 WO2023035250A1 PCT/CN2021/117822 CN2021117822W WO2023035250A1 WO 2023035250 A1 WO2023035250 A1 WO 2023035250A1 CN 2021117822 W CN2021117822 W CN 2021117822W WO 2023035250 A1 WO2023035250 A1 WO 2023035250A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- candidate
- arrangement
- layout
- tree structure
- determining
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 129
- 238000011156 evaluation Methods 0.000 claims abstract description 231
- 230000008569 process Effects 0.000 claims abstract description 61
- 238000005457 optimization Methods 0.000 claims description 56
- 238000003860 storage Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 12
- 238000013461 design Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 12
- 238000013528 artificial neural network Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000012552 review Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000012938 design process Methods 0.000 description 2
- 230000002787 reinforcement Effects 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000005530 etching Methods 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 238000005468 ion implantation Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000000465 moulding Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000000206 photolithography Methods 0.000 description 1
- 238000005498 polishing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000000427 thin-film deposition Methods 0.000 description 1
- 238000003466 welding Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
Definitions
- Embodiments of the present disclosure generally relate to the field of chip design, and more specifically relate to methods, devices, media and program products for laying out chips.
- physical design is the process of converting gate-level netlist into geometric layout.
- Physical design mainly includes steps such as division, layout planning, layout, clock tree synthesis, and wiring, among which layout is an important step in the early stage of physical design.
- the layout mainly determines the placement of the circuit units in the chip, and can be further subdivided into macro placement (Macro Placement, MP), overall layout and detailed layout.
- embodiments of the present disclosure aim to provide a solution for laying out chips.
- a method for laying out a chip comprising: determining a plurality of candidates corresponding to a plurality of first circuit units in the chip based on netlist data of the chip a plurality of evaluation results associated with the layout, wherein each evaluation result in the plurality of evaluation results indicates the layout quality of the corresponding candidate layout, the netlist data at least indicates a plurality of first circuit cells and their connection relationships, and the plurality of candidate layouts
- the layout process data of a plurality of first circuit units in each candidate layout is organized in a tree structure, and a plurality of candidate layouts correspond to leaf nodes of the tree structure; and based on a plurality of evaluation results, selecting from a plurality of candidate layouts target layout.
- the method can obtain better exploration capabilities and be able to find The layout scheme with a better evaluation result is used to improve the layout quality.
- the multiple candidate layouts include an initial candidate layout and at least one optimized candidate layout
- determining the multiple evaluation results includes: based on a predetermined arrangement sequence of the multiple first circuit units, and indicating the multiple first circuit units in the netlist data.
- the data of the connection relationship of the circuit unit determines the initial evaluation result associated with the initial candidate layout, wherein the predetermined arrangement order indicates the order in which the plurality of first circuit units are arranged according to the predetermined strategy; based on the initial candidate layout and the initial candidate layout associated with the initial candidate layout constructing an initial tree structure; and based on the netlist data, the initial candidate layout and the initial tree structure, determining at least one optimization candidate layout and at least one optimization evaluation result respectively associated with the at least one optimization candidate layout.
- the first circuit unit can be arranged by taking historical placement data into consideration during the process of determining an optimized candidate placement to determine an optimized candidate placement. Therefore, the exploration ability of the method according to the present disclosure can be improved, and the possibility of finding an optimized candidate layout with a better evaluation result can be improved, thereby improving the layout quality.
- determining at least one optimization candidate layout and at least one optimization evaluation result includes: setting the initial tree structure as a reference tree structure; Candidate layout; Based on the data indicating the connection relationship of a plurality of first circuit cells in the netlist data, determine an optimization evaluation result associated with an optimized candidate layout; determine whether the layout termination condition is satisfied; and if it is determined that the placement termination condition is not Satisfied, based on the reference tree structure, one optimization candidate layout and placement process data associated with one optimization candidate layout, constructing the optimization tree structure to update the reference tree structure.
- when to end the exploration of candidate layouts is controlled by setting layout termination conditions. In this way, a proper balance can be achieved between the layout efficiency and the quality of the target layout, so as to obtain a layout result with better quality at higher efficiency.
- determining an optimized candidate layout includes: setting one of the plurality of first circuit units as a unit to be arranged based on a predetermined arrangement sequence; iteratively performing the following at least once: based on the reference tree structure, The current arrangement of the chip and the unit to be arranged determine the updated arrangement of the chip, wherein the updated arrangement includes the arrangement of the unit to be arranged and the first circuit unit that has been arranged before among the plurality of first circuit units; update by using the updated arrangement current arrangement; determining whether at least one first circuit unit among the plurality of first circuit units is not included in the current arrangement; and if it is determined that at least one first circuit unit among the plurality of first circuit units is not included in the current arrangement In the method, based on a predetermined arrangement order, the next first circuit unit among the plurality of first circuit units is set as a unit to be arranged.
- Determining an optimal candidate layout also includes determining the current arrangement of chips as an optimal candidate layout. In this way, historical layout data can be considered in the process of exploring other candidate layouts, better exploration capabilities can be obtained, and layout schemes with better evaluation results can be found, thereby improving layout quality.
- determining the updated arrangement includes: based on the current arrangement, determining a candidate arrangement set, the candidate arrangement set includes at least one of the following items: a first candidate arrangement corresponding to a child node of the current arrangement, and by adding A second candidate arrangement obtained by the unit to be arranged, wherein the second candidate arrangement is different from the first candidate arrangement; based on the reference tree structure, determining an evaluation set associated with the candidate arrangement set; and based on the evaluation set, selecting an updated arrangement from the candidate arrangement set .
- historical layout data can be considered in the process of exploring other candidate layouts, better exploration capabilities can be obtained, and layout schemes with better evaluation results can be found, thereby improving layout quality.
- determining the evaluation set associated with the candidate arrangement set includes: calculating a first mean value of the evaluation results of the candidate arrangement associated with the first candidate arrangement; determining based on the number of times the first candidate arrangement and the current arrangement are visited A first weighted value; obtaining a probability set associated with the set of candidate arrangements; and determining the first candidate arrangement in the evaluation set based on the first mean value, the first weighted value, and the first probability associated with the first candidate arrangement in the probability set
- An associated first evaluation wherein the candidate layouts associated with the first candidate arrangement include candidate layouts corresponding to leaf nodes of the first candidate arrangement.
- determining the evaluation set associated with the candidate arrangement set includes: calculating a second mean value of the evaluation results of the candidate layouts corresponding to all leaf nodes of the reference tree structure; based on the number of times the nodes corresponding to the current arrangement are visited determining a second weighted value; obtaining a set of probabilities associated with the set of candidate arrangements; and based on a second mean value, a second weighted value, and a second probability associated with the second candidate arrangement in the set of probabilities, A second evaluation associated with the candidate placement. Evaluating the second candidate arrangement that is not included in the current parameter tree structure in this way can make the first evaluation and the second evaluation comparable, thus helping to determine the best candidate arrangement by comparing the evaluation results of each candidate arrangement. suitable candidate placements, and increase the probability of finding optimized candidate placements with better evaluation results.
- the layout termination condition includes at least one of the following: the number of multiple candidate layouts reaches a predetermined number threshold; or the duration of iterations reaches a predetermined time threshold.
- the chip further includes at least one second circuit unit
- the netlist data also indicates the connection relationship between the at least one second circuit unit and the plurality of first circuit units
- determining a plurality of evaluation results includes: based on the netlist data and A candidate layout among a plurality of candidate layouts, determining a complete layout associated with a candidate layout, the complete layout at least indicates the arrangement and wiring of a plurality of first circuit units and at least one second circuit unit; and determining that it is related to the complete layout Associated complete evaluation results to determine an evaluation result associated with a candidate layout among the plurality of evaluation results.
- the evaluation result of the candidate layout can be determined based on the final complete layout, so that the evaluation result can measure the quality of the candidate layout more accurately. This helps to improve the quality of the finalized target layout.
- the evaluation result is determined based on at least one of: line length, congestion, maximum delay, or total delay.
- an electronic device includes: an evaluation result determining module, configured to determine a plurality of evaluation results respectively associated with a plurality of candidate layouts of a plurality of first circuit units in the chip based on the netlist data of the chip, wherein the plurality of Each of the evaluation results indicates the layout quality of the corresponding candidate layout, the netlist data at least indicates a plurality of first circuit cells and their connection relationships, and the plurality of first circuits in each candidate layout of the plurality of candidate layouts
- the arrangement process data of the unit is organized in a tree structure, and a plurality of candidate layouts correspond to leaf nodes of the tree structure; and a target layout selection module for selecting a target layout from the plurality of candidate layouts based on a plurality of evaluation results.
- the electronic device can obtain better exploration capabilities by using a tree structure to organize and record historical layout data associated with previously visited candidate layouts, and consider the historical layout data in the subsequent exploration of other candidate layouts, and can Find a layout scheme with a better evaluation result, so as to improve the layout quality.
- the multiple candidate layouts include an initial candidate layout and at least one optimized candidate layout
- the evaluation result determination module includes: an initial evaluation result determination module, configured to be based on a predetermined arrangement sequence of a plurality of first circuit units, and a netlist The data indicating the connection relationship of the plurality of first circuit units in the data determines the initial evaluation result associated with the initial candidate layout, wherein the predetermined arrangement order indicates the order in which the plurality of first circuit units are arranged according to a predetermined strategy; initial tree structure construction A module for constructing an initial tree structure based on the initial candidate placement and placement process data associated with the initial candidate placement; and an optimization evaluation result determination module for determining at least one based on the netlist data, the initial candidate placement, and the initial tree structure Optimization candidate layouts and at least one optimization evaluation result respectively associated with at least one optimization candidate layout.
- the electronic device may arrange the first circuit unit by considering historical layout data during the process of determining the optimized candidate layout, so as to determine the optimized candidate layout. Therefore, the exploration capability of the electronic device according to the present disclosure can be improved, and the possibility of finding an optimized candidate layout with a better evaluation result can be improved, thereby improving the layout quality.
- the optimization evaluation result determination module includes: a reference tree structure setting module, configured to set the initial tree structure as a reference tree structure; and a reference tree structure update module, configured to iteratively perform at least one of the following: based on a predetermined arrangement Order and reference tree structure, determine an optimization candidate layout; Based on the data indicating the connection relationship of a plurality of first circuit units in the netlist data, determine an optimization evaluation result associated with an optimization candidate layout; determine whether the layout termination condition is satisfied ; and if it is determined that the layout termination condition is not satisfied, based on the reference tree structure, an optimization candidate layout, and placement process data associated with an optimization candidate layout, constructing an optimization tree structure to update the reference tree structure.
- a reference tree structure setting module configured to set the initial tree structure as a reference tree structure
- a reference tree structure update module configured to iteratively perform at least one of the following: based on a predetermined arrangement Order and reference tree structure, determine an optimization candidate layout; Based on the data indicating the connection relationship of a plurality of first circuit units
- the reference tree structure updating module is further configured to: set one of the plurality of first circuit units as a unit to be arranged based on a predetermined arrangement order; iteratively perform the following at least once: based on the reference tree structure, the current layout of the chip and the unit to be arranged, and determine the updated layout of the chip, wherein the updated layout includes the layout of the first circuit unit that has been previously arranged in the unit to be arranged and a plurality of first circuit units; using the updated layout to update the current arrangement; determine whether there is at least one first circuit unit in the plurality of first circuit units that is not included in the current arrangement; and if it is determined that at least one first circuit unit in the plurality of first circuit units is not included in In the current arrangement, based on a predetermined arrangement sequence, the next first circuit unit among the plurality of first circuit units is set as the unit to be arranged.
- the reference tree structure update module is also used to determine the current arrangement of chips as an optimized candidate arrangement. In this way, the electronic device can consider historical layout data in the process of exploring other candidate layouts, obtain better exploration capabilities, and find a layout scheme with a better evaluation result, thereby improving layout quality.
- the reference tree structure update module is further configured to: determine a candidate arrangement set based on the current arrangement, and the candidate arrangement set includes at least one of the following items: a first candidate arrangement corresponding to a child node of the current arrangement, and by adding a second candidate arrangement obtained by the unit to be arranged to the current arrangement, wherein the second candidate arrangement is different from the first candidate arrangement; based on the reference tree structure, determining an evaluation set associated with the candidate arrangement set; and based on the evaluation set, selecting from the candidate arrangement Focus on selecting the update layout.
- the electronic device can consider historical layout data in the process of exploring other candidate layouts, obtain better exploration capabilities, and find a layout scheme with a better evaluation result, thereby improving layout quality.
- the reference tree structure update module is further configured to: calculate a first mean value of evaluation results of candidate layouts associated with the first candidate layout; determine a first weight based on the number of times the first candidate layout and the current layout are visited value; obtain a probability set associated with the set of candidate arrangements; and determine the evaluation set associated with the first candidate arrangement based on the first mean value, the first weighted value, and the first probability associated with the first candidate arrangement in the probability set A first evaluation, wherein the candidate layouts associated with the first candidate arrangement include candidate layouts corresponding to leaf nodes of the first candidate arrangement.
- the reference tree structure update module is further configured to: calculate the second mean value of the evaluation results of the candidate layouts corresponding to all the leaf nodes of the reference tree structure; weighted value; obtaining a probability set associated with the set of candidate arrangements; and based on a second mean value, a second weighted value, and a second probability associated with the second candidate arrangement in the probability set, determine the probability set associated with the second candidate arrangement in the evaluation set Union's second evaluation. Evaluating the second candidate arrangement that is not included in the current parameter tree structure in this way can make the first evaluation and the second evaluation comparable, thus helping to determine the best candidate arrangement by comparing the evaluation results of each candidate arrangement. suitable candidate placements, and increase the probability of finding optimized candidate placements with better evaluation results.
- the layout termination condition includes at least one of the following: the number of multiple candidate layouts reaches a predetermined number threshold; or the duration of iterations reaches a predetermined time threshold.
- the chip further includes at least one second circuit unit
- the netlist data also indicates the connection relationship between the at least one second circuit unit and a plurality of first circuit units
- the evaluation result determination module includes: a complete layout determination module, using Determining a complete layout associated with a candidate layout based on the netlist data and one of the plurality of candidate layouts, the complete layout at least indicating the arrangement and wiring of a plurality of first circuit cells and at least one second circuit cell; and a complete evaluation result determining module, configured to determine a complete evaluation result associated with the complete layout, so as to determine an evaluation result associated with a candidate layout among the plurality of evaluation results.
- the evaluation result of the candidate layout can be determined based on the final complete layout, so that the evaluation result can measure the quality of the candidate layout more accurately. This helps to improve the quality of the finalized target layout.
- the evaluation result is determined based on at least one of: line length, congestion, maximum delay, or total delay.
- an electronic device comprises: at least one computing unit; at least one memory, the at least one memory being coupled to the at least one computing unit and storing instructions for execution by the at least one computing unit, the instructions, when executed by the at least one computing unit, cause the device
- a method according to the first aspect of the present disclosure is performed.
- the electronic device can obtain better exploration capabilities by using a tree structure to organize and record historical layout data associated with previously visited candidate layouts, and consider the historical layout data in the subsequent exploration of other candidate layouts, and can Find a layout scheme with a better evaluation result, so as to improve the layout quality.
- a computer readable storage medium stores a computer program.
- the computer program implements the method according to the first aspect of the present disclosure when executed by a processor.
- a computer program product comprises computer-executable instructions which, when executed by a processor, cause a computer to implement the method according to the first aspect.
- Figure 1 shows a flow chart of the design and manufacture process of an integrated circuit
- Figure 2 shows a block diagram of an example environment according to some embodiments of the present disclosure
- Fig. 3 shows a schematic diagram of a tree structure for recording arrangement process data according to some embodiments of the present disclosure
- FIG. 4 shows a flowchart of a method for laying out a chip according to some embodiments of the present disclosure
- FIG. 5 shows a flowchart of a method for determining candidate layouts and their evaluation results according to some embodiments of the present disclosure
- FIG. 6 shows a flowchart of a method for determining an optimization candidate layout and an optimization evaluation result according to some embodiments of the present disclosure
- FIG. 7 shows a flowchart of a method for determining an optimized candidate layout according to some embodiments of the present disclosure
- Fig. 8 shows a schematic diagram of the process of constructing a tree structure according to some embodiments of the present disclosure
- Figure 9 shows a block diagram of an example apparatus for laying out chips according to some embodiments of the present disclosure.
- Figure 10 shows a schematic block diagram of an example device that may be used to implement some 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”.
- Macrocell layout is the first step in the layout phase, and its layout quality has a major impact on the final physical design index.
- Conventional macrocell layout schemes usually include the following two: first, with the help of an appropriate layout coding method, the macrocell arrangement is encoded as a sequence, and adjusted using a stochastic optimization method; second, the layout problem is transformed into a mathematical Planning problem, and the evaluation index of layout quality is modeled as a function, so as to use optimization algorithm to solve the layout problem.
- these two schemes each have corresponding problems.
- the first solution there are often limitations in macro-unit coding, such as the inability to reflect the area information of the macro-unit, etc., making it difficult to obtain a layout result with better quality.
- the general law of macro-unit layout is not considered, and macro-units can be arranged in the entire area to be laid out, so that the range to be explored is too large, making it difficult to obtain better-quality layout results.
- Embodiments of the present disclosure propose a scheme for laying out chips to address one or more of the above-mentioned problems and other potential problems.
- better exploration capabilities can be obtained by using a tree structure to organize and record historical layout data associated with previously visited candidate layouts, and considering the historical layout data in the subsequent exploration of other candidate layouts, And a layout scheme with a better evaluation result can be found, thereby improving the layout quality.
- FIG. 1 shows a flowchart of a design and manufacture process 100 for an integrated circuit.
- the design-to-manufacture process 100 begins with specification development 110 .
- the functional and performance requirements that the integrated circuit needs to meet are determined.
- circuit design 122 is first performed by means of EDA (electronic design automation, EDA) software.
- EDA electronic design automation
- the physical design 124 is performed to determine the layout and wiring of the circuit units in the integrated circuit, so as to obtain the circuit layout.
- mask fabrication 126 may be performed to obtain masks for forming the designed circuits on the wafer.
- stage of manufacturing 130 integrated circuits are formed on the wafer through processes such as photolithography, etching, ion implantation, thin film deposition, and polishing.
- stage of packaging 140 the wafer is cut to obtain bare chips, and the bare chips are packaged by bonding, welding, molding and other processes to obtain chips.
- the resulting chip is tested in a testing 150 stage to ensure that the performance of the finished chip meets the requirements established in specification 110 .
- the tested chips 160 can be delivered to customers.
- Physical design 124 mainly includes steps such as division, layout planning, layout, clock tree synthesis, and wiring, and involves evaluation indicators such as routability, delay, power consumption, area, and manufacturability. These evaluation indicators often need to be accurately obtained after the entire physical design 124 process is completed. Therefore, when the final evaluation index does not meet the design requirements, it is often necessary to return to the previous different physical design steps for iterative optimization. Conventional physical design processes often require multiple rounds of iterative evaluation, which is inefficient and time-consuming. Macrocell layout is the first step in the layout phase, and its layout quality has a significant impact on the final evaluation index. Therefore, it is expected to improve the automation degree and layout quality of macrocell layout, thereby shortening the physical design cycle and improving chip development efficiency.
- FIG. 2 shows a block diagram of an example environment 200 according to some embodiments of the present disclosure.
- example environment 200 may generally include electronic device 220 .
- the electronic device 220 may be a device having computing functions such as a personal computer, a workstation, a server, and the like. This disclosure does not limit this.
- Electronic device 220 takes as input netlist data 210 representing the circuits in the chip.
- the chip can include, for example, a plurality of first circuit units.
- the first circuit unit is a macro unit to be arranged.
- a "macro unit" refers to a predefined logic function realization unit composed of flip-flops, arithmetic logic units, etc., which have a higher abstraction level than logic gates.
- the first circuit unit may also be any other suitable circuit unit to be arranged. This disclosure does not limit this.
- the netlist data 210 may indicate a plurality of first circuit units included in the chip and connection relationships of these first circuit units. In some embodiments, the netlist data 210 may also indicate the area to be laid out of the chip, process parameters and other information. This disclosure does not limit this.
- netlist data 210 may be entered into electronic device 220 by a user. In some embodiments, the netlist data 210 may have been pre-stored in the electronic device 220 . In some embodiments, electronic device 220 may also be communicatively coupled to other devices to obtain netlist data 210 from other devices. This disclosure does not limit this.
- the electronic device 220 arranges the first circuit unit in the to-be-layout area of the chip based on the netlist data 210 to determine a candidate layout.
- the electronic device 220 organizes and records the determined candidate layouts and the layout process data used to obtain the candidate layouts in a tree structure 230 .
- the electronic device 220 may arrange the first circuit unit by considering the arrangement process data recorded in the tree structure 230 .
- the electronic device 220 selects the target layout 240 of the plurality of first circuit units from the candidate layouts based on the evaluation result of the candidate layouts. This will be described in detail below with reference to FIGS. 3 to 8 .
- FIG. 3 shows a schematic diagram of a tree structure 230 for recording arrangement process data according to some embodiments of the present disclosure.
- circuit unit 340 For the purpose of illustration and simplification, in the embodiment shown in FIG. circuit unit 340). It should be understood that the number of first circuit units 340 to be arranged may also be less than 3 or greater than 3, which is not limited in the present disclosure.
- the root node 310 of the tree structure 230 corresponds to a blank layout, ie, an area to be laid out in which the first circuit unit 340 has not been arranged yet.
- the four leaf nodes 330-1, 330-2, 330-3 and 330-4 (separately or collectively referred to as leaf nodes 330) included in the tree structure 230 in FIG. layout.
- “candidate layout” means a layout in which the arrangement manner of all the first circuit units 340 to be arranged has been determined.
- the nodes on the branches passed from the root node 310 to the leaf nodes 330 indicate an arrangement process for obtaining the layout candidates corresponding to the corresponding leaf nodes 330 .
- partial layout means a layout in which the arrangement manner of at least one of the first circuit units 340 to be arranged has not yet been determined.
- the electronic device 220 can organize and record the layout process data in an orderly manner, so that the previously recorded layout process data can be considered in the subsequent process of determining a new candidate layout, thereby improving the probability of obtaining a candidate layout with a better evaluation result. probability, thereby improving the layout quality. This will be further described in detail below with reference to FIGS. 4 to 8 .
- FIG. 4 shows a flowchart of a method 400 for laying out a chip according to some embodiments of the present disclosure.
- the method 400 may be executed by the electronic device 220 as shown in FIG. 2 . It should be appreciated that method 400 may also include additional blocks not shown and/or blocks shown may be omitted, and that the scope of the present disclosure is not limited in this regard.
- the electronic device 220 determines a plurality of evaluation results respectively associated with a plurality of candidate layouts of the plurality of first circuit units 340 in the chip based on the netlist data 210, wherein the netlist data 210 at least indicates the plurality of first The circuit units 340 and their connection relationships, the arrangement process data of the plurality of first circuit units 340 in each of the plurality of candidate layouts are organized in a tree structure 230, and the plurality of candidate layouts correspond to the leaves of the tree structure 230 Node 330.
- the electronic device 220 may arrange a plurality of first circuit units 340 in the area to be laid out of the chip based on the netlist data 210 to determine candidate layouts. This will be described in further detail below with reference to FIGS. 5 to 8 .
- the electronic device 220 can perform routing (routing) according to the data indicating the connection relationship of the plurality of first circuit units 340 in the netlist data 210, that is, connect the first circuit units 340 in the candidate layout with wires .
- the electronic device 220 can evaluate the candidate layout by means of evaluation indicators such as line length, congestion (congestion), maximum delay (worst negative slack, WNS) and total delay (total negative slack, TNS), to determine Evaluation results associated with candidate layouts.
- the electronic device 220 can determine the line length by calculating the total length of the lines connecting the first circuit unit 340, determine the congestion by calculating the line density in the area with the densest line density in the candidate layout, and determine the congestion by calculating the total length of the lines in the netlist. to determine the maximum delay and/or total delay.
- the electronic device 220 may determine the evaluation result based on the weighted sum of the line length, congestion, maximum delay, and total delay of the candidate layout. In this way, the quality of candidate layouts can be comprehensively evaluated from multiple dimensions, which helps to select the candidate layout with the best overall performance as the target layout. It should be understood that the electronic device 220 may also determine the evaluation result associated with the candidate layout based on any other suitable evaluation index. This disclosure does not limit this.
- the chip may further include at least one second circuit unit.
- the second circuit unit is a standard unit such as gate circuit and flip-flop.
- the netlist data 210 may further indicate the connection relationship between the second circuit unit and the first circuit unit 340
- the electronic device 220 may further determine the layout of the second circuit unit to determine the layout associated with the candidate layout. evaluation result.
- the electronic device 220 determines a complete layout associated with the candidate layout based on the netlist data 210 and the candidate layout, the complete layout at least indicating the arrangement and wiring of the plurality of first circuit units 340 and at least one second circuit unit.
- the electronic device 220 can arrange the second circuit unit based on the candidate layout, and perform routing based on the data indicating the connection relationship of each circuit unit in the netlist data 210, so as to determine the complete layout associated with the candidate layout. layout.
- the electronic device 220 can evaluate the complete layout by means of evaluation indicators such as line length, congestion, maximum delay, and total delay to determine the complete layout associated with the complete layout. evaluation result.
- the electronic device 220 may set the complete evaluation result of the complete layout as the evaluation result of the corresponding candidate layout. In this way, the electronic device 220 can determine the evaluation result of the candidate layout based on the final complete layout, so that the evaluation result can measure the quality of the candidate layout more accurately. This helps to improve the quality of the finalized target layout 240 .
- the electronic device 220 may determine a complete layout associated with the corresponding candidate layout, so as to determine the corresponding candidate layout according to the complete evaluation result of the complete layout. evaluation result.
- the electronic device 220 may also determine the evaluation results associated with the candidate layouts in any other suitable manner. This disclosure does not limit this.
- the electronic device 220 may organize the determined candidate layouts, evaluation results, and layout process data of the first circuit unit 340 according to the tree structure 230 shown in FIG. 3 .
- the candidate layouts, evaluation results, and layout process data of the first circuit unit 340 recorded in the tree structure 230 may be collectively referred to as historical layout data. It should be understood that historical placement data may also include additional items not listed and/or listed items may be omitted, and that the scope of the present disclosure is not limited in this regard.
- the electronic device 220 may select the layout of the first circuit unit 340 by considering the historical layout data. This will be described in further detail below with reference to FIGS. 5 to 8 . In this way, the method 400 can obtain better exploration capabilities, and can find a layout solution with a better evaluation result, thereby improving the layout quality.
- the electronic device 220 selects the target layout 240 from the plurality of candidate layouts based on the plurality of evaluation results.
- the electronic device 220 may select a candidate layout with the best evaluation result among multiple candidate layouts as the target layout 240 . It should be understood that the target layout 240 may also be selected in any other suitable manner. This disclosure does not limit this.
- the electronic device 220 may output the information of the target layout 240 for the user to use or further adjust the determined layout. In some embodiments, the electronic device 220 may provide the information of the target layout 240 as an input to other layout software or devices, so as to execute a subsequent design process. This disclosure does not limit this.
- FIG. 5 shows a flowchart of a method 500 for determining candidate layouts and their evaluation results according to some embodiments of the present disclosure.
- method 500 may be implemented as an example of block 402 as shown in FIG. 4 .
- the method 500 may be executed by the electronic device 220 as shown in FIG. 2 . It should be appreciated that method 500 may also include additional blocks not shown and/or blocks shown may be omitted, and that the scope of the present disclosure is not limited in this respect.
- the electronic device 220 determines the initial evaluation associated with the initial candidate layout based on the predetermined arrangement sequence of the plurality of first circuit units 340 and the data indicating the connection relationship of the plurality of first circuit units 340 in the netlist data 210 As a result, wherein the predetermined arrangement order indicates the order in which the plurality of first circuit units 340 are arranged according to a predetermined strategy.
- the electronic device 220 may arrange the plurality of first circuit units 340 to be arranged according to the data indicating the area of the first circuit unit 340 in the netlist data 210, for example, according to the area from the largest to the smallest, so as to determine the predetermined Arrangement order. Referring to the tree structure 230 shown in FIG. 3, for each layout, the electronic device 220 sequentially arranges the first circuit units 340-1, 340-2 and 340-3 in the area to be laid out in descending order of area .
- the electronic device 220 may also arrange the plurality of first circuit units 340 to be arranged according to the module division according to the information indicating the module to which the first circuit unit 340 belongs in the netlist data 210, so as to determine the predetermined Arrangement order. This disclosure does not limit this.
- the electronic device 220 may arrange the first circuit unit 340 to be arranged in the area to be laid out according to the aforementioned predetermined arrangement order, so as to determine an initial candidate layout.
- an "initial candidate layout" means the first candidate layout obtained during the layout process. In other words, before the initial candidate layout is obtained, no other candidate layouts and arrangement process data have been recorded in the tree structure 230 . Therefore, in the process of determining the initial candidate layout, the electronic device 220 does not consider the historical layout data since there is no historical layout data.
- the electronic device 220 may randomly arrange the first circuit units 340 to determine an initial candidate layout.
- the electronic device 220 may also arrange the first circuit unit 340 in any other suitable manner to determine the initial candidate layout. This disclosure does not limit this.
- the electronic device 220 may determine the initial evaluation result associated with the initial candidate layout in a manner similar to that described above in conjunction with FIG. 4 , which will not be repeated here.
- FIG. 8 shows a schematic diagram of a process 800 of constructing a tree structure according to some embodiments of the present disclosure.
- the electronic device 220 may construct an initial tree structure 810 - 1 by organizing the initial candidate layout and partial layouts used to obtain the initial candidate layout in a tree structure.
- the data of the leaf node 330-1 represent the initial candidate layout
- the data of the ancestor nodes 310, 320-1, 320-2 of the leaf node 330-1 respectively represent the Get a partial layout of the initial candidate layout.
- the electronic device 220 may also store an initial evaluation result associated with the initial candidate layout, eg, 1.2, together with the initial candidate layout at the leaf node 330-1. It should be understood that the electronic device 220 may also construct the initial tree structure 810-1 in any other suitable manner. This disclosure does not limit this.
- the electronic device 220 determines at least one optimized candidate layout and at least one optimized evaluation result respectively associated with the at least one optimized candidate layout based on the netlist data 210, the initial candidate layout and the initial tree structure 810-1.
- an "optimized candidate layout” means a candidate layout determined after an initial candidate layout during a layout process.
- historical layout data has been recorded in the tree structure 230 .
- the electronic device 220 may arrange the first circuit unit 340 by considering the historical arrangement data to determine an optimization candidate layout. This will be described in further detail below with reference to FIGS. 6 to 8 . In this way, the exploration capability of the solution according to the present disclosure can be improved, and the possibility of finding an optimized candidate layout with a better evaluation result can be improved, thereby improving the layout quality.
- FIG. 6 shows a flowchart of a method 600 for determining optimization candidate layouts and optimization evaluation results according to some embodiments of the present disclosure.
- method 600 may be implemented as an example of block 506 as shown in FIG. 5 .
- the method 600 may be executed by the electronic device 220 as shown in FIG. 2 . It should be appreciated that method 600 may also include additional blocks not shown and/or blocks shown may be omitted, and that the scope of the present disclosure is not limited in this regard.
- the electronic device 220 may set the initial tree structure 810-1 as a reference tree structure.
- the electronic device 220 may determine an optimal candidate layout based on the predetermined arrangement order and the reference tree structure. This will be described in further detail below with reference to FIGS. 7 to 8 .
- the electronic device 220 determines an optimization evaluation result associated with an optimization candidate layout based on the data indicating the connection relationship of the plurality of first circuit units 340 in the netlist data 210 .
- the electronic device 220 may determine the optimization evaluation result associated with the optimization candidate layout in a manner similar to that described above in conjunction with FIG. 4 , which will not be repeated here.
- the electronic device 220 determines whether a placement termination condition is satisfied.
- a chip often includes a large number of first circuit units 340 , for example hundreds of first circuit units 340 . Therefore, in the case of limited computing power, it is expected that it will take a long time to select the globally optimal candidate layout as the target layout 240 by exploring all possible candidate layouts of the first circuit unit 340 . Therefore, in some embodiments according to the present disclosure, when to end the exploration of the candidate layout is controlled by setting the layout termination condition. In other words, the electronic device 220 only explores a limited number of candidate layouts of the first circuit unit 340 to select a locally optimal candidate layout as the target layout 240 .
- the solution according to the present disclosure is also applicable to the case of exploring all possible candidate layouts of the first circuit unit 340 to select the globally optimal candidate layout as the target layout 240 . This disclosure does not limit this.
- the layout termination condition may include that the number of determined plurality of candidate layouts reaches a predetermined number threshold.
- the predetermined number threshold may be pre-entered by the user.
- a default value may be used for the predetermined number threshold. This disclosure does not limit this.
- the layout termination condition may include iteratively determining the optimization candidate layout and the duration of the optimization evaluation result reaching a predetermined time threshold.
- the predetermined time threshold may be pre-input by the user.
- the predetermined time threshold may adopt a default value. This disclosure does not limit this. By properly setting the predetermined time threshold, the layout efficiency and the quality of the target layout 240 can be taken into consideration, so that a layout result with better quality can be obtained with higher efficiency.
- the layout termination condition may also be set in any other suitable manner. This disclosure does not limit this.
- method 600 proceeds to block 610 .
- the electronic device 220 constructs an optimized tree structure to update the reference tree structure based on the reference tree structure, one optimized candidate layout, and placement process data associated with one optimized candidate layout.
- the electronics can construct an optimization tree structure 810 - 2 by adding optimization candidate layouts and their placement process data on the basis of the reference tree structure. In the optimized tree structure 810-2 shown in FIG.
- the data of the leaf node 330-2 represents a determined optimized candidate layout
- the data of the ancestor nodes 310, 320-1, 320-2 of the leaf node 330-2 Respectively denote partial layouts used to obtain the optimized candidate layout.
- the electronic device 220 may also store an optimization evaluation result associated with the optimized candidate layout, eg, 1.5, together with the optimized candidate layout at the leaf node 330-2. This disclosure does not limit this.
- the electronic device 220 can use the constructed optimized tree structure to update the current reference tree structure, so that in the subsequent process of determining another optimized candidate layout, all candidate layouts that have been explored before can be considered, so as to improve the finding and evaluation results.
- the likelihood of candidate layouts for are examples of candidate layouts for .
- method 600 returns to block 604, and the electronic device 220 continues to iteratively determine additional optimized candidate layouts and their optimized evaluation results in the manner described above. If at block 608 it is determined that the layout termination condition is met, then method 600 ends.
- FIG. 7 shows a flowchart of a method 700 for determining an optimization candidate layout according to some embodiments of the present disclosure.
- method 700 may be implemented as an example of block 604 as shown in FIG. 6 .
- the method 700 may be executed by the electronic device 220 as shown in FIG. 2 . It should be appreciated that method 700 may also include additional blocks not shown and/or blocks shown may be omitted, and that the scope of the present disclosure is not limited in this regard.
- the electronic device 220 sets one first circuit unit 340 among the plurality of first circuit units 340 as a unit to be arranged based on a predetermined arrangement order.
- the electronic device 220 sets the first circuit unit 340 - 1 having the largest area as a unit to be arranged in the predetermined arrangement order based on area as described above in connection with FIG. 5 .
- the electronic device 220 determines an updated arrangement of the chip based on the reference tree structure, the current arrangement of the chip, and the units to be arranged, wherein the updated arrangement includes the unit to be arranged and the previously arranged ones of the plurality of first circuit units 340 The layout of the first circuit unit 340 .
- the electronic device 220 determines the set of candidate arrangements based on the current arrangement of the chips. For example, the electronic device 220 may determine an unoccupied area in the area to be arranged according to the current arrangement, and determine at least one candidate position in which the unit to be arranged can be arranged according to the area information of the unit to be arranged, so as to determine that the at least one candidate A set of arrangements is also called a candidate arrangement set.
- the candidate arrangement associated with a candidate position may indicate: based on the current arrangement, an arrangement manner obtained by arranging the units to be arranged at the candidate position. It should be understood that the set of candidate arrangements may also be determined in any other suitable manner. This disclosure does not limit this.
- the current reference tree structure corresponds to the tree structure 810-2 shown in FIG. Arrangement in the manner indicated by -1, that is, the current arrangement of the chip corresponds to the node 320-1, and the unit to be arranged is the first circuit unit 340-2.
- the electronic device 220 may determine two possible different candidate layouts, wherein the first candidate layout corresponds to the part represented by the child node 320-2 of the current layout layout, and the second candidate layout corresponds to the partial layout represented by node 320-3. It should be noted that since the node 320-3 has not been used to represent the partial layout in the previous layout process, the node 320-3 represents that the partial layout has not been included in the tree structure 810-2 at this time.
- the electronic device 220 may determine an evaluation set associated with the candidate arrangement set based on the reference tree structure.
- the set of reviews includes a first review associated with a first candidate arrangement and a second review associated with a second candidate arrangement.
- the electronic device 220 may calculate the first evaluation based on the following formula (1):
- A represents the first candidate arrangement to be evaluated;
- R1(A) represents the first evaluation associated with the first candidate arrangement A;
- Q(A) represents the evaluation result of the candidate layout associated with the first candidate arrangement A
- the first mean value wherein the candidate layout associated with the first candidate arrangement A includes the candidate layout corresponding to the leaf node 330 of the first candidate arrangement A;
- c represents the exploration factor;
- P(A) represents that associated with the first candidate arrangement A
- N(A) represents the number of times the first candidate arrangement A is visited;
- N(S) represents the number of times the current arrangement is visited.
- the first candidate arrangement A corresponds to the partial layout represented by the child node 320-2 of the current arrangement
- Q(A) corresponds to the leaf node 330 of the first candidate arrangement A
- the average of the evaluation results 1.2 and 1.5 of the candidate layouts corresponding to -1 and 330-2 is 1.35
- N(A) corresponds to the number of times the first candidate layout A is visited, that is, the number of times node 320-2 is visited 2
- N(S ) corresponds to the number of times the current arrangement is visited, that is, the number of times node 340-1 is visited 2.
- the first mean value Q(A) indicates the average evaluation result of the candidate layouts previously obtained using the first candidate layout A, so that The average quality of the candidate layouts obtained by arrangement A.
- first weighted value Compensation may be made for candidate arrangements that have been visited less times before, so as to prevent the electronic device 220 from ignoring such candidate arrangements when selecting. Therefore, the first evaluation R1(A) enables the electronic device 220 to fully and comprehensively evaluate the first candidate layout A, thereby helping to determine the most suitable candidate layout, and improving the possibility of finding an optimized candidate layout with a better evaluation result .
- the exploration factor c is a constant and can be preset by the user. By setting a relatively large exploration factor c, a relatively large first weighted value can be obtained In this case, the candidate arrangement that has been visited less times before will get a relatively higher evaluation, so that the electronic device 220 is more inclined to use the candidate arrangement that has been visited less times before, that is, it is more inclined to explore new candidate arrangements. layout.
- the exploration factor may adopt a default value. This disclosure does not limit this.
- the electronic device 220 may obtain the probability set associated with the candidate arrangement set based on the current arrangement. In some embodiments, the electronic device 220 may determine the probability set by means of a neural network.
- the electronic device 220 takes information such as the netlist data 210 , the current arrangement and the units to be arranged as the input of the neural network.
- the neural network encodes the input data to generate an embedding (embedding), and encodes the generated embedding, and outputs the candidate arrangement set through a subnetwork composed of a deconvolution layer and a batch normalization layer included in the neural network.
- Associated set of probabilities The first probability P(A) in the set of probabilities indicates the probability that a corresponding first candidate arrangement A in the set of candidate arrangements is selected.
- the electronic device 220 can also train the neural network by means of a reinforcement learning algorithm, so as to improve the prediction performance of the neural network.
- the reward used in the reinforcement learning can also be determined based on the aforementioned evaluation indicators such as line length, congestion, maximum delay, and total delay.
- the electronic device 220 may also determine the probability set associated with the candidate arrangement set in any other suitable manner, which is not limited in the present disclosure.
- the first probability P(A) in formula (1) may also be omitted, that is, the first probability P(A) is not an essential element of the solution according to the present disclosure.
- the electronic device 220 may calculate the second evaluation based on the following formula (2):
- B represents the second candidate arrangement to be evaluated
- R2(B) represents the second evaluation associated with the second candidate arrangement B
- T(B) represents the evaluation of the candidate layouts corresponding to all leaf nodes 330 of the reference tree structure
- the second mean of the results c represents the exploration factor
- P(B) represents the second probability associated with the second candidate arrangement B
- N(B) represents the number of times the second candidate arrangement B is visited
- N(S) represents The number of times the current layout was accessed. Since the second candidate arrangement B is not included in the current parameter tree structure, in other words, the number N(B) of the second candidate arrangement B being visited is always 0. Therefore, Equation (2) can be simplified to Equation (3) below.
- T(B) corresponds to all the leaf nodes 330-1 and 330 of the current parameter tree structure
- the mean of the evaluation results 1.2 and 1.5 of -2 is 1.35;
- N(S) corresponds to the number of times the current arrangement is visited, that is, the number 2 of node 340-1 being visited.
- the second mean value T(B) is used in formula (2) to replace the first mean value Q(A) in formula (1), and the second mean value T(B) indicates all candidate layouts previously determined Average evaluation result.
- the second mean value T(B) may also be set in any other suitable manner, for example, set as the average evaluation result of the five recently determined candidate layouts. This disclosure does not limit this. In this way, the first evaluation and the second evaluation can be made comparable, which helps to determine the most suitable candidate layout by comparing the evaluation results of each candidate layout, and improves the efficiency of finding optimized candidate layouts with better evaluation results. possibility.
- second weighted value Compensation may be performed for the second candidate arrangement B that has not been visited, so as to prevent the electronic device 220 from ignoring the second candidate arrangement B during selection. Therefore, the second evaluation R2(B) enables the electronic device 220 to fully and comprehensively evaluate the second candidate arrangement, thereby helping to determine the most suitable candidate arrangement.
- the exploration factor c and the second probability P(B) in the formula (3) can be determined in a manner similar to that described above with reference to the formula (1), and details are not repeated here. By properly setting the exploration factor c, an appropriate balance can be achieved between exploring new candidate arrangements and utilizing known candidate arrangements.
- the second probability P(B) in the formulas (2) and (3) can also be omitted, that is, the second probability P(B) is not an essential element of the solution according to the present disclosure.
- the electronic device 220 may select an update arrangement from the set of candidate arrangements based on the evaluation set associated with the set of candidate arrangements determined in the above-described manner. In some embodiments, the electronic device 220 may select the candidate arrangement with the highest evaluation in the candidate arrangement set as the update arrangement. In some embodiments, the electronic device 220 may also convert the evaluation of each candidate arrangement into a probability of selecting the corresponding candidate arrangement according to the evaluation level of each candidate arrangement, and extract a candidate arrangement as an updated arrangement based on the converted probability. The higher the probability corresponding to a candidate arrangement is, the greater the possibility that the candidate arrangement is extracted.
- the solution according to the present disclosure can have better exploration capabilities, and increase the possibility of finding candidate layouts with better evaluation results, thereby improving layout quality.
- the update arrangement may also be selected in any other suitable manner, such as based on a depth-first search or a heuristic search. This disclosure does not limit this.
- the electronic device 220 updates the current arrangement with the updated arrangement.
- the current arrangement may be updated as the candidate arrangement corresponding to the node 320-3.
- the electronic device 220 determines whether there is at least one first circuit unit 340 among the plurality of first circuit units 340 that is not included in the current arrangement. In other words, the electronic device 220 judges whether the arrangement of all the first circuit units 340 has been completed. If it is determined that at least one first circuit unit 340 of the plurality of first circuit units 340 is not included in the current arrangement, the method 700 proceeds to block 710 . In block 710 , the electronic device 220 sets a next first circuit unit 340 among the plurality of first circuit units 340 as a unit to be arranged based on a predetermined arrangement order.
- the current arrangement is the candidate arrangement corresponding to the node 320-3, according to the predetermined arrangement sequence based on the area as described above in conjunction with FIG.
- the circuit unit 340-3 is set as a unit to be arranged. Then, the method 700 returns to block 704, and the electronic device 220 continues to iteratively determine the updated arrangement of chips in the manner described above.
- the method 700 proceeds to block 712 .
- the electronic device 220 determines the current arrangement of chips as an optimal candidate placement. Exemplarily, if the current arrangement is the arrangement corresponding to the node 330-3, the electronic device 220 determines that all three first circuit units 340-1, 340-2 and 340-3 have been included in the current arrangement. Therefore, the electronic device 220 may determine the arrangement corresponding to the node 330-3 as an optimized candidate arrangement. In a manner similar to that described with reference to FIG. 6 , the electronic device 220 can add the optimized candidate layout and its arrangement process data to the reference tree structure 810-2 to construct an optimized tree structure 810-3.
- the method for laying out a chip according to the present disclosure can use a tree structure to organize and record historical arrangements associated with previously visited candidate layouts during the layout process. Data, by considering historical layout data in the subsequent process of exploring other candidate layouts, the method can have better exploration capabilities, and can find layout schemes with better evaluation results, thereby improving the layout quality.
- Example implementations of the method according to the present disclosure have been described in detail above with reference to FIGS. 2 to 8 , and implementations of corresponding devices will be described below.
- FIG. 9 shows a block diagram of an example apparatus 900 for laying out chips according to some embodiments of the present disclosure.
- the chip includes a plurality of first circuit units.
- the apparatus 900 can be used, for example, to implement electronic equipment as shown in FIG. 2 .
- the apparatus 900 may include an evaluation result determining module 902, which is configured to determine multiple candidate layouts of the multiple first circuit units in the chip based on the netlist data. an evaluation result, wherein the netlist data at least indicates a plurality of first circuit units and connection relationships thereof, the placement process data of the plurality of first circuit units in each of the plurality of candidate layouts is organized in a tree structure, and The plurality of candidate layouts correspond to leaf nodes of the tree structure.
- the apparatus 900 may further include a target layout selection module 904, configured to select a target layout from multiple candidate layouts based on multiple evaluation results.
- the plurality of candidate layouts may include an initial candidate layout and at least one optimized candidate layout.
- the evaluation result determination module 902 may include an initial evaluation result determination module for determining the initial evaluation result based on the predetermined arrangement order of the plurality of first circuit units and data indicating the connection relationship of the plurality of first circuit units in the netlist data. , determining an initial evaluation result associated with an initial candidate layout, wherein the predetermined arrangement order indicates an order in which the plurality of first circuit units are arranged according to a predetermined strategy.
- the evaluation result determination module 902 may further include an initial tree structure construction module configured to construct an initial tree structure based on the initial candidate layout and the arrangement process data associated with the initial candidate layout.
- the evaluation result determination module 902 may also include an optimization evaluation result determination module, which is used to determine at least one optimization candidate layout and at least one optimization candidate layout based on the netlist data, the initial candidate layout and the initial tree structure. At least one optimization evaluation result associated respectively.
- the optimization evaluation result determination module may include a reference tree structure setting module, configured to set the initial tree structure as the reference tree structure.
- the optimization evaluation result determination module can also include a reference tree structure update module, which is used to iteratively perform the following at least once: based on a predetermined arrangement order and a reference tree structure, determine an optimal candidate layout; based on a plurality of first circuit units indicated in the netlist data to determine the optimization evaluation result associated with an optimization candidate layout; determine whether the layout termination condition is satisfied; and if it is determined that the layout termination condition is not satisfied, based on the reference tree structure, an optimization candidate layout and an optimization
- the layout process data associated with the candidate layouts is used to build an optimized tree structure to update the reference tree structure.
- the reference tree structure update module is further used to: set one of the plurality of first circuit units as a unit to be arranged based on a predetermined arrangement sequence; iteratively perform the following at least once: based on the reference tree structure, the current layout of the chip and the unit to be arranged, and determine the updated layout of the chip, wherein the updated layout includes the layout of the first circuit unit that has been previously arranged in the unit to be arranged and a plurality of first circuit units; using the updated layout to update the current arrangement; determine whether there is at least one first circuit unit in the plurality of first circuit units that is not included in the current arrangement; and if it is determined that at least one first circuit unit in the plurality of first circuit units is not included in In the current arrangement, based on a predetermined arrangement order, setting the next first circuit unit among the plurality of first circuit units as the unit to be arranged; and determining the current arrangement of the chip as an optimized candidate layout.
- the reference tree structure update module is further used to: determine a candidate arrangement set based on the current arrangement, the candidate arrangement set includes at least one of the following items: a first candidate arrangement corresponding to a child node of the current arrangement, and by adding a second candidate arrangement obtained by the unit to be arranged to the current arrangement, wherein the second candidate arrangement is different from the first candidate arrangement; based on the reference tree structure, determining an evaluation set associated with the candidate arrangement set; and based on the evaluation set, selecting from the candidate arrangement Focus on selecting the update layout.
- the reference tree structure update module is further configured to: calculate a first mean value of evaluation results of candidate layouts associated with the first candidate layout; determine a first weight based on the number of times the first candidate layout and the current layout are visited value; obtain a probability set associated with the set of candidate arrangements; and determine the evaluation set associated with the first candidate arrangement based on the first mean value, the first weighted value, and the first probability associated with the first candidate arrangement in the probability set A first evaluation, wherein the candidate layouts associated with the first candidate arrangement include candidate layouts corresponding to leaf nodes of the first candidate arrangement.
- the reference tree structure update module is further used to: calculate the second mean value of the evaluation results of the candidate layouts corresponding to all the leaf nodes of the reference tree structure; weighted value; obtaining a probability set associated with the set of candidate arrangements; and based on a second mean value, a second weighted value, and a second probability associated with the second candidate arrangement in the probability set, determine the probability set associated with the second candidate arrangement in the evaluation set Union's second evaluation.
- the layout termination condition includes at least one of the following: the number of multiple candidate layouts reaches a predetermined number threshold; and the duration of iterations reaches a predetermined time threshold.
- the chip may further include at least one second circuit unit.
- the netlist data may also indicate the connection relationship between the at least one second circuit unit and the plurality of first circuit units.
- the evaluation result determination module 902 may include a complete layout determination module, configured to determine a complete layout associated with a candidate layout based on the netlist data and a candidate layout among the multiple candidate layouts, the complete layout indicating at least a plurality of first circuit units and the arrangement and wiring of at least one second circuit unit.
- the evaluation result determining module 902 may further include a complete evaluation result determining module, configured to determine a complete evaluation result associated with a complete layout, so as to determine an evaluation result associated with a candidate layout among multiple evaluation results.
- the evaluation result is determined based on at least one of: line length, congestion, maximum delay or total delay.
- the modules and/or units included in the device 900 may be implemented in various ways, including software, hardware, firmware or any combination thereof.
- one or more units may be implemented using software and/or firmware, such as machine-executable instructions stored on a storage medium.
- some or all of the units in apparatus 900 may be at least partially implemented by one or more hardware logic components.
- Exemplary types of hardware logic components include, by way of example and not limitation, Field Programmable Gate Arrays (FPGAs), Application Specific Integrated Circuits (ASICs), Application Specific Standard Products (ASSPs), System on Chips (SOCs), Complex Programmable Logic Devices (CPLD), and so on.
- modules and/or units shown in FIG. 9 may be implemented in part or in whole as hardware modules, software modules, firmware modules or any combination thereof.
- the procedures, methods or processes described above may be implemented by hardware in the storage system or a host corresponding to the storage system or other computing devices independent of the storage system.
- Fig. 10 shows a schematic block diagram of an example device 1000 that may be used to implement some embodiments of the present disclosure.
- the device 1000 may be used to implement an electronic device.
- device 1000 includes a central processing unit (CPU) 1001 that can execute instructions according to computer program instructions stored in read only memory (ROM) 1002 or loaded from storage unit 1008 into random access memory (RAM) 1003. computer program instructions to perform various appropriate actions and processes.
- ROM read only memory
- RAM random access memory
- the CPU 1001, ROM 1002, and RAM 1003 are connected to each other via a bus 1004.
- An input/output (I/O) interface 1005 is also connected to the bus 1004 .
- I/O input/output
- the I/O interface 1005 includes: an input unit 1006, such as a keyboard, a mouse, etc.; an output unit 1007, such as various types of displays, speakers, etc.; a storage unit 1008, such as a magnetic disk, an optical disk, etc. ; and a communication unit 1009, such as a network card, a modem, a wireless communication transceiver, and the like.
- the communication unit 1009 allows the device 1000 to exchange information/data with other devices through a computer network such as the Internet and/or various telecommunication networks.
- the processing unit 1001 executes various methods and processes described above, such as the method 400 .
- method 400 may be implemented as a computer software program tangibly embodied on a machine-readable medium, such as storage unit 1008 .
- part or all of the computer program may be loaded and/or installed on the device 1000 via the ROM 1002 and/or the communication unit 1009.
- the CPU 1001 may be configured to execute the method 400 in any other suitable manner (for example, by means of firmware).
- FPGA field programmable gate array
- ASIC application specific integrated circuit
- ASSP application specific standard product
- SOC system on a chip
- CPLD load programmable logic device
- Program codes for implementing the methods of the present disclosure may be written in any combination of one or more programming languages. These program codes can be provided to a processor or controller of a general-purpose computer, a special purpose computer, or other programmable data processing devices, so that the program codes, when executed by the processor or controller, make the functions/functions specified in the flow diagrams and/or block diagrams Action is implemented.
- the program code may execute entirely on the machine, partly on the machine, as a stand-alone software package partly on the machine and partly on a remote machine or entirely on the remote machine or server.
- a machine-readable medium may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device.
- a machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium.
- a machine-readable medium may include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing.
- machine-readable storage media would include one or more wire-based electrical connections, portable computer discs, hard drives, random access memory (RAM), read only memory (ROM), erasable programmable read only memory (EPROM or flash memory), optical fiber, compact disk read only memory (CD-ROM), optical storage, magnetic storage, or any suitable combination of the foregoing.
- RAM random access memory
- ROM read only memory
- EPROM or flash memory erasable programmable read only memory
- CD-ROM compact disk read only memory
- magnetic storage or any suitable combination of the foregoing.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Architecture (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
L'invention concerne un procédé de placement dans une puce, ainsi qu'un dispositif, un support et un produit programme. Selon le procédé, une structure arborescente peut être utilisée pendant un processus de placement pour organiser et enregistrer des données de placement historiques qui ont été précédemment évaluées et sont associées à des placements candidats ; et au moyen de la prise en compte des données de placement historiques pendant un processus ultérieur d'exploration d'autres placements candidats, le procédé peut avoir une meilleure capacité d'exploration, et un schéma de placement ayant un meilleur résultat d'évaluation peut être trouvé, ce qui permet d'améliorer la qualité de placement.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202180101596.2A CN117940931A (zh) | 2021-09-10 | 2021-09-10 | 用于对芯片进行布局的方法、设备、介质以及程序产品 |
PCT/CN2021/117822 WO2023035250A1 (fr) | 2021-09-10 | 2021-09-10 | Procédé de placement dans une puce, et dispositif, support et produit programme |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/117822 WO2023035250A1 (fr) | 2021-09-10 | 2021-09-10 | Procédé de placement dans une puce, et dispositif, support et produit programme |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023035250A1 true WO2023035250A1 (fr) | 2023-03-16 |
Family
ID=85506994
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2021/117822 WO2023035250A1 (fr) | 2021-09-10 | 2021-09-10 | Procédé de placement dans une puce, et dispositif, support et produit programme |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117940931A (fr) |
WO (1) | WO2023035250A1 (fr) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116663483A (zh) * | 2023-07-31 | 2023-08-29 | 全芯智造技术有限公司 | 用于芯片排版的方法、设备和介质 |
CN117195821A (zh) * | 2023-11-08 | 2023-12-08 | 深圳鸿芯微纳技术有限公司 | 时钟树综合方法、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060150092A1 (en) * | 2003-09-30 | 2006-07-06 | Atkins C B | Arranging graphic objects on pages |
CN101339571A (zh) * | 2007-11-01 | 2009-01-07 | 复旦大学 | 一种vlsi布局规划中集中约束的实现方法 |
CN101369294A (zh) * | 2008-10-16 | 2009-02-18 | 复旦大学 | SoC布局的平面布图规划方法 |
CN101796538A (zh) * | 2007-06-27 | 2010-08-04 | 惠普开发有限公司 | 以基于相对面积的控制在页面上布置图形对象 |
CN111950225A (zh) * | 2020-08-13 | 2020-11-17 | 京东方科技集团股份有限公司 | 一种芯片布局方法、装置、存储介质和电子设备 |
-
2021
- 2021-09-10 WO PCT/CN2021/117822 patent/WO2023035250A1/fr active Application Filing
- 2021-09-10 CN CN202180101596.2A patent/CN117940931A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060150092A1 (en) * | 2003-09-30 | 2006-07-06 | Atkins C B | Arranging graphic objects on pages |
CN101796538A (zh) * | 2007-06-27 | 2010-08-04 | 惠普开发有限公司 | 以基于相对面积的控制在页面上布置图形对象 |
CN101339571A (zh) * | 2007-11-01 | 2009-01-07 | 复旦大学 | 一种vlsi布局规划中集中约束的实现方法 |
CN101369294A (zh) * | 2008-10-16 | 2009-02-18 | 复旦大学 | SoC布局的平面布图规划方法 |
CN111950225A (zh) * | 2020-08-13 | 2020-11-17 | 京东方科技集团股份有限公司 | 一种芯片布局方法、装置、存储介质和电子设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116663483A (zh) * | 2023-07-31 | 2023-08-29 | 全芯智造技术有限公司 | 用于芯片排版的方法、设备和介质 |
CN116663483B (zh) * | 2023-07-31 | 2023-10-20 | 全芯智造技术有限公司 | 用于芯片排版的方法、设备和介质 |
CN117195821A (zh) * | 2023-11-08 | 2023-12-08 | 深圳鸿芯微纳技术有限公司 | 时钟树综合方法、电子设备及存储介质 |
CN117195821B (zh) * | 2023-11-08 | 2024-02-23 | 深圳鸿芯微纳技术有限公司 | 时钟树综合方法、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117940931A (zh) | 2024-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7520995B2 (ja) | ニューラルネットワークを使った集積回路配置の生成 | |
WO2023035250A1 (fr) | Procédé de placement dans une puce, et dispositif, support et produit programme | |
JP3404532B2 (ja) | 最適フィッティングパラメータ決定方法および装置、並びに最適フィッティングパラメータ決定プログラム | |
CN103455654B (zh) | 基于机器学习的数据路径提取 | |
CN114861576B (zh) | 超导量子芯片版图的仿真方法及装置、电子设备和介质 | |
US8160858B2 (en) | Systems and methods of efficient library characterization for integrated circuit cell libraries | |
JP2891328B2 (ja) | 多重レベル階層回路設計用の遅延時間値生成の方法 | |
KR101013309B1 (ko) | 회로 설계에서의 회로 소자의 귀납적 클러스터링 | |
TWI808846B (zh) | 用於半導體設計與製造的統一材料至系統模擬、設計與驗證 | |
CN114730618A (zh) | 用于设计期望有机分子的有机合成途径的系统和方法 | |
US20090307636A1 (en) | Solution efficiency of genetic algorithm applications | |
US9852250B2 (en) | Memory optimization in VLSI design using generic memory models | |
CN103793546A (zh) | 利用统计定时对多图案变化性建模 | |
Lu et al. | On advancing physical design using graph neural networks | |
JP6219528B2 (ja) | シミュレーションシステム、及びシミュレーション方法 | |
Shrestha et al. | Graph representation learning for parasitic impedance prediction of the interconnect | |
Cao et al. | A timing prediction framework for wide voltage design with data augmentation strategy | |
WO2023060551A1 (fr) | Procédé d'optimisation de circuit logique, dispositif, support et produit-programme | |
US12124782B1 (en) | Machine learning-enabled estimation of path-based timing analysis based on graph-based timing analysis | |
Jain et al. | Artificial Neural Network Based Post-CTS QoR Report Prediction | |
CN116362167A (zh) | 用于设计电路的方法、装置、设备、介质以及程序产品 | |
Aghaeekiasaraee | An Efficient Cooperation between Routing and Placement with Technology Node Constraints. | |
JP7573628B2 (ja) | 半導体の設計と製造のための材料からシステムまで統合されたシミュレーション及び検証 | |
Zhu et al. | Timing-Driven Obstacle-Avoiding X-Architecture Steiner Minimum Tree Algorithm With Slack Constraints | |
Lu et al. | GAN-Place: Advancing Open Source Placers to Commercial-quality Using Generative Adversarial Networks and Transfer Learning |
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: 21956433 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 202180101596.2 Country of ref document: CN |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 21956433 Country of ref document: EP Kind code of ref document: A1 |