Timing analysis and CDC
In an asynchronous FIFO with a 100 MHz write side and an 80 MHz read side, the write side writes a 100-word burst at one word per cycle and the read side reads one word per cycle. There is ample idle time between bursts. What is the minimum depth needed to avoid overflow (ignore synchronization delay)?
- A80 words
- B25 words
- C20 words
Show answer and explanation
Answer: C. 20 words
Writing 100 words takes 100 × 10 ns = 1000 ns. In that time the read side can read 1000 ns ÷ 12.5 ns = 80 words, so the maximum left in the FIFO is 100 − 80 = 20 words. As a formula, burst length × (1 − read rate ÷ write rate) = 100 × (1 − 80 ÷ 100) = 20. 80 words is the amount that can be read during that time, and 25 words comes from dividing the 20 MHz rate difference by the read side's 80 MHz. In actual designs, margin for synchronization delay is added.