Liffs
Member level 1
Greetings all,
I have a basic question about a 1-bit digital signal (lets name it X) crossing asynchronous clock domains (lets says from clock domain A to clock domain B). The most used technique to perform such synchronization is using a 2-FF synchronizer, right? So I have two FFs clocked by clock B. The first one receives X and outputs X_1 (potentially metastable) and the second one receives X_1 and outputs X_2 (very likely to to be stable).
The question is: when X violates the first FF setup or hold timings, X_1 will become metastable for a while (lets say it is just for a little while). What does determine X_1 logic state when it goes back to be stable? Is it the value of X? Is it arbitrary?
Thanks!
I have a basic question about a 1-bit digital signal (lets name it X) crossing asynchronous clock domains (lets says from clock domain A to clock domain B). The most used technique to perform such synchronization is using a 2-FF synchronizer, right? So I have two FFs clocked by clock B. The first one receives X and outputs X_1 (potentially metastable) and the second one receives X_1 and outputs X_2 (very likely to to be stable).
The question is: when X violates the first FF setup or hold timings, X_1 will become metastable for a while (lets say it is just for a little while). What does determine X_1 logic state when it goes back to be stable? Is it the value of X? Is it arbitrary?
Thanks!