5.6. 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 8 Gbps link rate while transmitting 7680 x 4320p30 RGB resolution, a test pattern generator configured at 8 pixels in parallel runs at 148.5 MHz with the vid_clk domain of the HDMI TX core operating at 166.67 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, 8Kp30 video at 8 pixels per clock which runs at vid_clk of 225Mhz, the ratio is
Then, you will 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 33 clock cycles for every 50 clock cycles.
When vid_clk runs at the actual pixel clock frequency/pixels per clock, vid_valid should always remain asserted.