Video Test Pattern Generator core supports bidirectional data throttling between its AXI4-Stream Slave and Master interfaces.
If the slave side data source is not providing valid data samples(s_axis_video_tvalid is not asserted), the core cannot
produce valid output samples after its internal buffers are depleted.
Similarly, if the master side interface is not ready to accept valid data
sample (m_axis_video_tready is not asserted), the core
cannot accept valid input samples once its buffers become full.
If the master interface is able to provide valid samples (s_axis_video_tvalid is High) and the slave interface is
ready to accept valid samples (m_axis_video_tready is
High), typically the core can process and produce 1, 2, 4, or 8 pixels specified by
Samples Per Clock in GUI per AP_CLK cycle.
However, at the end of each scan line and frame the core flushes internal
pipelines for seven clock cycles, during which the s_axis_video_tready is deasserted signaling that the core is not ready to
process samples.
When the core is processing timed streaming video (which is typical for most video sources), the flushing periods coincide with the blanking periods; therefore, do not reduce the throughput of the system.
When the core is processing data from a video source which can always provide valid data, for example, a frame buffer, the throughput of the core can be defined as follows:
In numeric terms, 1080P/60 represents an average data rate of 124.4 MPixels/second (1080 rows x 1920 columns x 60 frames / second x 1 pixel per clock), and a burst data rate of 148.5 MPixels/sec.
To ensure that the core can process 124.4 MPixels/second, it needs to operate minimally at:
When operating on a streaming video source (that is, not frame buffered data), the core must operate minimally at the burst data rate. For example, 148.5 MHz for a 1080P60 video source.