WO2023035250A1 - Method for placement in chip, and device, medium and program product - Google Patents

Method for placement in chip, and device, medium and program product Download PDF

Info

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
Application number
PCT/CN2021/117822
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 CN202180101596.2A priority Critical patent/CN117940931A/en
Priority to PCT/CN2021/117822 priority patent/WO2023035250A1/en
Publication of WO2023035250A1 publication Critical patent/WO2023035250A1/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 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

A method for a placement in a chip, and a device, a medium and a program product. According to the method, a tree structure may be used during a placement process to organize and record historical placement data which has previously been assessed and is associated with candidate placements; and by means of taking the historical placement data into consideration during a subsequent process of exploring other candidate placements, the method can have a better exploration capability, and a placement scheme with a better evaluation result can be found, thereby improving the placement quality.

Description

用于对芯片进行布局的方法、设备、介质以及程序产品Method, device, medium and program product for laying out chips 技术领域technical field
本公开的实施例总体上涉及芯片设计领域,更具体地涉及用于对芯片进行布局的方法、设备、介质以及程序产品。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.
背景技术Background technique
在集成电路(Integrated Circuit,IC)芯片设计中,物理设计是将门级网表转化成几何版图的过程。物理设计主要包括划分、版图规划、布局、时钟树综合、布线等步骤,其中布局是物理设计前期的重要步骤。布局主要确定芯片中的电路单元的摆放位置,并且可以进一步细分为宏单元布局(Macro Placement,MP)、总体布局以及详细布局。In integrated circuit (Integrated Circuit, IC) chip design, physical design is the process of converting gate-level netlist into geometric layout. Physical design mainly includes steps such as division, layout planning, layout, clock tree synthesis, and wiring, among which layout is an important step in the early stage of physical design. 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.
目前,常规的MP工具布局质量较差,并且在可布线性、时延等指标上无法满足自动化MP需求。在常规的MP阶段中,仍然主要依靠后端工程师依据经验来进行人工布局。这使得整个MP阶段耗时较长且效率较低,并且导致物理设计周期较长,芯片开发效率降低。At present, the layout quality of conventional MP tools is poor, and cannot meet the requirements of automated MP in terms of routability, delay and other indicators. In the conventional MP stage, the back-end engineers are still mainly relied on for manual layout based on experience. This makes the entire MP stage time-consuming and inefficient, and leads to a longer physical design cycle and lower chip development efficiency.
发明内容Contents of the invention
鉴于上述问题,本公开的实施例旨在提供一种用于对芯片进行布局的方案。In view of the above problems, embodiments of the present disclosure aim to provide a solution for laying out chips.
根据本公开的第一方面,提供了一种用于对芯片进行布局的方法,该方法包括:基于芯片的网表数据,确定与芯片中的多个第一电路单元在芯片中的多个候选布局分别相关联的多个评估结果,其中多个评估结果中的每个评估结果指示相应的候选布局的布局质量,网表数据至少指示多个第一电路单元及其连接关系,多个候选布局中的每个候选布局中的多个第一电路单元的布置过程数据以树结构被组织,并且多个候选布局对应于树结构的叶节点;以及基于多个评估结果,从多个候选布局选择目标布局。该方法通过使用树结构来组织和记录与先前访问过的候选布局相关联的历史布置数据,并且在后续探索其它候选布局的过程中考虑历史布置数据,可以获得更好的探索能力,并且能够找到评估结果较好的布局方案,从而提升布局质量。According to a first aspect of the present disclosure, there is provided a method for laying out a chip, the method 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. By using a tree structure to organize and record the historical layout data associated with previously visited candidate layouts, and considering the historical layout data in the subsequent exploration of other candidate layouts, 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.
在一些实现方式中,多个候选布局包括初始候选布局和至少一个优化候选布局,确定多个评估结果包括:基于多个第一电路单元的预定布置顺序、以及网表数据中指示多个第一电路单元的连接关系的数据,确定与初始候选布局相关联的初始评估结果,其中预定布置顺序指示多个第一电路单元根据预定策略被布置的顺序;基于初始候选布局和与初始候选布局相关联的布置过程数据,构建初始树结构;以及基于网表数据、初始候选布局和初始树结构,确定至少一个优化候选布局和与至少一个优化候选布局分别相关联的至少一个优化评估结果。通过这种方式,可以在确定优化候选布局的过程中,通过考虑历史布置数据来布置第一电路单元,以确定优化候选布局。由此,可以提升根据本公开的方法的探索能力,并且可以提高找到评估结果较好的优化候选布局的可能性,从而提升布局质量。In some implementations, the multiple candidate layouts include an initial candidate layout and at least one optimized candidate layout, and 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. In this way, 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.
在一些实现方式中,确定至少一个优化候选布局和至少一个优化评估结果包括:将初始树结构设置为参考树结构;以及迭代地执行以下至少一次:基于预定布置顺序和参考树结构,确定一个优化候选布局;基于网表数据中指示多个第一电路单元的连接关系 的数据,确定与一个优化候选布局相关联的优化评估结果;确定布局终止条件是否被满足;以及如果确定布局终止条件未被满足,基于参考树结构、一个优化候选布局和与一个优化候选布局相关联的布置过程数据,构建优化树结构以更新参考树结构。在这样的实现方式中,通过设置布局终止条件来控制何时结束对候选布局的探索。通过这种方式,可以在布局效率与目标布局的质量之间取得适当的平衡,从而实现以较高的效率获得质量较好的布局结果。In some implementations, 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. In such an implementation manner, 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.
在一些实现方式中,确定一个优化候选布局包括:基于预定布置顺序,将多个第一电路单元中的一个第一电路单元设置为待布置单元;迭代地执行以下至少一次:基于参考树结构、芯片的当前布置和待布置单元,确定芯片的更新布置,其中更新布置包含待布置单元和多个第一电路单元中的、先前已经被布置的第一电路单元的布置方式;利用更新布置来更新当前布置;确定多个第一电路单元中是否存在至少一个第一电路单元未被包含在当前布置中;以及如果确定多个第一电路单元中的至少一个第一电路单元未被包含在当前布置中,基于预定布置顺序,将多个第一电路单元中的下一个第一电路单元设置为待布置单元。确定一个优化候选布局还包括将芯片的当前布置确定为一个优化候选布局。通过这种方式,可以在探索其它候选布局的过程中考虑历史布置数据,可以获得更好的探索能力,并且能够找到评估结果较好的布局方案,从而提升布局质量。In some implementations, 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.
在一些实现方式中,确定更新布置包括:基于当前布置,确定候选布置集,候选布置集包括以下项中至少一项:与当前布置的子节点对应的第一候选布置、以及通过向当前布置添加待布置单元得到的第二候选布置,其中第二候选布置与第一候选布置不同;基于参考树结构,确定与候选布置集相关联的评价集;以及基于评价集,从候选布置集中选择更新布置。通过这种方式,可以在探索其它候选布局的过程中考虑历史布置数据,可以获得更好的探索能力,并且能够找到评估结果较好的布局方案,从而提升布局质量。In some implementations, 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 . 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.
在一些实现方式中,确定与候选布置集相关联的评价集包括:计算与第一候选布置相关联的候选布局的评估结果的第一均值;基于第一候选布置和当前布置被访问的次数确定第一加权值;获取与候选布置集相关联的概率集;以及基于第一均值、第一加权值以及概率集中与第一候选布置相关联的第一概率,确定评价集中的与第一候选布置相关联的第一评价,其中与第一候选布置相关联的候选布局包括与第一候选布置的叶节点对应的候选布局。通过这种方式来评价包含在当前的参数树结构中的第一候选布置,可以实现对第一候选布置的充分且全面的评估,从而有助于确定最合适的候选布置,并且提高找到评估结果较好的优化候选布局的可能性。In some implementations, 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. By evaluating the first candidate arrangement included in the current parameter tree structure in this way, a sufficient and comprehensive evaluation of the first candidate arrangement can be achieved, thereby helping to determine the most suitable candidate arrangement, and improving the evaluation results. Possibility of better optimizing candidate layouts.
在一些实现方式中,确定与候选布置集相关联的评价集包括:计算与参考树结构的所有叶节点对应的候选布局的评估结果的第二均值;基于与当前布置对应的节点被访问的次数确定第二加权值;获取与候选布置集相关联的概率集;以及基于第二均值、第二加权值、以及概率集中与第二候选布置相关联的第二概率,确定评价集中的与第二候选布置相关联的第二评价。通过这种方式来评价不包含在当前的参数树结构中的第二候选布置,可以使得第一评价与第二评价具有可比较性,从而有助于通过比较各个候选布置的评估结果来确定最合适的候选布置,并且提高找到评估结果较好的优化候选布局的可能性。In some implementations, 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.
在一些实现方式中,布局终止条件包括以下至少一项:多个候选布局的数目达到预定数目阈值;或者迭代的持续时间达到预定时间阈值。通过适当设置的预定数目阈值和/ 或预定时间阈值,可以兼顾布局效率与目标布局的质量,从而实现以较高的效率获得质量较好的布局结果。In some implementations, 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. By appropriately setting the predetermined number threshold and/or the predetermined time threshold, the layout efficiency and the quality of the target layout can be balanced, so as to obtain a layout result of better quality with higher efficiency.
在一些实现方式中,芯片还包括至少一个第二电路单元,网表数据还指示至少一个第二电路单元和多个第一电路单元的连接关系,确定多个评估结果包括:基于网表数据和多个候选布局中的一个候选布局,确定与一个候选布局相关联的完整布局,完整布局至少指示多个第一电路单元和至少一个第二电路单元的布置和连线;以及确定与完整布局相关联的完整评估结果,以确定多个评估结果中的、与一个候选布局相关联的评估结果。通过这种方式,可以基于最终的完整布局来确定候选布局的评估结果,从而使得评估结果可以更准确地衡量候选布局的质量。这有助于提高最终确定的目标布局的质量。In some implementations, the chip further includes at least one second circuit unit, and the netlist data also indicates the connection relationship between the at least one second circuit unit and the plurality of first circuit units, and 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. In this way, 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.
在一些实现方式中,评估结果基于以下至少一项而被确定:线长、拥塞、最大时延或总时延。借助于这些评估指标,可以从多个维度全面评估候选布局的质量,从而有助于选择综合性能最优的候选布局作为目标布局。In some implementations, the evaluation result is determined based on at least one of: line length, congestion, maximum delay, or total delay. With the help of these evaluation indicators, 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.
根据本公开的第二方面,提供了一种电子设备。该电子设备包括:评估结果确定模块,用于基于芯片的网表数据,确定与芯片中的多个第一电路单元在芯片中的多个候选布局分别相关联的多个评估结果,其中多个评估结果中的每个评估结果指示相应的候选布局的布局质量,网表数据至少指示多个第一电路单元及其连接关系,多个候选布局中的每个候选布局中的多个第一电路单元的布置过程数据以树结构被组织,并且多个候选布局对应于树结构的叶节点;以及目标布局选择模块,用于基于多个评估结果,从多个候选布局选择目标布局。该电子设备通过使用树结构来组织和记录与先前访问过的候选布局相关联的历史布置数据,并且在后续探索其它候选布局的过程中考虑历史布置数据,可以获得更好的探索能力,并且能够找到评估结果较好的布局方案,从而提升布局质量。According to a second aspect of the present disclosure, an electronic device is provided. The 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.
在一些实现方式中,多个候选布局包括初始候选布局和至少一个优化候选布局,评估结果确定模块包括:初始评估结果确定模块,用于基于多个第一电路单元的预定布置顺序、以及网表数据中指示多个第一电路单元的连接关系的数据,确定与初始候选布局相关联的初始评估结果,其中预定布置顺序指示多个第一电路单元根据预定策略被布置的顺序;初始树结构构建模块,用于基于初始候选布局和与初始候选布局相关联的布置过程数据,构建初始树结构;以及优化评估结果确定模块,用于基于网表数据、初始候选布局和初始树结构,确定至少一个优化候选布局和与至少一个优化候选布局分别相关联的至少一个优化评估结果。在这样的实现方式中,电子设备可以在确定优化候选布局的过程中,通过考虑历史布置数据来布置第一电路单元,以确定优化候选布局。由此,可以提升根据本公开的电子设备的探索能力,并且可以提高找到评估结果较好的优化候选布局的可能性,从而提升布局质量。In some implementations, the multiple candidate layouts include an initial candidate layout and at least one optimized candidate layout, and 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. In such an implementation manner, 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.
在一些实现方式中,优化评估结果确定模块包括:参考树结构设置模块,用于将初始树结构设置为参考树结构;以及参考树结构更新模块,用于迭代地执行以下至少一次:基于预定布置顺序和参考树结构,确定一个优化候选布局;基于网表数据中指示多个第一电路单元的连接关系的数据,确定与一个优化候选布局相关联的优化评估结果;确定布局终止条件是否被满足;以及如果确定布局终止条件未被满足,基于参考树结构、一个优化候选布局和与一个优化候选布局相关联的布置过程数据,构建优化树结构以更新参考树结构。在这样的实现方式中,通过设置布局终止条件来控制何时结束对候选布局的探索。通过这种方式,电子设备可以在布局效率与目标布局的质量之间取得适当的平 衡,从而实现以较高的效率获得质量较好的布局结果。In some implementations, 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. In such an implementation manner, when to end the exploration of candidate layouts is controlled by setting layout termination conditions. In this way, the electronic device can achieve a proper balance between the layout efficiency and the quality of the target layout, so as to obtain a better quality layout result with higher efficiency.
在一些实现方式中,参考树结构更新模块进一步用于:基于预定布置顺序,将多个第一电路单元中的一个第一电路单元设置为待布置单元;迭代地执行以下至少一次:基于参考树结构、芯片的当前布置和待布置单元,确定芯片的更新布置,其中更新布置包含待布置单元和多个第一电路单元中的、先前已经被布置的第一电路单元的布置方式;利用更新布置来更新当前布置;确定多个第一电路单元中是否存在至少一个第一电路单元未被包含在当前布置中;以及如果确定多个第一电路单元中的至少一个第一电路单元未被包含在当前布置中,基于预定布置顺序,将多个第一电路单元中的下一个第一电路单元设置为待布置单元。参考树结构更新模块还用于将芯片的当前布置确定为一个优化候选布局。通过这种方式,电子设备可以在探索其它候选布局的过程中考虑历史布置数据,可以获得更好的探索能力,并且能够找到评估结果较好的布局方案,从而提升布局质量。In some implementations, 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.
在一些实现方式中,参考树结构更新模块进一步用于:基于当前布置,确定候选布置集,候选布置集包括以下项中至少一项:与当前布置的子节点对应的第一候选布置、以及通过向当前布置添加待布置单元得到的第二候选布置,其中第二候选布置与第一候选布置不同;基于参考树结构,确定与候选布置集相关联的评价集;以及基于评价集,从候选布置集中选择更新布置。通过这种方式,电子设备可以在探索其它候选布局的过程中考虑历史布置数据,可以获得更好的探索能力,并且能够找到评估结果较好的布局方案,从而提升布局质量。In some implementations, 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. 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.
在一些实现方式中,参考树结构更新模块进一步用于:计算与第一候选布置相关联的候选布局的评估结果的第一均值;基于第一候选布置和当前布置被访问的次数确定第一加权值;获取与候选布置集相关联的概率集;以及基于第一均值、第一加权值以及概率集中与第一候选布置相关联的第一概率,确定评价集中的与第一候选布置相关联的第一评价,其中与第一候选布置相关联的候选布局包括与第一候选布置的叶节点对应的候选布局。通过这种方式来评价包含在当前的参数树结构中的第一候选布置,可以实现对第一候选布置的充分且全面的评估,从而有助于确定最合适的候选布置,并且提高找到评估结果较好的优化候选布局的可能性。In some implementations, 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. By evaluating the first candidate arrangement included in the current parameter tree structure in this way, a sufficient and comprehensive evaluation of the first candidate arrangement can be achieved, thereby helping to determine the most suitable candidate arrangement, and improving the evaluation results. Possibility of better optimizing candidate layouts.
在一些实现方式中,参考树结构更新模块进一步用于:计算与参考树结构的所有叶节点对应的候选布局的评估结果的第二均值;基于与当前布置对应的节点被访问的次数确定第二加权值;获取与候选布置集相关联的概率集;以及基于第二均值、第二加权值、以及概率集中与第二候选布置相关联的第二概率,确定评价集中的与第二候选布置相关联的第二评价。通过这种方式来评价不包含在当前的参数树结构中的第二候选布置,可以使得第一评价与第二评价具有可比较性,从而有助于通过比较各个候选布置的评估结果来确定最合适的候选布置,并且提高找到评估结果较好的优化候选布局的可能性。In some implementations, 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.
在一些实现方式中,布局终止条件包括以下至少一项:多个候选布局的数目达到预定数目阈值;或者迭代的持续时间达到预定时间阈值。通过适当设置的预定数目阈值和/或预定时间阈值,可以兼顾布局效率与目标布局的质量,从而实现以较高的效率获得质量较好的布局结果。In some implementations, 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. By properly setting the predetermined number threshold and/or the predetermined time threshold, the layout efficiency and the quality of the target layout can be balanced, so as to obtain a layout result with better quality at higher efficiency.
在一些实现方式中,芯片还包括至少一个第二电路单元,网表数据还指示至少一个第二电路单元和多个第一电路单元的连接关系,评估结果确定模块包括:完整布局确定 模块,用于基于网表数据和多个候选布局中的一个候选布局,确定与一个候选布局相关联的完整布局,完整布局至少指示多个第一电路单元和至少一个第二电路单元的布置和连线;以及完整评估结果确定模块,用于确定与完整布局相关联的完整评估结果,以确定多个评估结果中的、与一个候选布局相关联的评估结果。通过这种方式,可以基于最终的完整布局来确定候选布局的评估结果,从而使得评估结果可以更准确地衡量候选布局的质量。这有助于提高最终确定的目标布局的质量。In some implementations, the chip further includes at least one second circuit unit, and the netlist data also indicates the connection relationship between the at least one second circuit unit and a plurality of first circuit units, and 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. In this way, 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.
在一些实现方式中,评估结果基于以下至少一项而被确定:线长、拥塞、最大时延或总时延。借助于这些评估指标,可以从多个维度全面评估候选布局的质量,从而有助于选择综合性能最优的候选布局作为目标布局。In some implementations, the evaluation result is determined based on at least one of: line length, congestion, maximum delay, or total delay. With the help of these evaluation indicators, 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.
根据本公开的第三方面,提供了一种电子设备。该电子设备包括:至少一个计算单元;至少一个存储器,至少一个存储器被耦合到至少一个计算单元,并且存储用于由至少一个计算单元执行的指令,指令当由至少一个计算单元执行时,使得设备执行根据本公开的第一方面的方法。该电子设备通过使用树结构来组织和记录与先前访问过的候选布局相关联的历史布置数据,并且在后续探索其它候选布局的过程中考虑历史布置数据,可以获得更好的探索能力,并且能够找到评估结果较好的布局方案,从而提升布局质量。According to a third aspect of the present disclosure, an electronic device is provided. The 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.
根据本公开的第四方面,提供了一种计算机可读存储介质。该计算机可读存储介质存储有计算机程序。该计算机程序被处理器执行时实现根据本公开的第一方面的方法。通过使用树结构来组织和记录与先前访问过的候选布局相关联的历史布置数据,并且在后续探索其它候选布局的过程中考虑历史布置数据,可以获得更好的探索能力,并且能够找到评估结果较好的布局方案,从而提升布局质量。According to a fourth aspect of the present disclosure, a computer readable storage medium is provided. The 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. By using a tree structure to organize and record the historical placement data associated with previously visited candidate layouts, and taking the historical placement data into account during the subsequent exploration of other candidate layouts, better exploration capabilities and the ability to find evaluation results A better layout scheme, thereby improving the layout quality.
根据本公开的第五方面,提供了一种计算机程序产品。该计算机程序产品包括计算机可执行指令,计算机可执行指令在被处理器执行时,使计算机实现根据第一方面的方法。通过使用树结构来组织和记录与先前访问过的候选布局相关联的历史布置数据,并且在后续探索其它候选布局的过程中考虑历史布置数据,可以获得更好的探索能力,并且能够找到评估结果较好的布局方案,从而提升布局质量。According to a fifth aspect of the present disclosure, a computer program product is provided. The 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. By using a tree structure to organize and record the historical placement data associated with previously visited candidate layouts, and taking the historical placement data into account during the subsequent exploration of other candidate layouts, better exploration capabilities and the ability to find evaluation results A better layout scheme, thereby improving the layout quality.
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开内容的关键特征或主要特征,也无意限制本公开内容的范围。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示出了集成电路的设计制造过程的流程图;Figure 1 shows a flow chart of the design and manufacture process of an integrated circuit;
图2示出了根据本公开的一些实施例的示例环境的框图;Figure 2 shows a block diagram of an example environment according to some embodiments of the present disclosure;
图3示出了根据本公开的一些实施例的用于记录布置过程数据的树结构的示意图;Fig. 3 shows a schematic diagram of a tree structure for recording arrangement process data according to some embodiments of the present disclosure;
图4示出了根据本公开的一些实施例的用于对芯片进行布局的方法的流程图;FIG. 4 shows a flowchart of a method for laying out a chip according to some embodiments of the present disclosure;
图5示出了根据本公开的一些实施例的用于确定候选布局及其评估结果的方法的流程图;FIG. 5 shows a flowchart of a method for determining candidate layouts and their evaluation results according to some embodiments of the present disclosure;
图6示出了根据本公开的一些实施例的用于确定优化候选布局和优化评估结果的方法的流程图;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;
图7示出了根据本公开的一些实施例的用于确定优化候选布局的方法的流程图;FIG. 7 shows a flowchart of a method for determining an optimized candidate layout according to some embodiments of the present disclosure;
图8示出了根据本公开的一些实施例的构建树结构的过程的示意图;Fig. 8 shows a schematic diagram of the process of constructing a tree structure according to some embodiments of the present disclosure;
图9示出了根据本公开的一些实施例的用于对芯片进行布局的示例装置的框图;以及Figure 9 shows a block diagram of an example apparatus for laying out chips according to some embodiments of the present disclosure; and
图10示出了可以用于实施本公开的一些实施例的示例设备的示意性框图。Figure 10 shows a schematic block diagram of an example device that may be used to implement some embodiments of the present disclosure.
具体实施方式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.
如上所述,随着集成电路制造工艺的发展和特征尺寸的减小,物理设计的复杂度也成倍增长。宏单元布局作为布局阶段的第一步,其布局质量对最终的物理设计指标有着重大影响。As mentioned above, with the development of integrated circuit manufacturing process and the reduction of feature size, the complexity of physical design has also increased exponentially. 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. However, these two schemes each have corresponding problems. For example, for 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. For the second solution, 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. In the present disclosure, 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.
图1示出了集成电路的设计制造过程100的流程图。设计制造过程100开始于规格制定110。在规格制定110的阶段中,确定集成电路需要达到的功能和性能方面的要求。然后,在集成电路设计120的阶段中,首先借助于EDA(electronic design automation,EDA)软件来进行电路设计122。在确定电路之后,通过执行物理设计124来确定集成电路中的电路单元的布局和连线,从而得到电路版图。在得到电路版图之后,可以执行掩模制作126以得到用于将所设计的电路形成在晶圆上的掩模。随后,在制造130的阶段中,通过光刻、刻蚀、离子注入、薄膜沉积、抛光等工艺在晶圆上形成集成电路。在封装140 的阶段中,对晶圆进行切割得到裸片,并通过黏贴、焊接、模封等工艺对裸片进行封装得到芯片。所得到的芯片在测试150的阶段中被测试,以确保成品芯片的性能满足规格制定110中所确定的要求。最终,测试合格的芯片160可以被交付客户。FIG. 1 shows a flowchart of a design and manufacture process 100 for an integrated circuit. The design-to-manufacture process 100 begins with specification development 110 . In the stage of specification formulation 110, the functional and performance requirements that the integrated circuit needs to meet are determined. Then, in the stage of integrated circuit design 120, circuit design 122 is first performed by means of EDA (electronic design automation, EDA) software. After the circuit is determined, the physical design 124 is performed to determine the layout and wiring of the circuit units in the integrated circuit, so as to obtain the circuit layout. After obtaining the circuit layout, mask fabrication 126 may be performed to obtain masks for forming the designed circuits on the wafer. Subsequently, in the stage of manufacturing 130, integrated circuits are formed on the wafer through processes such as photolithography, etching, ion implantation, thin film deposition, and polishing. In the stage of packaging 140 , the wafer is 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 . Finally, the tested chips 160 can be delivered to customers.
物理设计124主要包括划分、版图规划、布局、时钟树综合、布线等步骤,并且涉及可布线性、时延、功耗、面积、可制造性等评估指标。这些评估指标往往需要在整个物理设计124流程结束后才能准确获得。因此,当最终获得的评估指标不满足设计要求时,往往需要返回到前面的不同物理设计步骤进行迭代优化。常规的物理设计流程往往需要多轮的迭代评估,因此效率较低且耗时较长。宏单元布局作为布局阶段的第一步,其布局质量对最终的评估指标有着重大影响。因此,期望提高宏单元布局的自动化程度和布局质量,从而缩短物理设计周期,提高芯片开发效率。 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.
图2示出了根据本公开的一些实施例的示例环境200的框图。如图2所示,示例环境200总体上可以包括电子设备220。在一些实施例中,电子设备220可以是诸如个人计算机、工作站、服务器等具有计算功能的设备。本公开对此不作限制。FIG. 2 shows a block diagram of an example environment 200 according to some embodiments of the present disclosure. As shown in FIG. 2 , example environment 200 may generally include electronic device 220 . In some embodiments, 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.
电子设备220获取表示芯片中的电路的网表数据210作为输入。该芯片例如可以包括多个第一电路单元。在一些实施例中,第一电路单元是待布置的宏单元。在本公开的上下文中,“宏单元”是指由相对逻辑门抽象级别更高的触发器、算术逻辑单元等构成的预定义逻辑功能实现单元。在一些实施例中,第一电路单元还可以是待布置的任何其它合适的电路单元。本公开对此不作限制。 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. In some embodiments, the first circuit unit is a macro unit to be arranged. In the context of the present disclosure, 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. In some embodiments, the first circuit unit may also be any other suitable circuit unit to be arranged. This disclosure does not limit this.
在一些实施例中,网表数据210可以指示芯片中所包含的多个第一电路单元和这些第一电路单元的连接关系。在一些实施例中,网表数据210还可以指示芯片的待布局区域、工艺参数等信息。本公开对此不作限制。In some embodiments, 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.
在一些实施例中,网表数据210可以由用户输入电子设备220。在一些实施例中,网表数据210可以已经预先被存储在电子设备220中。在一些实施例中,电子设备220还可以通信地耦连到其它设备,以从其它设备获取网表数据210。本公开对此不作限制。In some embodiments, 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.
电子设备220基于网表数据210在芯片的待布局区域中布置第一电路单元,以确定候选布局。电子设备220以树结构230组织并记录所确定的候选布局以及用于获得候选布局的布置过程数据。在后续确定另外的候选布局的过程中,电子设备220可以通过考虑树结构230中所记录的布置过程数据来布置第一电路单元。电子设备220基于对候选布局的评估结果来从候选布局中选择多个第一电路单元的目标布局240。这将在下文中结合图3至图8详细描述。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 . In a subsequent process of determining another layout candidate, 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 .
图3示出了根据本公开的一些实施例的用于记录布置过程数据的树结构230的示意图。出于示例和简化的目的,在图3所示的实施例中,芯片具有3个待布置的第一电路单元340-1、340-2和340-3(单独或统一地被称为第一电路单元340)。应当理解的是,待布置的第一电路单元340的数目还可以小于3个或者大于3个,本公开对此不作限制。FIG. 3 shows a schematic diagram of a tree structure 230 for recording arrangement process data according to some embodiments of the present disclosure. 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.
树结构230的根节点310对应于空白布局,即,在其中尚未布置第一电路单元340的待布局区域。图3中的树结构230所包括的4个叶节点330-1、330-2、330-3和330-4(单独或统一地被称为叶节点330)分别对应于所记录的4个候选布局。在本公开的上下文中,“候选布局”表示在其中所有待布置的第一电路单元340的布置方式已经被确定的布局。在树结构230中,从根节点310到叶节点330所经过的分支上的节点指示用于获得相应的叶节点330所对应的候选布局的布置过程。例如,从根节点310开始,经 历节点320-1和320-3所对应的部分布局,获得叶节点330-3所对应的候选布局。在本公开的上下文中,“部分布局”表示在其中待布置的第一电路单元340中的至少一个第一电路单元340的布置方式尚未被确定的布局。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. In the context of the present disclosure, "candidate layout" means a layout in which the arrangement manner of all the first circuit units 340 to be arranged has been determined. In the tree structure 230 , 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 . For example, starting from the root node 310, go through the partial layouts corresponding to the nodes 320-1 and 320-3, and obtain the candidate layout corresponding to the leaf node 330-3. In the context of the present disclosure, "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.
借助于树结构230,电子设备220可以有序地组织并记录布局过程数据,以便在后续确定新的候选布局的过程中考虑先前记录的布局过程数据,从而提高获得评估结果较好的候选布局的概率,进而提高布局质量。这将在下文中结合图4至图8进一步详细说明。With the help of the tree structure 230, 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 .
图4示出了根据本公开的一些实施例的用于对芯片进行布局的方法400的流程图。在一些实施例中,方法400可以由如图2所示的电子设备220执行。应当理解的是,方法400还可以包括未示出的附加框和/或可以省略所示出的框,本公开的范围在此方面不受限制。FIG. 4 shows a flowchart of a method 400 for laying out a chip according to some embodiments of the present disclosure. In some embodiments, 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.
在框402,电子设备220基于网表数据210,确定与多个第一电路单元340在芯片中的多个候选布局分别相关联的多个评估结果,其中网表数据210至少指示多个第一电路单元340及其连接关系,多个候选布局中的每个候选布局中的多个第一电路单元340的布置过程数据以树结构230被组织,并且多个候选布局对应于树结构230的叶节点330。In block 402, 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.
在一些实施例中,电子设备220可以基于网表数据210在芯片的待布局区域中布置多个第一电路单元340,以确定候选布局。这将在下文中结合图5至图8进一步详细描述。In some embodiments, 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 .
在一些实施例中,电子设备220可以根据网表数据210中指示多个第一电路单元340的连接关系的数据来进行布线(routing),即,用线连接候选布局中的第一电路单元340。电子设备220可以借助于诸如线长、拥塞(congestion)、最大时延(worst negative slack,WNS)以及总时延(total negative slack,TNS)之类的评估指标来对候选布局进行评估,以确定与候选布局相关联的评估结果。例如,电子设备220可以通过计算连接第一电路单元340的线的总长度来确定线长,通过计算候选布局中线最密集的区域中的线密度来确定拥塞,并且通过计算网表中各条路径的延迟来确定最大时延和/或总时延。在一些实施例中,电子设备220可以基于候选布局的线长、拥塞、最大时延以及总时延的加权和来确定评估结果。通过这种方式,可以从多个维度全面评估候选布局的质量,从而有助于选择综合性能最优的候选布局作为目标布局。应当理解的是,电子设备220还可以基于任何其它合适的评估指标来确定与候选布局相关联的评估结果。本公开对此不作限制。In some embodiments, 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. For example, 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. In some embodiments, 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.
在一些实施例中,芯片还可以包括至少一个第二电路单元。示例性地,第二电路单元是诸如门电路、触发器之类的标准单元。在这种情况下,网表数据210可以进一步指示第二电路单元和第一电路单元340的连接关系,并且电子设备220可以进一步确定第二电路单元的布置方式,以确定与候选布局相关联的评估结果。对此,电子设备220基于网表数据210和候选布局,确定与候选布局相关联的完整布局,该完整布局至少指示多个第一电路单元340和至少一个第二电路单元的布置和连线。In some embodiments, the chip may further include at least one second circuit unit. Exemplarily, the second circuit unit is a standard unit such as gate circuit and flip-flop. In this case, the netlist data 210 may further indicate the connection relationship between the second circuit unit and the first circuit unit 340, and 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. In this regard, 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.
在一些实施例中,电子设备220可以基于候选布局对第二电路单元进行布置,并且基于网表数据210中指示各个电路单元的连接关系的数据来进行布线,以确定与候选布局相关联的完整布局。以与上文所述类似的方式,电子设备220可以借助于诸如线长、拥塞、最大时延以及总时延之类的评估指标来对完整布局进行评估,以确定与完整布局相关联的完整评估结果。电子设备220可以将完整布局的完整评估结果设置为对应的候 选布局的评估结果。通过这种方式,电子设备220可以基于最终的完整布局来确定候选布局的评估结果,从而使得评估结果可以更准确地衡量候选布局的质量。这有助于提高最终确定的目标布局240的质量。In some embodiments, 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. In a manner similar to that described above, 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 .
在一些实施例中,对于多个候选布局中的每个候选布局,电子设备220可以确定与相应的候选布局相关联的完整布局,从而根据该完整布局的完整评估结果来确定相应的候选布局的评估结果。In some embodiments, for each candidate layout among the plurality of candidate layouts, 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.
应该理解的是,电子设备220还可以通过任何其它合适的方式来确定与候选布局相关联的评估结果。本公开对此不作限制。It should be understood that 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.
在一些实施例中,电子设备220可以根据图3中所示的树结构230来组织所确定的候选布局、评估结果、以及第一电路单元340的布置过程数据。在本公开的上下文中,树结构230中所记录的候选布局、评估结果、以及第一电路单元340的布置过程数据可以被统称为历史布置数据。应当理解的是,历史布置数据还可以包括未列出的附加项和/或可以省略所列出的项,本公开的范围在此方面不受限制。在后续探索另外的候选布局的过程中,电子设备220可以通过考虑历史布置数据来选择第一电路单元340的布置方式。这将在下文中结合图5至图8进一步详细描述。通过这种方式,方法400可以获得获得更好的探索能力,并且能够找到评估结果较好的布局方案,从而提升布局质量。In some embodiments, 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 . In the context of the present disclosure, 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. In the subsequent process of exploring another candidate layout, 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.
在框404,电子设备220基于多个评估结果,从多个候选布局选择目标布局240。在一些实施例中,电子设备220可以选择多个候选布局中的、具有最优的评估结果的候选布局作为目标布局240。应当理解的是,还可以以任何其它合适的方式来选择目标布局240。本公开对此不作限制。At block 404, the electronic device 220 selects the target layout 240 from the plurality of candidate layouts based on the plurality of evaluation results. In some embodiments, 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.
在一些实施例中,电子设备220可以输出目标布局240的信息,以供用户使用或进一步调整所确定的布局。在一些实施例中,电子设备220可以将目标布局240的信息作为输入提供给其它布局软件或设备,以执行后续的设计流程。本公开对此不作限制。In some embodiments, 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.
图5示出了根据本公开的一些实施例的用于确定候选布局及其评估结果的方法500的流程图。例如,方法500可以作为如图4所示的框402的一种示例实现。在一些实施例中,方法500可以由如图2所示的电子设备220执行。应当理解的是,方法500还可以包括未示出的附加框和/或可以省略所示出的框,本公开的范围在此方面不受限制。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. For example, method 500 may be implemented as an example of block 402 as shown in FIG. 4 . In some embodiments, 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.
在框502,电子设备220基于多个第一电路单元340的预定布置顺序、以及网表数据210中指示多个第一电路单元340的连接关系的数据,确定与初始候选布局相关联的初始评估结果,其中预定布置顺序指示多个第一电路单元340根据预定策略被布置的顺序。In block 502, 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.
在一些实施例中,电子设备220可以根据网表数据210中指示第一电路单元340的面积的数据,例如按照面积从大到小依次排列待布置的多个第一电路单元340,以确定预定布置顺序。参考图3中所示的树结构230,针对每次布局,电子设备220均按照面积从大到小的顺序在待布局区域中依次布置第一电路单元340-1、340-2和340-3。在一些实施例中,电子设备220还可以根据网表数据210中指示第一电路单元340所隶属的模块的信息,例如按照模块划分来排列待布置的多个第一电路单元340,以确定预定布置顺序。本公开对此不作限制。In some embodiments, 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 . In some embodiments, 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.
在一些实施例中,电子设备220可以根据上述预定布置顺序将待布置的第一电路单元340布置在待布局区域中,以确定初始候选布局。在本公开的上下文中,“初始候选 布局”表示布局过程中最先获得的候选布局。换言之,在获得初始候选布局之前,树结构230中尚未记录任何其它候选布局以及布置过程数据。因此,在确定初始候选布局的过程中,由于不存在历史布置数据,因此电子设备220并不会考虑历史布置数据。在一些实施例中,电子设备220可以随机地布置第一电路单元340以确定初始候选布局。电子设备220还可以以任何其它合适的方式布置第一电路单元340以确定初始候选布局。本公开对此不作限制。In some embodiments, 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. In the context of this disclosure, 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. In some embodiments, 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.
在一些实施例中,电子设备220可以以与上文结合图4所述类似的方式确定与初始候选布局相关联的初始评估结果,在此不再赘述。In some embodiments, 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.
在框504,电子设备220基于初始候选布局和与初始候选布局相关联的布置过程数据,构建初始树结构。图8示出了根据本公开的一些实施例的构建树结构的过程800的示意图。在一些实施例中,如图8中所示,电子设备220可以通过将初始候选布局以及用于获得初始候选布局的部分布局以树结构组织,来构建初始树结构810-1。在图8所示的初始树结构810-1中,叶节点330-1的数据表示初始候选布局,并且叶节点330-1的祖先节点310、320-1、320-2的数据分别表示用于获得初始候选布局的部分布局。在一些实施例中,电子设备220还可以将与初始候选布局相关联的初始评估结果,例如1.2,和在叶节点330-1的初始候选布局一起存储。应当理解的是,电子设备220还可以以任何其它合适的方式构建初始树结构810-1。本公开对此不作限制。At block 504, the electronic device 220 builds an initial tree structure based on the initial candidate layout and placement process data associated with the initial candidate layout. FIG. 8 shows a schematic diagram of a process 800 of constructing a tree structure according to some embodiments of the present disclosure. In some embodiments, as shown in FIG. 8 , 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. In the initial tree structure 810-1 shown in FIG. 8, the data of the leaf node 330-1 represent the initial candidate layout, and 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. In some embodiments, 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.
在框506,电子设备220基于网表数据210、初始候选布局和初始树结构810-1,确定至少一个优化候选布局和与至少一个优化候选布局分别相关联的至少一个优化评估结果。在本公开的上下文中,“优化候选布局”表示布局过程中在初始候选布局之后确定的候选布局。换言之,在确定优化候选布局的过程中,树结构230中已经记录有历史布置数据。因此,电子设备220可以通过考虑历史布置数据来布置第一电路单元340,以确定优化候选布局。这将在下文中结合图6至图8进一步详细描述。通过这种方式,可以提升根据本公开的方案的探索能力,并且可以提高找到评估结果较好的优化候选布局的可能性,从而提升布局质量。In block 506, 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. In the context of this disclosure, an "optimized candidate layout" means a candidate layout determined after an initial candidate layout during a layout process. In other words, during the process of determining the optimization candidate layout, historical layout data has been recorded in the tree structure 230 . Accordingly, 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.
图6示出了根据本公开的一些实施例的用于确定优化候选布局和优化评估结果的方法600的流程图。例如,方法600可以作为如图5所示的框506的一种示例实现。在一些实施例中,方法600可以由如图2所示的电子设备220执行。应当理解的是,方法600还可以包括未示出的附加框和/或可以省略所示出的框,本公开的范围在此方面不受限制。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. For example, method 600 may be implemented as an example of block 506 as shown in FIG. 5 . In some embodiments, 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.
在框602,电子设备220可以将初始树结构810-1设置为参考树结构。在框604,电子设备220可以基于预定布置顺序和参考树结构来确定一个优化候选布局。这将在下文中结合图7至图8进一步详细描述。At block 602, the electronic device 220 may set the initial tree structure 810-1 as a reference tree structure. At block 604, 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 .
在框606,电子设备220基于网表数据210中指示多个第一电路单元340的连接关系的数据,确定与一个优化候选布局相关联的优化评估结果。在一些实施例中,电子设备220可以以与上文结合图4所述类似的方式确定与优化候选布局相关联的优化评估结果,在此不再赘述。In block 606 , 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 . In some embodiments, 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.
在框608,电子设备220确定布局终止条件是否被满足。芯片往往包含大量第一电路单元340,例如数百个第一电路单元340。因此,在运算能力有限的情况下,期望通过探索第一电路单元340的所有可能的候选布局以选择全局最优的候选布局作为目标布局240耗时较长。因此,在根据本公开的一些实施例中,通过设置布局终止条件来控制何 时结束对候选布局的探索。换言之,电子设备220仅探索第一电路单元340的有限数目的候选布局,以从中选择局部最优的候选布局作为目标布局240。通过这种方式,可以在布局效率与目标布局240的质量之间取得适当的平衡,从而实现以较高的效率获得质量较好的布局结果。应当理解的是,根据本公开的方案同样适用于探索第一电路单元340的所有可能的候选布局以选择全局最优的候选布局作为目标布局240的情况。本公开对此不作限制。At block 608, 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 . In this way, a proper balance can be achieved between the layout efficiency and the quality of the target layout 240 , so as to obtain a layout result with better quality with higher efficiency. It should be understood that 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.
在一些实施例中,布局终止条件可以包括所确定的多个候选布局的数目达到预定数目阈值。在一些实施例中,预定数目阈值可以由用户预先输入。在一些实施例中,预定数目阈值可以采用默认值。本公开对此不作限制。通过适当设置的预定数目阈值,可以兼顾布局效率与目标布局240的质量,从而实现以较高的效率获得质量较好的布局结果。In some embodiments, the layout termination condition may include that the number of determined plurality of candidate layouts reaches a predetermined number threshold. In some embodiments, the predetermined number threshold may be pre-entered by the user. In some embodiments, a default value may be used for the predetermined number threshold. This disclosure does not limit this. By appropriately setting the predetermined number threshold, the layout efficiency and the quality of the target layout 240 can be balanced, so as to obtain a layout result with better quality with higher efficiency.
在一些实施例中,布局终止条件可以包括以迭代方式确定优化候选布局和优化评估结果的持续时间达到预定时间阈值。在一些实施例中,预定时间阈值可以由用户预先输入。在一些实施例中,预定时间阈值可以采用默认值。本公开对此不作限制。通过适当设置的预定时间阈值,可以兼顾布局效率与目标布局240的质量,从而实现以较高的效率获得质量较好的布局结果。在另一些实施例中,还可以以任何其它合适的方式设置布局终止条件。本公开对此不作限制。In some embodiments, 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. In some embodiments, the predetermined time threshold may be pre-input by the user. In some embodiments, 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. In some other embodiments, the layout termination condition may also be set in any other suitable manner. This disclosure does not limit this.
如果在框608确定布局终止条件未被满足,则方法600前进到框610。在框610,电子设备220基于参考树结构、一个优化候选布局和与一个优化候选布局相关联的布置过程数据,构建优化树结构以更新参考树结构。在一些实施例中,如图8中所示,电子可以通过在参考树结构的基础上添加优化候选布局及其布置过程数据,来构建优化树结构810-2。在图8所示的优化树结构810-2中,叶节点330-2的数据表示所确定的一个优化候选布局,并且叶节点330-2的祖先节点310、320-1、320-2的数据分别表示用于获得该优化候选布局的部分布局。在一些实施例中,电子设备220还可以将与优化候选布局相关联的优化评估结果,例如1.5,和在叶节点330-2的优化候选布局一起存储。本公开对此不作限制。电子设备220可以利用所构建的优化树结构来更新当前的参考树结构,以便在后续确定另外的优化候选布局的过程中,可以考虑所有先前已经探索过的候选布局,从而提高找到评估结果更好的候选布局的可能性。If at block 608 it is determined that the layout termination condition has not been met, then method 600 proceeds to block 610 . At 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. In some embodiments, as shown in FIG. 8 , 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. 8, the data of the leaf node 330-2 represents a determined optimized candidate layout, and 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. In some embodiments, 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 .
然后,方法600返回到框604,电子设备220继续按照上文所述的方式迭代地确定另外的优化候选布局及其优化评估结果。如果在框608确定布局终止条件被满足,则方法600结束。Then, the 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.
图7示出了根据本公开的一些实施例的用于确定优化候选布局的方法700的流程图。例如,方法700可以作为如图6所示的框604的一种示例实现。在一些实施例中,方法700可以由如图2所示的电子设备220执行。应当理解的是,方法700还可以包括未示出的附加框和/或可以省略所示出的框,本公开的范围在此方面不受限制。FIG. 7 shows a flowchart of a method 700 for determining an optimization candidate layout according to some embodiments of the present disclosure. For example, method 700 may be implemented as an example of block 604 as shown in FIG. 6 . In some embodiments, 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.
在框702,电子设备220基于预定布置顺序将多个第一电路单元340中的一个第一电路单元340设置为待布置单元。参考图8,按照如上文结合图5所述的基于面积的预定布置顺序,电子设备220将具有最大面积的第一电路单元340-1设置为待布置单元。In block 702 , 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. Referring to FIG. 8 , 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 .
在框704,电子设备220基于参考树结构、芯片的当前布置和待布置单元,确定芯片的更新布置,其中更新布置包含待布置单元和多个第一电路单元340中的、先前已经被布置的第一电路单元340的布置方式。In block 704, 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 .
在一些实施例中,电子设备220基于芯片的当前布置来确定候选布置集。例如,电子设备220可以根据当前布置确定待布局区域中尚未被占据的区域,并且根据待布置单元的面积信息,确定待布置单元可以被布置在其中的至少一个候选位置,以确定由至少一个候选布置构成的集合,也被称为候选布置集。在此,与一个候选位置相关联的候选布置可以指示:基于当前布置,将待布置单元布置在该候选位置而获得的布置方式。应当理解的是,还可以以任何其它合适的方式来确定候选布置集。本公开对此不作限制。In some embodiments, 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. Here, 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.
为了便于说明的目的,在以下关于图7的描述中假设当前的参考树结构对应于图8中所示的树结构810-2,并且电子设备220已经将第一电路单元340-1按照节点320-1所示的方式布置,即芯片的当前布置对应于节点320-1,并且待布置单元为第一电路单元340-2。示例性地,基于当前布置和第一电路单元340-2的面积信息,电子设备220可以确定两个可能的不同候选布置,其中第一候选布置对应于当前布置的子节点320-2表示的部分布局,并且第二候选布置对应于节点320-3表示的部分布局。应当注意的是,由于在先前的布局过程中尚未使用过节点320-3表示部分布局,因此节点320-3表示部分布局此时尚未被包含在树结构810-2中。For the purpose of illustration, it is assumed in the following description about FIG. 7 that 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. Exemplarily, based on the current layout and the area information of 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.
在一些实施例中,为了从候选布置集中选择合适的候选布置,电子设备220可以基于参考树结构,确定与候选布置集相关联的评价集。例如,评价集包含与第一候选布置相关联的第一评价以及与第二候选布置相关联的第二评价。In some embodiments, in order to select a suitable candidate arrangement from the candidate arrangement set, the electronic device 220 may determine an evaluation set associated with the candidate arrangement set based on the reference tree structure. For example, the set of reviews includes a first review associated with a first candidate arrangement and a second review associated with a second candidate arrangement.
在一些实施例中,针对包含在当前的参数树结构中的第一候选布置,电子设备220可以基于下面的式子(1)计算第一评价:In some embodiments, for the first candidate arrangement included in the current parameter tree structure, the electronic device 220 may calculate the first evaluation based on the following formula (1):
Figure PCTCN2021117822-appb-000001
Figure PCTCN2021117822-appb-000001
其中,A表示待评价的第一候选布置;R1(A)表示与第一候选布置A相关联的第一评价;Q(A)表示与第一候选布置A相关联的候选布局的评估结果的第一均值,其中与第一候选布置A相关联的候选布局包括与第一候选布置A的叶节点330对应的候选布局;c表示探索因子;P(A)表示与第一候选布置A相关联的第一概率;N(A)表示第一候选布置A被访问的次数;以及N(S)表示当前布置被访问的次数。Among them, 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; and N(S) represents the number of times the current arrangement is visited.
示例性地,针对参考树结构810-2,如果第一候选布置A对应于当前布置的子节点320-2表示的部分布局,则Q(A)对应于与第一候选布置A的叶节点330-1和330-2对应的候选布局的评估结果1.2和1.5的均值1.35;N(A)对应于第一候选布置A被访问的次数,即节点320-2被访问的次数2;N(S)对应于当前布置被访问的次数,即节点340-1被访问的次数2。Exemplarily, for the reference tree structure 810-2, if the first candidate arrangement A corresponds to the partial layout represented by the child node 320-2 of the current arrangement, then 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.
在一些实施例中,在式子(1)中,第一均值Q(A)指示先前使用第一候选布置A获得的候选布局的平均评估结果,从而可以衡量在先前布局过程中使用第一候选布置A获得的候选布局的平均质量。第一加权值
Figure PCTCN2021117822-appb-000002
可以对先前被访问次数较少的候选布置进行补偿,以避免电子设备220在选择时忽略这样的候选布置。因此,第一评价R1(A)使得电子设备220能够充分且全面的评估第一候选布置A,从而有助于确定最合适的候选布置,并且提高找到评估结果较好的优化候选布局的可能性。
In some embodiments, in Equation (1), 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
Figure PCTCN2021117822-appb-000002
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 .
在一些实施例中,探索因子c是常数,并且可以由用户预先设置。通过设置相对较大的探索因子c,可以得到相对较大的第一加权值
Figure PCTCN2021117822-appb-000003
在这种情况下,先前 被访问次数较少的候选布置将会获得相对较高的评价,使得电子设备220更倾向于使用先前被访问次数较少的候选布置,即更倾向于探索新的候选布置。与此相反,通过设置相对较小的探索因子c,可以得到相对较小的第一加权值
Figure PCTCN2021117822-appb-000004
在这种情况下,先前被访问次数较少的候选布置将会获得相对较低的评价,使得电子设备220更倾向于使用先前被访问次数较多的候选布置,即更倾向于利用已知的候选布置。在一些实施例中,探索因子可以采用默认值。本公开对此不作限制。
In some embodiments, 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
Figure PCTCN2021117822-appb-000003
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. In contrast, by setting a relatively small exploration factor c, a relatively small first weighted value can be obtained
Figure PCTCN2021117822-appb-000004
In this case, the candidate arrangement that has been visited less times before will get a relatively lower evaluation, so that the electronic device 220 is more inclined to use the candidate arrangement that has been visited more times before, that is, it is more inclined to use the known Candidate placement. In some embodiments, the exploration factor may adopt a default value. This disclosure does not limit this.
在一些实施例中,电子设备220可以基于当前布置,获取与候选布置集相关联的概率集。在一些实施例中,电子设备220可以借助于神经网络来确定概率集。电子设备220将网表数据210、当前布置以及待布置单元等信息作为神经网络的输入。神经网络对输入数据编码从而生成嵌入(embedding),并且对所生成的嵌入进行编码,通过神经网络中所包括的由反卷积层和批归一化层构成的子网络来输出与候选布置集相关联的概率集。概率集中的第一概率P(A)指示候选布置集中的相应的第一候选布置A被选择的概率。在一些实施例中,电子设备220还可以借助于强化学习算法来训练该神经网络,以提升神经网络的预测性能。在此,强化学习中所使用的奖励(reward)同样可以基于上文所述的线长、拥塞、最大时延以及总时延等评估指标而被确定。应当理解的是,电子设备220还可以通过任何其它合适的方式来确定与候选布置集相关联的概率集,本公开对此不作限制。还应当理解的是,在一些实施例中还可以省略式子(1)中的第一概率P(A),即第一概率P(A)并非根据本公开的方案的必要元素。In some embodiments, 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. In some embodiments, 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. Here, 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. It should be understood that 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. It should also be understood that, in some embodiments, 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.
应当理解的是,虽然以式子(1)示出了用于第一候选布置的一种具体评价方式,但是还可以使用任何其它合适的评价方式。本公开对此不作限制。It should be understood that although one specific evaluation method for the first candidate arrangement is shown in equation (1), any other suitable evaluation method may also be used. This disclosure does not limit this.
在一些实施例中,针对不包含在当前的参数树结构中的第二候选布置,电子设备220可以基于下面的式子(2)计算第二评价:In some embodiments, for the second candidate arrangement not included in the current parameter tree structure, the electronic device 220 may calculate the second evaluation based on the following formula (2):
Figure PCTCN2021117822-appb-000005
Figure PCTCN2021117822-appb-000005
其中,B表示待评价的第二候选布置;R2(B)表示与第二候选布置B相关联的第二评价;T(B)表示与参考树结构的所有叶节点330对应的候选布局的评估结果的第二均值;c表示探索因子;P(B)表示与第二候选布置B相关联的第二概率;N(B)表示第二候选布置B被访问的次数;以及N(S)表示当前布置被访问的次数。由于第二候选布置B不包含在当前的参数树结构中,换言之,第二候选布置B被访问的次数N(B)恒为0。因此,式子(2)可以简化为下面的式子(3)。Wherein, 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; and 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.
Figure PCTCN2021117822-appb-000006
Figure PCTCN2021117822-appb-000006
示例性地,针对参考树结构810-2,如果第二候选布置B对应于节点320-3表示的部分布局,则T(B)对应于当前的参数树结构的所有叶节点330-1和330-2的评估结果1.2和1.5的均值1.35;N(S)对应于当前布置被访问的次数,即节点340-1被访问的次数2。Exemplarily, for the reference tree structure 810-2, if the second candidate arrangement B corresponds to the partial layout represented by the node 320-3, then 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.
由于第二候选布置B不包含在当前的参数树结构中,因此不存在与第二候选布置B相关联的候选布局。因此,在式子(2)中使用第二均值T(B)来代替式子(1)的中的第一均值Q(A),第二均值T(B)指示先前确定的所有候选布局的平均评估结果。应当理解的是,还可以以任何其它合适的方式来设置第二均值T(B),例如设置为最近确定的5个候 选布局的平均评估结果。本公开对此不作限制。通过这种方式,可以使得第一评价与第二评价具有可比较性,从而有助于通过比较各个候选布置的评估结果来确定最合适的候选布置,并且提高找到评估结果较好的优化候选布局的可能性。Since the second candidate arrangement B is not included in the current parameter tree structure, there is no candidate layout associated with the second candidate arrangement B. Therefore, 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. It should be understood that 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.
第二加权值
Figure PCTCN2021117822-appb-000007
可以对未被访问过的第二候选布置B进行补偿,以避免电子设备220在选择时忽略第二候选布置B。因此,第二评价R2(B)使得电子设备220能够充分且全面的评估第二候选布置,从而有助于确定最合适的候选布置。
second weighted value
Figure PCTCN2021117822-appb-000007
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.
在一些实施例中,可以与上文参考式(1)描述类似的方式确定式子(3)中的探索因子c和第二概率P(B),在此不再赘述。通过适当的设置探索因子c,可以在探索新候选布置与利用已知的候选布置之间取得适当的平衡。类似地,在一些实施例中还可以省略式子(2)和(3)中的第二概率P(B),即第二概率P(B)并非根据本公开的方案的必要元素。In some embodiments, 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. Similarly, in some embodiments, 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.
应当理解的是,虽然以式子(2)和(3)示出了用于第二候选布置的一种具体评价方式,但是还可以使用任何其它合适的评价方式。本公开对此不作限制。It should be understood that although one specific evaluation manner for the second candidate arrangement is shown in equations (2) and (3), any other suitable evaluation manner may also be used. This disclosure does not limit this.
电子设备220可以基于以上述方式确定的与候选布置集相关联的评价集,来从候选布置集中选择更新布置。在一些实施例中,电子设备220可以选择候选布置集中具有最高的评价的候选布置作为更新布置。在一些实施例中,电子设备220还可以根据各个候选布置的评价的高低,将各个候选布置的评价转换成选择相应候选布置的概率,并且基于转换得到的概率来抽取一个候选布置作为更新布置。候选布置对应的概率越高,该候选布置被抽取到的可能性越大。通过在探索候选布局的过程中以上述方式考虑历史布置数据,可以使得根据本公开的方案具有更好的探索能力,并且提高找到评估结果较好的候选布局的可能性,从而提升布局质量。应当理解的是,还可以以任何其它合适的方式来选择更新布置,例如基于深度优先搜索或者启发式搜索。本公开对此不作限制。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. By considering the historical layout data in the above manner in the process of exploring candidate layouts, 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. It should be understood that 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.
返回到参考图7,在框706,电子设备220利用更新布置来更新当前布置。示例性地,如果确定将节点320-3所对应的候选布置作为更新布置,则可以将当前布置更新为节点320-3所对应的候选布置。Referring back to FIG. 7 , at block 706 the electronic device 220 updates the current arrangement with the updated arrangement. Exemplarily, if it is determined that the candidate arrangement corresponding to the node 320-3 is used as the updated arrangement, the current arrangement may be updated as the candidate arrangement corresponding to the node 320-3.
在框708,电子设备220确定多个第一电路单元340中是否存在至少一个第一电路单元340未被包含在当前布置中。换言之,电子设备220判断是否已经完成对所有第一电路单元340的布置。如果确定多个第一电路单元340中的至少一个第一电路单元340未被包含在当前布置中,则方法700前进到框710。在框710,电子设备220基于预定布置顺序,将多个第一电路单元340中的下一个第一电路单元340设置为待布置单元。示例性地,如果当前布置为节点320-3所对应的候选布置,则按照如上文结合图5所述的基于面积的预定布置顺序,电子设备220将第一电路单元340-2之后的第一电路单元340-3设置为待布置单元。然后,方法700返回到框704,电子设备220继续按照上文所述的方式迭代地确定芯片的更新布置。In block 708 , 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. Exemplarily, if 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.
如果在框708确定多个第一电路单元340中的所有第一电路单元340都被包含在当前布置中,则方法700前进到框712。在框712,电子设备220将芯片的当前布置确定为一个优化候选布局。示例性地,如果当前布置为节点330-3所对应的布置,则电子设备220确定所有3个第一电路单元340-1、340-2和340-3都已经被包含在当前布置中。于是,电子设备220可以将节点330-3所对应的布置确定为一个优化候选布局。以与参考图6描述类似的方式,电子设备220可以将该优化候选布局及其布置过程数据添加到参 考树结构810-2中,构建得到优化树结构810-3。If at block 708 it is determined that all of the plurality of first circuit units 340 are included in the current arrangement, then the method 700 proceeds to block 712 . At 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.
通过以上结合图2至图8的描述可以看到,根据本公开的用于对芯片进行布局的方法可以在布局过程中使用树结构来组织和记录与先前访问过的候选布局相关联的历史布置数据,通过在后续探索其它候选布局的过程中考虑历史布置数据,可以使得该方法具有更好的探索能力,并且能够找到评估结果较好的布局方案,从而提升布局质量。It can be seen from the above description in conjunction with FIGS. 2 to 8 that 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.
在上文中已经参考图2至图8详细描述了根据本公开的方法的示例实现,在下文中将描述相应的装置的实现。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.
图9示出了根据本公开的一些实施例的用于对芯片进行布局的示例装置900的框图。该芯片包括多个第一电路单元。该装置900例如可以用于实现如图2中所示的电子设备。如图9所示,装置900可以包括评估结果确定模块902,该评估结果确定模块902用于基于网表数据,确定与多个第一电路单元在芯片中的多个候选布局分别相关联的多个评估结果,其中网表数据至少指示多个第一电路单元及其连接关系,多个候选布局中的每个候选布局中的多个第一电路单元的布置过程数据以树结构被组织,并且多个候选布局对应于树结构的叶节点。此外,装置900还可以包括目标布局选择模块904,该目标布局选择模块904用于基于多个评估结果,从多个候选布局选择目标布局。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 . As shown in FIG. 9 , 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. In addition, 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.
在一些实施例中,多个候选布局可以包括初始候选布局和至少一个优化候选布局。评估结果确定模块902可以包括初始评估结果确定模块,该初始评估结果确定模块用于基于多个第一电路单元的预定布置顺序、以及网表数据中指示多个第一电路单元的连接关系的数据,确定与初始候选布局相关联的初始评估结果,其中预定布置顺序指示多个第一电路单元根据预定策略被布置的顺序。评估结果确定模块902还可以包括初始树结构构建模块,该初始树结构构建模块用于基于初始候选布局和与初始候选布局相关联的布置过程数据,构建初始树结构。此外,评估结果确定模块902还可以包括优化评估结果确定模块,该优化评估结果确定模块用于基于网表数据、初始候选布局和初始树结构,确定至少一个优化候选布局和与至少一个优化候选布局分别相关联的至少一个优化评估结果。In some embodiments, 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. In addition, 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.
在一些实施例中,优化评估结果确定模块可以包括参考树结构设置模块,用于将初始树结构设置为参考树结构。优化评估结果确定模块还可以包括参考树结构更新模块,用于迭代地执行以下至少一次:基于预定布置顺序和参考树结构,确定一个优化候选布局;基于网表数据中指示多个第一电路单元的连接关系的数据,确定与一个优化候选布局相关联的优化评估结果;确定布局终止条件是否被满足;以及如果确定布局终止条件未被满足,基于参考树结构、一个优化候选布局和与一个优化候选布局相关联的布置过程数据,构建优化树结构以更新参考树结构。In some embodiments, 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.
在一些实施例中,参考树结构更新模块进一步用于:基于预定布置顺序,将多个第一电路单元中的一个第一电路单元设置为待布置单元;迭代地执行以下至少一次:基于参考树结构、芯片的当前布置和待布置单元,确定芯片的更新布置,其中更新布置包含待布置单元和多个第一电路单元中的、先前已经被布置的第一电路单元的布置方式;利用更新布置来更新当前布置;确定多个第一电路单元中是否存在至少一个第一电路单元未被包含在当前布置中;以及如果确定多个第一电路单元中的至少一个第一电路单元未被包含在当前布置中,基于预定布置顺序,将多个第一电路单元中的下一个第一电路单元设置为待布置单元;以及将芯片的当前布置确定为一个优化候选布局。In some embodiments, 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.
在一些实施例中,参考树结构更新模块进一步用于:基于当前布置,确定候选布置集,候选布置集包括以下项中至少一项:与当前布置的子节点对应的第一候选布置、以及通过向当前布置添加待布置单元得到的第二候选布置,其中第二候选布置与第一候选布置不同;基于参考树结构,确定与候选布置集相关联的评价集;以及基于评价集,从候选布置集中选择更新布置。In some embodiments, 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.
在一些实施例中,参考树结构更新模块进一步用于:计算与第一候选布置相关联的候选布局的评估结果的第一均值;基于第一候选布置和当前布置被访问的次数确定第一加权值;获取与候选布置集相关联的概率集;以及基于第一均值、第一加权值以及概率集中与第一候选布置相关联的第一概率,确定评价集中的与第一候选布置相关联的第一评价,其中与第一候选布置相关联的候选布局包括与第一候选布置的叶节点对应的候选布局。In some embodiments, 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.
在一些实施例中,参考树结构更新模块进一步用于:计算与参考树结构的所有叶节点对应的候选布局的评估结果的第二均值;基于与当前布置对应的节点被访问的次数确定第二加权值;获取与候选布置集相关联的概率集;以及基于第二均值、第二加权值、以及概率集中与第二候选布置相关联的第二概率,确定评价集中的与第二候选布置相关联的第二评价。In some embodiments, 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.
在一些实施例中,布局终止条件包括以下至少一项:多个候选布局的数目达到预定数目阈值;以及迭代的持续时间达到预定时间阈值。In some embodiments, 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.
在一些实施例中,芯片还可以包括至少一个第二电路单元。网表数据还可以指示至少一个第二电路单元和多个第一电路单元的连接关系。评估结果确定模块902可以包括完整布局确定模块,用于基于网表数据和多个候选布局中的一个候选布局,确定与一个候选布局相关联的完整布局,完整布局至少指示多个第一电路单元和至少一个第二电路单元的布置和连线。此外,评估结果确定模块902还可以包括完整评估结果确定模块,用于确定与完整布局相关联的完整评估结果,以确定多个评估结果中的、与一个候选布局相关联的评估结果。In some embodiments, 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. In addition, 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.
在一些实施例中,评估结果基于以下至少一项而被确定:线长、拥塞、最大时延或总时延。In some embodiments, the evaluation result is determined based on at least one of: line length, congestion, maximum delay or total delay.
装置900中所包括的模块和/或单元可以利用各种方式来实现,包括软件、硬件、固件或其任意组合。在一些实施例中,一个或多个单元可以使用软件和/或固件来实现,例如存储在存储介质上的机器可执行指令。除了机器可执行指令之外或者作为替代,装置900中的部分或者全部单元可以至少部分地由一个或多个硬件逻辑组件来实现。作为示例而非限制,可以使用的示范类型的硬件逻辑组件包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD),等等。The modules and/or units included in the device 900 may be implemented in various ways, including software, hardware, firmware or any combination thereof. In some embodiments, one or more units may be implemented using software and/or firmware, such as machine-executable instructions stored on a storage medium. In addition to or instead of machine-executable instructions, 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 that may be used 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.
图9中所示的这些模块和/或单元可以部分或者全部地实现为硬件模块、软件模块、固件模块或者其任意组合。特别地,在某些实施例中,上文描述的流程、方法或过程可以由存储系统或与存储系统对应的主机或独立于存储系统的其它计算设备中的硬件来实现。These 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. In particular, in some embodiments, 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.
图10示出了可以用于实施本公开的一些实施例的示例设备1000的示意性框图。设备1000可以用于实现电子设备。如图10所示,设备1000包括中央处理单元(CPU)1001, 其可以根据存储在只读存储器(ROM)1002中的计算机程序指令或者从存储单元1008加载到随机访问存储器(RAM)1003中的计算机程序指令,来执行各种适当的动作和处理。在RAM 1003中,还可存储设备1000操作所需的各种程序和数据。CPU 1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。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. As shown in FIG. 10 , 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. In the RAM 1003, various programs and data necessary for the operation of the device 1000 can also be stored. 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 .
设备1000中的多个部件连接至I/O接口1005,包括:输入单元1006,例如键盘、鼠标等;输出单元1007,例如各种类型的显示器、扬声器等;存储单元1008,例如磁盘、光盘等;以及通信单元1009,例如网卡、调制解调器、无线通信收发机等。通信单元1009允许设备1000通过诸如因特网的计算机网络和/或各种电信网络与其它设备交换信息/数据。Multiple components in the device 1000 are connected to the I/O interface 1005, including: an input unit 1006, such as a keyboard, a mouse, etc.; an output unit 1007, such as various types of displays, speakers, etc.; a storage unit 1008, such as a magnetic disk, an optical disk, etc. ; and a communication unit 1009, such as a network card, a modem, a wireless communication transceiver, and the like. The communication unit 1009 allows the device 1000 to exchange information/data with other devices through a computer network such as the Internet and/or various telecommunication networks.
处理单元1001执行上文所描述的各个方法和处理,例如方法400。例如,在一些实施例中,方法400可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1008。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1002和/或通信单元1009而被载入和/或安装到设备1000上。当计算机程序加载到RAM 1003并由CPU 1001执行时,可以执行上文描述的方法400的一个或多个步骤。备选地,在其它实施例中,CPU 1001可以通过其它任何适当的方式(例如,借助于固件)而被配置为执行方法400。The processing unit 1001 executes various methods and processes described above, such as the method 400 . For example, in some embodiments, method 400 may be implemented as a computer software program tangibly embodied on a machine-readable medium, such as storage unit 1008 . In some embodiments, part or all of the computer program may be loaded and/or installed on the device 1000 via the ROM 1002 and/or the communication unit 1009. When a computer program is loaded into RAM 1003 and executed by CPU 1001, one or more steps of method 400 described above may be performed. Alternatively, in other embodiments, the CPU 1001 may be configured to execute the method 400 in any other suitable manner (for example, by means of firmware).
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)等等。The functions described herein above may be performed at least in part by one or more hardware logic components. For example, without limitation, exemplary types of hardware logic components that may be used include: field programmable gate array (FPGA), application specific integrated circuit (ASIC), application specific standard product (ASSP), system on a chip (SOC), load programmable logic device (CPLD), etc.
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。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.
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。In the context of the present disclosure, a machine-readable medium may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device. A machine-readable medium 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. More specific examples of machine-readable storage media would include one or more wire-based electrical connections, portable computer discs, hard drives, random access memory (RAM), read only memory (ROM), erasable programmable read only memory (EPROM or flash memory), optical fiber, compact disk read only memory (CD-ROM), optical storage, magnetic storage, or any suitable combination of the foregoing.
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。In addition, while operations are depicted in a particular order, this should be understood to require that such operations be performed in the particular order shown, or in sequential order, or that all illustrated operations should be performed to achieve desirable results. Under certain circumstances, multitasking and parallel processing may be advantageous. Likewise, while the above discussion contains several specific implementation details, these should not be construed as limitations on the scope of the disclosure. Certain features that are described in the context of separate embodiments can also be implemented in combination in a single implementation. Conversely, various features that are described in the context of a single implementation can also be implemented in multiple implementations separately or in any suitable subcombination.
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are merely example forms of implementing the claims.

Claims (23)

  1. 一种用于对芯片进行布局的方法,其特征在于,所述方法包括:A method for laying out a chip, characterized in that the method comprises:
    基于所述芯片的网表数据,确定与所述芯片中的多个第一电路单元在所述芯片中的多个候选布局分别相关联的多个评估结果,其中所述多个评估结果中的每个评估结果指示相应的所述候选布局的布局质量,所述网表数据至少指示所述多个第一电路单元及其连接关系,所述多个候选布局中的每个候选布局中的多个第一电路单元的布置过程数据以树结构被组织,并且所述多个候选布局对应于所述树结构的叶节点;以及Based on the netlist data of the chip, determine a plurality of evaluation results respectively associated with a plurality of candidate layouts of the plurality of first circuit units in the chip in the chip, wherein among the plurality of evaluation results Each evaluation result indicates the layout quality of the corresponding candidate layout, the netlist data at least indicates the plurality of first circuit units and connection relationships thereof, and a plurality of each candidate layout in the plurality of candidate layouts The layout process data of the first circuit units is organized in a tree structure, and the plurality of candidate layouts correspond to leaf nodes of the tree structure; and
    基于所述多个评估结果,从所述多个候选布局选择目标布局。Based on the plurality of evaluation results, a target layout is selected from the plurality of candidate layouts.
  2. 根据权利要求1所述的方法,其特征在于,所述多个候选布局包括初始候选布局和至少一个优化候选布局,确定所述多个评估结果包括:The method according to claim 1, wherein the multiple candidate layouts include an initial candidate layout and at least one optimized candidate layout, and determining the multiple evaluation results comprises:
    基于所述多个第一电路单元的预定布置顺序、以及所述网表数据中指示所述多个第一电路单元的连接关系的数据,确定与所述初始候选布局相关联的初始评估结果,其中所述预定布置顺序指示所述多个第一电路单元根据预定策略被布置的顺序;determining an initial evaluation result associated with the initial candidate layout based on a predetermined arrangement sequence of the plurality of first circuit units and data indicating a connection relationship of the plurality of first circuit units in the netlist data, wherein the predetermined arrangement order indicates the order in which the plurality of first circuit units are arranged according to a predetermined strategy;
    基于所述初始候选布局和与所述初始候选布局相关联的布置过程数据,构建初始树结构;以及building an initial tree structure based on the initial candidate layout and placement process data associated with the initial candidate layout; and
    基于所述网表数据、所述初始候选布局和所述初始树结构,确定所述至少一个优化候选布局和与所述至少一个优化候选布局分别相关联的至少一个优化评估结果。Based on the netlist data, the initial candidate placement, and the initial tree structure, the at least one optimized candidate placement and at least one optimization evaluation result respectively associated with the at least one optimized candidate placement are determined.
  3. 根据权利要求2所述的方法,其特征在于,确定所述至少一个优化候选布局和所述至少一个优化评估结果包括:The method according to claim 2, wherein determining the at least one optimized candidate layout and the at least one optimized evaluation result comprises:
    将所述初始树结构设置为参考树结构;以及setting said initial tree structure as a reference tree structure; and
    迭代地执行以下至少一次:Iteratively do at least one of the following:
    基于所述预定布置顺序和所述参考树结构,确定一个优化候选布局;determining an optimal candidate layout based on the predetermined arrangement order and the reference tree structure;
    基于所述网表数据中指示所述多个第一电路单元的连接关系的数据,确定与所述一个优化候选布局相关联的优化评估结果;determining an optimization evaluation result associated with the one optimization candidate layout based on the data indicating the connection relationship of the plurality of first circuit units in the netlist data;
    确定布局终止条件是否被满足;以及determining whether a layout termination condition is satisfied; and
    如果确定布局终止条件未被满足,基于所述参考树结构、所述一个优化候选布局和与所述一个优化候选布局相关联的布置过程数据,构建优化树结构以更新所述参考树结构。If it is determined that a layout termination condition is not met, an optimized tree structure is constructed to update the reference tree structure based on the reference tree structure, the one optimized candidate layout and placement process data associated with the one optimized candidate layout.
  4. 根据权利要求3所述的方法,其特征在于,确定所述一个优化候选布局包括:The method according to claim 3, wherein determining the one optimized candidate layout comprises:
    基于所述预定布置顺序,将所述多个第一电路单元中的一个第一电路单元设置为待布置单元;Based on the predetermined arrangement sequence, setting one first circuit unit among the plurality of first circuit units as a unit to be arranged;
    迭代地执行以下至少一次:Iteratively do at least one of the following:
    基于所述参考树结构、所述芯片的当前布置和所述待布置单元,确定所述芯片的更新布置,其中所述更新布置包含所述待布置单元和所述多个第一电路单元中的、先前已经被布置的第一电路单元的布置方式;determining 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 plurality of first circuit units , the arrangement manner of the first circuit unit that has been arranged previously;
    利用所述更新布置来更新所述当前布置;updating the current arrangement with the updated 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 of the plurality of first circuit units is not included in the current arrangement, based on the predetermined arrangement sequence, the next first circuit unit of the plurality of first circuit units is The circuit unit is set as the unit to be arranged; and
    将所述芯片的当前布置确定为所述一个优化候选布局。The current arrangement of the chip is determined as the one optimized candidate arrangement.
  5. 根据权利要求4所述的方法,其特征在于,确定所述更新布置包括:The method of claim 4, wherein determining the update arrangement comprises:
    基于所述当前布置,确定候选布置集,所述候选布置集包括以下项中至少一项:与所述当前布置的子节点对应的第一候选布置、以及通过向所述当前布置添加所述待布置单元得到的第二候选布置,其中所述第二候选布置与所述第一候选布置不同;Based on the current arrangement, a candidate arrangement set is determined, the candidate arrangement set including at least one of: a first candidate arrangement corresponding to a child node of the current arrangement, and by adding the to-be-arranged arrangement to the current arrangement a second candidate arrangement obtained by the arrangement unit, wherein the second candidate arrangement is different from the first candidate arrangement;
    基于所述参考树结构,确定与所述候选布置集相关联的评价集;以及determining a set of evaluations associated with the set of candidate arrangements based on the reference tree structure; and
    基于所述评价集,从所述候选布置集中选择所述更新布置。Based on the set of evaluations, the updated arrangement is selected from the set of candidate arrangements.
  6. 根据权利要求5所述的方法,其特征在于,确定与所述候选布置集相关联的评价集包括:The method according to claim 5, wherein determining the evaluation set associated with the candidate arrangement set comprises:
    计算与所述第一候选布置相关联的候选布局的评估结果的第一均值;calculating a first mean of evaluation results of candidate placements associated with the first candidate placement;
    基于所述第一候选布置和所述当前布置被访问的次数确定第一加权值;determining a first weighted value based on the number of times the first candidate arrangement and the current arrangement are accessed;
    获取与所述候选布置集相关联的概率集;以及obtaining a set of probabilities associated with the set of candidate arrangements; and
    基于所述第一均值、所述第一加权值以及所述概率集中与所述第一候选布置相关联的第一概率,确定所述评价集中的与所述第一候选布置相关联的第一评价,其中与所述第一候选布置相关联的候选布局包括与所述第一候选布置的叶节点对应的候选布局。Based on the first mean value, the first weighted value, and the first probability associated with the first candidate arrangement in the probability set, the first candidate arrangement associated with the first candidate arrangement in the evaluation set is determined. evaluating, wherein the candidate layouts associated with the first candidate arrangement include candidate layouts corresponding to leaf nodes of the first candidate arrangement.
  7. 根据权利要求5所述的方法,其特征在于,确定与所述候选布置集相关联的评价集包括:The method according to claim 5, wherein determining the evaluation set associated with the candidate arrangement set comprises:
    计算与所述参考树结构的所有叶节点对应的候选布局的评估结果的第二均值;calculating a second mean value of evaluation results of candidate layouts corresponding to all leaf nodes of the reference tree structure;
    基于与所述当前布置对应的节点被访问的次数确定第二加权值;determining a second weighted value based on the number of times the node corresponding to the current arrangement is visited;
    获取与所述候选布置集相关联的概率集;以及obtaining a set of probabilities associated with the set of candidate arrangements; and
    基于所述第二均值、所述第二加权值、以及所述概率集中与所述第二候选布置相关联的第二概率,确定所述评价集中的与所述第二候选布置相关联的第二评价。Based on the second mean value, the second weighted value, and a second probability associated with the second candidate arrangement in the set of probabilities, determining a first in the evaluation set associated with the second candidate arrangement Two evaluations.
  8. 根据权利要求3所述的方法,其特征在于,所述布局终止条件包括以下至少一项:The method according to claim 3, wherein the layout termination condition includes at least one of the following:
    所述多个候选布局的数目达到预定数目阈值;或者the number of the plurality of candidate layouts reaches a predetermined number threshold; or
    所述迭代的持续时间达到预定时间阈值。The duration of the iteration reaches a predetermined time threshold.
  9. 根据权利要求1所述的方法,其特征在于,所述芯片还包括至少一个第二电路单元,所述网表数据还指示所述至少一个第二电路单元和所述多个第一电路单元的连接关系,确定所述多个评估结果包括:The method according to claim 1, wherein the chip further comprises at least one second circuit unit, and the netlist data also indicates the at least one second circuit unit and the plurality of first circuit units The connection relationship, determining the plurality of evaluation results includes:
    基于所述网表数据和所述多个候选布局中的一个候选布局,确定与所述一个候选布局相关联的完整布局,所述完整布局至少指示所述多个第一电路单元和所述至少一个第二电路单元的布置和连线;以及Based on the netlist data and a candidate layout of the plurality of candidate layouts, determining a complete layout associated with the one candidate layout, the complete layout indicating at least the plurality of first circuit cells and the at least arrangement and wiring of a second circuit unit; and
    确定与所述完整布局相关联的完整评估结果,以确定所述多个评估结果中的、与所述一个候选布局相关联的评估结果。A complete evaluation result associated with the complete layout is determined to determine an evaluation result associated with the one candidate layout of the plurality of evaluation results.
  10. 根据权利要求1-9中任一项所述的方法,其特征在于,所述评估结果基于以下至少一项而被确定:线长、拥塞、最大时延或总时延。The method according to any one of claims 1-9, wherein the evaluation result is determined based on at least one of the following: line length, congestion, maximum delay or total delay.
  11. 一种用于对芯片进行布局的电子设备,其特征在于,所述电子设备包括:An electronic device for laying out a chip, characterized in that the electronic device comprises:
    评估结果确定模块,用于基于所述芯片的网表数据,确定与所述芯片中的所述多个第一电路单元在所述芯片中的多个候选布局分别相关联的多个评估结果,其中所述多个评估结果中的每个评估结果指示相应的所述候选布局的布局质量,所述网表数据至少指示所述多个第 一电路单元及其连接关系,所述多个候选布局中的每个候选布局中的多个第一电路单元的布置过程数据以树结构被组织,并且所述多个候选布局对应于所述树结构的叶节点;以及an evaluation result determining module, configured to determine a plurality of evaluation results respectively associated with a plurality of candidate layouts of the plurality of first circuit units in the chip in the chip based on the netlist data of the chip, Wherein each of the plurality of evaluation results indicates the layout quality of the corresponding candidate layout, the netlist data at least indicates the plurality of first circuit units and their connection relationships, and the plurality of candidate layouts The arrangement process data of the plurality of first circuit units in each candidate layout in is organized in a tree structure, and the plurality of candidate layouts correspond to leaf nodes of the tree structure; and
    目标布局选择模块,用于基于所述多个评估结果,从所述多个候选布局选择目标布局。A target layout selection module, configured to select a target layout from the plurality of candidate layouts based on the plurality of evaluation results.
  12. 根据权利要求11所述的电子设备,其特征在于,所述多个候选布局包括初始候选布局和至少一个优化候选布局,所述评估结果确定模块包括:The electronic device according to claim 11, wherein the multiple candidate layouts include an initial candidate layout and at least one optimized candidate layout, and the evaluation result determination module includes:
    初始评估结果确定模块,用于基于所述多个第一电路单元的预定布置顺序、以及所述网表数据中指示所述多个第一电路单元的连接关系的数据,确定与所述初始候选布局相关联的初始评估结果,其中所述预定布置顺序指示所述多个第一电路单元根据预定策略被布置的顺序;an initial evaluation result determination module, configured to determine the initial candidates based on the predetermined arrangement sequence of the plurality of first circuit units and the data indicating the connection relationship of the plurality of first circuit units in the netlist data initial evaluation results associated with layout, wherein the predetermined arrangement order indicates an order in which the plurality of first circuit units are arranged according to a predetermined strategy;
    初始树结构构建模块,用于基于所述初始候选布局和与所述初始候选布局相关联的布置过程数据,构建初始树结构;以及an initial tree structure building module for building an initial tree structure based on the initial candidate layout and placement process data associated with the initial candidate layout; and
    优化评估结果确定模块,用于基于所述网表数据、所述初始候选布局和所述初始树结构,确定所述至少一个优化候选布局和与所述至少一个优化候选布局分别相关联的至少一个优化评估结果。An optimization evaluation result determination module, configured to determine the at least one optimized candidate layout and at least one of the at least one optimized candidate layouts respectively associated with the at least one optimized candidate layout based on the netlist data, the initial candidate layout, and the initial tree structure Optimize evaluation results.
  13. 根据权利要求12所述的电子设备,其特征在于,所述优化评估结果确定模块包括:The electronic device according to claim 12, wherein the optimization evaluation result determining module comprises:
    参考树结构设置模块,用于将所述初始树结构设置为参考树结构;以及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 for iteratively performing at least one of the following:
    基于所述预定布置顺序和所述参考树结构,确定一个优化候选布局;determining an optimal candidate layout based on the predetermined arrangement order and the reference tree structure;
    基于所述网表数据中指示所述多个第一电路单元的连接关系的数据,确定与所述一个优化候选布局相关联的优化评估结果;determining an optimization evaluation result associated with the one optimization candidate layout based on the data indicating the connection relationship of the plurality of first circuit units in the netlist data;
    确定布局终止条件是否被满足;以及determining whether a layout termination condition is satisfied; and
    如果确定布局终止条件未被满足,基于所述参考树结构、所述一个优化候选布局和与所述一个优化候选布局相关联的布置过程数据,构建优化树结构以更新所述参考树结构。If it is determined that a layout termination condition is not met, an optimized tree structure is constructed to update the reference tree structure based on the reference tree structure, the one optimized candidate layout and placement process data associated with the one optimized candidate layout.
  14. 根据权利要求13所述的电子设备,其特征在于,所述参考树结构更新模块进一步用于:The electronic device according to claim 13, wherein the reference tree structure updating module is further used for:
    基于所述预定布置顺序,将所述多个第一电路单元中的一个第一电路单元设置为待布置单元;Based on the predetermined arrangement sequence, setting one first circuit unit among the plurality of first circuit units as a unit to be arranged;
    迭代地执行以下至少一次:Iteratively do at least one of the following:
    基于所述参考树结构、所述芯片的当前布置和所述待布置单元,确定所述芯片的更新布置,其中所述更新布置包含所述待布置单元和所述多个第一电路单元中的、先前已经被布置的第一电路单元的布置方式;determining 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 plurality of first circuit units , the arrangement manner of the first circuit unit that has been arranged previously;
    利用所述更新布置来更新所述当前布置;updating the current arrangement with the updated 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 of the plurality of first circuit units is not included in the current arrangement, based on the predetermined arrangement sequence, the next first circuit unit of the plurality of first circuit units is The circuit unit is set as the unit to be arranged; and
    将所述芯片的当前布置确定为所述一个优化候选布局。The current arrangement of the chip is determined as the one optimized candidate arrangement.
  15. 根据权利要求14所述的电子设备,其特征在于,所述参考树结构更新模块进一步用于:The electronic device according to claim 14, wherein the reference tree structure updating module is further used for:
    基于所述当前布置,确定候选布置集,所述候选布置集包括以下项中至少一项:与所述当前布置的子节点对应的第一候选布置、以及通过向所述当前布置添加所述待布置单元得到的第二候选布置,其中所述第二候选布置与所述第一候选布置不同;Based on the current arrangement, a candidate arrangement set is determined, the candidate arrangement set including at least one of: a first candidate arrangement corresponding to a child node of the current arrangement, and by adding the to-be-arranged arrangement to the current arrangement a second candidate arrangement obtained by the arrangement unit, wherein the second candidate arrangement is different from the first candidate arrangement;
    基于所述参考树结构,确定与所述候选布置集相关联的评价集;以及determining a set of evaluations associated with the set of candidate arrangements based on the reference tree structure; and
    基于所述评价集,从所述候选布置集中选择所述更新布置。Based on the set of evaluations, the updated arrangement is selected from the set of candidate arrangements.
  16. 根据权利要求15所述的电子设备,其特征在于,所述参考树结构更新模块进一步用于:The electronic device according to claim 15, wherein the reference tree structure updating module is further used for:
    计算与所述第一候选布置相关联的候选布局的评估结果的第一均值;calculating a first mean of evaluation results of candidate placements associated with the first candidate placement;
    基于所述第一候选布置和所述当前布置被访问的次数确定第一加权值;determining a first weighted value based on the number of times the first candidate arrangement and the current arrangement are accessed;
    获取与所述候选布置集相关联的概率集;以及obtaining a set of probabilities associated with the set of candidate arrangements; and
    基于所述第一均值、所述第一加权值以及所述概率集中与所述第一候选布置相关联的第一概率,确定所述评价集中的与所述第一候选布置相关联的第一评价,其中与所述第一候选布置相关联的候选布局包括与所述第一候选布置的叶节点对应的候选布局。Based on the first mean value, the first weighted value, and the first probability associated with the first candidate arrangement in the probability set, the first candidate arrangement associated with the first candidate arrangement in the evaluation set is determined. evaluating, wherein the candidate layouts associated with the first candidate arrangement include candidate layouts corresponding to leaf nodes of the first candidate arrangement.
  17. 根据权利要求15所述的电子设备,其特征在于,所述参考树结构更新模块进一步用于:The electronic device according to claim 15, wherein the reference tree structure updating module is further used for:
    计算与所述参考树结构的所有叶节点对应的候选布局的评估结果的第二均值;calculating a second mean value of evaluation results of candidate layouts corresponding to all leaf nodes of the reference tree structure;
    基于与所述当前布置对应的节点被访问的次数确定第二加权值;determining a second weighted value based on the number of times the node corresponding to the current arrangement is visited;
    获取与所述候选布置集相关联的概率集;以及obtaining a set of probabilities associated with the set of candidate arrangements; and
    基于所述第二均值、所述第二加权值、以及所述概率集中与所述第二候选布置相关联的第二概率,确定所述评价集中的与所述第二候选布置相关联的第二评价。Based on the second mean value, the second weighted value, and a second probability associated with the second candidate arrangement in the set of probabilities, determining a first in the evaluation set associated with the second candidate arrangement Two evaluations.
  18. 根据权利要求13所述的电子设备,其特征在于,所述布局终止条件包括以下至少一项:The electronic device according to claim 13, wherein the layout termination condition includes at least one of the following:
    所述多个候选布局的数目达到预定数目阈值;或者the number of the plurality of candidate layouts reaches a predetermined number threshold; or
    所述迭代的持续时间达到预定时间阈值。The duration of the iteration reaches a predetermined time threshold.
  19. 根据权利要求11所述的电子设备,其特征在于,所述芯片还包括至少一个第二电路单元,所述网表数据还指示所述至少一个第二电路单元和所述多个第一电路单元的连接关系,所述评估结果确定模块包括:The electronic device according to claim 11, wherein the chip further includes at least one second circuit unit, and the netlist data also indicates that the at least one second circuit unit and the plurality of first circuit units connection relationship, the evaluation result determination module includes:
    完整布局确定模块,用于基于所述网表数据和所述多个候选布局中的一个候选布局,确定与所述一个候选布局相关联的完整布局,所述完整布局至少指示所述多个第一电路单元和所述至少一个第二电路单元的布置和连线;以及a complete layout determining module, configured to determine a complete layout associated with the one candidate layout based on the netlist data and one candidate layout among the plurality of candidate layouts, the complete layout indicating at least the plurality of first arrangement and wiring of a circuit unit and said at least one second circuit unit; 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 the one candidate layout among the plurality of evaluation results.
  20. 根据权利要求11-19中任一项所述的电子设备,其特征在于,所述评估结果基于以下至少一项而被确定:线长、拥塞、最大时延或总时延。The electronic device according to any one of claims 11-19, wherein the evaluation result is determined based on at least one of the following: line length, congestion, maximum delay or total delay.
  21. 一种用于对芯片进行布局的电子设备,其特征在于,包括:An electronic device for laying out chips, comprising:
    至少一个计算单元;at least one computing unit;
    至少一个存储器,所述至少一个存储器被耦合到所述至少一个计算单元,并且存储用于由所述至少一个计算单元执行的指令,所述指令当由所述至少一个计算单元执行时,使得所述设备执行根据权利要求1至10中任一项所述的方法。at least one memory coupled to the at least one computing unit and storing instructions for execution by the at least one computing unit that, when executed by the at least one computing unit, cause the The device performs the method according to any one of claims 1-10.
  22. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程 序,所述计算机程序被处理器执行时实现根据权利要求1至10中任一项所述的方法。A computer-readable storage medium, characterized in that the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the method according to any one of claims 1 to 10 is implemented.
  23. 一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机可执行指令,所述计算机可执行指令在被处理器执行时,使计算机实现根据权利要求1至10中任一项所述的方法。A computer program product, characterized in that the computer program product includes computer-executable instructions, and when the computer-executable instructions are executed by a processor, the computer implements the method according to any one of claims 1 to 10. method.
