parametric hierarchy recovery in layout extracted netlistshierarchy recovery using type-mapping •...

16
Parametric Hierarchy Recovery in Layout Extracted Netlists John Lee, UCLA Puneet Gupta, UCLA Fedor G. Pikus, Google (Formerly at Mentor) This work was supported in part by the NSF Award 811832 and by the SRC Task 1816.

Upload: others

Post on 29-Aug-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Parametric Hierarchy Recovery in Layout Extracted NetlistsHierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy – Tolerance based mapping: • Map device

Parametric Hierarchy Recovery in

Layout Extracted Netlists

John Lee, UCLA

Puneet Gupta, UCLA

Fedor G. Pikus, Google (Formerly at

Mentor)

This work was supported in part by the NSF Award 811832 and by the SRC Task 1816.

Page 2: Parametric Hierarchy Recovery in Layout Extracted NetlistsHierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy – Tolerance based mapping: • Map device

NanoCAD Lab

Hierarchy Degradation

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

• Added to each transistor – Breaks the hierarchy

• 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

2

Page 3: Parametric Hierarchy Recovery in Layout Extracted NetlistsHierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy – Tolerance based mapping: • Map device

NanoCAD Lab

Hierarchy Degradation

Instance 1

Instance 2 3

Page 4: Parametric Hierarchy Recovery in Layout Extracted NetlistsHierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy – Tolerance based mapping: • Map device

NanoCAD Lab

Redundant layout dependent contexts

Context dependence may be redundant

•Examples: – Multicore designs

– DSP designs

CPU CPU CPU

CPU CPU CPU

CPU CPU CPU

+ + +

+ + +

4

Page 5: Parametric Hierarchy Recovery in Layout Extracted NetlistsHierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy – Tolerance based mapping: • Map device

NanoCAD Lab

Hierarchy recovery using Type-Mapping

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

• Map device parameters together 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

5

Page 6: Parametric Hierarchy Recovery in Layout Extracted NetlistsHierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy – Tolerance based mapping: • Map device

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

6

Page 7: Parametric Hierarchy Recovery in Layout Extracted NetlistsHierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy – Tolerance based mapping: • Map device

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

7

Page 8: Parametric Hierarchy Recovery in Layout Extracted NetlistsHierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy – Tolerance based mapping: • Map device

NanoCAD Lab

Type-Mapping Steps

• Start at the top of the hierarchy 1. Map the types that are induced by higher level parent types

2. Merge types that meet tolerance constraints

3. Add free instances to existing types, if possible

• Otherwise, create new types

8

Page 9: Parametric Hierarchy Recovery in Layout Extracted NetlistsHierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy – Tolerance based mapping: • Map device

NanoCAD Lab

Hierarchical Type-Mapping

B/4

A/7

C/9 C/8 C/6

C/5

A/1

C/3 C/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/9 C/8 C/6

C/5

A/1

C/3 C/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/9 C/8 C/6

C/5

A/1

C/3 C/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 types in “A”

B/4

A/7

C/9 C/8 C/6

C/5

A/1

C/3 C/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/9 C/8 C/6

C/5

A/1

C/3 C/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/9 C/8 C/6

C/5

A/1

C/3 C/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 types in “C”

B/4

A/7

C/9 C/8 C/6

C/5

A/1

C/3 C/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 types can be merged

Page 10: Parametric Hierarchy Recovery in Layout Extracted NetlistsHierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy – Tolerance based mapping: • Map device

NanoCAD Lab

Hierarchical Type-Mapping

Page 11: Parametric Hierarchy Recovery in Layout Extracted NetlistsHierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy – Tolerance based mapping: • Map device

NanoCAD Lab

Applications: Netlist Size

• 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

0.00%1.25%

2.50%5.00%

10.00%20.00%

30.00%40.00%

100.00%

0.000

0.001

0.010

0.100

1.000 test0

test1

test2

test3

test4

tolerance

transis

tor

count (n

orm

aliz

ed)

0.00%1.25%

2.50%5.00%

10.00%20.00%

30.00%40.00%

100.00%

1

10

100

1000 test0

test1

test2

test3

test4

tolerance

subcir

cuit c

ount (n

orm

aliz

ed)

*Tolerance is with respect t to max parameter deviation

*Subcircuit and transistor counts are normalized relative to the “pushed” layout extracted by the commercial tool

Page 12: Parametric Hierarchy Recovery in Layout Extracted NetlistsHierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy – Tolerance based mapping: • Map device

NanoCAD Lab

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%1.25%

2.50%5.00%

10.00%20.00%

30.00%40.00%

100.00%

0.01

0.1

1

10 test0

test1

test2

test3

test4

tolerance

LV

S r

untim

e (

norm

aliz

ed)

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 test0

test1

test2

test3

test4

tolerance

ER

C r

untim

e (

norm

aliz

ed)

LVS ERC

*Tolerance is with respect t to max parameter deviation

* LVS and ERC performance are normalized relative to the “pushed” layout extracted by the commercial tool

Page 13: Parametric Hierarchy Recovery in Layout Extracted NetlistsHierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy – Tolerance based mapping: • Map device

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

13

Page 14: Parametric Hierarchy Recovery in Layout Extracted NetlistsHierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy – Tolerance based mapping: • Map device

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 using adapted

kmeans++

• 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% alu

s35932

s38417

s38584

Tolerance (in w & l)

Dela

y e

rror

(in %

)

(tolerance is with respect to nominal w & l) *estimated using Synopsys NanoTime

0.00% 10.00% 20.00% 30.00% 40.00%0.1

1

10

100 alu

s35932

s38417

s38584

Tolerance (in w & l)

Lib

rary

cell

cre

ation

tim

e (

in h

ours

)

14

Page 15: Parametric Hierarchy Recovery in Layout Extracted NetlistsHierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy – Tolerance based mapping: • Map device

NanoCAD Lab

Application: Timing + Slack

• Type-variant characterization too slow – 11 to 97 hrs

• Use slack to adjust tolerances: – Clock period T and gate with slack Y

• Delay can increase by Y/T before path is critical

• Increase the tolerance by Y/(αT) to reduce the library size

– α >1 used to account for modeling errors

0.00% 10.00% 20.00% 30.00% 40.00%0.1

1

10 alu

s35932

s38417

s38584

Tolerance (in w & l)

Lib

rary

cell

cre

ation

tim

e (

in h

ours

)

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

2.00%

4.00%

6.00%

8.00% alu

s35932

s38417

s38584

Tolerance (in w & l)

Dela

y e

rror

(in %

)

(tolerance is with respect to nominal w & l) *estimated using Synopsys NanoTime

Page 16: Parametric Hierarchy Recovery in Layout Extracted NetlistsHierarchy recovery using Type-Mapping • Create type-variants to recover hierarchy – Tolerance based mapping: • Map device

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 type-mapping parasitic

information and consider application specific distance

metrics – Timing distance, power distance

16