parametric hierarchy recovery in layout extracted netlists ...hierarchy recovery using type-mapping...

25
Parametric Hierarchy Recovery in Layout Extracted Netlists (Type Mapping) John Lee Puneet Gupta DFM&Y 2011 Puneet Gupta ([email protected]) 1

Upload: others

Post on 29-Aug-2020

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Parametric Hierarchy Recovery in Layout Extracted Netlists ...Hierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy –Tolerance based clustering: •

Parametric Hierarchy Recovery in Layout Extracted Netlists

(Type Mapping)

John Lee

Puneet Gupta

DFM&Y 2011

Puneet Gupta ([email protected]) 1

Page 2: Parametric Hierarchy Recovery in Layout Extracted Netlists ...Hierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy –Tolerance based clustering: •

NanoCAD Lab

Hierarchy Degradation

• Layout-Dependent Device Parameters– Stress effects– Lithography effects– Parasitics

• Added to each transistor– Breaks the hierarchy

M0 5 8 5 VSS NMOS L=4.85294e-08 W=3.40000e-07 $X=225 $Y=160 $D=77 sca=2.70597e+01 scb=1.90764e-02 scc=3.46602e-03 spa=1.94753e-07 spa1=1.86534e-07 spa2=1.77552e-07 spa3=1.80107e-07 sap=1.81200e-07 sa4=1.67593e-07 spba=2.04926e-07 spba1=2.07364e-07 sapb=2.35994e-07 enx=3.99926e-06 enx1=3.38623e-06 eny=8.84817e-08 eny1=1.56155e-08 eny2=2.79212e-08 rex=1.65402e-06 rey=1.85106e-07

Page 3: Parametric Hierarchy Recovery in Layout Extracted Netlists ...Hierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy –Tolerance based clustering: •

NanoCAD Lab

Hierarchy Degradation Example

Hierarchical

.SUBCKT sc2

M1 1 2 3 nch L=45e-9 W=90e-9

M2 1 2 3 nch L=45e-9 W=90e-9

.ENDS

.SUBCKT sc 1 2 3 4

M1 1 2 3 nch L=45e-9 W=90e-9

M2 2 3 4 pch L=45e-9 W=90e-9

M3 4 5 1 pch L=45e-9 W=90e-9

M4 5 6 2 pch L=46e-9 W=90e-9

X1 1 sc2

X2 1 sc2

X3 1 sc2

.ENDS

Flat

.SUBCKT sc2

MM1 1 2 3 nch L=45e-9 W=90e-9

.ENDS

.SUBCKT sc 1 2 3 4 5

MM1 1 2 3 nch L=45e-9 W=90e-9

MM2 2 3 4 pch L=45e-9 W=90e-9

MM3 4 5 1 pch L=45e-9 W=90e-9

MM4 5 6 2 pch L=45e-9 W=90e-9

MX1/M2 3 4 6 nch L=52e-9 W=90e-9

MX2/M2 3 4 6 nch L=50e-9 W=90e-9

MX3/M2 3 4 6 nch L=50e-9 W=90e-9

XX1 1 sc2

XX2 1 sc2

XX3 1 sc2

.ENDS

Puneet Gupta ([email protected])

3

Page 4: Parametric Hierarchy Recovery in Layout Extracted Netlists ...Hierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy –Tolerance based clustering: •

NanoCAD Lab

Difficulties from flattened netlists

• Verification and analysis tools suffer from the lack of hierarchy:– Increases runtimes– Difficult to find common source of multiple errors

• May have millions of errors from a single standard cell• Errors may be related to a repeating hierarchical block

– Difficult to analyze• Too much information

Page 5: Parametric Hierarchy Recovery in Layout Extracted Netlists ...Hierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy –Tolerance based clustering: •

NanoCAD Lab

Redundant layout dependent contexts

Most designs have redundant contexts:•Examples:

– Multicore designs

– DSP designs

CPU

CPU

CPU

CPU

CPU

CPU

CPU

CPU

CPU

+ + +

+ + +

Page 6: Parametric Hierarchy Recovery in Layout Extracted Netlists ...Hierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy –Tolerance based clustering: •

