Title: A Current Driven Routing and Verification Methodology for Analog Applications
1A Current Driven Routing and Verification
Methodology for Analog Applications
- Thorsten AdlerInfineon Technologies
AGThorsten.Adler_at_infineon.com - Hiltrud Brocke, Lars Hedrich, Erich
BarkeInstitute of Microelectronic
SystemsUniversity of Hanover
This work was supported by the German BMFT
under contract 01 M 3034 Research was done at
IMS, University of Hanover
2Outline
- Introduction
- Proposed Methodology
- Current Characterization
- Current Driven Router (CDR)
- Current Density Simulator (CDS)
- Examples
- Summary Outlook
2
3Introduction
- Current driven routing of multi-terminal nets
- Signal nets in analog integrated circuits
- Variable width routing per wire segment used to
3
4Standard Flow
Introduction
- Current driven routing using
- Standard unified values, e.g. minimum values
- Manually specified current values
- Layout extraction simulation
- Layout modification if needed
4
5Outline
- Introduction
- Proposed Methodology
- Current Characterization
- Current Driven Router (CDR)
- Current Density Simulator (CDS)
- Examples
- Summary Outlook
5
6Proposed Design Methodology
- Current Driven Router (CDR)
- Layout correct by construction
- Layout verification for existing layouts (CDXCDS)
6
7New Design Flow
Proposed Design Methodology
7
8Outline
- Introduction
- Proposed Methodology
- Current Characterization
- Current Driven Router (CDR)
- Current Density Simulator (CDS)
- Examples
- Summary Outlook
8
9Current Characterization
- Determination of realistic current values per
terminal
- Standard circuit simulator
- Designer or Monte Carlo Stimuli
9
10Postprocessing
Current Characterization
- Simulate circuit and gather all terminal currents
- Extract maximum positiveand negative current
value
- Copy those two snapshotsinto the current vector
- For n terminals that may lead to up to 2n current
vectors
10
11Outline
- Introduction
- Proposed Methodology
- Current Characterization
- Current Driven Router (CDR)
- Current Density Simulator (CDS)
- Examples
- Summary Outlook
11
12Current Driven Router (CDR)
Current driven routing of multi-terminal nets
- Signal nets in analog applications
- Guided by terminal currents
12
13Problem Definition
CDR
ST2
?
?
ST2
ST1
ST1
- Current flow between two Steiner points unknown
prior to Steiner tree topology construction
- Valid Steiner tree topology construction only
possible if all currents are known
13
14Power Ground Routing
CDR
- Power Ground routing is done sequential
- Calculation of unknown currents
12
- Steiner tree layout generation
14
15Power Ground Routing
CDR
- Power Ground routing is done sequential
- Calculation of unknown currents
- Steiner tree layout generation
14
16Routing for Analog Applications
CDR
- Signal net routing ? crowded routing levels
- Analog circuits highly sensible to parasitic
effects
? Placement modifications not allowed
- CDR has to generate layout correct by
construction
- Sequential generation of Steiner tree topology
- Simultaneous computation of unknown currents
15
17Principle
CDR
- Steiner tree generation based on Hanans algorithm
w2
w1
w1w2w3
w3
- Single trunk Steiner tree problem ? O(n)
- Unknown current flow between two Steiner points
calculated on the fly during Steiner tree
generation
- Modified Three-Point-Steinerization algorithm
16
18Database
CDR
17
19Basic Algorithm
CDR
- While more than one terminal to connect
- While more than one terminal to connect
- Find the optimum Steiner point between the last
Steiner point and the next two terminals (P3S)
- Find the optimum Steiner point between the last
Steiner point and the next two terminals (P3S)
- Generate the wire between the two Steiner points
- Generate the wire between the two Steiner points
ST1
- Connect the first terminal to the new Steiner
point
- Connect the first terminal to the new Steiner
point
- Connect the remaining terminal to the last
Steiner point found
18
20Basic Algorithm
CDR
- While more than one terminal to connect
- While more than one terminal to connect
- Find the optimum Steiner point between the last
Steiner point and the next two terminals (P3S)
- Find the optimum Steiner point between the last
Steiner point and the next two terminals (P3S)
- Generate the wire between the two Steiner points
- Generate the wire between the two Steiner points
ST2
- Connect the first terminal to the new Steiner
point
- Connect the first terminal to the new Steiner
point
- Connect the remaining terminal to the last
Steiner point found
- Connect the remaining terminal to the last
Steiner point found
18
21Three-Point-Steinerization
CDR
- Start a graph search from the actual Steiner
point to the next two unconnected terminals
- At every graph node evaluate a cost function that
estimates the final routing area
- Compute the exact distance to the next two
terminals using a modified detour algorithm
- Estimate the routing area needed to connect all
remaining terminals
19
22Steiner Point Search
CDR
v current node u node last reached d Distance
between LAST_ST and u M Manhattan distance
widtht1detour(v,t1,widtht1)
cost(v) widthLAST_ST(dM(u,v))
widtht2detour(v,t2,widtht2)
estimate_route_area(v)
20
23Steiner Point Search
CDR
6
T2
v current node u node last reached d Distance
between LAST_ST and u M Manhattan distance
T4
-8
v
u
T1
T3
-4
6
LAST_ST
widtht1detour(v,t1,widtht1)
cost(v) widthLAST_ST(dM(u,v))
widtht2detour(v,t2,widtht2)
estimate_route_area(v)
20
24Steiner Point Search
CDR
6
T2
v current node u node last reached d Distance
between LAST_ST and u M Manhattan distance
T4
v
-8
u
T1
T3
-4
6
LAST_ST
widtht1detour(v,t1,widtht1)
cost(v) widthLAST_ST(dM(u,v))
widtht2detour(v,t2,widtht2)
estimate_route_area(v)
20
25Steiner Point Search
CDR
6
T2
v
v current node u node last reached d Distance
between LAST_ST and u M Manhattan distance
T4
u
-8
T1
T3
-4
6
LAST_ST
widtht1detour(v,t1,widtht1)
cost(v) widthLAST_ST(dM(u,v))
widtht2detour(v,t2,widtht2)
estimate_route_area(v)
20
26Steiner Point Search
CDR
6
T2
ST
T4
-8
T1
T3
-4
6
LAST_ST
20
27Steiner Point Heuristics
CDR
- Cost function finds local optimums only
- Heuristics used to find the global optimum
- Terminal swapping during path searching
- Steiner points above terminals
- Generation of hierarchical Steiner trees
21
28Outline
- Introduction
- Proposed Methodology
- Current Characterization
- Current Driven Router (CDR)
- Current Density Simulator (CDS)
- Examples
- Summary Outlook
22
29Current Density Simulator (CDS)
Validation tool used to check current densities
- Extraction of interconnection network (CDX)
- Calculation of unknown currents between Steiner
points
- Computation of current densities
23
30Geometry Extraction (CDX)
CDS
Correlation between wire segments and resistors
24
31Outline
- Introduction
- Proposed Methodology
- Current Characterization
- Current Driven Router (CDR)
- Current Density Simulator (CDS)
- Examples
- Summary Outlook
25
32Example 1 Terminal Swapping
Examples - CDR
27
33Example 2
Examples - CDR
26
34Example 3 Hierarchical Steiner Tree
Examples - CDR
28
35Example 1 An industrial example
Examples - CDS
29
36Outline
- Introduction
- Proposed Methodology
- Current Characterization
- Current Driven Router (CDR)
- Current Density Simulator (CDS)
- Examples
- Summary Outlook
31
37Summary
- Work supported by German BMFT (SSE-PARASITICS)
- Cooperation between IMS Hanover, Bosch and TEMIC
- Prototype system available
- Current driven routing of multi-terminal nets
32
38Outlook
- Manual specification of Steiner points to be used
- Coupling with in-house routers from Bosch and
TEMIC
- Proper treatment of irregularities
33