Lambda Rule

9
L12 CMOS Layout 1 6.371 –Fall 2002 10/16/02 CMOS Layout Measure twice, f ab once L12 CMOS Layout 2 6.371 –Fall 2002 10/16/02 Lambda-based design rules One lambda = one half of the “min imum” mask dimension, ty pically the length of a transistor channel. Usually all edges must be “on grid”, e. g., in the MOSIS scalable rules, all edges must be on a lambda grid. 1 2 3 2 1 2 2 3 2x2 3 3 2 1 2x2 3 poly metal1 diffusion (active) contact More info at: http://www.mosis.org/Technical/Designrules/scmos/scmos-main.html L12 – CMOS Layout 3 6.371 –Fall 2002 10/16/02 Sample “Lambda” Layout λ A Y vss vdd L12 CMOS Layout 4 6.371 –Fall 2002 10/16/02 Sample Sea-of-Gates Layout vss nfets pfets vdd pfets nfets vss Column showing all possible contact locations

Transcript of Lambda Rule

Page 1: Lambda Rule

7/29/2019 Lambda Rule

http://slidepdf.com/reader/full/lambda-rule 1/8

L12 – CMOS Layout 16.371 –Fall 2002 10/16/02

CMOS Layout

Measure twice, fab once

L12 – CMOS Layout 26.371 –Fall 2002 10/16/02

Lambda-based design rulesOne lambda = one half of the “minimum” mask dimension, typically the lengthof a transistor channel. Usually all edges must be “on grid”, e.g., in theMOSIS scalable rules, all edges must be on a lambda grid.

12

3

2

1

2

2

3

2x2

33 21

2x2 3poly

metal1

diffusion (active)

contact

More info at: http://www.mosis.org/Technical/Designrules/scmos/scmos-main.html

L12 – CMOS Layout 36.371 –Fall 2002 10/16/02

Sample“Lambda”Layout

λ

A Y 

vss

vdd

L12 – CMOS Layout 46.371 –Fall 2002 10/16/02

Sample Sea-of-Gates Layout

vss

nfets

pfets

vdd

pfets

nfets

vss

Column showing allpossible contactlocations

Page 2: Lambda Rule

7/29/2019 Lambda Rule

http://slidepdf.com/reader/full/lambda-rule 2/8

Page 3: Lambda Rule

7/29/2019 Lambda Rule

http://slidepdf.com/reader/full/lambda-rule 3/8

L12 – CMOS Layout 96.371 –Fall 2002 10/16/02

Optimizing connections

Which is the better gate layout? considering node capacitances?

considering “composibility” with neighboring gates?

L12 – CMOS Layout 106.371 –Fall 2002 10/16/02

Big vs. Parallel

area = 928 area = 1008 area = 1080

can’t make gates toolong because of polyresistance! Eventuallyreally large transistorshave to broken intosmaller transistors inwired in parallel.

Which is the better gate layout?

considering node capacitances?

considering “composibility” with neighboring gates?

L12 – CMOS Layout 116.371 –Fall 2002 10/16/02

Eliminating GapsA B C D E ABC DE

D

A

E

B

C

B C

D

E

A

D E

B

C

B C

D

E

A

A

L12 – CMOS Layout 126.371 –Fall 2002 10/16/02

Replicating Cells

What does this cell do?

What if we want to replicate this cell

vertically, i.e., make a stack of thecells, to process many bits inparallel?

what nodes are sharedamong the cells?

what nodes aren’t shared?

how should we arrange thecells vertically?

Page 4: Lambda Rule

7/29/2019 Lambda Rule

http://slidepdf.com/reader/full/lambda-rule 4/8

L12 – CMOS Layout 136.371 –Fall 2002 10/16/02

Vertical Replication

Reflect cell about X axis so that Pfetsare next to each other: this avoids largendiff/pdiff spacing.

Place shared geometry symmetricallyabout shared boundary.

Place items that aren’t to be shared1/2 minspacing rule from sharedboundary.