NanoCAD Lab

Hierarchy recovery using Type-Mapping

• Create type-variants to recover hierarchy– Tolerance based clustering:

• Cluster device parameters if they are within a tolerance

– Variants on the original hierarchical blocks– Capture the different layout contexts in a design

NAND2X1

NAND2X1

NAND2X1

NAND2X1

NAND2X1

NAND2X1

NAND2X1

NAND2X1

NAND2X1

NAND2X1

NAND2X1

NAND2X1

NAND2X1 V1

NAND2X1 V2

NAND2X1 V3

Type-Mapping

Page 7: Parametric Hierarchy Recovery in Layout Extracted Netlists ...Hierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy –Tolerance based clustering: •

NanoCAD Lab

Hierarchy Degradation Example

Hierarchical

.SUBCKT sc2

M1 1 2 3 nch L=45e-9 W=90e-9

M2 1 2 3 nch L=45e-9 W=90e-9

.ENDS

.SUBCKT sc 1 2 3 4

M1 1 2 3 nch L=45e-9 W=90e-9

M2 2 3 4 pch L=45e-9 W=90e-9

M3 4 5 1 pch L=45e-9 W=90e-9

M4 5 6 2 pch L=46e-9 W=90e-9

X1 1 sc2

X2 1 sc2

X3 1 sc2

.ENDS

Flat

.SUBCKT sc2

MM1 1 2 3 nch L=45e-9 W=90e-9

.ENDS

.SUBCKT sc 1 2 3 4 5

MM1 1 2 3 nch L=45e-9 W=90e-9

MM2 2 3 4 pch L=45e-9 W=90e-9

MM3 4 5 1 pch L=45e-9 W=90e-9

MM4 5 6 2 pch L=45e-9 W=90e-9

MX1/M2 3 4 6 nch L=52e-9 W=90e-9

MX2/M2 3 4 6 nch L=50e-9 W=90e-9

MX3/M2 3 4 6 nch L=50e-9 W=90e-9

XX1 1 sc2

XX2 1 sc2

XX3 1 sc2

.ENDS

Puneet Gupta ([email protected])

7

Page 8: Parametric Hierarchy Recovery in Layout Extracted Netlists ...Hierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy –Tolerance based clustering: •

NanoCAD Lab

Flat

.SUBCKT sc2

MM1 1 2 3 nch L=45e-9 W=90e-9

.ENDS

.SUBCKT sc 1 2 3 4 5

MM1 1 2 3 nch L=45e-9 W=90e-9

MM2 2 3 4 pch L=45e-9 W=90e-9

MM3 4 5 1 pch L=45e-9 W=90e-9

MM4 5 6 2 pch L=45e-9 W=90e-9

MX1/M2 3 4 6 nch L=52e-9 W=90e-9

MX2/M2 3 4 6 nch L=50e-9 W=90e-9

MX3/M2 3 4 6 nch L=50e-9 W=90e-9

XX1 1 sc2

XX2 1 sc2

XX3 1 sc2

.ENDS

Hierarchy Degradation Example

Type-Mapped

.SUBCKT sc2_v0

M1 1 2 3 nch L=45e-9 W=90e-9

M2 3 4 6 nch L=50e-9 W=90e-9

.ENDS

.SUBCKT sc2_v1

M1 1 2 3 nch L=45e-9 W=90e-9

M2 3 4 6 nch L=52e-9 W=90e-9

.ENDS

.SUBCKT sc 1 2 3 4 5

MM1 1 2 3 nch L=45e-9 W=90e-9

MM2 2 3 4 pch L=45e-9 W=90e-9

MM3 4 5 1 pch L=45e-9 W=90e-9

MM4 5 6 2 pch L=45e-9 W=90e-9

XX1 1 sc2_v1

XX2 1 sc2_v0

XX3 1 sc2_v0

.ENDS

Puneet Gupta ([email protected])

8

Page 9: Parametric Hierarchy Recovery in Layout Extracted Netlists ...Hierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy –Tolerance based clustering: •

NanoCAD Lab

Hierarchical Type-Mapping

B/4

A/7

C/9C/8C/6

C/5

A/1

