37
Lecture 6: Design Flow Lecture 6: Design Flow CSCE 5730 Digital CMOS VLSI Design Instructor: Saraju P. Mohanty, Ph. D. NOTE: The figures, text etc included in slides are borrowed from various books websites authors pages and other from various books, websites, authors pages, and other sources for academic purpose only. The instructor does not claim any originality . CSCE 5730: Digital CMOS VLSI Design 1

Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

Lecture 6: Design FlowLecture 6: Design Flow

CSCE 5730Digital CMOS VLSI Design

Instructor: Saraju P. Mohanty, Ph. D.

NOTE: The figures, text etc included in slides are borrowedfrom various books websites authors pages and otherfrom various books, websites, authors pages, and othersources for academic purpose only. The instructor doesnot claim any originality.

CSCE 5730: Digital CMOS VLSI Design 1

y g y

Page 2: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

Lecture Outline

Hierarchical Design• Hierarchical Design• Logic Design• Circuit Design• Physical DesignPhysical Design

CSCE 5730: Digital CMOS VLSI Design 2

Page 3: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

Hierarchical Design: Design Partitioning• How to design modern System-on-Chip (SOC)?

Many millions (soon billions!) of transistors– Many millions (soon billions!) of transistors– Tens to hundreds of engineers

• Approaches for larger system design:– Structured Design: Uses principles of Hierarchy,

Regularity, Modularity, and Locality– Design Partitioning: Design is partitioned to five

interrelated tasks, such as architecture design,microarchitecture design logic design circuit designmicroarchitecture design, logic design, circuit designand physical design.

CSCE 5730: Digital CMOS VLSI Design 3

Page 4: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

Design Partitioning : Structured Design

• Hierarchy: Divide and Conquer– Recursively system into modules

• Regularity– Reuse modules wherever possible– Ex: Standard cell library

• Modularity: well-formed interfaces– Allows modules to be treated as black boxesAllows modules to be treated as black boxes

• LocalityPhysical and temporal– Physical and temporal

CSCE 5730: Digital CMOS VLSI Design 4

Page 5: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

Hierarchical Design: Flow

mips

controller alucontrol datapath

standardcell library

bitslice zipper

alu flopinv4x ramslice

and2

mux2

mux4fulladder

nand2nor2

or2

inv mux2nand2nor2 inv

tri

CSCE 5730: Digital CMOS VLSI Design 5

Page 6: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

Design Partitioning : Y-Chart• Architecture: User’s perspective, what does it do?

Instruction set registers– Instruction set, registers– MIPS, x86, Alpha, PIC, ARM, …

• Microarchitecture:• Microarchitecture:– Single cycle, multicycle, pipelined, superscalar?

• Logic: how are functional blocks constructed• Logic: how are functional blocks constructed– Ripple carry, carry look-ahead, carry select adders

• Circuit: how are transistors used• Circuit: how are transistors used– Complementary CMOS, pass transistors, domino

• Physical: chip layout• Physical: chip layout– Datapaths, memories, random logic

CSCE 5730: Digital CMOS VLSI Design 6

Page 7: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

Design Partitioning : Y-Chart

• Explains each domainand transformationamong domains.

• Design processDesign processproceeds from higher tolower levels ofabstractions i.e. fromouter to inner rings.

CSCE 5730: Digital CMOS VLSI Design 7

Page 8: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

Hardware Description Language (HDL)• Hardware Description Languages

Widely used in logic design– Widely used in logic design– Verilog

Very High Speed Integrated Circuit HDL (VHDL)– Very-High-Speed-Integrated-Circuit HDL (VHDL)

• Describe hardware using code– Document logic functions– Simulate logic before building– Synthesize code into gates and layout

• Requires a library of standard cells

CSCE 5730: Digital CMOS VLSI Design 8

Page 9: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

HDLs: Verilog Example

module fulladder(input a, b, c, output s, cout);

sum s1(a, b, c, s);a b c

( , , , );carry c1(a, b, c, cout);endmodule

a b

ccout carrysum

endmodulemodule carry (input a, b, c,

t t t)

s

scout

fulladder

output cout)assign cout

= (a&b) | (a&c) | (b&c);endmoduleendmodule

CSCE 5730: Digital CMOS VLSI Design 9

Page 10: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

Circuit Design• How should logic be implemented?

