A computer program that improves a netlist of logic nodes and physical placement for an ic. The program (a) identifies critical nodes based on delay information calculated from the physical placement. Then the program (b) selects a set of critical nodes and optimally collapses their critical fan-ins and part of the non-critical fan-ins based on their Boolean relationship, which, includes at least one critical node. After that, the program (c) remaps the collapsed sub-netlist by covering its subject graph with an optimal pattern graph, and dynamically estimates and updates the fanout loads. The program returns to step (b) if the remapped sub-netlist is unacceptable, and returns to step (a) after updating the delay information and coordinates of newly mapped gates if the remapped sub-netlist is acceptable. The program exits at step (a) when no more critical nodes are identified at step (a).
|
1. A method for automatically improving an accepted netlist and global placement of logic nodes and physical placement for an integrated circuit (ic), comprising:
A) receiving an accepted netlist and global placement from a design process for the ic design; B) identifying critical nodes based on delay time calculated from the physical placement; C) selecting a set of critical nodes comprising critical fanins and non-critical fan-ins in an uncollapsed sub-netlist, and optimally collapsing the critical fan-ins to form a collapsed sub-netlist so that the collapsed sub-netlist is remapped better than before the collapsing; D) building a subject graph and covering the subject graph with a pattern graph to remap the collapsed sub-netlist; and E) returning to C) if the collapsed sub-netlist is unacceptable, returning to B) if the collapsed sub-netlist is acceptable, and exiting at B) when no more critical nodes are identified at B).
2. The method of
F) storing a plurality of sequences of instructions describing A), B), C), D) and E) on a computer readable medium, the plurality of sequences of instructions including sequences which, when executed by a processor, cause the processor to generate a final placement for the ic.
3. The method of
4. The method of
5. The method of
6. The method of
7. The method of
|
Reference is made to a co-pending application, serial number 09/736,571, filed on even date herewith titled "NETLIST RESYTHESIS PROGRAM USING STRUCTURE DEPENDENT CO-FACTORING" and identified as Docket Number L13.12-0115.
The present invention relates to the design of integrated circuits (ICs) using computer-aided design and computer-aided engineering programs (CAD/CAE). In particular, the present invention relates to CAD/CAE programs that optimize the design of an IC.
The design process for an integrated circuit (IC) is a process of transforming a specification for desired logic or analog functions to a physical or geometric arrangement for an IC die that can -perform the desired functions. Modern integrated circuits, particularly VLSI circuits, are very complex and various stages in the design process are automated using CAD/CAE software tools.
Typically, a technology mapping program will be used to convert a specification into an arrangement of library elements, such as gates, and interconnections. The output of the technology mapping process is a trial netlist which lists the library elements used and their interconnections, also called nodes. The technology mapping process is iterative and several trial netlists may be tried before an accepted netlist is found that has acceptable delays for each node based on a simplified delay calculation performed as part of the technology mapping. This simplified delay calculation, however, does not take into account the physical placement of the elements or interconnections.
Next, a physical placement program is used to specify geometric locations for each library element and also a geometric path for each interconnect. After a trial physical placement is made, a more complex delay calculation is made that takes into account the physical placement of the library elements and the interconnections. As the more complex delay calculation identifies critical nodes with excessive delays, the physical placement is iteratively repeated to reduce the delay to an acceptable amount. In some cases, the delay does not converge to an acceptable delay, and development activity returns to the technology mapping program to generate another accepted netlist to be tried by the physical placement program.
At the end of the process, an accepted netlist and global placement are created that may satisfy the delay requirements, however, because of the limitations of the simple delay calculations made in the technology mapping program, the netlist and global placement may not be optimized well for implementation as an IC.
A program is needed that will optimize the netlist and the global placement without, the limitations imposed by the simple delay calculations in the technology mapping used to generate the netlist.
Disclosed is a computer program that improves a netlist of logic nodes and physical placement for an IC. The program (a) identifies critical nodes based on delay information calculated from the physical placement. Then the program (b) selects a set of critical nodes and optimally collapses their critical fan-ins and part of the non-critical fan-ins based on their Boolean relationship, which includes at least one critical node. After that, the program (c) remaps the collapsed sub-netlist by covering its subject graph with an optimal pattern graph, and by dynamically estimating and updating the fanout loads. The program returns to step (b) if the remapped sub-netlist is unacceptable, and returns to step (a) after updating the delay information and coordinates of newly mapped gates if the remapped sub-netlist is acceptable. The program exits at step (a) when no more critical nodes are identified at step (a)
In the present invention, a CAD/CAE optimization program is provided that operates on a netlist and global placement provided by a CAD/CAE design program to generate a final physical placement that is optimized for timing delays. In the optimization, program, a timing delay that is calculated as a function of physical placement is used to remap a sub-netlist. The problems with using a simple timing delay calculation that does take into account physical placement is avoided, and the sub-netlist is optimized. The program can be operated at more than one hierarchical level in the netlist to achieve improved results.
The processes illustrated in
The design process for an integrated circuit (IC) starts with a specification for some desired logic or analog functions at start 22 in FIG. 1. This specification can take the form of a list of Boolean formulas and may also include synchronization or timing requirements. The specification can be entered from a keyboard or it can be entered as a file or group of files stored on computer-readable media. A technology mapping program 24 converts the specification into a trial netlist 25, in other words, a list of library elements, such as gates, and a list of the interconnections between the elements. The output of the technology mapping program 24 is the trial netlist 25 which lists the library elements used and their interconnections, also called nodes. The technology mapping program 24 is performed iteratively and several trial netlists 25 may be tried before one is found that has acceptable delays for each node based on a simplified delay calculation performed in delay calculator 26 as part of the technology mapping. Delay calculator 26 can calculate delays based on the number and types of elements that are interconnected at each node specified in the current trial netlist 25, but it is not capable of adequately taking into account the physical size and placement of the interconnections. Delays calculated in delay calculator 26 are tested at decision point 28 to determine if all delays at all nodes are acceptable. If one or more delays are found to be not acceptable, program flow returns along line 30 to generate another trial netlist 25 at technology mapping program 24. Once the delays for all of the nodes in a trial netlist are found to be acceptable at decision point 28, then program flow continues along line 32 with an accepted netlist 33 to a physical placement program 36. Physical placement program 36 generates a trial physical placement 37 for the elements and interconnection nodes of the IC. The physical placement program 36 is used to specify geometric locations for each library element and also a geometric path for each interconnect. Each interconnect or node connects to an output of an element and fans out to connect to one or more inputs of other elements of the IC. Next, a more accurate delay calculator 38 calculates delays for all of the nodes. The delay calculator 38 takes into account the complex physical placement of the library elements and the interconnections and how they affect capacitive loading and other sources of delay. The more complex delay calculations made in delay calculator 38 identify critical nodes with excessive delays. The physical placement program 36 is iteratively repeated to reduce the delays to an acceptable amount. If delay calculator 38 identifies critical nodes at which delay is unacceptable, then the rate of iterative convergence of the delay is tested at decision point 40. If the delay is not converging, or if the delay is converging too slowly, the program flow goes back at 42 to complete another iteration of technology mapping starting at technology mapping program 24.
If the delay is converging at an acceptable rate at decision point 40, then the program flow continues along line 44 to decision point 46. The physical delays calculated at delay calculator 38 are tested at decision point 46 to see if all of the delays are acceptable. If one or more of the delays are found not acceptable at decision point 46, then program flow goes back along line 48 to try another iteration of physical placement at 36. Once all of the delays are acceptable, then program flow continues from decision point 46 along line 50 to optimization program 100. This provides optimization program 100 with an accepted netlist and global placement 101.
The accepted netlist and global placement 101 satisfies the delay requirements, however, because of the limitations of the simple delay calculations made in the technology model delay calculator 26, the accepted netlist and global placement 101 may not be optimized well for implementation as an IC.
A program is needed that will further optimize the accepted netlist and the global placement 101 without the limitations imposed by the simple delay calculations in the technology model delay calculator 26. Optimization program 100 of
The optimization program 100 performs timing driven technology re-mapping in a placement program using optimizations-friendly collapsing of critical nodes and dynamically estimating the fanout loads. An important advantage that can be achieved with optimization program 100 is better estimation of interconnect delays in the re-mapping process and a more powerful re-mapping algorithm.
In the hierarchical design of a very large scale integrated (VLSI) circuit, technology mapping program 24 has the freedom to change the netlist structure, but it does not; have access to the physical interconnect information. On the other hand, the physical placement program 36 has more detailed interconnect information, but it has limited capability to change the netlist structure. Unlike they current methodology which relies on iterations along line 42 between a technology mapping, program and a placement program to achieve timing closure (eg., as described in "Timing Driven Placement in Iterations with Netlist Transformation," Guenter Stent et al., pages 36-41, ISPD--97, April 1997), optimization program 100 provides a program in which technology mapping and a physical delay calculator interact with one another directly to provide a more optimum result.
In optimization program 100, whether the re-mapped sub-netlist is acceptable or not is determined based on the same type of delay calculator as that used in a physical placement program. This is, of course, much more accurate than the delay calculation (whether it is based on the wire load delay model or the back-annotated custom wire load delay model) used in technology mapping programs (e.g., as described in "Combining Technology Mapping with Post-Placement Resynthesis for Performance Optimization," Aiguo Lu et al., pages 616-621, ICCD'98, October 1998) which estimates the interconnect delay based on the fanout count of the subject graph. This important factor is changing dynamically during the re-mapping process.
As explained below in connection with
(1) a set of critical nodes is selected for optimization of the selected sub-netlist at process step 113;
(2) collapsing the critical fan-ins to the critical nodes on the selected sub-netlist at step 114. This collapsing is done in a way that is friendly to logic optimization and includes collapsing of part of non-critical fan-ins as well;
(3) as part of a remapping process 116, a subject graph of the sub-netlist is built.and covered with a subject graph at process 118;
(4) as part of the remapping process 116,.fanout loads are dynamically estimated and updated based on physical delay calculations at process 120.
In a preferred embodiment, the logic resynthesis or remapping process 116 includes delay-oriented co-factoring for the collapsed nodes, and then optimizing each node in the sub-netlist.
After the sub-netlist is re-mapped, the program checks whether the result is acceptable or not at decision point 122. If acceptable, the re-mapped sub-netlist with estimated coordinates is then merged into the netlist, the in-placement delays are updated, and program flow proceeds along line 126 to step 104 to repeat the process. If not acceptable, program flow proceeds along line 124 to select another set of critical nodes for re-mapping at step 113. An advantage of this exemplary re-mapping algorithm in steps (1) and (4) above is optimization-friendly collapsing and covering with dynamic fanout load prediction and update.
Collapsing critical fan-ins of the selected critical nodes includes creating new Boolean functions for those nodes so that they can be more delay optimally re-mapped.
In
Node A at 132 is identified as a critical node to be re-mapped, and the delay calculator has identified node C at 136 as the critical fanin of A, with node d at 138 being the critical fanin of C. Collapsing node C at 136 to node A at 132 gives the Boolean statement
A=a+B+d+e.
Then, as illustrated in
The remapping illustrated in
Referring back to
The collapsing illustrated in
Applying this optimization process to the example illustrated in
Fanout count is an important factor in the remapping process 116 of
However, the logic cone based covering process still has a problem when covering the current logic cone. As illustrated in
With the present invention, an optimization program can provide an optimized physical placement for an integrated circuit-design. Technology mapping and a physical delay calculator interact with one another directly to provide a more optimum result. This is much more accurate than the delay calculation used in technology mapping programs, that estimate interconnect delays based on fanout count. The delay is changing dynamically during a re-mapping process, and the optimization program corrects for the dynamic changes when there are reconvergent paths.
If desired, features described in this application can be combined with features described in our co-pending application, serial number 09/736,571, filed on even date herewith titled "NETLIST RESYNTHESIS PROGRAM USING STRUCTURE DEPENDENT CO-FACTORING" and identified as Docket Number L13.12-0115.
Although the present invention has been described with reference to preferred embodiments, workers skilled in the art will recognize that changes may be made in form and detail without departing from the spirit and scope of the invention.
Pavisic, Ivan, Raspopovic, Pedja, Lu, Aiguo
Patent | Priority | Assignee | Title |
10049174, | Dec 16 2016 | Synopsys, Inc | Exact delay synthesis |
10275557, | Jan 08 2010 | Altera Corporation | Method and apparatus for performing incremental compilation using structural netlist comparison |
10325051, | Dec 16 2016 | Synopsys, Inc | Exact delay synthesis |
11507722, | Jan 08 2010 | Altera Corporation | Method and apparatus for performing incremental compilation using structural netlist comparison |
6766500, | Dec 06 2001 | Synopsys, Inc.; Synopsys, Inc | Multiple pass optimization for automatic electronic circuit placement |
7076755, | Jan 27 2004 | International Business Machines Corporation | Method for successive placement based refinement of a generalized cost function |
7171633, | Dec 12 2003 | Altera Corporation | Estimating quality during early synthesis |
7430726, | Dec 30 2003 | Mineral Lassen LLC | System for delay reduction during technology mapping in FPGA |
7840915, | Feb 01 2006 | Columbia University; The Trustees of Columbia University in the City of New York | Methods and media for forming a bound network |
8024687, | Dec 30 2003 | Mineral Lassen LLC | Technology mapping for programmable logic devices using replicating logic and parallel computations |
Patent | Priority | Assignee | Title |
5526514, | Jun 21 1994 | Method for circuit verification and multi-level circuit optimization based on structural implications | |
5875117, | Apr 19 1994 | Bell Semiconductor, LLC | Simultaneous placement and routing (SPAR) method for integrated circuit physical design automation system |
5917728, | Jul 26 1995 | Matsushita Electric Industrial Co., Ltd. | Method for designing path transistor logic circuit |
5999715, | Mar 28 1997 | NEC Electronics Corporation | Circuit delay optimizing using circuit arrangement, layout information, and wiring delay information |
6009248, | Dec 03 1996 | NEC Electronics Corporation | Delay optimization system to conduct optimization for satisfying delay constraints on the circuit and method therefor |
6030110, | Jun 28 1996 | Bell Semiconductor, LLC | Advanced modular cell placement system with median control and increase in resolution |
6038385, | Mar 01 1996 | Bell Semiconductor, LLC | Physical design automation system and process for designing integrated circuit chip using "chessboard" and "jiggle" optimization |
6068662, | Aug 06 1997 | Bell Semiconductor, LLC | Method and apparatus for congestion removal |
6075933, | Aug 06 1997 | Bell Semiconductor, LLC | Method and apparatus for continuous column density optimization |
6085032, | Jun 28 1996 | Bell Semiconductor, LLC | Advanced modular cell placement system with sinusoidal optimization |
6405345, | May 28 1999 | Cadence Design Systems, Inc. | Updating placement during technology mapping |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Dec 12 2000 | LU, AIGUO | LSI Logic Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 011376 | /0604 | |
Dec 12 2000 | PAVISIC, IVAN | LSI Logic Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 011376 | /0604 | |
Dec 12 2000 | RASPOPOVIC, PEDJA | LSI Logic Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 011376 | /0604 | |
Dec 14 2000 | LSI Logic Corporation | (assignment on the face of the patent) | / | |||
Apr 06 2007 | LSI Logic Corporation | LSI Corporation | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 033102 | /0270 | |
May 06 2014 | Agere Systems LLC | DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 032856 | /0031 | |
May 06 2014 | LSI Corporation | DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 032856 | /0031 | |
Aug 14 2014 | LSI Corporation | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 035390 | /0388 | |
Feb 01 2016 | DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT | Agere Systems LLC | TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS RELEASES RF 032856-0031 | 037684 | /0039 | |
Feb 01 2016 | DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT | LSI Corporation | TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS RELEASES RF 032856-0031 | 037684 | /0039 | |
Dec 08 2017 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | Bell Semiconductor, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 044887 | /0109 | |
Dec 08 2017 | Broadcom Corporation | Bell Semiconductor, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 044887 | /0109 | |
Jan 24 2018 | Bell Northern Research, LLC | CORTLAND CAPITAL MARKET SERVICES LLC, AS COLLATERAL AGENT | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 045216 | /0020 | |
Jan 24 2018 | Bell Semiconductor, LLC | CORTLAND CAPITAL MARKET SERVICES LLC, AS COLLATERAL AGENT | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 045216 | /0020 | |
Jan 24 2018 | HILCO PATENT ACQUISITION 56, LLC | CORTLAND CAPITAL MARKET SERVICES LLC, AS COLLATERAL AGENT | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 045216 | /0020 | |
Apr 01 2022 | CORTLAND CAPITAL MARKET SERVICES LLC | HILCO PATENT ACQUISITION 56, LLC | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 059720 | /0223 | |
Apr 01 2022 | CORTLAND CAPITAL MARKET SERVICES LLC | Bell Semiconductor, LLC | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 059720 | /0223 | |
Apr 01 2022 | CORTLAND CAPITAL MARKET SERVICES LLC | Bell Northern Research, LLC | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 059720 | /0223 |
Date | Maintenance Fee Events |
Oct 18 2006 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Apr 21 2008 | ASPN: Payor Number Assigned. |
Oct 28 2010 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Dec 05 2014 | REM: Maintenance Fee Reminder Mailed. |
Apr 29 2015 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Apr 29 2006 | 4 years fee payment window open |
Oct 29 2006 | 6 months grace period start (w surcharge) |
Apr 29 2007 | patent expiry (for year 4) |
Apr 29 2009 | 2 years to revive unintentionally abandoned end. (for year 4) |
Apr 29 2010 | 8 years fee payment window open |
Oct 29 2010 | 6 months grace period start (w surcharge) |
Apr 29 2011 | patent expiry (for year 8) |
Apr 29 2013 | 2 years to revive unintentionally abandoned end. (for year 8) |
Apr 29 2014 | 12 years fee payment window open |
Oct 29 2014 | 6 months grace period start (w surcharge) |
Apr 29 2015 | patent expiry (for year 12) |
Apr 29 2017 | 2 years to revive unintentionally abandoned end. (for year 12) |