CN108073734B - Automatic layout method and device for trigger - Google Patents
Automatic layout method and device for trigger Download PDFInfo
- Publication number
- CN108073734B CN108073734B CN201610990278.7A CN201610990278A CN108073734B CN 108073734 B CN108073734 B CN 108073734B CN 201610990278 A CN201610990278 A CN 201610990278A CN 108073734 B CN108073734 B CN 108073734B
- Authority
- CN
- China
- Prior art keywords
- trigger
- class
- classes
- moving
- coordinate information
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000007621 cluster analysis Methods 0.000 claims abstract description 10
- 238000004458 analytical method Methods 0.000 claims description 10
- 238000013461 design Methods 0.000 claims description 6
- 238000000342 Monte Carlo simulation Methods 0.000 description 11
- 238000005457 optimization Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000002708 enhancing effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Architecture (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
The invention provides a method and a device for automatically laying out triggers, wherein the method comprises the following steps: performing cluster analysis on each trigger according to the attribute information of each trigger, and dividing each trigger into at least one trigger class, wherein each trigger class comprises at least one trigger; moving the trigger classes to reduce the contact area between the trigger classes; determining the moving coordinate information of each trigger class according to the original coordinate information of each trigger class before each trigger class is moved, the coordinate information of each trigger class after each trigger class is moved and a preset constraint relation so as to determine the moving position of each trigger class; moving each trigger in each trigger class to determine a trigger layout in each trigger class; and repeatedly executing the steps until each trigger class meets the preset condition of reducing the overlapping of the trigger classes. The overlapping phenomenon of the triggers can be reduced, the performance of the local clock system is enhanced, and the clock power consumption of the local clock system is reduced.
Description
Technical Field
The present invention relates to semiconductor integrated circuit technology, and more particularly, to a method and apparatus for automatic layout of flip-flops.
Background
In the field of integrated circuit design, clock systems are an important part of integrated circuits, and in high performance integrated circuit design, clock systems are divided into global clock systems, local clock systems, and local clock systems. Connecting a local clock system with a time sequence unit trigger of the integrated circuit so as to form a sub-clock tree; the distribution of the flip-flops directly affects the performance of the local clock system. The distribution of the triggers in the local clock system is required to have certain regularity or space consistency, and the regular design of the triggers is beneficial to optimizing the total line length of the local clock system, reducing the clock power consumption of the local clock system, meeting the design requirements of the local clock system and the like.
In the prior art, when the triggers are arranged, the triggers are clustered first, so that the triggers are divided into a plurality of trigger classes; then clustering the trigger classes again according to the positions of the trigger classes so as to reduce the overlapping phenomenon of the trigger classes; and finally, distributing all triggers in all trigger classes.
However, in the trigger layout method in the prior art, since the adjustment manner is not perfect for the arrangement of the trigger classes, the overlapping phenomenon of the trigger classes still exists after clustering the trigger classes for many times in the prior art, which further affects the performance of the local clock system and increases the clock power consumption of the local clock system.
Disclosure of Invention
The invention provides a method and a device for automatically arranging triggers, which are used for solving the problems that after each trigger class is clustered for many times in the prior art, the overlapping phenomenon of the trigger classes still exists, the performance of a local clock system is further influenced, and the clock power consumption of the local clock system is increased.
The invention provides an automatic layout method of a trigger, which comprises the following steps:
according to the attribute information of each trigger, carrying out cluster analysis on each trigger so as to divide each trigger into at least one trigger class, wherein each trigger class comprises at least one trigger;
moving the trigger classes to reduce the contact area between the trigger classes;
determining the moving coordinate information of each trigger class according to the original coordinate information of each trigger class before each trigger class is moved, the coordinate information of each trigger class after each trigger class is moved and a preset constraint relation so as to determine the moving position of each trigger class;
moving each trigger in each trigger class according to the moving position of each trigger class to determine the trigger layout in each trigger class;
and repeatedly executing the steps until each trigger class meets the preset condition of reducing the overlapping of the trigger classes.
The invention provides another automatic layout device of triggers, which comprises:
the clustering module is used for carrying out clustering analysis on each trigger according to the attribute information of each trigger so as to divide each trigger into at least one trigger class, wherein each trigger class comprises at least one trigger;
the first moving module is used for moving each trigger class so as to reduce the contact area among the trigger classes;
the position determining module is used for determining the moving coordinate information of each trigger class according to the original coordinate information of each trigger class before each trigger class is moved, the coordinate information of each trigger class after each trigger class is moved and a preset constraint relation so as to determine the moving position of each trigger class;
the second moving module is used for moving each trigger in each trigger class according to the moving position of each trigger class so as to determine the trigger layout in each trigger class;
and the repeating module is used for repeatedly executing the steps in the modules until each trigger class meets the preset condition of reducing the overlapping of the trigger classes.
According to the method, clustering analysis is carried out on each trigger according to the attribute information of each trigger so as to divide each trigger into at least one trigger class, wherein each trigger class comprises at least one trigger; moving the trigger classes to reduce the contact area between the trigger classes; determining the moving coordinate information of each trigger class according to the original coordinate information of each trigger class before each trigger class is moved, the coordinate information of each trigger class after each trigger class is moved and a preset constraint relation so as to determine the moving position of each trigger class; moving each trigger in each trigger class to determine a trigger layout in each trigger class; and repeatedly executing the steps until each trigger class meets the preset condition of reducing the overlapping of the trigger classes. The method can obtain a plurality of trigger classes after clustering analysis is carried out on the trigger classes, and then the contact area among the trigger classes can be reduced after the trigger classes are moved; determining the minimum value of an objective function of the layout of the triggers according to a preset constraint relation through the coordinate information before and after the movement of the triggers, solving and removing the movement coordinate information of the triggers from the objective function under the condition of the minimum value of the objective function, adjusting the positions of the triggers, reducing the contact area between the triggers again, enabling the triggers not to be in contact with each other, and enabling the triggers in each trigger to be in non-contact with each other after adjusting the layout of the triggers; therefore, the invention can reduce the overlapping phenomenon of the triggers, and ensure that the triggers in each trigger class are not contacted with each other, thereby enhancing the performance of the local clock system and reducing the clock power consumption of the local clock system.
Drawings
Fig. 1 is a flowchart of an automatic layout method of triggers according to an embodiment of the present invention;
FIG. 2 is a flowchart of a method for automatically laying out triggers according to a second embodiment of the present invention;
fig. 3 is a schematic structural diagram of an automatic layout apparatus for triggers according to a third embodiment of the present invention;
fig. 4 is a schematic structural diagram of an automatic layout apparatus for flip-flops according to a fourth embodiment of the present invention.
Detailed Description
In order to make the objects, technical solutions and advantages of the embodiments of the present invention clearer, the technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are some, but not all, embodiments of the present invention. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
Fig. 1 is a flowchart of an automatic layout method of a trigger according to an embodiment of the present invention, as shown in fig. 1, the method of the embodiment includes:
In this embodiment, specifically, after the local clock system is connected to the sequential cell flip-flops of the integrated circuit, the arrangement of the flip-flops is adjusted.
The method comprises H triggers, wherein each trigger comprises attribute information such as name and function information, and H is a positive integer. Firstly, clustering analysis is carried out on each trigger class according to the attribute information of each trigger; the clustering analysis may use a clustering algorithm in the prior art, for example, a clustering method based on a segmentation principle, a clustering method based on hierarchy, a clustering method based on density, or a clustering method based on a grid may be used. For example, cluster analysis can be performed on each trigger class according to the name of each trigger; or clustering analysis can be carried out on each trigger class according to the function information of each trigger.
After performing cluster analysis on each trigger class, H triggers may be divided into N trigger classes, where N is a positive integer, so that H triggers are divided into N trigger classes each including at least one trigger. The number of the triggers in the N trigger classes is different or the same, and the specific number is determined according to the condition after the cluster analysis.
In this embodiment, specifically, after performing cluster analysis on the triggers in step 101, N trigger classes are formed, and a phenomenon and a problem of overlapping of the trigger classes may occur between the trigger classes, so that one trigger class overlaps with one or more other trigger classes, and thus has a contact area.
First, the trigger classes are randomly moved to reduce the contact area between the trigger classes. At this time, coarse adjustment is carried out on each trigger class, each trigger class can be moved randomly by adopting a Monte Carlo simulation method (Monte Carlo simulation), the Monte Carlo simulation method is a random algorithm, and the Monte Carlo simulation method has a reasonably designed Scoring function (Scoring function) and has a multi-iteration process; in each iteration of the Monte Carlo simulation method, the overlapping problem among the triggers can be gradually eliminated; meanwhile, the Monte Carlo simulation method can escape from a Local feasible region (Local feasible region) with a certain probability, so that a global optimal solution of the coordinate information of each trigger class is obtained. The Monte Carlo simulation approach can eliminate as much overlap as possible with minimal cost, including and not limited to the number of trigger classes moved, or the distance trigger classes are moved.
And 103, determining the moving coordinate information of each trigger class according to the original coordinate information of each trigger class before each trigger class is moved, the coordinate information of each trigger class after each trigger class is moved and a preset constraint relation so as to determine the moving position of each trigger class.
In this embodiment, specifically, after step 102, original coordinate information of each trigger class before each trigger class is randomly moved is obtained; after the trigger classes are randomly moved for multiple times by adopting a Monte Carlo simulation method, the coordinate information of the trigger classes after the trigger classes are randomly moved is obtained. Setting a preset constraint relation for the length and the width of each trigger class, and finely adjusting each trigger class according to the preset constraint relation, original coordinate information of each trigger class before each trigger class is randomly moved, and coordinate information of each trigger class after each trigger class is randomly moved, so that the position of each trigger class is adjusted again, and further the adjusted moving coordinate information of each trigger class is determined; and moving each trigger class according to the determined moving coordinate information of each trigger class, thereby determining the moving position of each trigger class. Thereby further reducing the contact area between the trigger classes.
And step 104, moving each trigger in each trigger class according to the moving position of each trigger class so as to determine the trigger layout in each trigger class.
In this embodiment, specifically, the contact area between the trigger classes is reduced after step 103 is executed, but there may be a problem of contact or overlap between the triggers in the trigger classes. And finally, moving the triggers in the trigger classes according to the moving positions of the triggers to ensure that the triggers in the trigger classes are not overlapped and not contacted with each other, thereby determining the layout of the triggers in the trigger classes.
And 105, repeatedly executing the steps until each trigger class meets the preset condition of reducing the overlapping of the trigger classes.
In this embodiment, specifically, all the steps in steps 101 to 104 are repeated until each trigger class satisfies the preset condition. Wherein the preset conditions include: repeat T; or the contact area among the trigger classes is zero; or the bus length of each trigger class reaches the preset bus length.
Specifically, after repeating steps 101 to 104T times, steps 101 to 104 are not repeated, and at this time, clustering of each trigger class, position adjustment of each trigger class, and position adjustment of each trigger in each trigger class are completed. Alternatively, when the contact area between the trigger classes is calculated to be zero, the steps 101 to 104 are not repeated. Or, after calculating the bus length of each trigger class to reach the preset bus length, the steps 101 to 104 are not repeated.
For example, after repeating all the steps 101-104 several times, determining that the contact area between the trigger classes is zero, the steps of the whole method are completed, the final trigger classes and the coordinate information of the triggers in the trigger classes are determined, and the layout of the trigger classes and the triggers in the trigger classes is determined.
In this embodiment, each trigger is classified into at least one trigger class by performing cluster analysis on each trigger according to attribute information of each trigger, where the trigger class includes at least one trigger; moving the trigger classes to reduce the contact area between the trigger classes; determining the moving coordinate information of each trigger class according to the original coordinate information of each trigger class before each trigger class is moved, the coordinate information of each trigger class after each trigger class is moved and a preset constraint relation so as to determine the moving position of each trigger class; moving each trigger in each trigger class to determine a trigger layout in each trigger class; and repeatedly executing the steps until each trigger class meets the preset condition of reducing the overlapping of the trigger classes. The method can obtain a plurality of trigger classes after clustering analysis is carried out on the trigger classes, and then the contact area among the trigger classes can be reduced after the trigger classes are moved; determining the minimum value of an objective function of the layout of the triggers according to a preset constraint relation through the coordinate information before and after the movement of the triggers, solving and removing the movement coordinate information of the triggers from the objective function under the condition of the minimum value of the objective function, adjusting the positions of the triggers, reducing the contact area between the triggers again, enabling the triggers not to be in contact with each other, and enabling the triggers in each trigger to be in non-contact with each other after adjusting the layout of the triggers; therefore, the invention can reduce the overlapping phenomenon of the triggers, and ensure that the triggers in each trigger class are not contacted with each other, thereby enhancing the performance of the local clock system and reducing the clock power consumption of the local clock system.
Fig. 2 is a flowchart of an automatic layout method of triggers according to a second embodiment of the present invention, and based on the first embodiment, as shown in fig. 2, the method of the present embodiment, step 102, includes:
In this embodiment, specifically, the position of each trigger class is coarsely adjusted by using a monte carlo simulation method. Specifically, the positions of the respective trigger classes are first randomly moved, at which time the respective trigger classes are randomly moved once, and then the respective triggers after the random movement are calculatedNumber of overlapping classes p of sender classesiThe value of i is a positive integer between 1 and N; number of class overlaps piThe number of the other flip-flops which generate a contact area between each flip-flop and the other flip-flop is set. For each trigger class, its class overlap number p is calculatedi。
For example, for the 1 st trigger class, there is a contact area with the 2 nd trigger class and the 3 rd trigger class, and all contacts are generated, so that the 1 st trigger class overlaps with the 1 st trigger class by the number p12; for the 2 nd trigger class, the contact areas are arranged among the 1 st trigger class, the 4 th trigger class and the 5 th trigger class, and the contact is generated, so that the class of the 2 nd trigger class is overlapped by the number p23; and by analogy, calculating the class overlapping number of each trigger class.
In this embodiment, specifically, a kth trigger class of the trigger class is randomly selected from the N trigger classes, and a value of k is a positive integer between 1 and N, where k is a randomly selected positive integer between 1 and N. Coordinate information (x) of the kth trigger before the current movement can be obtained by obtaining the coordinate information of each trigger before the position of each trigger is randomly moved in step 1021, and randomly moving each trigger once in step 1021k0,yk0) (ii) a After randomly shifting the position of each trigger class at step 1021, the coordinate information (x) of the kth trigger class after the current shiftk,yk). Therefore, according to the distance calculation mode, the current moving distance | x of the kth trigger class can be calculatedk+xk0|+|yk+yk0|。
Step 1023The number of class overlaps pi according to each trigger class, and the current movement distance | x of the kth trigger classk-xk0|+|yk-yk0Determining a value of credit
In this embodiment, specifically, the number p of class overlaps of each trigger class determined in step 1021 may be determined according to the number piCalculating the sum of the number of class overlapsA scoring function is provided in the monte carlo simulation method, and specific parameters in the trigger class in the embodiment are combined, so that the sum of the class overlapping numbers can be usedThe current movement distance | x of the kth trigger class randomly selected in step 1022k-xk0|+|yk-yk0L. obtaining the score value of the scoring function
Wherein, t1Is a preset first weight value, t2Is a preset second weight value. And j is a positive integer between 1 and M, M being a positive integer.
In this embodiment, specifically, since the positions of the trigger classes are randomly moved for multiple times, different score values H are obtained after the steps 1021, 1022, and 1023 are sequentially performedj,j∈[1,M](ii) a After a step 10 is performed21. After step 1022 and step 1023, H is comparedjAnd Hj-1The size of (c) between. If H isjIs less than Hj-1To explain, after the j-th random movement of each trigger class, the overlap between the trigger classes is reduced, so that each trigger class can be moved according to the coordinate information of each trigger class after the j-th random movement of each trigger class.
In this embodiment, specifically, the positive integer p is randomly selected within 1 to M, if HjGreater than Hj-1Then it continues to be determined whether q is less thanIf it is determined that q is less thanMoving each trigger class according to the coordinate information of each trigger class after the j-th random movement of each trigger class; if it is determined that q is greater than or equal toThen the trigger classes are not moved. Wherein q is [0,1]]A random number in between.
In this embodiment, specifically, step 1021, step 1022, step 1023, step 1024, and step 1025 are repeatedly executed, and after the above steps are repeatedly executed M times, a minimum value H of the score value can be determinedM. Wherein, inIn the process of repeatedly executing the steps for M times, the processes are randomly selected for several times to execute the step 1025, so that the local feasible region is escaped with a certain probability to search the global optimal solution.
In this embodiment, specifically, after step 1026, coarse adjustment of the flip-flops is completed, so that the contact area of the flip-flops is reduced, and the overlapping phenomenon and the problem of a part of the flip-flops are eliminated. Then, the original coordinate information (x) of each trigger class before M random movements can be obtainedc0,yc0) And coordinate information (x) of each trigger class after M random movementsc,yc). Wherein c is a positive integer from 1 to N.
Based on the original coordinate information (x) of each trigger class before M random movementsc0,yc0) And coordinate information (x) of each trigger class after M random movementsc,yc) The constraint DEVx for the moving distance of each trigger class on the x-axis can be calculatedc≥|xc-xc0And calculating the constraint condition DEVy of the moving distance of each trigger class on the y axisc≥|yc-yc0L, |; then, the sum of the moving distances of the trigger classes is calculated
In this embodiment, the basic principle is to pass the slack variable DWL after the local clock system is connected to the sequential cell flip-flops of the integrated circuiteAdding constraints to realize the optimization of the minimization of the bus length, wherein the specific constraints are expanded as follows: DWLe≥we(xi-xj+yi-yj)、DWLe≥we(xj-xi+yi-yj)、DWLe≥we(xi-xj+yj-yi)、DWLe≥we(xj-xi+yj-yi) (ii) a Wherein, DWLeFor the slack variable for the line length of path E, i ∈ N, j ∈ N, E ∈ (i, j) ∈ E.
according to the demand coefficient R of each trigger classcDetermining the sum of the demand coefficients for each flip-flop class
In this embodiment, specifically, each trigger class has an actual size, and the actual size is the width and height of the trigger class; meanwhile, each flip-flop class has a respective upper requirement size limit, which is a predefined maximum size of each flip-flop class. After the ratio calculation is performed on the actual size of each trigger class and the upper limit of the required size of each trigger class, the requirement coefficient R of each trigger class can be determined respectivelycAfter the summation calculation, the sum of the demand coefficients of each trigger class can be obtained
Specifically, each flip-flop class has a real size (h)c,wc) Wherein h iscFor the height of the c-th trigger class in the horizontal direction, i.e. in the direction of the x-axis, wcIs the width of the c-th trigger class in the vertical direction, i.e. in the y-axis direction. The upper limit of the required size of each trigger class is presetWherein, h'c、w′cAre respectively flip-flopsThe unit height and unit width of the class, the unit height of each trigger class can be the same or different, and the unit width of each trigger class can be the same or different; and,the number of paths of the c-th flip-flop in the horizontal direction,the number of paths of the c-th trigger class in the vertical direction,can be obtained by calculation. Then according to the actual size (h) of each trigger classc,wc) Upper limit of required size of each flip-flopThe demand coefficient of each trigger class can be calculated respectivelyThen according to the demand coefficient R of each trigger classcPerforming summation calculation to calculate the sum of demand coefficients of each trigger class
In the present embodiment, specifically, according to step 1031The sum of the calculated moving distances of the trigger classesSum of relaxation variables for the respective flip-flop classes calculated in step 1032And the sum of the demand coefficients for each trigger class calculated in step 1033Target function of trigger class layout can be obtainedWherein,the bus length of all paths is restricted, and therefore optimization of bus length minimization is achieved.
Wherein the constraint already exists in the objective function: x-axis moving distance constraint DEVx for trigger classesc≥|xc-xc0I and y-axis moving distance constraint DEVy of each trigger classc≥|yc-yc0L. In the objective function, α is a third weight value, β is a fourth weight value, and γ is a fifth weight value.
And 1035, determining the movement coordinate information of each trigger class under the condition of the minimum value of the target function of the trigger class layout according to the preset constraint relation.
The specific implementation of step 1035 includes:
determining a first preset constraint relation | x between trigger classes according to the actual sizes of the trigger classesa-yb|+|ya-yb|≥(ha+hb)/2+(wa+wb) /2, and a second predetermined constraint relationship | x between respective trigger classesa-xb|+|ya-yb|≥min(|ya0-yb0|+(wa+wb)/2,|xa0-xb0|+(ha+hb) /2), wherein (h)a,wa)、(hb,wb) Actual sizes of the a-th and b-th trigger class, respectively, and original coordinate information (x)a0,ya0) Coordinate information (x)a,ya) Coordinate information before and after M random movements of the a-th trigger class, original coordinate information (x)b0,yb0) Coordinate information (x)b,yb) Coordinate information of the b-th trigger class before and after M times of random movement respectively;
under the constraint of the first preset constraint relation and the second preset constraint relation, determining the moving coordinate information (x) of each trigger class under the condition of the minimum value of the target function of the trigger class layouta,ya);
Wherein a belongs to [1, N ], b belongs to [1, N ], and a and b are positive integers.
Alternatively, another specific implementation of step 1035 comprises:
determining a first preset constraint relation | x between trigger classes according to the actual sizes of the trigger classesa-yb|+|ya-yb|≥(ha+hb)/2+(wa+wb) /2, and a third predefined constraint relationship h between trigger classesc≥h′cNc,wc≥w′cNcWherein N iscThe number of the triggers in the c trigger class;
under the constraint of the first preset constraint relation and the third preset constraint relation, determining the moving coordinate information (x) of each trigger class under the condition of the minimum value of the target function of the trigger class layouta,ya)。
In this embodiment, specifically, a preset constraint relationship is determined, and the minimum value of the target function of the layout of the trigger classes is calculated under the constraint conditions of the preset constraint relationship, the x-axis movement distance constraint condition of each trigger class, the y-axis movement distance constraint condition of each trigger class, and the number of paths between each trigger class; and under the condition that the minimum value of the target function is determined, obtaining the movement coordinate information of each trigger class from the target function, wherein the movement coordinate information is used as the information for moving the position of each trigger class.
Specifically, according to the actual size of each trigger class, a first preset constraint relation | x between each trigger class is determineda-yb|+|ya-yb|≥(ha+hb)/2+(wa+wb)/2. Wherein (h)a,wa) Is the actual size of the a-th flip-flop class, haHeight of the a-th flip-flop in the horizontal direction, waIs the width of the a-th flip-flop in the vertical direction, and likewise, (h)b,wb) The actual size of the b-th flip-flop class. (x)a,ya) Coordinate information (x) after M random moves at step 1026 for the a-th trigger classa,ya),(xb,yb) Coordinate information (x) after M random shifts at step 1026 for the b-th trigger class, respectivelyb,yb). a is a positive integer between 1 and N, and b is a positive integer between 1 and N.
For the first preset constraint relationship, a and b need to take values of all positive integers between 1 and N, so that the first preset constraint relationship is constrained to be limited to all trigger classes.
And determining a second preset constraint relation | x between the trigger classes according to the actual sizes of the trigger classesa-xb|+|ya-yb|≥min(|ya0-yb0|+(wa+wb)/2,|xa0-xb0|+(ha+hb)/2). Wherein (x)a0,ya0) The original coordinate information (x) before the M random moves at step 1026 for the a-th trigger classa0,ya0),(xb0,yb0) Original coordinate information (x) before M random moves were performed at step 1026 for the b-th trigger classb0,yb0)。
Similarly, for the second preset constraint relationship, a and b need to take values of all positive integers between 1 and N, so that the second preset constraint relationship is constrained to be limited to all trigger classes.
Or determining a third preset constraint relation h among the trigger classes according to the actual sizes of the trigger classesc≥h′cNc,wc≥w′cNc. Wherein N iscThe number of the triggers in the c trigger class; h'c、w′cThe unit heights and the unit widths of the flip-flops are respectively, the unit heights of the flip-flops may be the same or different, and the unit widths of the flip-flops may be the same or different.
Similarly, for the third preset constraint relationship, a and b need to take values of all positive integers between 1 and N, so that the third preset constraint relationship is constrained to be limited to all trigger classes.
And under the constraint of the first preset constraint relation and the second preset constraint relation, simultaneously under the constraint conditions of the x-axis movement distance of each trigger class, the y-axis movement distance of each trigger class and the number of paths among the trigger classes, calculating the minimum value of the target function in the layout of the trigger classes. Further, in the case of the minimum value of the objective function, the movement coordinate information (x) of each trigger class can be obtained from the objective functiona,ya) And obtaining the moving coordinate information of all trigger classes.
Or under the constraint of the first preset constraint relation and the third preset constraint relation, simultaneously under the constraint conditions of the x-axis movement distance of each trigger class, the y-axis movement distance of each trigger class and the number of paths among the trigger classes, calculating the minimum value of the target function in the layout of the trigger classes. Further, in the case of the minimum value of the objective function, the movement coordinate information (x) of each trigger class can be obtained from the objective functiona,ya) And obtaining the moving coordinate information of all trigger classes.
In this embodiment, specifically, according to the movement coordinate information of each trigger class determined in step 1035, each trigger class is moved, so that the position of each trigger class is adjusted, and the contact area between each trigger class is further reduced, so that each trigger class is not overlapped.
and moving each trigger in each trigger class according to the moving position of each trigger class by adopting a network flow method, and determining the layout of the triggers in each trigger class.
In this embodiment, specifically, a network flow calculation method is adopted to move each trigger in each trigger class according to the moving position of each trigger class, so as to adjust the position of each trigger in each trigger class. Where network flow is an existing method that can be used to compute the location of trigger classes. By adopting the network flow mode, the triggers in each trigger class can not be overlapped or removed, so that the layout of each trigger in each trigger class is adjusted. Step 104 completes the process of local optimization of the trigger.
In this embodiment, by randomly moving the positions of the trigger classes, the class overlapping number of the trigger classes and the current moving distance of the randomly selected kth trigger class are calculated, so as to obtain the score value of a scoring function, and the score value obtained after the current movement is compared with the score value obtained after the previous movement, so as to determine that the trigger classes are moved, wherein the above processes need to be iterated for multiple times; by setting an x-axis movement distance constraint condition of each trigger class, a y-axis movement distance constraint condition of each trigger class and a constraint condition of the number of paths between each trigger class and setting a first preset constraint relationship, a second preset constraint relationship and a third preset constraint relationship between each trigger class, a target function of trigger class layout can be determined according to the sum of the movement distances of each trigger class, the bus length of each trigger class and the sum of demand coefficients of each trigger class, and then under the constraint of the first preset constraint relationship and the second preset constraint relationship or under the constraint of the first preset constraint relationship and the third preset constraint relationship, movement coordinate information of each trigger class under the condition of the minimum value of the target function of trigger class layout is determined, and each trigger class is moved; the position of each trigger in each trigger class is moved by adopting a network flow method; all the steps need to be iterated for multiple times of circulation until the contact area between the trigger classes is zero or the bus length of each trigger class reaches the preset bus length, and then the steps are stopped. Therefore, the embodiment can complete the global optimization processing of the triggers through trigger class clustering; by moving the trigger classes randomly for many times and determining the minimum value of an objective function of the trigger class layout under constraint conditions and constraint relations, the moving coordinate information of each trigger class can be solved and removed from the objective function under the condition of the minimum value of the objective function, then the position of each trigger class is adjusted, the layout legalization processing of the trigger classes is completed, the contact area among the trigger classes is further reduced, and the trigger classes are enabled not to be in contact with each other; and the positions of the triggers in the trigger classes are adjusted by adopting a network flow mode, so that the triggers in each trigger class are not contacted with each other, and the layout optimization processing is completed. The embodiment can reduce the overlapping phenomenon of the trigger classes, and ensure that the triggers in each trigger class are not contacted with each other, thereby enhancing the performance of the local clock system and reducing the clock power consumption of the local clock system.
Fig. 3 is a schematic structural diagram of an automatic layout apparatus for triggers according to a third embodiment of the present invention, as shown in fig. 1, the apparatus of the present embodiment includes:
the clustering module 31 is configured to perform clustering analysis on each trigger according to attribute information of each trigger, so as to divide each trigger into at least one trigger class, where the trigger classes include at least one trigger;
a first moving module 32 for moving the trigger classes to reduce the contact area between the trigger classes;
the position determining module 33 is configured to determine the moving coordinate information of each trigger class according to the original coordinate information of each trigger class before each trigger class is moved, the coordinate information of each trigger class after each trigger class is moved, and a preset constraint relationship, so as to determine the moving position of each trigger class;
a second moving module 34, configured to move each trigger in each trigger class according to the moving position of each trigger class, so as to determine a trigger layout in each trigger class;
a repeating module 35, configured to repeatedly execute the steps in the above modules until each trigger class meets a preset condition for reducing overlapping of the trigger classes.
Wherein, the preset conditions comprise: repeat T; or the contact area among the trigger classes is zero; or the bus length of each trigger class reaches the preset bus length.
The automatic layout device of the present embodiment can execute the automatic layout method of the triggers provided in the first embodiment of the present invention, which has similar implementation principles and will not be described herein again.
In this embodiment, each trigger is classified into at least one trigger class by performing cluster analysis on each trigger according to attribute information of each trigger, where the trigger class includes at least one trigger; moving the trigger classes to reduce the contact area between the trigger classes; determining the moving coordinate information of each trigger class according to the original coordinate information of each trigger class before each trigger class is moved, the coordinate information of each trigger class after each trigger class is moved and a preset constraint relation so as to determine the moving position of each trigger class; moving each trigger in each trigger class to determine a trigger layout in each trigger class; and repeatedly executing the steps until each trigger class meets the preset condition of reducing the overlapping of the trigger classes. The method can obtain a plurality of trigger classes after clustering analysis is carried out on the trigger classes, and then the contact area among the trigger classes can be reduced after the trigger classes are moved; determining the minimum value of an objective function of the layout of the triggers according to a preset constraint relation through the coordinate information before and after the movement of the triggers, solving and removing the movement coordinate information of the triggers from the objective function under the condition of the minimum value of the objective function, adjusting the positions of the triggers, reducing the contact area between the triggers again, enabling the triggers not to be in contact with each other, and enabling the triggers in each trigger to be in non-contact with each other after adjusting the layout of the triggers; therefore, the invention can reduce the overlapping phenomenon of the triggers, and ensure that the triggers in each trigger class are not contacted with each other, thereby enhancing the performance of the local clock system and reducing the clock power consumption of the local clock system.
Fig. 4 is a schematic structural diagram of an automatic layout apparatus for triggers according to a fourth embodiment of the present invention, and based on the third embodiment, as shown in fig. 4, the apparatus of the present embodiment, a first moving module 32, includes:
a first moving submodule 321, configured to randomly move the positions of the trigger classes, and determine the number p of class overlaps of the trigger classes after the movementi;
A distance determination submodule 322 for randomly selecting the kth trigger class according to the coordinate information (x) of the kth trigger class before the current movementk0,yk0) And coordinate information (x) of the kth trigger class after the current movementk,yk) Determining the current movement distance | x of the kth trigger classk+xk0|+|yk+yk0|;
A scoring submodule 323 for overlapping the number p of classes according to each trigger classiAnd current movement distance | x of the kth trigger classk-xk0|+|yk-yk0Determining a value of credit
A second moving submodule 324a for if HjIs less than Hj-1Then, according to the coordinate information of each trigger class after the jth random movement of each trigger class, moving each trigger class, wherein i belongs to [1, N ∈ [, N [ ]],j∈[1,M],k∈[1,N]N, M, i, j, k are positive integers, t1Is a first weight value, t2The value is a second weighted value, and N is the class number of the trigger class;
a repeat submodule 325 for repeating the above steps M times to obtain a minimum value H of the score valuesM。
Further comprising: a fourth moving submodule 324b for:
If it is determined that q is less thanMoving each trigger class according to the coordinate information of each trigger class after the j-th random movement of each trigger class;
wherein q is a random number between [0,1 ].
A position determination module 33 comprising:
a distance sum determination submodule 331 for determining the original coordinate information (x) before the M random shifts according to each trigger classc0,yc0) And coordinate information (x) after M random shiftsc,yc) Determining the sum of the moving distances of the trigger classesWherein the constraint DEVx for x-axis moving distance of each trigger classc≥|xc-xc0I, y-axis moving distance constraint DEVy for trigger classesc≥|yc-yc0|;
The constraint determination sub-module 332 is adapted to,determining a minimized bus length according to the path distribution among the trigger classes, wherein the constraint condition of the bus length of the path among the trigger classes is DWLe≥weWLe,weIs the bus weight value, WLeIs the line length of path E, E is the set of paths between trigger classes, DWLeA slack variable that is the line length of path e;
a coefficient determining submodule 333, configured to determine the sum of the demand coefficients of the trigger classes according to the actual sizes of the trigger classes and the upper limit of the demand size of the trigger classes
A function determining submodule 334, for determining the target function of the layout of the trigger classes according to the sum of the moving distances of the trigger classes, the bus length of the trigger classes, and the sum of the demand coefficients of the trigger classesWherein alpha is a third weight value, beta is a fourth weight value, gamma is a fifth weight value,is the sum of relaxation variables;
the coordinate determination submodule 335 is configured to determine, according to a preset constraint relationship, moving coordinate information of each trigger class in a case where a minimum value of a target function of the trigger class layout is determined;
a third moving submodule 336, configured to move each trigger class according to the moving coordinate information of each trigger class;
wherein c belongs to [1, N ], E belongs to E, and c is a positive integer.
Wherein, DWLeDWL with linear programming constraintse≥we(xi-xj+yi-yj)、DWLe≥we(xj-xi+yi-yj)、DWLe≥we(xi-xj+yj-yi)、DWLe≥we(xj-xi+yj-yi);
Wherein i ∈ N, j ∈ N, and E ∈ (i, j) ∈ E.
The coefficient determination submodule 333 is specifically configured to:
according to the actual size (h) of each trigger classc,wc) Upper limit of required size of each flip-flopDetermining demand coefficients for each trigger classWherein, h'c、w′cRespectively unit height and unit width of the trigger class,the number of paths of the c-th flip-flop in the horizontal direction,the number of paths of the c-th trigger class in the vertical direction is set;
according to the demand coefficient R of each trigger classcDetermining the sum of the demand coefficients for each flip-flop class
The coordinate determination submodule 335 is specifically configured to:
determining a first preset constraint relation | x between trigger classes according to the actual sizes of the trigger classesa-yb|+|ya-yb|≥(ha+hb)/2+(wa+wb) /2, and a second predetermined constraint relationship | x between respective trigger classesa-xb|+|ya-yb|≥min(|ya0-yb0|+(wa+wb)/2,|xa0-xb0|+(ha+hb) /2), wherein (h)a,wa)、(hb,wb) Actual sizes of the a-th and b-th trigger class, respectively, and original coordinate information (x)a0,ya0) Coordinate information (x)a,ya) Coordinate information before and after M random movements of the a-th trigger class, original coordinate information (x)b0,yb0) Coordinate information (x)b,yb) Coordinate information of the b-th trigger class before and after M times of random movement respectively;
under the constraint of the first preset constraint relation and the second preset constraint relation, determining the moving coordinate information (x) of each trigger class under the condition of the minimum value of the target function of the trigger class layouta,ya);
Wherein a belongs to [1, N ], b belongs to [1, N ], and a and b are positive integers.
Or, the coordinate determination submodule 335 is specifically configured to:
determining a first preset constraint relation | x between trigger classes according to the actual sizes of the trigger classesa-yb|+|ya-yb|≥(ha+hb)/2+(wa+wb) /2, and a third predefined constraint relationship h between trigger classesc≥h′cNc,wc≥w′cNcWherein N iscThe number of the triggers in the c trigger class;
under the constraint of the first preset constraint relation and the third preset constraint relation, determining the moving coordinate information (x) of each trigger class under the condition of the minimum value of the target function of the trigger class layouta,ya)。
The second moving module 34 is specifically configured to:
and moving each trigger in each trigger class according to the moving position of each trigger class by adopting a network flow method, and determining the layout of the triggers in each trigger class.
The automatic layout device of the present embodiment can execute the automatic layout method of the triggers provided in the first embodiment of the present invention, which has similar implementation principles and will not be described herein again.
In this embodiment, by randomly moving the positions of the trigger classes, the class overlapping number of the trigger classes and the current moving distance of the randomly selected kth trigger class are calculated, so as to obtain the score value of a scoring function, and the score value obtained after the current movement is compared with the score value obtained after the previous movement, so as to determine that the trigger classes are moved, wherein the above processes need to be iterated for multiple times; by setting an x-axis movement distance constraint condition of each trigger class, a y-axis movement distance constraint condition of each trigger class and a constraint condition of the number of paths between each trigger class and setting a first preset constraint relationship, a second preset constraint relationship and a third preset constraint relationship between each trigger class, a target function of trigger class layout can be determined according to the sum of the movement distances of each trigger class, the bus length of each trigger class and the sum of demand coefficients of each trigger class, and then under the constraint of the first preset constraint relationship and the second preset constraint relationship or under the constraint of the first preset constraint relationship and the third preset constraint relationship, movement coordinate information of each trigger class under the condition of the minimum value of the target function of trigger class layout is determined, and each trigger class is moved; the position of each trigger in each trigger class is moved by adopting a network flow method; all the steps need to be iterated for multiple times of circulation until the contact area between the trigger classes is zero or the bus length of each trigger class reaches the preset bus length, and then the steps are stopped. Therefore, the embodiment can complete the global optimization processing of the triggers through trigger class clustering; by moving the trigger classes randomly for many times and determining the minimum value of an objective function of the trigger class layout under constraint conditions and constraint relations, the moving coordinate information of each trigger class can be solved and removed from the objective function under the condition of the minimum value of the objective function, then the position of each trigger class is adjusted, the layout legalization processing of the trigger classes is completed, the contact area among the trigger classes is further reduced, and the trigger classes are enabled not to be in contact with each other; and the positions of the triggers in the trigger classes are adjusted by adopting a network flow mode, so that the triggers in each trigger class are not contacted with each other, and the layout optimization processing is completed. The embodiment can reduce the overlapping phenomenon of the trigger classes, and ensure that the triggers in each trigger class are not contacted with each other, thereby enhancing the performance of the local clock system and reducing the clock power consumption of the local clock system.
Those of ordinary skill in the art will understand that: all or a portion of the steps of implementing the above-described method embodiments may be performed by hardware associated with program instructions. The program may be stored in a computer-readable storage medium. When executed, the program performs steps comprising the method embodiments described above; and the aforementioned storage medium includes: various media that can store program codes, such as ROM, RAM, magnetic or optical disks.
Finally, it should be noted that: the above examples are only intended to illustrate the technical solution of the present invention, but not to limit it; although the present invention has been described in detail with reference to the foregoing embodiments, it will be understood by those of ordinary skill in the art that: the technical solutions described in the foregoing embodiments may still be modified, or some technical features may be equivalently replaced; and such modifications or substitutions do not depart from the spirit and scope of the corresponding technical solutions of the embodiments of the present invention.
Claims (13)
1. A method for automatic layout of flip-flops, applied to an integrated circuit design, includes:
according to the attribute information of each trigger, carrying out cluster analysis on each trigger so as to divide each trigger into at least one trigger class, wherein each trigger class comprises at least one trigger;
moving the trigger classes to reduce the contact area between the trigger classes;
determining the minimum value of a target function of the layout of the trigger classes according to the original coordinate information of the trigger classes before the trigger classes are moved, the coordinate information of the trigger classes after the trigger classes are moved and a preset constraint relation; under the condition of the minimum value of the target function of the trigger class layout, determining the moving coordinate information of each trigger class so as to determine the moving position of each trigger class;
moving each trigger in each trigger class according to the moving position of each trigger class to determine the trigger layout in each trigger class;
and repeatedly executing the steps until each trigger class meets the preset condition of reducing the overlapping of the trigger classes.
2. The method of claim 1, wherein the moving the trigger classes to reduce a contact area between the trigger classes comprises:
randomly moving the position of each trigger class, and determining the class overlapping number p of each trigger class after movingi;
Randomly selecting the kth trigger class, and according to the coordinate information (x) of the kth trigger class before the current movementk0,yk0) And coordinate information (x) of the kth trigger class after the current movementk,yk) Determining the current movement distance | x of the kth trigger classk+xk0|+|yk+yk0|;
Number of class overlap p according to each trigger classiAnd current movement distance | x of the kth trigger classk-xk0|+|yk-yk0Determining a value of credit
If H isjIs less than Hj-1Then, according to the coordinate information of each trigger class after the jth random movement of each trigger class, moving each trigger class, wherein i belongs to [1, N ∈ [, N [ ]],j∈[1,M],k∈[1,N]N, M, i, j, k are positive integers, t1Is a first weight value, t2The value is a second weighted value, and N is the class number of the trigger class;
repeating the above steps M times to obtain minimum value H of score valueM。
3. The method of claim 2, further comprising: if H isjGreater than Hj-1Then it is determined whether q is less than
If it is determined that q is less thanMoving each trigger class according to the coordinate information of each trigger class after the j-th random movement of each trigger class;
wherein q is a random number between [0,1 ].
4. The method according to claim 1, wherein the minimum value of the objective function of the layout of the trigger classes is determined according to the original coordinate information of the trigger classes before the trigger classes are moved, the coordinate information of the trigger classes after the trigger classes are moved, and a preset constraint relation; and under the condition of the minimum value of the target function of the trigger class layout, determining the movement coordinate information of each trigger class so as to determine the movement position of each trigger class, wherein the method comprises the following steps:
based on the original coordinate information (x) of each trigger class before M random movementsc0,yc0) And coordinate information (x) after M random shiftsc,yc) Determining the sum of the moving distances of the trigger classesWherein the constraint DEVx for x-axis moving distance of each trigger classc≥|xc-xc0I, y-axis moving distance constraint DEVy for trigger classesc≥|yc-yc0L, |; wherein M is a positive integer;
determining the minimized total line length according to the path distribution among the trigger classes, wherein the constraint condition of the total line length of the paths among the trigger classes is DWLe≥weWLe,weIs the bus weight value, WLeLength of line for path e, DWLeA slack variable that is the line length of path e;
determining the sum of the demand coefficients of each trigger class according to the actual size of each trigger class and the demand size upper limit of each trigger class
Determining an objective function of the layout of the trigger classes according to the sum of the moving distances of the trigger classes, the bus length of the trigger classes and the sum of the demand coefficients of the trigger classesWherein alpha is a third weight value, beta is a fourth weight value, gamma is a fifth weight value,is the sum of relaxation variables;
determining the moving coordinate information of each trigger class under the condition of the minimum value of a target function of trigger class layout according to a preset constraint relation;
moving each trigger class according to the moving coordinate information of each trigger class;
wherein c belongs to [1, N ], E belongs to E, c is a positive integer, N is the class number of the trigger classes, and E is the set of paths among the trigger classes.
5. The method of claim 4, wherein DWL is implemented using a single chipeDWL with linear programming constraintse≥we(xi-xj+yi-yj)、DWLe≥we(xj-xi+yi-yj)、DWLe≥we(xi-xj+yj-yi)、DWLe≥we(xj-xi+yj-yi);
Wherein i ∈ N, j ∈ N, and E ∈ (i, j) ∈ E.
6. The method of claim 4, wherein the sum of the demand coefficients for each trigger class is determined according to the actual size of each trigger class and the upper limit of the demand size of each trigger classThe method comprises the following steps:
according to the actual size (h) of each trigger classc,wc) Upper limit of required size of each flip-flopDetermining demand coefficients for each trigger classWherein h isc′、wc' unit height and unit width of the trigger class respectively,the number of paths of the c-th flip-flop in the horizontal direction,the number of paths of the c-th trigger class in the vertical direction is set;
7. The method according to claim 6, wherein the determining, according to the preset constraint relationship, the moving coordinate information of each trigger class in the case of the minimum value of the objective function of the trigger class layout includes:
according to respective triggerThe actual size of the trigger classes determines a first preset constraint relation | x between the trigger classesa-yb|+|ya-yb|≥(ha+hb)/2+(wa+wb) /2, and a second predetermined constraint relationship | x between respective trigger classesa-xb|+|ya-yb|≥min(|ya0-yb0|+(wa+wb)/2,|xa0-xb0|+(ha+hb) /2), wherein (h)a,wa)、(hb,wb) Actual sizes of the a-th and b-th trigger class, respectively, and original coordinate information (x)a0,ya0) Coordinate information (x)a,ya) Coordinate information before and after M random movements of the a-th trigger class, original coordinate information (x)b0,yb0) Coordinate information (x)b,yb) Coordinate information of the b-th trigger class before and after M times of random movement respectively;
determining the moving coordinate information (x) of each trigger class under the condition of the minimum value of the target function of the trigger class layout under the constraint of the first preset constraint relation and the second preset constraint relationa,ya);
Wherein a belongs to [1, N ], b belongs to [1, N ], and a and b are positive integers.
8. The method according to claim 7, wherein the determining, according to the preset constraint relationship, the moving coordinate information of each trigger class in the case of the minimum value of the objective function of the trigger class layout includes:
determining a first preset constraint relation | x between trigger classes according to the actual sizes of the trigger classesa-yb|+|ya-yb|≥(ha+hb)/2+(wa+wb) /2, and a third predefined constraint relationship h between trigger classesc≥hc′Nc,wc≥wc′NcWherein N iscFor ones of the flip-flops in the c-th flip-flop classCounting;
determining the moving coordinate information (x) of each trigger class under the constraint of the first preset constraint relation and the third preset constraint relation and under the condition of the minimum value of the target function of the trigger class layouta,ya)。
9. The method according to any one of claims 1 to 8, wherein the predetermined condition comprises:
repeat T;
or the contact area among the trigger classes is zero;
or the bus length of each trigger class reaches the preset bus length.
10. An automatic layout device of flip-flops, applied to an integrated circuit design, the device comprising:
the clustering module is used for carrying out clustering analysis on each trigger according to the attribute information of each trigger so as to divide each trigger into at least one trigger class, wherein each trigger class comprises at least one trigger;
the first moving module is used for moving each trigger class so as to reduce the contact area among the trigger classes;
the position determining module is used for determining the minimum value of a target function of the layout of the trigger classes according to the original coordinate information of the trigger classes before the trigger classes are moved, the coordinate information of the trigger classes after the trigger classes are moved and a preset constraint relation; under the condition of the minimum value of the target function of the trigger class layout, determining the moving coordinate information of each trigger class so as to determine the moving position of each trigger class;
the second moving module is used for moving each trigger in each trigger class according to the moving position of each trigger class so as to determine the trigger layout in each trigger class;
and the repeating module is used for repeatedly executing the steps in the modules until each trigger class meets the preset condition of reducing the overlapping of the trigger classes.
11. The apparatus of claim 10, wherein the first moving module comprises:
a first moving submodule for randomly moving the positions of the trigger classes and determining the number p of class overlaps of the trigger classes after movingi;
A distance determination submodule for randomly selecting the kth trigger class and determining the coordinate information (x) of the kth trigger class before the current movementk0,yk0) And coordinate information (x) of the kth trigger class after the current movementk,yk) Determining the current movement distance | x of the kth trigger classk+xk0|+|yk+yk0|;
A scoring submodule for overlapping the number p of the trigger classes according to the trigger classesiAnd current movement distance | x of the kth trigger classk-xk0|+|yk-yk0Determining a value of credit
A second moving submodule for if HjIs less than Hj-1Then, according to the coordinate information of each trigger class after the jth random movement of each trigger class, moving each trigger class, wherein i belongs to [1, N ∈ [, N [ ]],j∈[1,M],k∈[1,N]N, M, i, j, k are positive integers, t1Is a first weight value, t2The value is a second weighted value, and N is the class number of the trigger class;
a repeating submodule for repeating the above steps M times to obtain the minimum value H of the score valueM。
12. The apparatus of claim 10, wherein the position determining module comprises:
a distance sum determination submodule for determining the original coordinate information (x) of each trigger class before M random movementsc0,yc0) And coordinate information after M random movementsInformation (x)c,yc) Determining the sum of the moving distances of the trigger classesWherein the constraint DEVx for x-axis moving distance of each trigger classc≥|xc-xc0I, y-axis moving distance constraint DEVy for trigger classesc≥|yc-yc0L, |; wherein M is a positive integer;
a constraint determining submodule for determining the minimized total line length according to the path distribution among the trigger classes, wherein the constraint condition of the total line length of the path among the trigger classes is DWLe≥weWLe,weIs the bus weight value, WLeLength of line for path e, DWLeA slack variable that is the line length of path e;
a coefficient determining submodule for determining the sum of the demand coefficients of the flip-flops according to the actual sizes of the flip-flops and the upper limit of the demand sizes of the flip-flops
A function determining submodule for determining a target function of the layout of the trigger classes according to the sum of the moving distances of the trigger classes, the bus length of the trigger classes and the sum of the demand coefficients of the trigger classesWherein alpha is a third weight value, beta is a fourth weight value, gamma is a fifth weight value,is the sum of relaxation variables;
the coordinate determination submodule is used for determining the moving coordinate information of each trigger class under the condition of the minimum value of the target function of the trigger class layout according to the preset constraint relation;
the third moving submodule is used for moving each trigger class according to the moving coordinate information of each trigger class;
wherein c belongs to [1, N ], E belongs to E, c is a positive integer, N is the class number of the trigger classes, and E is the set of paths among the trigger classes.
13. The apparatus of claim 12, wherein the coordinate determination submodule is specifically configured to:
determining a first preset constraint relation | x between trigger classes according to the actual sizes of the trigger classesa-yb|+|ya-yb|≥(ha+hb)/2+(wa+wb) /2, and a second predetermined constraint relationship | x between respective trigger classesa-xb|+|ya-yb|≥min(|ya0-yb0|+(wa+wb)/2,|xa0-xb0|+(ha+hb) /2), wherein (h)a,wa)、(hb,wb) Actual sizes of the a-th and b-th trigger class, respectively, and original coordinate information (x)a0,ya0) Coordinate information (x)a,ya) Coordinate information before and after M random movements of the a-th trigger class, original coordinate information (x)b0,yb0) Coordinate information (x)b,yb) Coordinate information of the b-th trigger class before and after M times of random movement respectively;
determining the moving coordinate information (x) of each trigger class under the condition of the minimum value of the target function of the trigger class layout under the constraint of the first preset constraint relation and the second preset constraint relationa,ya);
Wherein a belongs to [1, N ], b belongs to [1, N ], and a and b are positive integers.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610990278.7A CN108073734B (en) | 2016-11-10 | 2016-11-10 | Automatic layout method and device for trigger |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610990278.7A CN108073734B (en) | 2016-11-10 | 2016-11-10 | Automatic layout method and device for trigger |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108073734A CN108073734A (en) | 2018-05-25 |
CN108073734B true CN108073734B (en) | 2021-08-17 |
Family
ID=62154484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610990278.7A Active CN108073734B (en) | 2016-11-10 | 2016-11-10 | Automatic layout method and device for trigger |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108073734B (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8782591B1 (en) * | 2012-12-31 | 2014-07-15 | Cadence Design Systems, Inc. | Physically aware logic synthesis of integrated circuit designs |
CN104516831A (en) * | 2013-09-26 | 2015-04-15 | 想象技术有限公司 | Atomic memory update unit and methods |
CN105117513A (en) * | 2015-07-24 | 2015-12-02 | 北京空间机电研究所 | FPGA (Field Programmable Gate Array) layout and wiring delay characteristic testing method |
US9280614B1 (en) * | 2012-11-30 | 2016-03-08 | Cadence Design Systems, Inc. | Methods, systems, and apparatus for clock topology planning with reduced power consumption |
-
2016
- 2016-11-10 CN CN201610990278.7A patent/CN108073734B/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9280614B1 (en) * | 2012-11-30 | 2016-03-08 | Cadence Design Systems, Inc. | Methods, systems, and apparatus for clock topology planning with reduced power consumption |
US8782591B1 (en) * | 2012-12-31 | 2014-07-15 | Cadence Design Systems, Inc. | Physically aware logic synthesis of integrated circuit designs |
CN104516831A (en) * | 2013-09-26 | 2015-04-15 | 想象技术有限公司 | Atomic memory update unit and methods |
CN105117513A (en) * | 2015-07-24 | 2015-12-02 | 北京空间机电研究所 | FPGA (Field Programmable Gate Array) layout and wiring delay characteristic testing method |
Non-Patent Citations (2)
Title |
---|
LatchPlanner: Latch placement algorithm for datapath-oriented high-performance VLSI designs;Minsik Cho 等;《2013 IEEE/ACM International Conference on Computer-Aided Design (ICCAD)》;20131118;第342-348页 * |
片上偏差模型下Mesh结构时钟网络性能不确定性的分析;杨梁 等;《计算机辅助设计与图形学学报》;20101115;第22卷(第11期);第2045-2052页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108073734A (en) | 2018-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Mirhoseini et al. | Chip placement with deep reinforcement learning | |
Kim et al. | MAPLE: Multilevel adaptive placement for mixed-size designs | |
US6480991B1 (en) | Timing-driven global placement based on geometry-aware timing budgets | |
US11853676B2 (en) | Layout context-based cell timing characterization | |
CN1996318B (en) | Macro placement method for semiconductor chip, and multi-size mixed placement design method | |
Hsu et al. | Routability-driven analytical placement for mixed-size circuit designs | |
CN107743619B (en) | Automatic generation of test layouts for verifying DRC stacks | |
US8869084B2 (en) | Parameterized cell layout generation guided by a design rule checker | |
US9262578B2 (en) | Method for integrated circuit manufacturing | |
CN111597768A (en) | Method, apparatus and computer-readable storage medium for constructing a set of layout patterns | |
CN117529723A (en) | Power/ground (P/G) via removal based on machine learning | |
US11694016B2 (en) | Fast topology bus router for interconnect planning | |
CN108073734B (en) | Automatic layout method and device for trigger | |
Tseng et al. | A power delivery network (PDN) engineering change order (ECO) approach for repairing IR-drop failures after the routing stage | |
US20100246978A1 (en) | Data verification method, data verification device, and data verification program | |
TWI623844B (en) | Floorplanning approach for mixed-size modules | |
Saeedi et al. | Prediction and reduction of routing congestion | |
Law et al. | Block alignment in 3D floorplan using layered TCG | |
US7313778B1 (en) | Method system and apparatus for floorplanning programmable logic designs | |
CN111931993A (en) | Power transmission network wiring diagram generation method and system | |
Kai et al. | Tofu: A two-step floorplan refinement framework for whitespace reduction | |
Subbaraj et al. | Parallel genetic algorithm for VLSI standard cell placement | |
US11144700B1 (en) | Grouping nets to facilitate repeater insertion | |
Laudis et al. | Modified SA algorithm for wirelength minimization in VLSI circuits | |
US8949762B1 (en) | Computer-based modeling of integrated circuit congestion and wire distribution for products and services |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Applicant after: Loongson Zhongke Technology Co.,Ltd. Address before: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Applicant before: LOONGSON TECHNOLOGY Corp.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |