VLSI Design I VLSI Design I VLSI Design I VLSI Design I
VLSI Design I VLSI Design I VLSI Design I VLSI Design I
Overview
single and double phase clock systems
Latch and FF timing
JMM v1.4
Sequential Logic
Use #1: Get better utilization from
idle combinational logic blocks.
Pipeline the system so that new
computations start before the old ones
complete. Add registers to keep
computations separate.
8
A
8 Use #2: Convert parallel operations
x C
B to a sequence of (faster, smaller)
8 serial operations.
operations.
1
A
1
+ C
B
8 8
JMM v1.4
Flip--Flops
Latches and Flip
Q follows D
D Q D
G G
Q
level sensitive latch
Q stable
D Q D
clk clk
Q
edge sensitive flip-
flip-flop
Q stable
JMM v1.4
Latch Timing Constraints #1
latch a latch b
D Q CLa D Q CLb D Q
G G G
CLK
t1a
t2b
H S
CLK H S
Do I have to
check ALL these t1a = tnqa+ tnla > thb
constraints?
t1b = tnqb + tndb > tha
t2a = txqa + txla < tc0 - tsb
t2b = txqb + txlb < tc1 - tsa
th = hold time
ts = setup time
tn = min delay from invalid input to invalid output
tx = max delay from valid input to valid output
tl = delay for combinatorial logic from input to output
tq = delay for memory element from G to Q
JMM v1.4
Latch Timing Constraints #2
t1a
t2b
H S
CLK H S
JMM v1.4
Static Latches
Basic idea: Want storage node to
be isolated from whatever
Need gain around user does to Q.
this loop to make 0
latch static.
Q
D 1
Would like fast CLK-
CLK-to-
to-Q,
small setup and zero hold
times.
CLK
Oops… feedback not
Obvious implementation: isolated from Q. Could
add additional
output inverters...
D D
CLKN
CLK CLK
Should we buffer CLK
0, 1 or 2 times?
JMM v1.4
Latch Timing
1 2
CLK
JMM v1.4
Dynamic Latches
Suppose in the interest of speed we were
willing to give up the “static guarantee”
and take our chances with dynamic latches,
i.e., remove feedback path...
Eliminate when
Q fanout is small (1)
D Q
Can combine
other logic
with inverter
CLK local or global
clock inverter?
CLKN D Q
D Q
CLK
CLK
JMM v1.4
Flip--flops (registers)
Flip
Using alternating positive and negative dynamic latches with
a single clock gives great speed and small area, but…
lots of worries about clock skew
must balance logic delays to minimize wastage
need latch size checks (check optimisations!)
D D Q D Q Q D D Q Q
master slave
G G CLK
CLK
D
CLK
Q
!
MicroLab, VLSI-10 (9/23)
JMM v1.4
Flip--flop Implementations
Flip
Obvious implementation:
Q
D
CLK
D Q
CLK
JMM v1.4
Flip--Flop Timing
Flip
D Q CL D Q
clk clk
CLK
t1
t2
CLK
JMM v1.4
Flip--Flops
Dynamic Flip
I’ll have the Christer Svensson
special please!
2
CLK QN
CLK is low:
node 1 follows not(D)
node 2 pulled up
QN is “floating” with it’s old value
CLK is high:
node 2 = “0” if node 1 = “1”,
otherwise it stays “1”
Ö node 2 = not(node 1) shortly after CLKÏ
QN = not(node 2) Ö stable soon after CLKÏ
node 1 can be pulled down if D goes to “0” (capacitive
coupling), but node 2 won’t change!
MicroLab, VLSI-10 (12/23)
JMM v1.4
Single--Phase Clocked Systems
Single
RTL #1:
D Q D Q D Q
CLK
latch #2:
D Q D Q D Q
G G G
CLK
clk
MicroLab, VLSI-10 (13/23)
JMM v1.4
Clock Skew
D Q D Q D Q
CLK delay
D Q D Q
clk clk
delay CLK
MicroLab, VLSI-10 (14/23)
JMM v1.4
Two--Phase Clocked Systems (latch)
Two
D Q D Q D Q
G G G
PHI1
PHI2
phi1
“non-
“non-overlapping
two phase clocks” phi2
≥1 phi2
JMM v1.4
Two--Phase Clocked Systems (FF)
Two
D Q D Q D Q
CLK
CLK
“non-
“non-overlapping
two edge clocks”
JMM v1.4
Clock Distribution
Two main techniques for clock distribution exist:
a single large buffer (see Alpha processor)
n-bit datapath
n-bit datapath
n-bit datapath
n-bit datapath
n-bit datapath
n-bit datapath
delays have
n-bit datapath to match
clk between
n-bit datapath
n-bit datapath stages
n-bit datapath
n-bit datapath
n-bit datapath
clk
JMM v1.4
Phase Locked Loop Clock Technique
Phase locked loops (PLL) are used to generate
internal clocks on chips for two main reasons:
to synchronize the internal clock of a chip with an
external clock
to operate the internal clock at a higher rate than
the external clock input
clock clock
PLL
clock clock
route route
dclk dclk
dclk+dpad dpad
clock clock
dclk dclk
JMM v1.4
PLL Divider #2
by n
up VCO
Phase Charge voltage
Filter
fosc Detector down Pump controlled n x fosc
oscillator
PLL
fosc
ffeed
up
down
Ufilter
The phase detector produces a sequence of up/down
pulses, which are used to switch a charge pump.
The charge pump charges/discharges a capacitor
with voltage or current pulses
A filter is used to limit the rate of change of the
capacitor voltage. The result is a slowly changing
voltage that depends on the frequency difference
between the PLL and VCO.
The VCO increases/decreases its frequency of
operation depending on its input voltgae
MicroLab, VLSI-10 (19/23)
JMM v1.4
Static Timing Analysis
Do I have to Yup, for every pair of connected
check ALL the register/latches AND for all
constraints? possible data values!
JMM v1.4
Stage Delay Computation
Look at each gate and use knowledge of input timing and rise/fall
rise/fall
timing to compute earliest and latest time output could change ffor
or
both rising and falling output transitions.
IN VDD
INÏ Ö OUTÐ
C1 COUT
2
CLKN min Ö 1=OV, fast
IN OUT max Ö 1=VDD, slow
CLK
1 IN GND
INÐ Ö OUTÏ
C2 COUT
Other transitions:
CLKÏ, CLKÐ, CLKNÏ, CLKNÐ min Ö 2= VDD , fast
max Ö 2=0V, slow
Use Penfield-
Penfield-Rubenstein model to compute
td,in-
d,in-out = sum(R
sum(Ri,Ci) over all nodes “i” in the stage, where Ri is
total “effective resistance” to power rail and Ci is non-
non-zero if node
capacitor needs to be charged/discharged. Multiply by degrading
factor to account for rise/fall time of input.
JMM v1.4
Coming Up...
Next topic…
Data operators
Selfstudy…
Selfstudy…
Weste:
PLL section 9.3.5.3
JMM v1.4
VLSI--10
Exercises: VLSI
JMM v1.4