PCT/CN2021/117822 2021-09-10 2021-09-10 Method for placement in chip, and device, medium and program product WO2023035250A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202180101596.2A CN117940931A (en) 2021-09-10 2021-09-10 Method, apparatus, medium and program product for laying out chips
PCT/CN2021/117822 WO2023035250A1 (en) 2021-09-10 2021-09-10 Method for placement in chip, and device, medium and program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2021/117822 WO2023035250A1 (en) 2021-09-10 2021-09-10 Method for placement in chip, and device, medium and program product

Publications (1)

Publication Number Publication Date
WO2023035250A1 true WO2023035250A1 (en) 2023-03-16

Family

ID=85506994

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/117822 WO2023035250A1 (en) 2021-09-10 2021-09-10 Method for placement in chip, and device, medium and program product

Country Status (2)

Country Link
CN (1) CN117940931A (en)
WO (1) WO2023035250A1 (en)

Cited By (2)

* 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
CN117195821A (en) * 2023-11-08 2023-12-08 深圳鸿芯微纳技术有限公司 Clock tree synthesis method, electronic equipment and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
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 (en) * 2007-11-01 2009-01-07 复旦大学 VLSI layout planning centralized constrain implementing method
CN101369294A (en) * 2008-10-16 2009-02-18 复旦大学 Plane layout planning method for SoC layout
CN101796538A (en) * 2007-06-27 2010-08-04 惠普开发有限公司 With the arranging graphic object on the page that is controlled at based on relative area
CN111950225A (en) * 2020-08-13 2020-11-17 京东方科技集团股份有限公司 Chip layout method and device, storage medium and electronic equipment

