← Back to Patent Explorer
US6099580A Expired / Lapsed US ⏱️ 0.0 years remaining

Method for providing performance-driven logic optimization in an integrated circuit layout design

Assignee: Synopsys Inc
•
Filing: 1998-02-11
•
Granted: 2000-08-08
•
Expires: 2018-02-11
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method for optimizing layout design using logical and physical information performs placement, logic optimization and routing and routing estimates concurrently. In one embodiment, circuit elements of the integrated circuit is partitioned into clusters. The clusters are then placed and routed by iterating over an inner-loop and an outer-loop according to cost functions in the placement model which takes into consideration interconnect wiring delays. Iterating over the inner-loop, logic optimization steps improves the cost functions of the layout design. Iterating over the outer-loop, the size of the clusters, hence the granularity of the placement, is refined until the level of individual cells is reached. The present method is especially suited for parallel processing by multiple central processing units accessing a shared memory containing the design data base.

Inventors

  • 👤 Douglas B. Boyle
  • 👤 James S. Koford

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-07 19:11
CPC Classifications
G; G06; G06F; G06F30/00; G06F30/30; G06F30/32; G06F30/327; G06F30/39; G06F2119/00; G06F2119/06; G06F2119/12

Claims Analysis

Total Claims: 44
Claim 1
Independent Claim 165 words
A method for optimizing a layout design based on a first gate-level design, comprising: (a) partitioning circuit elements of said first gate-level design into a first plurality of clusters; (b) mapping each cluster to a portion of said layout design so as to obtain a placement; (c) based on said placement, providing routing or routing estimates between circuit elements of each cluster and between circuit elements of different clusters; (d) based on said routing or routing estimates, performing a timing analysis to provide estimates of interconnect delays between circuit elements within each cluster and between circuit elements of different clusters; (e) performing a logic optimization operation on a selected one of said clusters to obtain a second gate-level logic design based on a cost function, said cost function being a function of said estimates of interconnect delays; (f) partitioning said second gate-level logic design to obtain a second plurality of clusters; and (g) repeating (b)-(f) until said cost function is less than a predetermined value.
Claim 2
Independent Claim 165 words
A method for optimizing a layout design based on a first gate-level design, comprising: (a) partitioning circuit elements of said first gate-level design into a first plurality of clusters; (b) mapping each cluster to a portion of said layout design so as to obtain a placement; (c) based on said placement, providing routing or routing estimates between circuit elements of each cluster and between circuit elements of different clusters; (d) based on said routing or routing estimates, performing a timing analysis to provide estimates of interconnect delays between circuit elements within each cluster and between circuit elements of different clusters; (e) performing a logic optimization operation on a selected one of said clusters to obtain a second gate-level logic design based on a cost function, said cost function being a function of said estimates of interconnect delays; (f) partitioning said second gate-level logic design to obtain a second plurality of clusters; and (g) repeating (b)-(f) until said cost function is less than a predetermined value.
Claim 3
Dependent Claim 24 words
A method as in claim 1, further comprising: dividing each cluster into a plurality of subclusters; and applying (b) through (f) on the subclusters.
Claim 4
Dependent Claim 28 words
A method as in claim 2, wherein said dividing step and said applying step are recursively applied to said subclusters until said subcluster include only primitive circuit elements.
Claim 5
Dependent Claim 44 words
A method as in claim 1, further comprising a placement optimization operation which reassigns circuit elements in a selected cluster to a second cluster mapped to a portion of said layout design adjacent the portion of said layout design mapped to said selected cluster.
Claim 6
Dependent Claim 18 words
A method as in claim 1, wherein said logic optimization operation inserts or deletes buffers between circuit elements.
Claim 7
Dependent Claim 23 words
A method as in claim 1, wherein said logic optimization operation provides one of several logic circuits performing substantially the same logic function.
Claim 8
Dependent Claim 54 words
A method as in claim 1, wherein said plurality of clusters are grouped into a plurality of cluster groups and wherein each of said mapping step, said performing a timing analysis step, said performing a logic optimization operation step and said routing step is applied concurrently to each cluster group using multiple processing units.
Claim 9
Dependent Claim 28 words
A method as in claim 1, wherein said clusters are divided so that connectivity amongst elements within a cluster are higher than connectivity amongst elements of different clusters.
Claim 10
Dependent Claim 17 words
A method as in claim 1, wherein said circuit elements are provided in a logic net list.
Claim 11
Dependent Claim 19 words
A method as in claim 1, further providing an initialization step which includes in said layout design test structures.
Claim 12
Independent Claim 199 words
A method for designing an integrated circuit, comprising: (a) providing a register-transfer level logic design of said integrated circuit; (b) performing a functional simulation of said logic circuit; (c) using a logic synthesis tool, synthesizing a gate-level logic design of said integrated circuit from said register-transfer level logic design of said integrated circuit; (d) using a timing model, performing a static timing analysis of said gate-level logic design; (e) placing said gate-level logic design into a first placement representing mappings of circuit elements of said gate-level logic design to physical locations of said integrated circuit, said placing step including interconnect delay-driven circuit placement and logic optimization steps; (f) extracting from said mappings of circuit elements values of timing parameters of said timing model and updating said timing model; (g) providing a physical design based on said mappings of circuit elements; (h) extracting from said physical design and resynthesizing using said logic synthesis tool a second gate-level logic circuit and updating said timing model (i) repeating (d) to (h) according to a cost function, until such cost function attains value less than a predetermined value; and (j) performing a final static timing analysis to verify that timing goals are met.
Claim 13
Independent Claim 199 words
A method for designing an integrated circuit, comprising: (a) providing a register-transfer level logic design of said integrated circuit; (b) performing a functional simulation of said logic circuit; (c) using a logic synthesis tool, synthesizing a gate-level logic design of said integrated circuit from said register-transfer level logic design of said integrated circuit; (d) using a timing model, performing a static timing analysis of said gate-level logic design; (e) placing said gate-level logic design into a first placement representing mappings of circuit elements of said gate-level logic design to physical locations of said integrated circuit, said placing step including interconnect delay-driven circuit placement and logic optimization steps; (f) extracting from said mappings of circuit elements values of timing parameters of said timing model and updating said timing model; (g) providing a physical design based on said mappings of circuit elements; (h) extracting from said physical design and resynthesizing using said logic synthesis tool a second gate-level logic circuit and updating said timing model (i) repeating (d) to (h) according to a cost function, until such cost function attains value less than a predetermined value; and (j) performing a final static timing analysis to verify that timing goals are met.
Claim 14
Dependent Claim 150 words
A method as in claim 11, wherein (e) comprises: (a1) partitioning circuit elements of said layout design into a plurality of clusters; (b1) mapping each cluster to a portion of said layout so as to obtain a placement; (c1) based on said placement, providing routing or routing estimates for circuit elements within each cluster and between circuit elements of different clusters; (d1) performing a timing analysis to provide estimates of interconnect delay between circuit elements within each cluster and between circuit elements of different clusters; (e1) performing a logic optimization operation on a selected one of said clusters to obtain a second gate-level logic design based on a cost function, said cost function being a function of said estimates of interconnect delays; (f1) based on said second gate-level logic design, providing an improved plurality of clusters; and (g1) repeating (b1)-(f1) until said cost function is less than a predetermined value.
Claim 15
Dependent Claim 24 words
A method as in claim 12, further comprising: dividing each cluster into a plurality of subclusters; and applying (b1) through (g1) on the subclusters.
Claim 16
Dependent Claim 27 words
A method as in claim 13, wherein said dividing step and applying step are recursively applied to said subclusters until said subcluster include only primitive circuit elements.
Claim 17
Dependent Claim 44 words
A method as in claim 12, further comprising a placement optimization operation which reassigns circuit elements in a selected cluster to a second cluster mapped to a portion of said layout design adjacent the portion of said layout design mapped to said selected cluster.
Claim 18
Dependent Claim 18 words
A method as in claim 12, wherein said logic optimization operation inserts or deletes buffers between circuit elements.
Claim 19
Dependent Claim 25 words
A method as in claim 12, wherein said logic optimization operation provides one of a plurality of logic circuits performing substantially the same logic function.
Claim 20
Dependent Claim 53 words
A method as in claim 12, wherein said plurality of clusters are grouped into a plurality of cluster groups and wherein each of said mapping step, said performing a timing analysis step, said performing a logic optimization operation step and routing step is applied concurrently to each cluster group using multiple processing units.
Claim 21
Dependent Claim 28 words
A method as in claim 12, wherein said clusters are divided so that connectivity amongst elements within a cluster are higher than connectivity amongst elements of different clusters.
Claim 22
Dependent Claim 17 words
A method as in claim 12, wherein said circuit elements are provided in a logic net list.
Claim 23
Dependent Claim 19 words
A method as in claim 12, further providing an initialization step which includes in said layout design test structures.
Claim 24
Dependent Claim 42 words
A method as in claim 12, wherein said logic optimization operation reassigns circuit elements in a selected cluster to a second cluster mapped to a portion of said layout design adjacent the portion of said layout design mapped to said selected cluster.
Claim 25
Dependent Claim 126 words
A parallel processing design automation system for optimizing an integrated circuit design, comprising: a plurality of central processing units; a memory for holding said integrated circuit design, said memory being accessible by each central processing units; a control program managing a task list, said task list specifying tasks for optimizing said integrated circuit design, said control program allocating each of said tasks in said task list to said central processing units said, control program supporting multithread execution; wherein each said task is one of placement, performance analysis, logic optimization and routing; wherein said control program provides a locking mechanism for data structures stored in said memory to support concurrent operations by said central processing units each accessing said integrated circuit design represented by said data structures.
Claim 26
Dependent Claim 126 words
A parallel processing design automation system for optimizing an integrated circuit design, comprising: a plurality of central processing units; a memory for holding said integrated circuit design, said memory being accessible by each central processing units; a control program managing a task list, said task list specifying tasks for optimizing said integrated circuit design, said control program allocating each of said tasks in said task list to said central processing units said, control program supporting multithread execution; wherein each said task is one of placement, performance analysis, logic optimization and routing; wherein said control program provides a locking mechanism for data structures stored in said memory to support concurrent operations by said central processing units each accessing said integrated circuit design represented by said data structures.
Claim 27
Dependent Claim 34 words
A parallel processing design automation system as in claim 23, further configured to include a placement program based upon an algorithm capable of parallel execution by said central processing units accessing said data structures.
Claim 28
Dependent Claim 35 words
A parallel processing design automation system as in claim 23, further configured to include a timing analysis program based upon an algorithm capable of parallel execution by said central processing units accessing said data structures.
Claim 29
Dependent Claim 35 words
A parallel processing design automation system as in claim 23, further configured to include a logic optimization program based upon an algorithm capable of parallel execution by said central processing units accessing said data structures.
Claim 30
Dependent Claim 37 words
A parallel processing design automation system as in claim 23, further configured to include a routing or routing estimation program based upon an algorithm capable of parallel execution by said central processing units accessing said data structures.
Claim 31
Dependent Claim 163 words
An integrated circuit having a layout design created by a process comprising: (a) partitioning circuit elements of a first gate-level logic design into a plurality of clusters; (b) mapping each cluster to a portion of said layout design so as to obtain a placement; (c) based on said placement, providing routing or routing estimates between circuit elements of each cluster and between circuit elements of different clusters; (d) based on said routing or routing estimates, performing a timing analysis to provide estimates of interconnect delays between circuit elements within each cluster and between circuit elements of different clusters; (e) performing a logic optimization operation on a selected one of said clusters to obtain a second gate-level logic design based on a cost function, said cost function being a function of said estimates of interconnect delays; (f) partitioning said second gate-level logic design to obtain a second plurality of clusters; and (g) repeating (b)-(f) until said cost function is less than a predetermined value.
Claim 32
Dependent Claim 163 words
An integrated circuit having a layout design created by a process comprising: (a) partitioning circuit elements of a first gate-level logic design into a plurality of clusters; (b) mapping each cluster to a portion of said layout design so as to obtain a placement; (c) based on said placement, providing routing or routing estimates between circuit elements of each cluster and between circuit elements of different clusters; (d) based on said routing or routing estimates, performing a timing analysis to provide estimates of interconnect delays between circuit elements within each cluster and between circuit elements of different clusters; (e) performing a logic optimization operation on a selected one of said clusters to obtain a second gate-level logic design based on a cost function, said cost function being a function of said estimates of interconnect delays; (f) partitioning said second gate-level logic design to obtain a second plurality of clusters; and (g) repeating (b)-(f) until said cost function is less than a predetermined value.
Claim 33
Dependent Claim 31 words
An integrated circuit as in claim 28, said layout design being created by applying further: dividing each cluster into a plurality of subclusters; and applying (b) through (f) on the subclusters.
Claim 34
Dependent Claim 28 words
An integrated circuit as in claim 29, wherein said dividing step and applying step are recursively applied to said subclusters until said subcluster include only primitive circuit elements.
Claim 35
Dependent Claim 45 words
An integrated circuit as in claim 28, further comprising a placement optimization operation which reassigns circuit elements in a selected cluster to a second cluster mapped to a portion of said layout design adjacent the portion of said layout design mapped to said selected cluster.
Claim 36
Dependent Claim 19 words
An integrated circuit as in claim 28, wherein said logic optimization operation inserts or deletes buffers between circuit elements.
Claim 37
Dependent Claim 26 words
An integrated circuit as in claim 28, wherein said logic optimization operation provides one of a plurality of logic circuits performing substantially the same logic function.
Claim 38
Dependent Claim 56 words
An integrated circuit as in claim 28, wherein said plurality of clusters are grouped into a plurality of cluster groups and wherein each of said step mapping step, said performing a timing analysis step, said performing a logic optimization operation step and said routing step is applied concurrently to each cluster group using multiple processing units.
Claim 39
Dependent Claim 29 words
An integrated circuit as in claim 28, wherein said clusters are divided so that connectivity amongst elements within a cluster are higher than connectivity amongst elements of different clusters.
Claim 40
Dependent Claim 43 words
An integrated circuit as in claim 28, wherein said logic optimization operation reassigns circuit elements in a selected cluster to a second cluster mapped to a portion of said layout design adjacent the portion of said layout design mapped to said selected cluster.
Claim 41
Dependent Claim 271 words
A computer system coupled to a shared memory accessible to a plurality of computer systems, comprising: a central processing unit; an operation system which provides services for creating and executing multiple threads; an interface to said shared memory, said interface reading tasks from and writing tasks to a task queue residing in said shared memory, and reading from and writing to design data of an integrated circuit residing in said shared memory; a memory containing application programs for processing said design data read from said shared memory and writing back said processed design data to said shared memory through said interface; wherein said applications programs include programs for performing in a method for optimizing a layout design based on a gate-level design: (a) partitioning circuit elements of said layout design into a plurality of clusters; (b) mapping each cluster to a portion of said layout design so as to obtain a placement; (c) based on said placement, providing routing or routing estimates between circuit elements of each cluster and between circuit elements of different clusters; (d) based on said routing or routing estimates, performing a timing analysis to provide estimates of interconnect delays between circuit elements within each cluster and between circuit elements of different clusters; (e) performing a logic optimization operation on a selected one of said clusters to obtain a second gate-level logic design based on a cost function, said cost function being a function of said estimates of interconnect delays; (f) based on said second gate-level logic design, providing an improved plurality of clusters; and (g) repeating (b)-(f) until said cost function is less than a predetermined value.
Claim 42
Dependent Claim 271 words
A computer system coupled to a shared memory accessible to a plurality of computer systems, comprising: a central processing unit; an operation system which provides services for creating and executing multiple threads; an interface to said shared memory, said interface reading tasks from and writing tasks to a task queue residing in said shared memory, and reading from and writing to design data of an integrated circuit residing in said shared memory; a memory containing application programs for processing said design data read from said shared memory and writing back said processed design data to said shared memory through said interface; wherein said applications programs include programs for performing in a method for optimizing a layout design based on a gate-level design: (a) partitioning circuit elements of said layout design into a plurality of clusters; (b) mapping each cluster to a portion of said layout design so as to obtain a placement; (c) based on said placement, providing routing or routing estimates between circuit elements of each cluster and between circuit elements of different clusters; (d) based on said routing or routing estimates, performing a timing analysis to provide estimates of interconnect delays between circuit elements within each cluster and between circuit elements of different clusters; (e) performing a logic optimization operation on a selected one of said clusters to obtain a second gate-level logic design based on a cost function, said cost function being a function of said estimates of interconnect delays; (f) based on said second gate-level logic design, providing an improved plurality of clusters; and (g) repeating (b)-(f) until said cost function is less than a predetermined value.
Claim 43
Dependent Claim 27 words
A computer system as in claim 37, said method further comprising: dividing each cluster into a plurality of subclusters; and applying (b) through (f) on the subclusters.
Claim 44
Dependent Claim 28 words
A computer system as in claim 38, wherein said dividing step and applying step are recursively applied to said subclusters until said subcluster include only primitive circuit elements.

References Cited (Backward Citations)

EP0463301A2 Cited
US5526517A Cited
US5495419A Cited
US5875117A Cited
US5914887A Cited
US5909376A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-08-08 2004-02-07 2004-08-08 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-08-08 2008-02-07 2008-08-08 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-08-08 2012-02-07 2012-08-08 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag