HW Design Question

Otto Dafe

Regular
I don't know if this belongs here, but I figure you cats would know this: What is the point/How does a clock synchronizer work. What I'm looking at here is a chain of D flip-flops (Q->the next D). This is supposed to slow the input clock somehow? Is it just the signal path slowing things down? Why is this desirable? Anyone know what I'm talking about here?

Thanks
 
I don't know if this belongs here, but I figure you cats would know this: What is the point/How does a clock synchronizer work. What I'm looking at here is a chain of D flip-flops (Q->the next D). This is supposed to slow the input clock somehow? Is it just the signal path slowing things down? Why is this desirable? Anyone know what I'm talking about here?

Clock synchronizers are circuits to transfer a signal from one clock domain to another. They don't slow down (nor do they accelerate) a signal. All they try to ensure is that a signal that's present on one domain ends up safely on the other side, where safely means: not in a meta-stable state. A meta-stable state happens when you're clocking a signal into a flop just as the input is changing. There is a small chance that this will result in the output of the flop end up in a state where the voltage is neither 0 or 1. That's bad.
By putting enough FFs in sequence (usually 2, but sometimes 3 are necessary, depending on the clock speed, process etc.) you ensure that the output of the final synchronizer FF is not meta-stable.

Obviously, on the destination side, the signal will show up with a certain delay. This transfer latency is almost always a bad thing, but the price to pay for working with multiple clocks.

It's up to the source circuit to ensure that the signal at the input is present long enough to be sampled by the destination clock. When the destination clock runs faster than the source clock, this is not a problem, but for the opposite case, you need to be more careful. There are multiple configurations to make this all of this work, none of them are terribly complicated.
 
Thanks silent_guy, that was incredibly helpful, and a way more cogent explanation than anything I could find in my text books.
 
Back
Top