NANDs and NORs vs ANDs and ORs?– NANDs and NORs vs. ANDs and ORs?– Fan-in and fan-out?

How wide should transistors be?– How wide should transistors be?• These choices affect speed, area, power• Logic synthesis makes these choices for you

– Good enough for many applications– Hand-crafted circuits are still better

CSCE 5730: Digital CMOS VLSI Design 10

Page 11: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

Carry Logic Example: Logic Level

• assign cout = (a&b) | (a&c) | (b&c);

a xg1

bg2 g4

ac couty

g3bc

zg3

c

Transistors? Gate Delays?

CSCE 5730: Digital CMOS VLSI Design 11

Page 12: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

Carry Logic Example: Transistor Level

• assign cout = (a&b) | (a&c) | (b&c);

a b b p4p2p1i4

c acoutcn p6p5

p

p3

ppi3 i4

c acout

n3 n5 n6i1 i2a b bn1 n2 n4

i2

Transistors? Gate Delays?

CSCE 5730: Digital CMOS VLSI Design 12

Page 13: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

Carry Logic Example: Gate-level Netlist

module carrymodule carry(input a, b, c, output cout)

g1

wire x, y, z;and g1(x a b);

ab

xg1

g2 g4and g1(x, a, b);and g2(y, a, c);and g3(z b c);

ac couty

g

g3

g

and g3(z, b, c);or g4(cout, x, y, z);

bc

z

endmodule

CSCE 5730: Digital CMOS VLSI Design 13

Page 14: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

Carry Logic Example: Transistor-Level Netlist

module carry (input a, b, c, output cout)

b b 421

( p , , , p )wire i1, i2, i3, i4, cn;tranif1 n1(i1, 0, a);tranif1 n2(i1 0 b);

c

a b

a

b

coutcn p6p5

p4

p3

p2p1i3 i4

tranif1 n2(i1, 0, b);tranif1 n3(cn, i1, c);tranif1 n4(i2, 0, b);tranif1 n5(cn i2 a);

a b

c

b

acout

n1 n2

n3

n4

n5 n6i1 i2

tranif1 n5(cn, i2, a);tranif0 p1(i3, 1, a);tranif0 p2(i3, 1, b);t if0 3( i3 ) a b bn1 n2 n4tranif0 p3(cn, i3, c);tranif0 p4(i4, 1, b);tranif0 p5(cn, i4, a);tranif1 n6(cout, 0, cn);tranif0 p6(cout, 1, cn);

endmodule

CSCE 5730: Digital CMOS VLSI Design 14

endmodule

Page 15: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

Carry Logic Example: SPICE Netlist.SUBCKT CARRY A B C COUT VDD GNDMN1 I1 A GND GND NMOS W=1U L=0.18U AD=0.3P AS=0.5PMN2 I1 B GND GND NMOS W=1U L=0.18U AD=0.3P AS=0.5PMN2 I1 B GND GND NMOS W 1U L 0.18U AD 0.3P AS 0.5PMN3 CN C I1 GND NMOS W=1U L=0.18U AD=0.5P AS=0.5PMN4 I2 B GND GND NMOS W=1U L=0.18U AD=0.15P AS=0.5PMN5 CN A I2 GND NMOS W=1U L=0.18U AD=0.5P AS=0.15PMP1 I3 A VDD VDD PMOS W 2U L 0 18U AD 0 6P AS 1 PMP1 I3 A VDD VDD PMOS W=2U L=0.18U AD=0.6P AS=1 PMP2 I3 B VDD VDD PMOS W=2U L=0.18U AD=0.6P AS=1PMP3 CN C I3 VDD PMOS W=2U L=0.18U AD=1P AS=1PMP4 I4 B VDD VDD PMOS W=2U L=0 18U AD=0 3P AS=1PMP4 I4 B VDD VDD PMOS W 2U L 0.18U AD 0.3P AS 1PMP5 CN A I4 VDD PMOS W=2U L=0.18U AD=1P AS=0.3PMN6 COUT CN GND GND NMOS W=2U L=0.18U AD=1P AS=1PMP6 COUT CN VDD VDD PMOS W=4U L=0.18U AD=2P AS=2PCI1 I1 GND 2FFCI1 I1 GND 2FFCI3 I3 GND 3FFCA A GND 4FFCB B GND 4FFCB B GND 4FFCC C GND 2FFCCN CN GND 4FFCCOUT COUT GND 2FF.ENDS

CSCE 5730: Digital CMOS VLSI Design 15

Page 16: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

Physical Design• Floorplan : First step. Determines if design will fit

in are budgetin are budget.

• Standard cells : Layout is often generated usingautomatic place and route.

• Slice planning : Divide to slices. Slice plan makesS ce p a g de to s ces S ce p a a esit is easy to calculate wire length, estimate area,and evaluate wire congestion.a d e a ua e e co ges o

CSCE 5730: Digital CMOS VLSI Design 16

Page 17: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

Layout Design Rules

• Interface between designer and process engineerG id li f t ti k• Guidelines for constructing process masks

• Unit dimension: Minimum line widthl bl d i l l bd t– scalable design rules: lambda parameter

– absolute dimensions (micron rules)

CSCE 5730: Digital CMOS VLSI Design 17

Page 18: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

Layout Design Rules• Chips are specified with set of masks

Minimum dimensions of masks determine• Minimum dimensions of masks determinetransistor size (and hence speed, cost, andpower)power)

• Feature size f = distance between source anddrain

– Set by minimum width of polysilicon• Normalize for feature size when describing design

rules• Express rules in terms of = f/2

– e.g. = 60 nm in 120 nm process

CSCE 5730: Digital CMOS VLSI Design 18

e.g. 60 nm in 120 nm process

Page 19: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

Layout Design Rules : Simplified Form• Metal and diffusion have minimum width and

spacing of 4.spacing of 4.• Contacts are 2 x 2 and surrounded by 1 layer.• Polysilicon width is 2• Polysilicon width is 2.• Polysilicon overlaps diffusion by 2 or 1

depending on situationdepending on situation.• Polysilicon and contacts have spacing 3.

n well surrounds PMOS transistors by 6 and• n-well surrounds PMOS transistors by 6 andNMOS transistors 6.

NOTE: Do not have to remember, CAD softwares handle it automatically onceDRC are set depending on the foundry chosen.

CSCE 5730: Digital CMOS VLSI Design 19

Page 20: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

Layout Design Rules : Simplified Form

• Conservative rules to get you started

CSCE 5730: Digital CMOS VLSI Design 20

Page 21: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

Logic Gate Layout : Inverter

VDDDD

A Y

1

2

1 2

A Y3

4

GND 34

CSCE 5730: Digital CMOS VLSI Design 21

Page 22: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

CMOS Process Layers

L C l R t tiLayer

Well (p,n)

Color Representation

YellowActive Area (n+,p+) GreenSelect (p+,n+) GreenPolysilicon

Metal1

Metal2

RedBlue

MagentaMetal2

Contact To Poly

Contact To Diffusion

MagentaBlack

BlackContact To Diffusion

ViaBlackBlack

CSCE 5730: Digital CMOS VLSI Design 22

Page 23: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

Layers in 0.25 m CMOS process

CSCE 5730: Digital CMOS VLSI Design 23

Page 24: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

Intra-Layer Design Rules

Different PotentialSame Potential

90

Well Polysilicon2

Same Potential

or

103

2

M l1 3

6

Active

3

Metal1 3

3

Contactor Via 2Hole

Metal2 4

32

Select2

Hole

Metal2

3

CSCE 5730: Digital CMOS VLSI Design 24

Page 25: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

Transistor Layouty

1Tr

ansi

stor

3

Tr

23Polysilicon

Well (n or p)

5Active Area

Well (n or p)

(n+ or p+)

CSCE 5730: Digital CMOS VLSI Design 25

Page 26: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

Vias and Contacts

2

1Via

1

2

4

1Metal to

Poly ContactMetal toA i C

5

Active Contact 3 2

22

CSCE 5730: Digital CMOS VLSI Design 26

Page 27: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

Select Layery2

Select3

1

23

1

3 3

2 55

WellSubstrate

CSCE 5730: Digital CMOS VLSI Design 27

Page 28: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

CMOS Inverter Layout

InGND VDD

A A’

Out

(a) Layout

A A’n

p-substrate FieldOxidep+n+

(b) Cross Section along A A’

CSCE 5730: Digital CMOS VLSI Design 28

(b) Cross-Section along A-A

Page 29: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

Layout Editor

CSCE 5730: Digital CMOS VLSI Design 29

