Synchronization of Complex Systems
Synchronization of Complex Systems
complex systems
Jordi Cortadella
Universitat Politecnica de Catalunya
Barcelona, Spain
Single clock
(Mesochronous)
f3/f0
CLK0
f2/f0
CLK2
CLK
CLK
(f0)
CLK3
f1/f0
CLK1
Independent clocks
(plesiochronous
if frequencies
closely match)
R
setup
hold
D
Q
? 3
Example
# FFs
MTBF
1 FF
15 min
2 FF
9 days
3 FF
23 years
4
Different approaches
Pausible Clocks (Yun & Donohue 1996)
Predict metastability-free transmission windows for domains with
related clocks (Chakraborty & Greenstreet 2003)
Use the waiting time in FIFOs to resolve metastability
(Chelcea & Nowick 2001)
And others
The term Globally Asynchronous, Locally Synchronous is typically
used for these systems (Chapiro 1984)
req1
req2
ack1
ack2
Metastability
req1
req2
Metastability
resolver
ack2
ack1
R1
G1
MUTEX
R2
G2
10
delay
11
Pausible clocks
Req
Ack
Cntr
FF
ME
MUTEX
[1, 2]
delay
CLK
Yun & Dooply, IEEE Trans. VLSI, Dec. 1999
Moore et al., ASYNC 2002
12
A Minimalist Interface
15
16
17
Sync-Async FIFO
Async-Sync FIFO
Mixed-Timing Interfaces
Async-Sync FIFO
Asynchronous
Domain
Synchronous
Domain 2
Synchronous
Domain 1
Mixed-Clock FIFOs
full
req_put
synchronous
put inteface data_put
CLK_put
Mixed-Clock
FIFO
synchronous
get interface
empty
data_get
CLK_get
20
full
req_put
synchronous
put inteface data_put
CLK_put
Mixed-Clock
FIFO
req_get
valid_get
synchronous
get interface
empty
data_get
CLK_get
21
full
req_put
synchronous
put inteface data_put
CLK_put
Mixed-Clock
FIFO
req_get
valid_get
synchronous
get interface
empty
data_get
CLK_get
22
Full Detector
Put
Controller
data_put
CLK_put
cell
cell
cell
cell
cell
req_get
valid_get
empty
Get
Controller
CLK_get
data_get
Empty
Detector
23
en_put
req_put data_put
ptok_out
ptok_in
En
f_i
e_i
gtok_out
REG
SR
En
CLK_get
gtok_in
en_get
valid data_get
24
en_put
req_put data_put
ptok_out
ptok_in
En
PUT INTERFACE
f_i
e_i
REG
SR
GET INTERFACE
gtok_out
En
CLK_get
gtok_in
en_get
valid data_get
25
Synchronization: summary
Resolving metastability implies latency
Latency can be often hidden (FIFOs, Chelcea & Nowick)
Clock frequencies can be estimated and clock edges
predicted under the assumption of stable clocks
(Chakraborty & Greenstreet)
Pausible clocks are also possible (Yun & Donohue 1996)
But still the nicest solutions are totally asynchronous
26