Clock Tree Synthesis
Clock Tree Synthesis
Clock Tree Synthesis
2/18/05
L06 Clocks
Inputs
Combinational Logic
Outputs
All digital systems need a convention about when a receiver can sample an incoming data value
synchronous systems use a common clock asynchronous systems encode data ready signals alongside, or encoded within, data signals synchronous systems, on next clock edge (after hold time) asynchronous systems, acknowledge signal from receiver
Also need convention for when its safe to send another value
Data
Clock Synchronous
6.884 - Spring 2005
Large Systems
Most large scale ASICs, and systems built with these ASICs, have several synchronous clock domains connected by asynchronous communication channels
Clock domain 1 Clock domain 2 Clock domain 3
Chip A
Clock domain 5
data captured on rising edge of clock, held for rest of cycle D Clock Q
Building a Latch
0 D 1 CLK
CLK
CLK
6.884 - Spring 2005
D
CLK
CLK
Q D
CLK
TCQmin/TCQmax
propagation inout when clock opens latch propagation inout while transparent usually the most important timing parameter for a latch define window around closing clock edge during which data must be steady to be sampled correctly
2/18/05 L06 Clocks 8
TDQmin/TDQmax Tsetup/Thold
D
CLK
Setup represents the race for new data to propagate around the feedback loop before clock closes the input gate. (Here, were rooting for the data signal)
2/18/05
L06 Clocks
Failing Setup
D
CLK
If data arrives too close to clock edge, it wont set up the feedback loop before clock closes the input transmission gate.
2/18/05
L06 Clocks
10
D
CLK
Q Added clock buffers to demonstrate positive hold time on this latch other latch designs naturally have positive hold time
Hold time represents the race for clock to close the input gate before next cycles data disturbs the stored value. (Here were rooting for the clock signal)
6.884 - Spring 2005 2/18/05 L06 Clocks 11
D
CLK
If data changes too soon after clock edge, clock might not have had time to shut off input gate and new data will corrupt feedback loop.
6.884 - Spring 2005 2/18/05 L06 Clocks 12
Flip-Flops
CLK
Master Transparent Slave Latched Master Latched Master Transparent
CLK
On positive edge, master latches input D, slave becomes transparent to pass new D to output Q On negative edge, slave latches current Q, master goes transparent to sample input D again
6.884 - Spring 2005 2/18/05 L06 Clocks 13
Flip-Flop Designs
CLK
CLK
CLK
D
CLK CLK
Q Q
Many other ways to build a flip-flop other than transmission gate master-slave latches
usually trickier timing parameters
only found in high performance custom devices
2/18/05
L06 Clocks
14
Clock D
Q
TCQmin TCQmax Tsetup Thold
TCQmin/TCQmax Tsetup/Thold
propagation inout at clock edge define window around rising clock edge during which data must be steady to be sampled correctly either setup or hold time can be negative
2/18/05
L06 Clocks
15
Single clock with edge-triggered registers most common design style in ASICs Slow path timing constraint Tcycle TCQmax + TPmax + Tsetup Fast path timing constraint TCQmin + TPmin Thold
bad fast path cannot be fixed without redesign! might have to add delay into paths to satisfy hold time
2/18/05 L06 Clocks 16
Clock Distribution
2/18/05
L06 Clocks
17
Clock Grids
One approach for low skew is to use a single metal clock grid across whole chip (Alpha 21064) Low skew but very high power, no clock gating
L06 Clocks
18
H-Trees
Recursive pattern to distribute signals uniformly with equal delay over area
Uses much less power than grid, but has more skew In practice, an approximate H-tree is used at the top level (has to route around functional blocks), with local clock buffers driving regions
6.884 - Spring 2005 2/18/05 L06 Clocks 19
Clock Oscillators
Where does the clock signal come from? Simple approach: ring oscillator
2/18/05
L06 Clocks
20
Clock Crystals
Fix the clock frequency by using a crystal oscillator Exploit peizo-electric effect in quartz to create highly resonant peak in feedback loop of oscillator Easy to obtain frequency accuracy of ~50 parts per million
2/18/05
L06 Clocks
21
Use a feedback control loop to force an oscillator to align frequency and phase with an external clock source.
External Clock
2/18/05
L06 Clocks
22
By using a clock divider (a simple synchronous circuit) in the feedback loop, can force on-chip oscillator to run at rational multiple of external clock
External Clock
Divide by N
2/18/05
L06 Clocks
23
GCLK Reference clock CLKP CLKN VCC/2 PLL Main clock DSK DSK
DSK
RCD
DLCLK OTB
DSK = Active deskew circuits, cancels out systematic skew PLL = Phase locked loop
2/18/05
L06 Clocks
24
Systematic skew due to manufacturing variation can be mostly trimmed out with adaptive deskewing circuitry
cross chip skews of <10ps reported
Main sources of remaining skew are temperature changes (low-frequency) and power supply noise (high frequency) Power supply noise affects clock buffer delay and also frequency of PLL
often power for PLL is provided through separate pins clock buffers given large amounts of local on-chip decoupling capacitance
2/18/05
L06 Clocks
25
variation in when the same clock edge is seen by two different flip-flops
2/18/05
L06 Clocks
26
Timing Revisited