Patent Citations (5)

* Cited by examiner, † Cited by third party
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 (en) * 2007-06-27 2010-08-04 惠普开发有限公司 With the arranging graphic object on the page that is controlled at based on relative area
CN101339571A (en) * 2007-11-01 2009-01-07 复旦大学 VLSI layout planning centralized constrain implementing method
CN101369294A (en) * 2008-10-16 2009-02-18 复旦大学 Plane layout planning method for SoC layout
CN111950225A (en) * 2020-08-13 2020-11-17 京东方科技集团股份有限公司 Chip layout method and device, storage medium and electronic equipment

Cited By (4)

* 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
CN116663483B (en) * 2023-07-31 2023-10-20 全芯智造技术有限公司 Method, apparatus and medium for chip layout
CN117195821A (en) * 2023-11-08 2023-12-08 深圳鸿芯微纳技术有限公司 Clock tree synthesis method, electronic equipment and storage medium
CN117195821B (en) * 2023-11-08 2024-02-23 深圳鸿芯微纳技术有限公司 Clock tree synthesis method, electronic equipment and storage medium

Also Published As

Publication number Publication date
CN117940931A (en) 2024-04-26

Similar Documents

Publication Publication Date Title
WO2023035250A1 (en) Method for placement in chip, and device, medium and program product
JP3404532B2 (en) Optimal fitting parameter determining method and apparatus, and optimal fitting parameter determining program
CN103455654B (en) Data path extraction based on machine learning
US8160858B2 (en) Systems and methods of efficient library characterization for integrated circuit cell libraries
CN114861576B (en) Simulation method and device for superconducting quantum chip layout, electronic equipment and medium
JP2891328B2 (en) A Method of Generating Delay Time Values for Multilevel Hierarchical Circuit Design
KR101013309B1 (en) Heuristic clustering of circuit elements in a circuit design
JP5127935B2 (en) Integrated circuit design and library optimization
TWI808846B (en) Unified material-to-systems simulation, design, and verification for semiconductor design and manufacturing
US20090307636A1 (en) Solution efficiency of genetic algorithm applications
CN114730618A (en) Systems and methods for designing organic synthesis pathways for desired organic molecules
US9852250B2 (en) Memory optimization in VLSI design using generic memory models
CN103793546A (en) Modeling multi-patterning variability with statistical timing
WO2022247092A1 (en) Methods and systems for congestion prediction in logic synthesis using graph neural networks
JP6219528B2 (en) Simulation system and simulation method
Lu et al. On advancing physical design using graph neural networks
CN117610491A (en) Chip design method, device, equipment and computer readable storage medium
Cao et al. A timing prediction framework for wide voltage design with data augmentation strategy
Shrestha et al. Graph representation learning for parasitic impedance prediction of the interconnect
WO2023060551A1 (en) Method for optimizing logic circuit, device, medium, and program product
Jain et al. Artificial Neural Network Based Post-CTS QoR Report Prediction
CN116362167A (en) Method, apparatus, device, medium, and program product for designing a circuit
Aghaeekiasaraee An Efficient Cooperation between Routing and Placement with Technology Node Constraints.
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