throbber
1111111111111111 IIIIII IIIII 11111 1111111111 11111 1111111111 11111 11111 111111111111111 11111111
`US 20070028201Al
`
`c19) United States
`c12) Patent Application Publication
`Mehrotra et al.
`
`c10) Pub. No.: US 2007/0028201 Al
`Feb. 1, 2007
`(43) Pub. Date:
`
`(54) ENHANCED ROUTING GRID SYSTEM AND
`METHOD
`
`(75)
`
`Inventors: Sharad Mehrotra, Cedar Park, TX
`(US); Parsotam T. Patel, Austin, TX
`(US); Joe T. Rahmeh, Austin, TX (US)
`
`Correspondence Address:
`J. SCOTT DENKO
`ANDREWS & KURTH LLP
`111 CONGRESS AVE., SUITE 1700
`AUSTIN, TX 78701 (US)
`
`(73) Assignee: Staktek Group L.P.
`
`(21) Appl. No.:
`
`11/477,078
`
`(22) Filed:
`
`Jun.28, 2006
`
`Related U.S. Application Data
`
`(63) Continuation-in-part of application No. 11/148,911,
`filed on Jun. 9, 2005.
`
`Publication Classification
`
`(51)
`
`Int. Cl.
`G06F 17150
`
`(2006.01)
`
`(52) U.S. Cl. ................................. 716/12; 716/13; 716/14
`
`(57)
`
`ABSTRACT
`
`Routing systems and methods are provided having various
`strategies for optimizing and evaluating possible routes for
`netlist connections. In one embodiment, a data structure or
`matrix provides cost related data weighted to evaluate the
`impact proposed a connection or segment will have upon an
`attribute of interest such as, for example, speed, manufac(cid:173)
`turability or noise tolerance. This cost information can be
`related to terrain costs as well as shape costs to provide
`multidimensional cost information for connections. Process(cid:173)
`ing such higher information cost data is made more efficient
`with an additive process that is less demanding than a
`computationally intensive iterative multiplication process.
`Various methods are also disclosed for shifting and adjusting
`routing grids to improve use of available space or reduce run
`time in routing. In another embodiment, a parallel process(cid:173)
`ing scheme is used to process multiple regions on multiple
`processors simultaneously without creating conflicts, that
`could arise, for example, when two processors try to route a
`trace on the same gridpoint. In another embodiment, various
`methods are used to spread nets over one or more wiring
`layers.
`
`1301
`,----------..........
`Perform Global Routing
`For One Or More Sets
`Of One Or More Traces
`
`Begin Processing Global
`Routing Sets
`
`Apply Sparse Grid Technique
`To Global Route To
`Produce Sparse Grid
`
`1304
`.------~~----L....,
`Apply Detailed Subgrid,
`Other Modified Grid
`Technique To Produce
`Modified Grids
`
`1305
`, - - - - -~ - - - - - ' - - - - - .
`
`Divide Global Route Into
`Parallel Processing Areas
`Which May Have Boundaries
`Along Boundaries Of Sparse
`Grid(s)
`
`Parallel Processing Of Route
`Searches
`
`Yes
`
`Page 1 of 38
`
`

`

`Patent Application Publication Feb. 1, 2007 Sheet 1 of 24
`
`US 2007/0028201 Al
`
`12~
`
`8
`6
`
`14
`
`~18
`
`FIG. 1A
`
`Page 2 of 38
`
`

`

`Patent Application Publication Feb. 1, 2007 Sheet 2 of 24
`
`US 2007/0028201 Al
`
`8
`6
`
`14
`
`(1, 100)
`
`16
`
`FIG. 1B
`
`Page 3 of 38
`
`

`

`Patent Application Publication Feb. 1, 2007 Sheet 3 of 24
`
`US 2007/0028201 Al
`
`12"
`
`22
`
`200nm
`
`6
`
`Offset
`100nm
`
`FIG. 2
`
`Page 4 of 38
`
`

`

`Patent Application Publication Feb. 1, 2007 Sheet 4 of 24
`
`US 2007/0028201 Al
`
`36~35, 33\ 33\ 35,
`/14
`
`36_/
`32~
`36_/ 35J
`
`.,,,.-33
`~34r .t;34r '.1(34
`r
`L ~3.1 _j L ~
`.,,.-35
`
`v14
`
`v14
`
`~6
`
`~ 8
`
`/33
`
`36__,,J'
`
`38/ 38/
`
`38/
`
`FIG. 3A
`
`Page 5 of 38
`
`

`

`Patent Application Publication Feb. 1, 2007 Sheet 5 of 24
`
`US 2007/0028201 Al
`
`X
`
`6
`
`8
`
`FIG. 38
`
`Page 6 of 38
`
`

