Top Banner
S. Reda EN160 SP’08 esign and Implementation of VLSI System (EN1600) Lecture 17: Design Considerations
10

Lecture17

Jun 26, 2015

Download

Business

Dharmesh Goyal

for more tutorials visit www.technofizi.in
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Lecture17

S. Reda EN160 SP’08

Design and Implementation of VLSI Systems(EN1600)

Lecture 17: Design Considerations

Page 2: Lecture17

S. Reda EN160 SP’08

Measuring the input capacitance (for lab)

Make sure to extract the parasitic capacitance

First, create your standard cell and extract it to SPICE

Page 3: Lecture17

S. Reda EN160 SP’08

Creating a subcircuit of your cell

Create a subcircuit out of the extracted files

.global vdd gnd

.subckt inv a y Cpar1 vdd 0 14.40942fCpar2 gnd 0 8.9712fCpar3 y 0 12.0537fM1 y a vdd vdd PMOS L=600n W=3uM2 y a gnd gnd NMOS L=600n W=1.5u.ends

Page 4: Lecture17

S. Reda EN160 SP’08

Basic idea

a y f

• Delay from a to y depend on the load capacitance of I1 → input capacitance of I2

• If CAP has the same capacitance as I2 then delay from a to c will be equal to delay from a to y

• Objective: try to “guess” CAP to equalize the delay

I1 I2

I3

CAP

c

delay of I1

Page 5: Lecture17

S. Reda EN160 SP’08

SmartSPICE has a builtin optimizer to save your guessing timeXI1 a y invXI2 y f invXI3 a c invCcin c gnd CAP

Vin a gnd PULSE 0 3.3 100ps 0ps 0ps 2000ps 4200ps

.measure TRAN tdr TRIG v(a) VAL='0.5*3.3' FALL=1 TARG v(y) VAL='0.5*3.3' RISE=1.measure TRAN tdf TRIG v(a) VAL='0.5*3.3' RISE=1 TARG v(y) VAL='0.5*3.3' FALL=1.measure TRAN tdavg PARAM='(tdr+tdf)/2'

.measure TRAN tdrc TRIG v(a) VAL='0.5*3.3' FALL=1 TARG v(c) VAL='0.5*3.3' RISE=1.measure TRAN tdfc TRIG v(a) VAL='0.5*3.3' RISE=1 TARG v(c) VAL='0.5*3.3' FALL=1.measure TRAN tdavgc PARAM='(tdrc+tdfc)/2' goal=tdavg

.model opt1 opt method=bisection

.param CAP=optc(0fF, 0fF, 100fF)

.tran 20ps 3000ps sweep optimize=optc results = tdavgc model=opt1

.end

Optimizer report that the input capacitance = 6.25 fF (which you can easily validate!)

Page 6: Lecture17

S. Reda EN160 SP’08

Design margins

Sources of variations:

Manufacturing (process variations): L, Vth, tox, interconnect dielectric height, .., etc

Temperature

Supply voltage (IR drop)

threshold voltage 0.97V threshold voltage 0.57V

[source: Asenov’99]

1st CPU 2nd CPU

cache thermal profile during runtime

[source: Devgan’05]

Page 7: Lecture17

S. Reda EN160 SP’08

Variations can be modeled statistically

Page 8: Lecture17

S. Reda EN160 SP’08

Process corners

• Process corners describe extreme case variations– If a design works in all corners, it will probably work for any

variation.

• Describe corner with four letters (T, F, S)– nMOS speed– pMOS speed– Voltage– Temperature

Page 9: Lecture17

S. Reda EN160 SP’08

Design corners check

Purpose nMOS pMOS VDD Temp

Cycle time S S S S

Power F F F F

Subthrehold

leakage

F F F S

Page 10: Lecture17

S. Reda EN160 SP’08

Simulating corner cases in SPICE

.lib '05corners.lib' typ

.temp 27

.option scale=250n

.option postvdd vdd gnd 3.3Vin a gnd PULSE 0 3.3 100ps 0ps 0ps 2000ps 4200psM1 y a gnd gnd NMOS W=4 L=2 AS=20 PS=18 AD=20 PD=18M2 y a vdd vdd PMOS W=8 L=2 AS=40 PS=26 AD=40 PD=26.tran 1ps 500ps.alter .lib '05corners.lib' fastfast.alter .lib '05corners.lib' slowslow.end