Posts

Showing posts from 2018

Clock Domain Crossing

Clock Domain Crossing is one of the most interesting topics in today's chips. 

Transfer a pulse from fast clock to slow clock

Image
A lot of time during digital design interviews a simple looking question is asked to transfer a pulse from fast clock domain to slow clock domain. At first you think that all you need to do is to extend this pulse such that it can be sampled by receiver’s clock, but it is not that simple. We have to take a step further. There are few problems here: The obvious problem is that the 2 clocks are asynchronous to each other and we will need double synchronizers to resolve metastability. Even when we know the relationship between fast and slow clock, we do not know for how long the pulse should be extended because of clock skews. Quickly moving to solution space . To safely transmit this pulse, using a flop (clocked by fast clock) we can extend the pulse and we will continue to extend it till we detect the active edge of slow clock. We can come up with this truth table using this concept: Pulse Qout (fast clock) Edge Detection (slow clock) Next (fast c...