C/3C/2

B/10

A/13

C/15

C/14

C/12

C/11

B/19

A/22

C/24

C/23

C/21

C/20

A/16

C/18

C/17

B/25

A/28

C/30

C/29

C/27

C/26

B/4

A/7

C/9C/8C/6

C/5

A/1

C/3C/2

B/10

A/13

C/15

C/14

C/12

C/11

B/19

A/22

C/24

C/23

C/21

C/20

A/16

C/18

C/17

B/25

A/28

C/30

C/29

C/27

C/26

Type-Map “B”

B/4

A/7

C/9C/8C/6

C/5

A/1

C/3C/2

B/10

A/13

C/15

C/14

C/12

C/11

B/19

A/22

C/24

C/23

C/21

C/20

A/16

C/18

C/17

B/25

A/28

C/30

C/29

C/27

C/26

This induces clusters in “A”

B/4

A/7

C/9C/8C/6

C/5

A/1

C/3C/2

B/10

A/13

C/15

C/14

C/12

C/11

B/19

A/22

C/24

C/23

C/21

C/20

A/16

C/18

C/17

B/25

A/28

C/30

C/29

C/27

C/26

and in “C”

B/4

A/7

C/9C/8C/6

C/5

A/1

C/3C/2

B/10

A/13

C/15

C/14

C/12

C/11

B/19

A/22

C/24

C/23

C/21

C/20

A/16

C/18

C/17

B/25

A/28

C/30

C/29

C/27

C/26

Type-Map “A”

B/4

A/7

C/9C/8C/6

C/5

A/1

C/3C/2

B/10

A/13

C/15

C/14

C/12

C/11

B/19

A/22

C/24

C/23

C/21

C/20

A/16

C/18

C/17

B/25

A/28

C/30

C/29

C/27

C/26

This induces clusters in “C”

B/4

A/7

C/9C/8C/6

C/5

A/1

C/3C/2

B/10

A/13

C/15

C/14

C/12

C/11

B/19

A/22

C/24

C/23

C/21

C/20

A/16

C/18

C/17

B/25

A/28

C/30

C/29

C/27

C/26

Type-Map “C”: Induced clusters can be merged

Page 10: Parametric Hierarchy Recovery in Layout Extracted Netlists ...Hierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy –Tolerance based clustering: •

NanoCAD Lab

Type-Mapping Steps

• Start at the top of the hierarchy

1. Cluster the clusters that are induced by higher level parent types

2. Merge clusters that meet tolerance constraints

3. Add free instances to existing clusters, if possible• Otherwise, create new clusters

Page 11: Parametric Hierarchy Recovery in Layout Extracted Netlists ...Hierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy –Tolerance based clustering: •

NanoCAD Lab

Hierarchical Type-Mapping

B/4

A/7

C/9C/8C/6

C/5

A/1

C/3C/2

B/10

A/13

C/15

C/14

C/12

C/11

B/19

A/22

C/24

C/23

C/21

C/20

A/16

C/18

C/17

B/25

A/28

C/30

C/29

C/27

C/26

B/4

A/7

C/9C/8C/6

C/5

A/1

C/3C/2

B/10

A/13

C/15

C/14

C/12

C/11

B/19

A/22

C/24

C/23

C/21

C/20

A/16

C/18

C/17

B/25

A/28

C/30

C/29

C/27

C/26

Type-Map “B”

B/4

A/7

C/9C/8C/6

C/5

A/1

C/3C/2

B/10

A/13

C/15

C/14

C/12

C/11

B/19

A/22

C/24

C/23

C/21

C/20

A/16

C/18

C/17

B/25

A/28

C/30

C/29

C/27

C/26

This induces clusters in “A”

B/4

A/7

C/9C/8C/6

C/5

A/1

C/3C/2

B/10

A/13

C/15

C/14

C/12

C/11

B/19

A/22

C/24

C/23

C/21

C/20

A/16

C/18

C/17

B/25

A/28

C/30

C/29

C/27

C/26

and in “C”

B/4

A/7

C/9C/8C/6

C/5

A/1

C/3C/2

B/10

A/13

C/15

C/14

C/12

