Академический Документы
Профессиональный Документы
Культура Документы
Combinational Logic
z In general, there is only one clock (in any one sub-block of the chip) and
each flip-flop is clocked every cycle
z If a chip needs multiple clocks, they should share a common root clock (e.g.
divide a master clock) and be fed to different sub-designs within the chip
clock
Clock
In A 2 c 6
Out 3 1 4 0 4
Critical Path
z Thus, the clock speed is determined by the slowest feasible path between
registers in the design
z Often referred to as “the critical path”
Clock Distribution
z The goal of clock tree is for the clock to arrive at every leaf node at the same time:
Ck Set-up time:
Data can not change no later than this
point before the clock edge.
Ck Hold time:
tSetUp thold
Data can not change during this time after
D the clock edge.
tclock-Q
Q t_clock-Q
Delay on output (Q) changing from positi
Register Register
Q1
clock edge
D1 Comb D2
Logic Q2
tLogic-delay
+/-tskew
tLogic-delay
+/-tskew
tclock + tclock −high − max > tclock −Q − max + tlog ic − max + tset −up + tskew
clock
tskew
clock’
tclock −high − max + thold + tskew < tclock −Q − min + tlog ic − min
clock
tskew
clock’
thold Hold
Q1 Violation
tlogic
D2
Note:
•Hold violations are harder to prevent in latch-based designs
Example:
D-flip-flop min : typ : max
Tclock-Q = 3 : 4 : 5
TNOR =1:2:3
D-flip-flop Tsu_max = 1
Thold_max = 2
Tskew = 1 ns
Setup: tclock > tclock −Q − max + tlog ic − max + tset −up + tskew
= 5 + 6 + 1 + 1 = 13 ns I.e. 76 MHz
2+1 3+1
< OK. No hold violation
Thus, delay in CMOS circuits depends largely on W/L of the drive transistor
and the capacitance of the load it is driving.
That capacitance consists of:
•Input gates of cells being driven, and τ = RonCload
•Capacitance of wiring
A1
Tclock-Q Tsu
Q -> A1:
DFF
CL_max = 0.0371+0.0117 pF = 0.0488 pF
T_cp-Q_max = max (1.12+1.59*CL, 1.09 + 1.32*CL)
= max (1.12+1.59*0.0488, 1.09 + 1.32*0.0488)
= max (1.2, 1.15) = 1.2 ns
Q->A2: T_cp-Q_max = 1.2 ns
©2004 Dr. Paul D. Franzon, www.ece.ncsu.edu/erl/faculty/paulf.html 16
ECE 520 Class Notes
… Example
Tlogic:
CL:
NOR2
DFF
NOR2
… Example
Tsu
Timing in Design
z The ASIC vendor will develop delay models for each cell
z Best/worst models developed as transistor β changes with process,
temperature, etc.
z Models also developed for delay as a function of capacitive load (fan-out)
z Timing models are stored as part of the cell library
z Timing Verification is done with a combination of the following:
z Logic simulation using actual delays from the timing library
z Dynamic timing analysis
z Static timing analysis:
z A static timing analyzer traces through the actual logic and calculates slowest
and fastest delay for each true path through the logic
Sometimes, however, it can not tell the difference between true and false
(not possible) paths
Î Often the designer has to identify false paths
z It outputs a timing report for critical (Slowest) and other paths
z The SDF file is then used by the logic simulator or static timing verifier to verify
that the design will not have any setup or hold violations
Timing Closure
z = Ensuring no timing problems after “Place and Route”
z More than simple back-annotation needed
z Becoming more difficult with increasing clock frequency and finer lithography
z Interconnect RC delay becoming large compared with logic delay
z Current synthesis tools are “interconnect blind”
z New classes of tools emerging (Physical compilers)
z New planning tools needed in the future
Exercise
z With a flip-flop based design, what is the minimum clock period?
z Is there potential for a hold violation?
z If t_clock_high is 50% of the clock period (“50% duty cycle”), and cycle
stealing is enabled, what is potentially the fastest possible latch-based
design?
Q1 T_clock_Q = 1-2 ns
D1 Comb D2 Tsu = 1 ns
Logic Q2
Thold = 2 ns
6-7 ns
Skew = 1ns
Summary
z What determines the maximum clock frequency?
Total delay in critical path + Clock skew
• Determined in part by maximum logic depth
Remember
z Methodology for purposes of ECE 520
z If at all possible one-edge of one clock
z If you need multiple clocks, they must have a common root and be
related by factors of 2
E.g. Root clock : Tclock = 5 ns
This is OK:
Î Tclock10 = 10 ns (Tclock*2)
Î Tclock20 = 20 ns (Tclock*4)
This is NOT OK
ONE CLOCK
Î Tclock, Tclock15, Tclock17
ONE EDGE
Î Tclock15 = 15 ns (Tclock*3)
Î Tclock17 = 17 ns (??)