HDMIc Test

When performing HDMI display in a Linux environment, we need to modify the previously created Vivado file.

Modifying the Vivado Project

Enable both IICs and configure them to EMIO mode:

image-20250819134551930

Configure interrupts, enable IRQ_F2P to receive interrupts from the PL side

image-20250819134626598

Add a dynamic clock controller. The main function of this module is to configure different clock outputs based on different resolutions. This module's clock must be configured to 100MHz.

Add your own IP cores:

Here we need to add two custom IP cores:

image-20250819140545351

Refer to the HDMI test content from the bare-metal system, replace the clk_wiz core with the dynclk core. Right-click on Block Design and click "+" to search:

image-20250819134214770

Keep the related configurations as default:

image-20250819134345789

Add an HDMI encoder to convert RGB data to TMDS signals.

Search and add our custom rgb and make the TMDS Make External

image-20250819135944239

Add a vector inverter:

image-20250819141009775

Connect the interrupt signals. First, add a Concat IP for interrupt signal connection.

image-20250819141131047

image-20250819141238487

 

Connect the clock signals that Vivado may not automatically connect.

image-20250819140928133

image-20250819141310762

Use Vivado's auto-connect feature to complete the remaining wire connections. Select all modules for auto-connection.

image-20250819140928133

After saving the design, validate it. Add the XDC file for HDMI output to constrain the pins.

Compile to generate the bit file, then export the .xsa file.

Import Hardware Configuration

Import the hardware obtained from the above steps into the petalinux project directory.

image-20250819142130632

Open a terminal in this directory and enter the petalinux environment.

Create modules for Digilent DynClk and Digilent HDMI: clk-dglnt-dynclk, digilent-hdmi

In the project folder, copy digilent_hdmi.c and clk-dglnt-dynclk.c, and replace the content of the automatically generated module .c files.

 

Import Hardware

Modify Kernel

 

Modify Device Tree

Open the file named system-user.dtsi in the petalinux project file.

Modify the device tree content as follows.

Modify U-Boot

Compile and Package