C/11

B/19

A/22

C/24

C/23

C/21

C/20

A/16

C/18

C/17

B/25

A/28

C/30

C/29

C/27

C/26

Type-Map “A”

B/4

A/7

C/9C/8C/6

C/5

A/1

C/3C/2

B/10

A/13

C/15

C/14

C/12

C/11

B/19

A/22

C/24

C/23

C/21

C/20

A/16

C/18

C/17

B/25

A/28

C/30

C/29

C/27

C/26

This induces clusters in “C”

B/4

A/7

C/9C/8C/6

C/5

A/1

C/3C/2

B/10

A/13

C/15

C/14

C/12

C/11

B/19

A/22

C/24

C/23

C/21

C/20

A/16

C/18

C/17

B/25

A/28

C/30

C/29

C/27

C/26

Type-Map “C”: Induced clusters can be merged

Page 12: Parametric Hierarchy Recovery in Layout Extracted Netlists ...Hierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy –Tolerance based clustering: •

NanoCAD Lab

Applications: Verification

• 5 real Industrial designs• Test0: 17M transistors• Test1: 834K transistors• Test2: 3.3M transistors (4 test1 cores)• Test3: 7.5M transistors (9 test1 cores)• Test4: 2.4M transistors

Page 13: Parametric Hierarchy Recovery in Layout Extracted Netlists ...Hierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy –Tolerance based clustering: •

NanoCAD Lab

0.00%1.25%

2.50%5.00%

10.00%20.00%

30.00%40.00%

100.00%

0.01

0.1

1

10 test0test1test2test3test4

tolerance

LVS

run

time

(nor

mal

ized

)

Applications: Verification

• 5 real Industrial designs (800k – 17M transistors)• Comparison with Calibre: LVS & ERC

– Runtime improvement vs. spread tolerance• Tolerance is a function of maximum parameter deviation• 1.0 – runtime for layout extracted netlist

0.00%2.50%

5.00%10.00%

20.00%30.00%

40.00%100.00%

0

0.2

0.4

0.6

0.8

1

1.2 test0test1test2test3test4

tolerance

ER

C r

untim

e (n

orm

aliz

ed)

LVS ERC

(on max parameter deviation)(on max parameter deviation)

Page 14: Parametric Hierarchy Recovery in Layout Extracted Netlists ...Hierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy –Tolerance based clustering: •

NanoCAD Lab

Lithography effects and Timing Mismatch

– Static analysis flows based on standard cell abstraction

• One cell is 2-100 transistors• Timing/power views stored in pre-characterized “.lib” files

– State of art 45nm logic designs have 10M+ cells and 50M+ transistors Hierarchy preservation essential

What designer sees What silicon shows

1mW, 200MHz 1.3mW, 180MHz

Page 15: Parametric Hierarchy Recovery in Layout Extracted Netlists ...Hierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy –Tolerance based clustering: •

NanoCAD Lab

Application: Timing