Page 30: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

Design Rule Checker

poly not fet to all diff minimum spacing = 0.14 um.p y_ _ _ p g

CSCE 5730: Digital CMOS VLSI Design 30

Page 31: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

Sticks Diagram

3VDD

In Out• Dimensionless layout entities• Only topology is important

1• Only topology is important• Final layout generated by “compaction” program

GND

co pact o p og a

Stick diagram of inverter

CSCE 5730: Digital CMOS VLSI Design 31

g

Page 32: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

Logic Gate Layout• Layout can be very time consuming

Design gates to fit together nicely– Design gates to fit together nicely– Build a library of standard cells

St d d ll d i th d l• Standard cell design methodology– VDD and GND should abut (standard height)– Adjacent gates should satisfy design rules– nMOS at bottom and pMOS at top– All gates include well and substrate contacts

CSCE 5730: Digital CMOS VLSI Design 32

Page 33: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

MIPS: Block Diagram

PCM0

Readregister 1

Instruction[25 : 21]

IorD

MemRead

MemWrite

MemtoReg

PCWriteCond

PCWrite

IRWrite[3:0]

ALUOp

ALUSrcB

ALUSrcA

RegDst

PCSource

RegWriteControl

Outputs

Op[5 : 0]

Instruction[31:26]

Mux

0

2

JumpaddressInstruction [5 : 0] 6 8

Shiftleft 2

1

M0

Add

PCEn

memread

memwrite

ux1

RegistersWriteregister

Writedata

Readdata 1

Readdata 2

register 1

Readregister 2

Instruction[15 : 11]

Mux

0

1

Mux

0

1

1

Instruction[7 : 0]

[25 : 21]

Instruction[20 : 16]

Instruction[15 : 0]

Instructionregister

ALUcontrol

ALUresult

ALUZero

Memorydata

register

A

B

Instruction [5 : 0]

1 Mux

0

32

Mux

1ALUOut

MemoryMemData

Writedata

Address

ALUControl

controlleralucontrol

o z p re irm iopaa

aluop[1:0]

re fu a

ph1

p[5:0]

ero

cen

egwrite

rwrite[3:0]

mem

toreg

ordcsource[1:0]

lusrcb[1:0]

lusrca

egdst

unct[5:0]

lucontrol[2:0]

datapath

ph1

ph2

reset

datapath

memdata[7:0]

writedata[7:0]

adr[7:0]

CSCE 5730: Digital CMOS VLSI Design 33

Page 34: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

MIPS: Floorplan10 I/O pads

mips(4.6 M2)

t l

alucontrol200 x 100

(20 k2)

zipper 2700 x 250

1690

wiring channel: 30 tracks = 240

control1500 x 400

(0.6 M2)

3500

5000

10 I/O

10 I/O

datapath2700 x 1050

(2.8 M2)

0

bitslice 2700 x 100

0

0 pads

pads

2700

3500

000

10 I/O pads

5000

CSCE 5730: Digital CMOS VLSI Design 34

Page 35: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

MIPS : Layout

CSCE 5730: Digital CMOS VLSI Design 35

Page 36: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

Area Estimation

• Need area estimates to make floorplanC t th bl k l d d i d– Compare to another block you already designed

– Or estimate from transistor countsB d f l i i k– Budget room for large wiring tracks

– Your mileage may vary!

CSCE 5730: Digital CMOS VLSI Design 36

Page 37: Lecture 6: Design FlowLecture 6: Design Flow · – Widely used in logic design – Verilog – Very-High-Speed-Integrated-Circuit HDL (VHDL) • Describe hardware using code –

Design Verification• Fabrication is slow & expensive

– MOSIS 0 6m: $1000 3 months SpecificationMOSIS 0.6m: $1000, 3 months– State of art: $1M, 1 month

• Debugging chips is very hard ArchitectureDesign

= Function

Debugging chips is very hard– Limited visibility into operation

• Prove the design before building!

Design

LogicDesign

= Function

Prove the design before building!– Logic simulation– Ckt. simulation / formal verification

g

CircuitDesign

= Function

Ckt. simulation / formal verification– Layout vs. schematic comparison– Design & electrical rule checks

PhysicalDesign

=FunctionTimingPower

g• Verification is > 50% of effort on most chips!

CSCE 5730: Digital CMOS VLSI Design 37