`

`Patent Application Publication Feb. 1, 2007 Sheet 6 of 24
`
`US 2007/0028201 Al
`
`12~
`
`41\
`
`(4)\
`
`(4)\ £3\ (3)►\ l
`
`s'\
`
`(3)\ ~f2
`7~
`e 1
`
`(1)~ £1, •
`
`T
`
`(1)\
`
`(2);\ l
`
`FIG. 4
`
`Page 7 of 38
`
`

`

`Patent Application Publication Feb. 1, 2007 Sheet 7 of 24
`
`US 2007/0028201 Al
`
`10
`
`T
`
`10
`
`A
`
`R
`
`s
`
`10
`
`10
`
`A
`
`10
`
`10
`
`10
`
`FIG. 5
`
`Page 8 of 38
`
`

`

`Patent Application Publication Feb. 1, 2007 Sheet 8 of 24
`
`US 2007/0028201 Al
`
`.r62
`
`1
`
`1
`
`1
`
`1
`
`0 D D D D D
`
`0 D D D
`
`0
`
`1
`
`1
`
`1
`
`1
`
`D
`
`0
`
`0
`
`0 D
`
`0 D
`
`0
`
`0
`
`0
`
`0
`
`D
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0 D D D D
`
`0 D D D D
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0 D
`
`0
`
`0
`
`0 D 0 D 0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0 D
`
`0 D
`
`0
`
`0
`
`64
`
`6,'_/
`
`64
`
`FIG. 6A
`
`Page 9 of 38
`
`

`

`Patent Application Publication Feb. 1, 2007 Sheet 9 of 24
`
`US 2007/0028201 Al
`
`,r62
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`1
`
`0
`
`0
`
`0
`
`0
`
`1
`
`1
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`1
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`1
`
`0
`
`0
`
`0
`
`1
`
`0
`
`0
`
`0
`
`-
`
`0
`68- 0
`0
`0
`
`0
`
`0
`
`1
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`14, 0
`0
`
`68
`~
`74J
`
`68
`
`"
`
`0
`
`0
`
`0
`
`0
`
`0
`
`63"i
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0~
`66
`
`68
`
`0
`
`" 0
`
`0
`
`0
`
`0
`
`/
`
`61
`
`FIG. 68
`
`Page 10 of 38
`
`

`

`Patent Application Publication Feb. 1, 2007 Sheet 10 of 24
`
`US 2007/0028201 Al
`
`.. 1s""""'-------------~:---- 76'\ _____________ r9"'-- < - - - : 77
`!
`77 !
`:
`:
`:
`~
`I
`I
`I ~ i
`, ________________________ : _____________ , 77
`t ~
`
`1-1 72
`
`I
`
`:
`
`I
`t
`I
`
`I
`
`66
`
`77
`
`71
`
`77
`
`i 0
`['-11
`
`•-------------------~ ____ J
`
`74
`
`70
`
`IFDG. l
`
`Page 11 of 38
`
`

`

`Patent Application Publication Feb. 1, 2007 Sheet 11 of 24
`
`US 2007/0028201 Al
`
`r 801
`..
`Perform Global Routing
`Search
`
`,,
`rB 02
`Determine Presence Of One
`Or More Large Unblocked
`Fields Along Global Route
`,,
`rB 03
`Apply Sparse Routing Grid
`Over Normal Routing Grid
`For Each Unblocked Field
`
`,B 04
`••
`Search For Desired Routes
`On Combined Grids
`
`,B 05
`n
`Store Traces In Normal
`Routing Grid Structure
`
`,,
`rB 06
`Remove Sparse Routing
`Grid Structure
`
`FIG. 8
`
`Page 12 of 38
`
`

`

`Patent Application Publication Feb. 1, 2007 Sheet 12 of 24
`
`US 2007/0028201 Al
`
`.,
`
`~ ; [ j
`/ ~ ~
`,I ~-v
`~l--"
`~
`
`; ~ ;
`; L,
`; L,
`
`/
`/
`/
`
`lO
`O')
`fj- -- -- -- -- -- --
`
`L, L,
`L,
`
`t----
`/V
`
`~ O')
`
`-- -- --
`
`-- -- -
`
`1,
`
`I
`I
`I
`I
`I
`I
`I
`
`I
`I
`I
`I
`I
`I
`L--
`
`,_ __ .. --
`
`._ __ .. --
`
`/I; 1,-v
`~~ /V
`~~
`~
`f:;
`.,v
`~ L,
`~ r---
`~ -
`
`L,
`
`L,
`
`/
`
`L,
`
`~ L, ! L,
`
`~
`I::
`
`~ ~/ ~
`L, ._,
`-- -~ ') - -- -- --
`~-
`~ I/
`I/ ~
`~ /
`I;:: t-- f\
`~ L,
`
`L, ,I
`
`L,
`
`L,
`
`I/
`I/
`I/ ,I
`I/ ,I
`
`C"')
`O')
`
`; - -- -- --
`
`/ /
`
`/I<
`I'-,
`/ /
`lO
`/
`; / O')
`
`/ / i--...
`/ / \
`~ / ~
`/ / a-.
`
`r-....
`0)
`l.)
`
`--
`
`c:o
`0)
`~
`
`t
`I
`I
`
`-- J
`
`~
`O')
`l.)
`
`--
`
`"-I
`
`- O') LJ
`
`I
`I
`I
`
`1--- -- --
`
`I
`I
`I
`
`-- -- -- --
`
`-- -- -
`
`~-
`co
`co
`co
`
`I
`I
`
`I
`I
`I
`
`I
`I
`I
`I
`I
`I
`
`I
`I
`I
`
`I
`I
`
`/P
`
`; /
`
`,, /
`,, /
`v/
`l,'l/
`~ t;':
`"t:": "v
`"
`i,,v
`
`L, /
`
`/
`
`. / / /I
`V/,-
`
`---\- -- --
`
`r-....
`O')
`
`co
`co
`
`I
`I
`I
`I
`
`L--~-- --
`
`(
`,...
`C\I
`
`{ ( (
`
`, I~
`":,,
`:::~r--.
`'\. ,.._
`-- -- -- -- -- -- --
`
`O')
`
`I
`
`---•
`
`Page 13 of 38
`
`

`

`Patent Application Publication Feb. 1, 2007 Sheet 13 of 24
`
`US 2007/0028201 Al
`
`.,
`
`Designate Two Or More Areas
`For Processing In First Period
`
`1~
`
`Designate Two Or More Areas
`For Processing In Second Period
`
`,,
`Divide Any Traces That -
`Cross Adjacent Areas Into
`Subtraces
`
`r 1001
`
`r 1002
`
`r 1003
`
`,,
`Route Traces And Subtraces
`In First Processing Period Areas
`In Parallel
`
`r 1004
`
`1,
`Route Traces And Subtraces
`In Second Processing Period Areas
`In Parallel
`
`r 1005
`
`FIG. 10
`
`Page 14 of 38
`
`

`

`Patent Application Publication Feb. 1, 2007 Sheet 14 of 24
`
`US 2007/0028201 Al
`
`co
`,._
`<:::)
`,._
`
`• •
`• •
`
`C\11
`
`•--------------------
`
`,_
`,_
`
`• •
`
`C\11
`
`~ ,.._
`,.._
`
`CC\J ~
`,.._,.._ ,.._
`,._,.._ ,.._
`,._,.._,.._
`
`Page 15 of 38
`
`

`

`Patent Application Publication Feb. 1, 2007 Sheet 15 of 24
`
`US 2007/0028201 Al
`
`1220
`
`I
`I
`I
`I
`I
`I
`
`I
`
`I
`I
`I
`I
`
`I
`I
`I
`I
`I
`I
`
`I
`
`I
`I
`I
`I
`
`H-+ 1222
`+--t---1
`
`I 1224.
`•
`H-+
`•
`+-H12oa~:
`I
`I
`•
`
`I
`I
`I
`I
`I
`
`I
`I
`
`I
`I
`I
`I
`I
`I
`
`I
`I
`
`----11---
`--- "'-1226
`
`------- --
`
`\...1214
`
`1218
`
`..-1206
`✓
`••••••
`
`~1210
`••••••
`
`\...
`
`1202
`
`\
`'---
`
`1204
`
`FIG. 12
`
`11216
`
`• • •
`1212/:
`•
`
`Page 16 of 38
`
`

`

`Patent Application Publication Feb. 1, 2007 Sheet 16 of 24
`
`US 2007/0028201 Al
`
`1301
`
`1302
`
`1303
`
`1304
`
`1305
`
`1306
`
`Perform Global Routing
`For One Or More Sets ..
`Of One Or More Traces·_·
`
`Begin Processing Global
`Routing Sets
`
`Apply Sparse Grid Technique
`To Global Route To
`Produce Sparse Grid
`
`Apply Detailed Subgrid,
`Other Modified Grid
`Technique To Produce
`Modified Grids
`
`Divide Global Route Into
`Parallel Processing Areas
`Which May Have Boundaries
`Along Boundaries Of Sparse
`Grid(s)
`
`Parallel Processing Of Route
`Searches
`
`1308
`
`End
`
`FIG. 13
`
`Page 17 of 38
`
`

`

`Patent Application Publication Feb. 1, 2007 Sheet 17 of 24
`
`US 2007/0028201 Al
`
`8
`
`8
`
`1
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`
`f
`I
`I
`I
`I
`I
`I
`I
`I
`
`I
`
`!~149
`
`I
`I
`I
`I
`
`149
`
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`
`I
`
`IFDG. 14
`
`Page 18 of 38
`
`

`

`Patent Application Publication Feb. 1, 2007 Sheet 18 of 24
`
`US 2007/0028201 Al
`
`151
`151
`
`· l.
`
`l
`
`~ -
`
`:
`
`~
`
`I- - -
`
`152
`
`- -
`...
`...
`153/
`
`- --
`..
`..
`-
`"-153
`
`FIG. 15
`
`151
`151
`..
`- - - - -
`
`.l
`
`~
`
`~
`
`152
`
`- - - - -
`-
`
`...
`
`FIG. 16
`
`Page 19 of 38
`
`

`

`Patent Application Publication Feb. 1, 2007 Sheet 19 of 24
`
`US 2007/0028201 Al
`
`1701
`
`Begin Route Search
`For Trace Preferably
`Having X-shape
`
`1703
`
`Yes
`Mark With Normal
`~-~ Cost And Proceed
`With Search
`
`-1705
`
`Yes
`
`Mark With Cost
`Of Lowest Cost
`Allowed Shape
`And Proceed
`With Search
`
`1702
`
`Query
`Gridpoint.
`Does Gridpoint Allow
`Placement Of
`X-shape
`?
`No
`
`Does
`Gridpoint Allow
`Placement Of Any
`Alternative
`Shape
`?
`No
`
`1706
`
`Grid point
`Is
`Blocked
`
`FIG. 17A
`
`Page 20 of 38
`
`

`

`Patent Application Publication Feb. 1, 2007 Sheet 20 of 24
`
`US 2007/0028201 Al
`
`1710
`
`1750
`
`1760
`
`"-1740
`
`1710
`
`1700
`
`FIG« 178
`
`Page 21 of 38
`
`

`

`Patent Application Publication Feb. 1, 2007 Sheet 21 of 24
`
`US 2007/0028201 Al
`
`11910
`
`Initial Routing
`
`,,
`
`~ 1920
`
`Ripup - Reroute
`
`,,
`
`f 1930
`
`Layer Balancing
`
`,.,
`
`( 1940
`
`Detailed Routing
`
`FIG. 19
`
`Page 22 of 38
`
`

`

`Patent Application Publication Feb. 1, 2007 Sheet 22 of 24
`
`US 2007/0028201 Al
`
`2010
`
`2020
`
`2025
`
`2030
`
`Begin Initial Routing
`
`Prioritize Nets For Initial
`Routing
`
`Order Pairs Of Adjacent
`Layers
`
`Select Highest Priority
`Unrouted Net
`
`Is
`r-2040
`There A
`Pair Of Adjacent Layers _Ye_s---.
`Where Net
`Fits
`?
`
`2050
`2060
`~ - -_ . . ,_ __ __.___,_
`Assign Each Net Edge To ____ ---1 Assign Net To Preferred
`Optimal Available Layer
`layer
`
`, - - - - - - - ' - - - - ' - - - - , ,
`
`Yes
`
`More
`Unassigne
`
`2070
`
`No
`
`2080
`
`Perform Ripup-Reroute
`
`FIG. 20
`
`Page 23 of 38
`
`

`

`Patent Application Publication Feb. 1, 2007 Sheet 23 of 24
`
`US 2007/0028201 Al
`
`Begin Ripup-Reroute
`
`Prioritize Nets For
`Ripup-Reroute
`
`2110
`
`r2120
`
`2130
`
`Select Highest Priority
`Net To Reroute
`
`2140
`Reroute Net And Determine
`Layer Assignment Of Rerouted
`Net
`
`Yes
`
`2150
`
`No
`,.._........... ___ ............._ __ ~
`12160
`Perform Layer Balancing
`
`. FIG~ 21
`
`Page 24 of 38
`
`

`

`Patent Application Publication Feb. 1, 2007 Sheet 24 of 24
`
`US 2007/0028201 Al
`
`2210
`
`2220
`
`Begin Layer Balancing
`
`Determine Resource
`Utilization Of Each
`Wiring Layer
`
`2230
`Any
`No
`Wiring Layers
`Unbalanced
`?
`Yes
`
`Identify Candidate Net
`For Rebalancing
`
`2240
`
`2250
`
`Relocate Candidate
`Net
`
`FIG. 22
`
`-2260
`
`Perform Detailed
`Routing
`
`Page 25 of 38
`
`

`

`US 2007/0028201 Al
`
`Feb. 1, 2007
`
`1
`
`ENHANCED ROUTING GRID SYSTEM AND
`METHOD
`
`RELATED APPLICATIONS
`
`[0001] The present application is a continuation-in-part of
`U.S. patent application Ser. No. 11/148,911, filed Jun. 9,
`2005, pending, which application is incorporated by refer(cid:173)
`ence herein.
`
`TECHNICAL FIELD
`
`[0002] The present invention relates to systems and meth(cid:173)
`ods for routing traces or wires for an integrated circuit or
`other electronic design.
`
`BACKGROUND
`
`[0003] A layout is a map of electrical connections on
`various layers in a semiconductor integrated circuit. Com(cid:173)
`puter-driven routing systems are often used to build layouts
`to articulate designs to be expressed in an integrated circuit.
`Such systems typically use a netlist which is a description of
`required connections between terminals, and create a routed
`design or layout to make such required connections.
`
`[0004] Typically such computer driven routing systems
`are grid based systems that route traces on a routing grid.
`Some systems also employ a gridless routing scheme, in
`which routing shapes may be placed at very precise loca(cid:173)
`tions.
`
`[0005]
`In such a conventional grid based routing system,
`each layer of an integrated circuit chip is represented as a
`routing grid. The grids for the various layers together form
`a 3D routing grid. A typical integrated circuit will have at
`least one semiconductor layer and three wiring layers. The
`three wiring layers are sometimes referred to as HVH
`(horizontal-vertical-horizontal).
`'Horizontal' or 'vertical'
`indicates that the layer is generally used to make traces that
`traverse in that direction. Vias interconnect adjacent layers.
`
`[0006] To perform routing, the router must first receive
`chip technology data including various rules such as geo(cid:173)
`metric rules that describe parameters such as the character(cid:173)
`istics of layers on which rectangles representing wires can
`be generated, the minimum allowed width of any part of a
`trace, and the minimum allowed separation between traces.
`Typically, a router includes a global routing step for allo(cid:173)
`cating groups of nets to be routed through corresponding
`general routing areas.
`
`[0007] A number of conventions are employed in typical
`routing systems and methods. For example, the common
`"centerline convention" places the center of traces on the
`routing grid gridlines. When a net is routed, for various
`reasons, the trace must be distanced from existing obstacles
`or structures, such as, for example, other traces, including
`vias, and pins of other nets that have been previously routed
`on the grid.
`
`[0008] As integrated circuits employ smaller sizes such as,
`for example, submicron-sized designs, the congestion of
`traces in a circuit design tends to increase. Further, modern
`designs tend to have wires or traces having different and
`non-uniform size and spacing. Typical grid-based systems
`may not efficiently handle such increased congestion and
`
`size variation. The increased congestion and size variation
`place greater constraints on the routing grid pitch employed
`in a particular region.
`
`[0009] One common approach to such increased conges(cid:173)
`tion and size variation is to reduce the pitch of the routing
`grid to allow more precise placement. Such a scheme causes,
`however, significant increase in the number of grid points
`and a corresponding increase in search time.
`
`[0010] Another approach is to use a gridless or shape(cid:173)
`based routing system. Such a system tracks traces and other
`obstacles based upon their relative locations. Shape-based
`systems are typically not limited to a predefined routing grid.
`The systems are, however, typically slow and complex.
`
`[0011]
`In the IC industry, different objectives for a design
`are served by different design features. For example, design
`attributes that improve manufacturability may not so readily
`serve the interests of feature density just as attributes that
`serve reduced delay may not so readily serve other interests.
`The trade offs between manufacturability, reduced delay and
`timing sensitivity have typically been allocated with meth(cid:173)
`ods that are less than systematic and efficient.
`
`[0012] What is needed, therefore, are routing techniques
`that provide speed similar to a grid-based system, but
`accuracy and flexibility that compares favorably with a
`shape-based system but which provide efficient management
`of the trade offs between manufacturability, timing, and
`reduced delay.
`
`SUMMARY
`
`[0013] Routing systems and methods are provided having
`various strategies for optimizing and evaluating possible
`routes for netlist connections. In one embodiment, a data
`structure or matrix provides cost-related data weighted to
`evaluate a connection or segment of a connection based
`upon an attribute of interest such as, for example, reduced
`delay (i.e., impact on speed), manufacturability or noise
`tolerance. In some embodiments, the attribute-weighted cost
`information includes cost information related to neighbor(cid:173)
`hood or terrain costs and intrinsic or shape costs to provide
`multidimensional cost information for connections. In some
`embodiments, the processing of such higher information
`cost data is made more efficient with an additive process that
`is less demanding than a computationally intensive iterative
`multiplication process.
`
`[0014]
`In another embodiment, certain traces are offset
`from the routing grid to help provide efficient grid usage.
`Other embodiments have an enhanced routing grid capabil(cid:173)
`ity that provide those parts of a dense routing grid employed
`to efficiently route off main grid sites or pins, for example.
`Various methods are also disclosed for shifting and adjusting
`routing grids to improve use of available space or reduce run
`time in routing.
`
`[0015]
`In another embodiment, a parallel processing
`scheme is used to process multiple regions on multiple
`processors simultaneously without creating conflicts, that
`could arise, for example, when two processors try to route a
`trace on the same gridpoint.
`
`[0016]
`In another embodiment, various methods are pro(cid:173)
`posed to spread nets over one or more wiring layers.
`
`Page 26 of 38
`
`

`

`US 2007/0028201 Al
`
`Feb. 1, 2007
`
`2
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`[0017] FIG. lA depicts a prior art grid labeling scheme.
`
`[0018] FIG. 1B depicts a finer granularity grid labeling
`strategy that weights the cost of a connection or structure.
`
`[0019] FIG. 2 depicts a method of enhancing grid preci(cid:173)
`sion and usability by offsetting traces from gridpoints.
`
`[0020] FIG. 3A depicts a step in using a subgrid according
`to one embodiment of the present invention.
`
`[0037] FIG. 20 depicts a flow chart illustrating a method
`for initial routing in a preferred embodiment of a method for
`routing connections in an integrated circuit chip design.
`
`[0038] FIG. 21 depicts a flow chart illustrating a method
`for ripup-reroute in a preferred embodiment of a method for
`routing connections in an integrated circuit chip design.
`
`[0039] FIG. 22 depicts a flow chart illustrating a method
`for layer balancing in a preferred embodiment of a method
`for routing connections in an integrated circuit chip design.
`
`[0021] FIG. 3B depicts a reduced subgrid according to an
`embodiment of the present invention.
`
`DETAILED DESCRIPTION OF PREFERRED
`EMBODIMENTS
`
`[0022] FIG. 4 depicts a route for a connection from a
`source to a target as a series of steps.
`
`[0023] FIG. 5 depicts a routing strategy according to one
`preferred embodiment of the present invention.
`
`[0024] FIG. 6A and FIG. 6B illustrate a sparse grid flyover
`technique according to one embodiment of the present
`invention.
`
`[0025] FIG. 7 depicts a global routing scheme using sparse
`routing grids according to one embodiment of the present
`invention.
`
`[0026] FIG. 8 depicts a flow chart of a global routing
`scheme using sparse routing grids.
`
`[0027] FIG. 9 illustrates a parallel processing routing
`scheme according to one embodiment of the present inven(cid:173)
`tion.
`
`[0028] FIG. 10 depicts a flow chart of a parallel processing
`routing scheme according to one embodiment of the present
`invention.
`
`[0029] FIG. 11 illustrates a parallel processing routine
`scheme according to another embodiment of the present
`invention.
`
`[0030] FIG. 12
`illustrates a global routing function
`employed in combination with a parallel processing function
`in a scheme according to one embodiment of the present
`invention.
`
`[0031] FIG. 13 depicts a flow chart of a global routing
`function employed in combination with a parallel processing
`function according to one embodiment of the present inven(cid:173)
`tion.
`
`[0032] FIG. 14
`illustrates a grid adjustment scheme
`according to one embodiment of the present invention.
`
`[0033] FIG. 15 and FIG. 16 illustrate a trace adjustment
`scheme according to one embodiment of the present inven(cid:173)
`tion.
`
`[0034] FIG. 17 illustrates an exemplary global spreading
`technique according to one embodiment of the present
`invention.
`
`[0035] FIG. 18 is an expanded view of an exemplary
`multi-layer configuration of an integrated circuit chip.
`
`[0036] FIG. 19 depicts a flow chart illustrating a preferred
`embodiment of a method for routing connections in an
`integrated circuit chip design.
`
`[0040] FIG. lA depicts a prior art grid labeling scheme.
`Grid 12 is a routing grid upon which traces are routed to
`make connections between desired locations in the grid area,
`such as, for example, gridpoints 14. The depicted grid 12 is
`formed of horizontal gridlines 6 and vertical gridlines 8
`which intersect to create gridpoints 14.
`
`[0041] Typically, routing a path or trace 16 requires rout(cid:173)
`ing path segments between certain gridpoints or pins. A
`search algorithm searches the grid to find an unblocked route
`through which to route trace 16. Once a route is found, many
`routing systems record the route using a one-bit scheme in
`which "1" represents that a gridpoint 14 is blocked and "O"
`represents that a gridpoint 14 is open for use (unblocked).
`More sophisticated systems employ a two-bit matrix typi(cid:173)
`cally stored as a data structure 18 to represent the status of
`each gridpoint 14. Such a scheme enables matrix or data
`structure 18 to contain blocking information for more than
`one type of trace 16. In FIG. 1, the data structures 18 have
`two bits, the first or left-hand-depicted bit representing the
`status of each respective gridpoint 14 as being blocked or
`unblocked for a single-wide trace 16 while the second or
`right-hand depicted bit represents the status of each respec(cid:173)
`tive gridpoint as blocked or unblocked for use by a double(cid:173)
`wide trace.
`
`[0042] One embodiment of the present invention employs
`data structures that provide a deeper information related to
`a proposed route for a connection. Rather than bits indicative
`of one of two states (i.e., blocked/unblocked), the data
`structures or matrices 18 of a preferred embodiment express
`values representative of the impact upon selected attributes
`of interest such as, for example, reduced delay, noise toler(cid:173)
`ance, or manufacturability that result from routing the path
`or trace through a segment of the path bounded by a
`particular grid vertex with which the matrix or data structure
`has been associated. Although any number of values can be
`expressed by the cost matrix 18 in preferred embodiments,
`preferably, at least two matrix values are expressed by the
`cost matrix or data structure 18, each of the two values
`taking on one of at least three possible range values to
`convey more than a binary unblocked/blocked evaluation of
`the degree of impact that would impinge upon a selected
`attribute of interest by incorporation of the selected segment
`into a possible path for the proposed netlist connection.
`Typically, one of the range values available for expression
`by a matrix value of data structure 18 represents a prohibi(cid:173)
`tion on use of that segment for the proposed path with a
`proposed shape.
`
`[0043] As shown in FIG. lB, in the depicted embodiment,
`gridpoint 14 1 is shown having a data structure 18 that
`
`Page 27 of 38
`
`

`

`US 2007/0028201 Al
`
`Feb. 1, 2007
`
`3
`
`expresses two matrix values (n1 , n2 ). The n 1 matrix value has
`taken on the range value 1 and the n2 matrix value has taken
`on the range value 100. Thus, data structure or matrix 18
`contains (1,100), which indicates the associated gridpoint is
`blocked for use by a single-wide trace and a double-wide
`trace because for the first matrix value n 1 , a "1" range value
`indicates complete prohibition on use by a single wide trace
`and for the second matrix value n2 , a "100" range value
`indicates complete prohibition on use by a double wide
`trace. The use of 100 in the n2 position of the (ni, n2 ) matrix
`indicates a maximal blockage and corresponds to earlier
`systems that expressed that condition with a "1". Such
`disability results, in this example, from the expression of
`depicted trace 16 along a route that already includes grid(cid:173)
`point 14 1 .
`[0044] When complete prohibition (blockage) is indicated
`by more than a "1" range value for a matrix value (ni, n2 , *
`* *n,,), in preferred embodiments, that typically means that
`other range values are available for that matrix value to
`express a degree of impact upon an attribute of interest other
`or less than complete blockage for a proposed shape. For
`example, where the range value 100 indicates blockage for
`the matrix value n2, there is typically available at least one
`range value more than "0" and less than "100" for that
`matrix value. Thus, the matrix value can take one of at least
`three different range values, at a minimum. When larger
`range values such as "100" are employed, in a typical
`preferred embodiment, there will be many range values
`available to allow a more continuum-like indication of
`impact upon an attribute of interest arising from use of that
`proposed segment or path.
`
`[0045] Gridpoint 142 is also depicted as being entirely
`unavailable for both a single-wide and a double-wide trace.
`This is expressed by the respective matrix value range
`values (1,100) for matrix 18. This is because gridpoint 142
`is within the design rule keepout or spacing requirement for
`the depicted trace 16. The spacing requirement is typically
`determined by desired electrical properties of traces 16. For
`example, if the depicted trace 16 is 100 nm wide, the design
`rules may specify a spacing requirement that it be 100 nm
`from any neighboring trace. Suppose, for example, that the
`depicted gridlines are arranged to form a 100 nm pitch grid.
`In such a case, gridpoint 142 would be within 100 nm of
`trace 16, and is, therefore, blocked by the spacing require(cid:173)
`ment or spacing zone of trace 16. Gridpoint 142 is shown
`blocked for both single-wide and double-wide traces 16, as
`indicated by (1,100).
`
`[0046] The next gridpoint 143 is shown as having data
`structure or matrix 18 containing (0, 50). Such range values
`indicate, in this example embodiment, that gridpoint 143 is
`unblocked for use by a single-wide trace, and may, if the cost
`is acceptable, be employed for use with a double-wide trace.
`The indication of a relative cost of 50 in the n2 position of
`the cost matrix (nl, n2) indicates that, although it is not
`absolutely prohibited, use of a double wide trace at 143 will
`come with some impact. The character of that impact is
`determined by the weighting given to that site by an opti(cid:173)
`mization tool.
`
`[0047] The optimization tool is directed to assign a cost
`for particular sites or vertices 14n depending upon the
`relative values placed upon the attributes of interest such as
`manufacturability, reduced delay, and noise tolerance, for
`
`example. Preferably, when absolutely prohibited by prior
`use at that layer or the design rules, the maximum of the
`costing continuum of the matrix will be indicated. In this
`example, that number is 100. The number used to indicate
`complete prohibition is arbitrary, but expanding the range
`from 1 to 100 allows a finer gradation of cost to allow finer
`evaluation of attributes of interest such as reduced delay,
`noise tolerance or manufacturability, for example. Those of
`skill will note that other attributes of interest may be woven
`into the cost weighting, but reduced delay, noise, and
`manufacturability are the principal attributes of interest. The
`output of the optimization tool then becomes a label for a
`particular locus of the grid or a pin and that label is
`employed to find lower cost routes for particular connec(cid:173)
`tions.
`[0048] The next gridpoint 144 is shown as having a cost
`matrix of (0, 10), indicating it is unblocked for use by both
`single-wide and has some, but minimal cost for use with
`double-wide traces. If a double-wide trace were to be routed
`along gridpoint 144 , it would not overlap or violate the
`spacing requirement of the depicted trace 16. Also, the
`depicted trace 16 would not violate the spacing requirement
`of a double-wide trace if it were routed on gridpoint 144 ,
`assuming the required double-wide spacing is 150 nm.
`However, in this example, it will induce some noise impact
`if this exemplar trace is a high power trace and switching
`along trace 16 propagates disturbances some distance from
`trace 16.
`[0049] The depicted method may be used to indicate and
`store in router data storage, data about a variety of different
`trace types and other shapes that may be placed on a grid 12
`and their impact on proposed routes, paths or segments. The
`data is then used by search algorithms when finding routes
`for other traces. Those of skill will recognize that routers
`implement methods and algorithms with software that
`induces instructions for implementation of the desired
`method or algorithm. Those of skill will also recognize that
`the trace size and spacing used in this example are merely
`exemplary and it is expected that systems will use a variety
`of trace sizes and other shapes.
`[0050] FIG. 2 depicts a method of enhancing grid preci(cid:173)
`sion and usability by offsetting traces from gridpoints. The
`depicted portion of grid 12 has example single wide trace 16
`and example double-wide traces 22. Gridlines 6 and 8 form
`a standard routing grid having, in this example, a 200 nm
`spacing. The left-hand exemplar traces 16 and 22 are routed
`along gridline 8 1 . Trace 16 is a single-wide trace with a 100
`nm width and a 100 nm spacing requirement. Traces 22 are
`double wide traces with a 200 nm width and a 150 nm
`spacing requirement.
`[0051] The upper depicted double-wide trace 22, is cen(cid:173)
`tered on vertical gridline 81 and therefore blocks gridline 8 1
`and gridline 82 because gridline 82 is within the required 150
`nm spacing for the trace 22 1 . The first gridline 8 available for
`routing a single-wide or double-wide trace beside the upper
`depicted trace 22 1 is gridline 8y Because the upper depicted
`trace 22 1 is centered on gridline 81 , it blocks not only
`gridline 8 1 , but also the neighboring gridline 82 to its right
`and the corresponding neighboring gridline to its left (not
`shown). Thus three gridlines 8 are blocked by upper
`depicted trace 22 1 .
`[0052]
`In such a scheme, area may be wasted. The
`example grid size does not allow optimal spacing. To reduce
`
`Page 28 of 38
`
`

`

`US 2007/0028201 Al
`
`Feb. 1, 2007
`
`4
`
`the pitch of the gridlines, however, to achieve more optimal
`spacing may greatly slow down the routing program by
`significantly increasing the number of gridpoints searched.
`
`[0053] The lower depicted double-wide trace 222 is placed
`according to a preferred method of the invention to help
`optimize space efficiency, or packing, without decreasing the
`pitch of the gridlines employed. The lower trace 222 is
`centered on an offset line 24. Line 24 is offset from gridline
`82 by 100 nm. With such an offset location, the vertical
`portion of offset placed lower trace 222 blocks only two
`gridlines, 82 and 83 , rather than blocking three gridlines. In
`this example, gridpoints 14 on gridline 81 beside offset lower
`trace 222 may be employed for routing a single-wide trace
`which is spaced at the correct 150 nm spacing from offset
`lower trace 222 . Thus, the depicted method provides more
`efficiently spaced traces.
`
`[0054] A proper offset distance may be determined for a
`particular shape such as, for example, a double wide trace,
`an analog trace, or other special trace, by shifting an outline
`of the shape with its associated spacing over a desired grid
`and determining which offset position blocks the smallest
`number of gridlines. Preferably, the offset position is deter(cid:173)
`mined in advance of the routing step. The offset position is
`preferably associated with a particular type o

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket