Synchronous Design Methodologies & Impedements To Synchronous Design
Synchronous Design Methodologies & Impedements To Synchronous Design
Synchronous Design
All flip-flops clocked by one common clock
Reset only used for initialization
Races and hazards are no problem
Timing Hazard
Static hazard: possibility of a brief signal
value change when the signal was expected
to be stable, due to timing (glitch)
Dynamic hazard: possibility of multiple
output transitions caused by a single input
transition due to multiple signal paths with
different delays
Static Hazard
Synchronous Design
Three things must be ensured by the
designer:
Minimize and determine clock skew
Account for flip-flop setup and hold times
Reliably synchronize asynchronous inputs
Timing Analysis
CLOCK
Propagation
delay
Combinational path
delay
Slack
Setup
time
Hold
time
Clock skew
IN
SET
Q1
SET
CLK2
CLR
CLK
CLR
Q2
CLK
IN
CLK2
Q2
Example
Determine the maximum frequency of the
following circuit with and without skew
SET
CLR
Clock Jitter
Clock Gating
Clock gating is done to disable the clock for
low power consumption using a clken
signal
It is wrong to gate the clock in the
following way, instead use a synchronous
load (enable) signal
D
SET
CLK
EN
CLR
Asynchronous Inputs
It is impossible to guarantee setup and hold timing
constraints on inputs synchronized with a clock
unrelated to the system clock
ASYNCIN
SET
CLR
CLK
(SYSTEM CLOCK)
CLK
ASYNCIN
SYNCIN
SYNCIN
SYNCHRONOUS
SYSTEM
Asynchronous inputs
Synchronize only in one place
ASYNCIN
SET
CLR
SYNCIN1
Q
SYNCHRONOUS
SYSTEM
CLK
(SYSTEM CLOCK)
SET
CLR
SYNCIN2
Metastability
Metastability is a phenomenon that may occur if the setup
and hold time requirements of the FF are not met, leading
in the output settling in an unknown value after
unspecified time.
Example
Design a synchronizer that synchronizes
two inputs async1 and async2 generated
with a 50 MHz clock CLK1, to a system
with a 33 MHz clock CLK2 totally
independent of CLK1. Draw appropriate
timing diagrams.
Cascaded synchronizer
Synchronization circuit
Summary
In order to avoid hazards and races, synchronous
design is used
In synchronous design a single common clock is
used and reset is only used for initialization
The only considerations in synchronous design are
the flip-flop setup and hold times, clock skew and
asynchronous input synchronization
Asynchronous inputs are commonly synchronized
using 2 flip-flops clocked with the synchronous
system clock
Synchronization should only be done in one place
In bus transfers, synchronize only the control
signals or use a FIFO
Design trade-offs
Area
Gates (ASIC)
Flip-flops/LUTs (FPGA)
Power consumption
Dynamic
Static
Leakage
X=a+b+c+d
Delay = 3*add
Latency = 1 cycle
Throughput = X bits/clock
Delay = 2*add
Latency = 1 cycle
Throughput = X bits/clock
Resource Sharing
Y= C1* X[0] + C2 *X[1] + C3*X[2]
Resource Sharing
Clock Gating
Clock gating is done to disable the clock for
low power consumption using a clken
signal
It is wrong to gate the clock in the
following way, instead use a synchronous
load (enable) signal or a global clock
multiplexer (if available) D Q
SET
CLK
EN
CLR
Review questions/problems
Parallelism creates a
A. smaller
B. exhibit lower latency
C. Consume less power
D. exhibit higher throughput
A. latency/throughput trade-off
B. Performance/area trade-off
C. Area/power consumption trade-off
D. performance/power consumption trade-off