
Video In to AXI4-Stream
22
PG043 April 24, 2012
Module Descriptions
The buffering requirements are dependent on the ratio of the AXI4-Stream clock rate to the
video clock rate. This is described more in
.
Asynchronous FIFO
The crossing of clock domains dictates that this be an asynchronous FIFO. The FIFO
designed for this core has two important distinguishing features:
1. It has status flags and a fill level output in both clock domains.
2. An “invalid” (
read_error
) flag is produced in parallel with output data for the use case
of reads when the FIFO is empty. It also has pointer inhibiting logic to prevent pointer
crossings on underflow and overflow.
This asynchronous nature of the FIFO presents challenges for the fill level indicators and
the flags. The chief risk is that pointer values could glitch when being sampled from one
clock domain to another. Thus, there must be pointer synchronization across clock domains,
and there must be a handshaking protocol to insure that all pointer updates are seen even
when the clock rate in the two domains are radically different.
is a block diagram
of the asynchronous FIFO. Note the synchronizing logic and the handshaking between clock
domains. The size of the FIFO is set in the GUI when the core is generated.