• ISCAS `89 designs + Open Cores ALU + 45nm Library• Create type variants of standard cells

– Post-lithography extracted netlist– Variations in L & W, tolerance a function of the nominal values– Map layout extracted cells onto standard cells

• E.g. NAND_X1_VARIANT1, NAND_X1_VARIANT2, etc.

0.00% 10.00% 20.00% 30.00% 40.00%0.00%

2.00%

4.00%

6.00%

8.00% alus35932s38417s38584

Tolerance (in w & l)

Del

ay e

rror

(in

%)

(on nominal w & l)

*estimated using Synopsys NanoTime

Page 16: Parametric Hierarchy Recovery in Layout Extracted Netlists ...Hierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy –Tolerance based clustering: •

NanoCAD Lab

Application: Timing + Slack

0.00% 10.00% 20.00% 30.00% 40.00%0.1

1

10 alus35932s38417s38584

Tolerance (in w & l)

Libr

ary

cell

crea

tion

time

(in

hour

s)

(on nominal w & l)

*estimated using Synopsys NanoTime

Page 17: Parametric Hierarchy Recovery in Layout Extracted Netlists ...Hierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy –Tolerance based clustering: •

NanoCAD Lab

Summary

• Created a method to recover hierarchy in post-layout designs– Creates type-variants of the original cells / blocks– Uses hierarchical type-mapping methods to ensure

the mapping is correct across all levels• With no parametric error

– 16% - 96% runtime reduction for LVS

– 4% - 49% runtime reduction for ERC• Tractable method for post-layout timing• Future work will look at clustering parasitic information

Page 18: Parametric Hierarchy Recovery in Layout Extracted Netlists ...Hierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy –Tolerance based clustering: •

NanoCAD Lab

Extra Slides

Page 19: Parametric Hierarchy Recovery in Layout Extracted Netlists ...Hierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy –Tolerance based clustering: •

NanoCAD Lab

Motivation: Loss of hierarchy

• Pre-layout– Lots of hierarchy:

• Blocks, standard cells, modules

• Post-layout– Hierarchy flattened due to layout dependent

parameters• Stress, annealing, etch, lithographic variability

– Netlists 100x-200x larger

• Verification and analysis tools suffer from the lack of hierarchy:– Can the hierarchy be recovered?

Page 20: Parametric Hierarchy Recovery in Layout Extracted Netlists ...Hierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy –Tolerance based clustering: •

NanoCAD Lab

Hierarchical Type-Mapping

B/4

A/7

C/9C/8C/6

C/5

A/1

C/3C/2

B/10

A/13

C/15

C/14

C/12

C/11

B/19

A/22

C/24

C/23

C/21

C/20

A/16

C/18

C/17

B/25

A/28

C/30

C/29

C/27

C/26

Type-Map “B”

Page 21: Parametric Hierarchy Recovery in Layout Extracted Netlists ...Hierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy –Tolerance based clustering: •

NanoCAD Lab

Hierarchical Type-Mapping

B/4

A/7

C/9C/8C/6

C/5

A/1

C/3C/2

B/10

A/13

C/15

C/14

C/12

C/11

B/19

A/22

C/24

C/23

C/21

C/20

A/16

C/18

C/17

B/25

A/28

C/30

C/29

C/27

C/26

This induces clusters in “A”

Page 22: Parametric Hierarchy Recovery in Layout Extracted Netlists ...Hierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy –Tolerance based clustering: •

NanoCAD Lab

Hierarchical Type-Mapping

B/4

A/7

C/9C/8C/6

C/5

A/1

C/3C/2

B/10

A/13

C/15

C/14

C/12

C/11

B/19

A/22

C/24

C/23

C/21

C/20

A/16

C/18

C/17

B/25

A/28

C/30

C/29

C/27

C/26

and in “C”

Page 23: Parametric Hierarchy Recovery in Layout Extracted Netlists ...Hierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy –Tolerance based clustering: •

NanoCAD Lab

Hierarchical Type-Mapping

B/4

A/7

C/9C/8C/6

C/5

A/1

C/3C/2

B/10

A/13

C/15

C/14

C/12

C/11

B/19

A/22

C/24

C/23

C/21

C/20

A/16

C/18

C/17

B/25

A/28

C/30

C/29

C/27

C/26

Type-Map “A”

Page 24: Parametric Hierarchy Recovery in Layout Extracted Netlists ...Hierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy –Tolerance based clustering: •

NanoCAD Lab

Hierarchical Type-Mapping

B/4

A/7

C/9C/8C/6

C/5

A/1

C/3C/2

B/10

A/13

C/15

C/14

C/12

C/11

B/19

A/22

C/24

C/23

C/21

C/20

A/16

C/18

C/17

B/25

A/28

C/30

C/29

C/27

C/26

This induces clusters in “C”

Page 25: Parametric Hierarchy Recovery in Layout Extracted Netlists ...Hierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy –Tolerance based clustering: •

NanoCAD Lab

Hierarchical Type-Mapping

B/4

A/7

C/9C/8C/6

C/5

A/1

C/3C/2

B/10

A/13

C/15

C/14

C/12

C/11

B/19

A/22

C/24

C/23

C/21

C/20

A/16

C/18

C/17

B/25

A/28

C/30

C/29

C/27

C/26

Type-Map “C”: Induced clusters can be merged