An asynchronous FIFO is used to bridge data crossing from Clock Domain A (fa = 400MHz) to Clock Domain B (fb = 150MHz). There are no idle cycles during a burst. The burst size is 120 words. The write side can perform 1 write every clock cycle, while the read side can perform 1 read every 3 clock cycles. What is the minimum depth of the FIFO required to prevent any data overflow?
The time required to write the entire burst of 120 words is Twrite = 120 / 400MHz = 300ns .In the read domain, a read happens every 3 clock cycles, making the effective read frequency 150MHz / 3 = 50MHz. The number of words that can be read out of the FIFO during the 300 ns write window is 300ns x 50MHz = 15 words. Therefore, the FIFO must be deep enough to hold the remaining data: 120 - 15 = 105 words.