Timing analysis and CDC
Why can it be a problem to leave the paths that carry an asynchronous FIFO's Gray code pointers to the other domain unconstrained (false path) just because they are asynchronous?
- ABecause setting a false path causes the synchronizer flip-flops to be removed by logic synthesis
- BBecause if the delay difference between bits exceeds the pointer update interval, the assumption that only one bit changes at a time breaks down on the receiving side
- CBecause setting a false path causes the tool to convert the pointer back to binary
Show answer and explanation
Answer: B. Because if the delay difference between bits exceeds the pointer update interval, the assumption that only one bit changes at a time breaks down on the receiving side
Gray code pointers assume that, at whichever receiving edge they are sampled, no more than one bit is changing. If the paths are left unconstrained, place and route can produce widely varying delays between bits. For example, with a 2 ns sending period, if the bit that changes first takes 3 ns to arrive and the bit that changes second takes 1 ns, both arrive at time 3 ns, so it looks as if two bits changed simultaneously. Therefore a maximum delay constraint is applied to keep the delay difference within one sending-clock period.