22
1 VLSI CAD Flow: Logic Synthesis, 6.375 Lecture 13 by Ajay Joshi (Slides by S. Devadas)

VLSI CAD Flow: Logic Synthesis, 6.375 Lecture 13

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: VLSI CAD Flow: Logic Synthesis, 6.375 Lecture 13

1

VLSI CAD Flow: Logic Synthesis,

6.375 Lecture 13

by Ajay Joshi(Slides by S. Devadas)

Page 2: VLSI CAD Flow: Logic Synthesis, 6.375 Lecture 13

2

RTL Design Flow

RTLSynthesis

HDL

netlist

logicoptimization

netlist

Library/modulegenerators

physicaldesign

layout

manualdesign

a

b

s

q0

1

d

clk

a

b

s

q0

1

d

clk

Page 3: VLSI CAD Flow: Logic Synthesis, 6.375 Lecture 13

3

Logic optimization flow

LOGIC EQUATIONS

TECHNOLOGY-INDEPENDENTOPTIMIZATION

FactoringCommonality Extraction

LIBRARYTECH-DEPENDENT OPTIMIZATION(MAPPING, TIMING)

OPTIMIZED LOGIC NETWORK

Page 4: VLSI CAD Flow: Logic Synthesis, 6.375 Lecture 13

4

Logic optimization flow

LOGIC EQUATIONS

TECHNOLOGY-INDEPENDENTOPTIMIZATION

FactoringCommonality Extraction

LIBRARYTECH-DEPENDENT OPTIMIZATION(MAPPING, TIMING)

OPTIMIZED LOGIC NETWORK

Page 5: VLSI CAD Flow: Logic Synthesis, 6.375 Lecture 13

5

Why logic optimization?

Transistor count redution AREACircuit count redution POWERGate count (fanout) reduction DELAY

(Speed)

Area reduction, power reduction and delay reduction improves design

Page 6: VLSI CAD Flow: Logic Synthesis, 6.375 Lecture 13

6

Boolean Optimizations

Find common expressions

Extract and substitute common expression

F =f1 = AB + AC + AD + AE + A BC D E

f2 = AB+ AC + AD + AF + A BC D F⎧⎨⎩

F =f1 = A B+ C + D + E( ) + ABC DE

f2 = A B+ C + D + F( ) + ABC DF⎧⎨⎩

G =g1 = B + C + Df1 = A g1 + E( ) + A E g1

f2 = A g1 + F( ) + A F g1

⎧⎨

⎩⎪

Involves:Finding common subexpressions.Substituting one expression into another.Factoring single functions.

Page 7: VLSI CAD Flow: Logic Synthesis, 6.375 Lecture 13

7

Algebraic Optimizations

• Algebraic techniques view equations as polynomials

• Rules of polynomial algebra are used

• For e.g. in algebraic substitution (or division) if a function f = f(a, b, c) is divided by g = g(a, b), aand b will not appear in f / g

• Boolean algebra rules are not applied

Page 8: VLSI CAD Flow: Logic Synthesis, 6.375 Lecture 13

8

Logic optimization flow

LOGIC EQUATIONS

TECHNOLOGY-INDEPENDENTOPTIMIZATION

FactoringCommonality Extraction

LIBRARYTECH-DEPENDENT OPTIMIZATION(MAPPING, TIMING)

OPTIMIZED LOGIC NETWORK

Page 9: VLSI CAD Flow: Logic Synthesis, 6.375 Lecture 13

9

“Closed Book” Technologies

A standard cell technology or library is typically restricted to a few tens of gatese.g., MSU library: 31 cells

Gates may be NAND, NOR, NOT, AOIs.

A

A

A

C

A

B

AB+C

B

C

A

Page 10: VLSI CAD Flow: Logic Synthesis, 6.375 Lecture 13

10

Standard cell library

• For each cell• Functional information• Timing information

• Input slew• Intrinsic delay• Output capacitance

• Physical footprint• Power characteristics

Page 11: VLSI CAD Flow: Logic Synthesis, 6.375 Lecture 13

11

Sample Library

INVERTER 2

NAND2 3

NAND3 4

NAND4 5

Page 12: VLSI CAD Flow: Logic Synthesis, 6.375 Lecture 13

12

Sample Library - 2

AOI21 4

AOI22 5

Page 13: VLSI CAD Flow: Logic Synthesis, 6.375 Lecture 13

13

Mapping via DAG* Covering

• Represent network in canonical form⇒ subject DAG

• Represent each library gate with canonical forms for the logic function⇒ primitive DAGs

• Each primitive DAG has a cost• Goal: Find a minimum cost covering of

the subject DAG by the primitive DAGs

* Directed Acyclic Graph

Page 14: VLSI CAD Flow: Logic Synthesis, 6.375 Lecture 13

14

Trivial CoveringReduce netlist into ND2 gates → subject DAG

7 NAND2 = 215 INV = 10

31 (area cost)

Page 15: VLSI CAD Flow: Logic Synthesis, 6.375 Lecture 13

15

Covering #1

2 INV = 42 NAND2 = 61 NAND3 = 41 NAND4 = 5

19 (area cost)

Page 16: VLSI CAD Flow: Logic Synthesis, 6.375 Lecture 13

16

Covering #2

1 INV = 21 NAND2 = 32 NAND3 = 81 AOI21 = 4

17 (area cost)

Page 17: VLSI CAD Flow: Logic Synthesis, 6.375 Lecture 13

17

Multiple fan-out

Page 18: VLSI CAD Flow: Logic Synthesis, 6.375 Lecture 13

18

Partitioning a Graph

• Partition input netlist into a forest of trees• Solve each tree optimally• Stitch trees back together

Page 19: VLSI CAD Flow: Logic Synthesis, 6.375 Lecture 13

19

Optimum Tree Covering

NAND23

AOI214 + 3 = 7

INV11 + 2 = 13

NAND22 + 6 + 3 = 11

NAND23 + 3 = 6

NAND23

INV2

Page 20: VLSI CAD Flow: Logic Synthesis, 6.375 Lecture 13

20

• Partition DAG into a forest of trees• Normalize the netlist• Optimally cover each tree

• Generate all candidate matches• Find optimal match using dynamic programming

DAG Covering steps

Page 21: VLSI CAD Flow: Logic Synthesis, 6.375 Lecture 13

21

Summary

• Logic optimization is an important step in the design flow

• Two-step flow• Technology independent optimization• Technology dependent optimization

• Advantages of logic optimization• Reduce area• Reduce power• Reduce delay

Page 22: VLSI CAD Flow: Logic Synthesis, 6.375 Lecture 13

22

For more details…

http://csg.csail.mit.edu/u/d/devadas/public_html/6.373/lectures/

Refer to Srinivas Devadas’ slides for 6.373