Run shared control signals vertically -- they’ll wire themselves upautomatically?

L12 – CMOS Layout 146.371 –Fall 2002 10/16/02

Vertical Intercell Routing

S’pose we have a signal that will runvertically from one cell to the next,

e.g., the carry-out from one cellbecomes the carry-in for the cellabove.

Looks okay until we reflect the cellwhen we do the vertical replication!

carry-in fromcell below

carry-out tocell above

Solution: we have to do therouting for vertical intercellsignals for a pair of cells, thenreplicate the pair (complete withrouting) vertically.

L12 – CMOS Layout 156.371 –Fall 2002 10/16/02

Building a DatapathIt’s often the case that we want to operate on many bits in parallel. Asensible way to arrange the layout of this sort of logic is as a datapathwhere data signals run horizontally between functional units and controlsignals run vertically to all the bits of a particular functional unit:

bit #0

bit #1

bit #2bit #3

data

control

Logic that generates the control signals can be placed at the bottom of  the datapath. If control logic is complicated or irregular, it might beplaced in a separate standard cell block and only the control signalbuffers placed placed just below the datapath. Although it’s tempting torun control signals in poly (so they can control fets) this is unwise for tall datapaths because of poly resistance (e.g., 32 bits x 20u/bit = 640u= ~1000 squares = ~20k ohms!)

L12 – CMOS Layout 166.371 –Fall 2002 10/16/02

Datapath Bit Pitch

How tall should we make each bit of the datapath? That depends on the width of the nfets and pfets how much in-cell routing there is how much over-the-cell global routing there is

Global routes can be determined from datapath schematic:

     S     H     I     F     T     E     R

     B     O     O     L     E

     M     U     L     T

     A     D     D     E     R

OP EN OP EN EN ENCIN

OP1OP2

RESULT 

Three global routing tracks required

Internal routing may take additional tracks

vdd (M2)

gnd (M2)

globalRoute(M2)

in-cell route (M2) control (M1)

Cell routing plan:

Page 5: Lambda Rule

7/29/2019 Lambda Rule

http://slidepdf.com/reader/full/lambda-rule 5/8

L12 – CMOS Layout 17 6.371 –Fall 2002 10/16/02

AdderDatapath

(3) tristate output enable control logic

(4) 32-bit register w/ tristate driver

(2) 32-bit carry-lookahead adder

(1) power strapping (M1=GND, M3=VDD)

1

23

 4

L12 – CMOS Layout 186.371 –Fall 2002 10/16/02

ShifterDatapath

<<16 <<1 <<8 <<2 <<4 shift right

>>4 >>2 >>8

L12 – CMOS Layout 196.371 –Fall 2002 10/16/02

Design for Reuse

what’s this cell do?

what are the “fat” fets?

Cell was designed for placement “under” a metal2/metal3routing grid. How was the layout affected by this designrequirement?

L12 – CMOS Layout 206.371 –Fall 2002 10/16/02

Think Globally

BIT BIT  

word line

How are neighboring cells placed? Isn’t the word line a long poly wire? Where’s the p-substrate contact?

Page 6: Lambda Rule

7/29/2019 Lambda Rule

http://slidepdf.com/reader/full/lambda-rule 6/8

Page 7: Lambda Rule

7/29/2019 Lambda Rule

http://slidepdf.com/reader/full/lambda-rule 7/8

L12 – CMOS Layout 256.371 –Fall 2002 10/16/02

Try automatedtools…

[1] click “automatic tools”[2] click “Place and Route”[3] Enter circuit: type “fa”[4] click “** DO IT! **”

L12 – CMOS Layout 266.371 –Fall 2002 10/16/02

Save layout indatabase and

layout ADDER8

[1] click “-return-”[2] click “database”[3] click “<--- WRITE”[4] click “fa”[5] click “Place and Route”[6] type “adder8”[7] click “** DO IT! **”

[8] click “<--- WRITE”[9] click “adder8”

L12 – CMOS Layout 27 6.371 –Fall 2002 10/16/02

Now try manuallayout

[1] click “NEW --->”[2] click “-return-”[3] click “instances”[4] click “ADD imported instance”[5] click “nand2”, click in main screen to place[6] type “o” several times to zoom out, “c” to recenter screen[7] click “next”, “xor2”, click to place next to NAND2[8] continue, adding 2 more NAND2 and last XOR2[9] when done, click “-return-”,

[10] type “S” to show sub terminals[11] type “2” show interior routing

L12 – CMOS Layout 286.371 –Fall 2002 10/16/02

Prepare forautoroute

[1] click “-return-”[2] click “terminals”[3] click “ADD terminal”[4] use cursor to select grid point for terminal “a”[5] terminal name: type “a” (capitalization counts!)[6] position terminal “b” on left edge[7] position terminal “s” on right edge[8] position terminal “cout” on Y output of rightmost NAND2[9] position terminal “cin” on B input of middle NAND2

Page 8: Lambda Rule

7/29/2019 Lambda Rule

http://slidepdf.com/reader/full/lambda-rule 8/8

L12 – CMOS Layout 296.371 –Fall 2002 10/16/02

Autoroute[1] click “-return-”[2] click “automatic tools”[3] click “>> Trout >>”[4] enter circuit name: type “fa”,return[5] click “border terminals” to deselect[6] click “** DO IT! **”[7] dismiss various pop up screens

[8] return to database screen, save layout for FA

L12 – CMOS Layout 306.371 –Fall 2002 10/16/02

Place and Route ADDER8

[1] start a “NEW --->” layout[2] use instance tools to

 make a stack of FAs[3] use “set instance name”

to name them xfa0..xfa7[4] use “>> Trout >>” on automatedtools screen to complete theroute for ADDER8

[5] save layout in database

Morals from this story:• you have to help tools find the structure• control randomness of tools

place instances based on global plan• place terminals based on global plan• automated routing okay• automated placement for random logic

Morals from this story:• you have to help tools find the structure• control randomness of tools

• place instances based on global plan• place terminals based on global plan• automated routing okay• automated placement for random logic

L12 – CMOS Layout 316.371 –Fall 2002 10/16/02

Prepare Simulation Stimulus

plot a[0..7], b[0..7], cin, s[0..7], coutoption level = 3option simperiod = 4option sigunit = 50.000000e-09option outacc = 10p/**%tstep 0.2ntrise 0.5ntfall 0.5n*%*%.options cptime=500*%*/set vdd = h*~set vss = l*~

set a[0] = l*1 h*1 h*1 h*1set a[1] = l*1 h*1 h*1 h*1set a[2] = l*1 h*1 h*1 h*1set a[3] = l*1 h*1 h*1 h*1set a[4] = l*1 h*1 h*1 h*1set a[5] = l*1 h*1 h*1 h*1set a[6] = l*1 h*1 h*1 h*1set a[7] = l*1 h*1 h*1 h*1set b[0] = l*1 l*1 l*1 l*1set b[1] = l*1 l*1 l*1 l*1set b[2] = l*1 l*1 l*1 l*1set b[3] = l*1 l*1 l*1 l*1set b[4] = l*1 l*1 l*1 l*1set b[5] = l*1 l*1 l*1 l*1set b[6] = l*1 l*1 l*1 l*1set b[7] = l*1 l*1 l*1 l*1set cin = l*1 l*1 h*1 l*1

See /mit/6.371/examples/adder8.cmdand /mit/6.371/examples/Adder8.cmd

See /mit/6.371/examples/adder8.cmdand /mit/6.371/examples/Adder8.cmd

L12 – CMOS Layout 326.371 –Fall 2002 10/16/02

Extract and RunSimulation

6.371% cp /mit/6.371/examples/*8.cmd .6.371% space –c fa; ghoti Fa6.371% space –c adder8; ghoti Adder86.371% simeye&

[1] select Simulate->Prepare[2] Circuit: Adder8,[3] Stimuli: Adder8.cmd[4] Type: sls-timing

[5] click “Run”