A newer version of this document is available. Customers should click here to go to the newest version.
6.4. Valid Video Data
To generate video data, you need to use the actual pixel clock but vid_clk runs at a faster frequency. You can use a FIFO buffer to clock the data between the actual pixel clock and vid_clk while generating the valid video data (vid_valid) based on the inverted empty FIFO buffer.
For example, when operating at 6 Gbps link rate while transmitting 3840 x 2160p60 RGB resolution, a test pattern generator configured at 2 pixels in parallel runs at 297 MHz with the vid_clk domain of the HDMI TX core operating at 300 MHz. Like this case, not every vid_clk has valid video data. You can handle similar cases using the inverted empty signal of the DCFIFO.
When vid_clk runs at a faster frequency than the actual pixel clock frequency/pixels per clock, toggle vid_valid to qualify the video data.
When you connect the test pattern generator to the HDMI TX core which runs at a faster clock rate, you need to generate the vid_valid to qualify validity of the pixel data. There is a requirement for the vid_valid generation to ensure the video data evenly distributed across the link bandwidth. An example for the vid_valid generation is as below:
First, you need to calculate the ratio of the pixel rate to the vid_clk frequency. For example, 4kp60 video at 2 pixels per clock which runs at vid_clk of 300 Mhz, the ratio is
Then, you need to create a logic to generate the vid_valid according to the calculated ratio. For the example above, the vid_valid should be evenly asserted for 99 clock cycles for every 100 clock cycles.
When vid_clk runs at the actual pixel clock frequency/pixels per clock, vid_valid should always remain asserted.