Professional Documents
Culture Documents
4740 - Lecture27 Asynchronous Circuits
4740 - Lecture27 Asynchronous Circuits
4740 - Lecture27 Asynchronous Circuits
ECE4740:
Digital VLSI Design
Lecture 27: (A)synchronous circuits
976
Dos and don’ts (or do’s and don’ts, or do’s and don’t’s)
977
1
6/8/2018
Synchronous clocking
• All storage operations and state transitions
occur periodically at precise moments in
time determined by a single clock
• Clock domain: Subcircuit where all clock
signals maintain fixed frequency and phase
relationships
• Clock boundary: the separation between
two distinct so-called clock domains
979
2
6/8/2018
data
path
clock
reset
Asynchronous clocking
• Some or all of the storage elements are
permitted to change their states
independently from a global reference
• Such circuits may contain
– Zero-latency feedback loops, ring oscillators
– Asynchronous state machines (ASMs)
– Logic gates on clock and reset nets
– Unclocked bistables (e.g., SR latch)
– Etc.
981
3
6/8/2018
data
path
don’t
do this
clock
mess
reset
mess
(Self-timed circuits)
data
path
reset
req req
ASM ASM ASM
ack ack
4
6/8/2018
5
6/8/2018
6
6/8/2018
988
CLK
D Q ENA
D
ENA
CLK
Q
time
989
7
6/8/2018
D Q ENA
CLK_ena
D
CLK_ena
Q undefined
undefined state
switches at wrong
never time: timing issues 990
do this
D Q
• No logic on clock signal
1
D_in
ENA
991
8
6/8/2018
Clock gating
• Idea: Switch off clock to disable flip-flop(s)
• Significantly reduces dynamic power
consumption of entire subcircuits
CLK
CLK CKG
ENA
ENA
CKG
time
9
6/8/2018
ENA
CLK
CLK
ENA
Q
clean
CKG signal
time 994
Reset
995
10
6/8/2018
Synchronous reset
reset on
clock edge
CLK
D Q RST
D
RST
CLK
Q
time
active-low reset
11
6/8/2018
0
1 1/x 0
1/x 0
D Q D Q
1
D_in D_in
!RST
!RST ENA
CLK CLK
12
6/8/2018
Asynchronous reset
CLK
D Q RST
D
RST
CLK
Q
time
13
6/8/2018
!RST A !(RST*A)
14
6/8/2018
D Q D Q
RST RST !
CLK CLK
reset tree try to
RST avoid this
skew
CLK
clock tree
D Q D Q
RST RST
CLK CLK
reset tree
RST
skew
CLK
clock tree
15
6/8/2018
D Q D Q
reset synchronizer
RST RST
CLK CLK
reset tree
RST
skew
CLK
clock tree
1 0 X 0
D Q D Q
RST RST
CLK CLK
CLK
1007
*unless you are a pro; but even then, think thrice (and also think about this slide)
16
6/8/2018
0 1 0 X
D Q D Q
RST RST
CLK CLK
CLK
1008
*unless you are a pro; but even then, think thrice (and also think about this slide)
1 0 1 0
D Q D Q
RST RST
CLK never CLK
CLK do this
1009
*unless you are a pro; but even then, think thrice (and also think about this slide)
17
6/8/2018
Things to remember
• Glitches must be avoided on reset signal
• No logic on reset signal allowed
• Never use reset to implement functionality
• Careful with timing on reset signal
• Distribute reset signal by fanout tree
• All flip-flops should have a reset input
– Simplifies design for test
– Avoids unknown states that remain forever
1010
Synchronization
1011
18
6/8/2018
external
input
signal
CLK
clock boundary
external
input
signal
CLK
metastability
19
6/8/2018
Remember metastability?
A
metastable
Vi1 Vo1 Vi2 Vo2 point
C
B
Vi1 = Vo2
20
6/8/2018
synchronization
flip-flop
external
input
signal
CLK
1017
21
6/8/2018
22
6/8/2018
synchronization
flip-flops
external
input
signal
CLK
some logic
CLK
synchronization
flip-flops
23
6/8/2018
Basic idea
“I have data”
combinational combinational
logic logic
“I am ready”
1022
CLK1 CLK2
24