Imageon HDL project (OBSOLETE)

Overview

The FMC-Imageon is a HDMI input/output FMC card that provides high definition video interface for Xilinx FPGAs. The HDMI input interface is implemented with the ADV7611, a 165MHz, 24bit pixel output, HDCP capable HDMI 1.4a receiver. The HDMI output interface is implemented with the ADV7511, a 225MHz, 36-bit deep color, HDMI 1.4 transmitter.

This reference design provides the video and audio interface between the FPGA and ADV7511/ADV7611 on board. The video uses a 16bit 422 YCbCr interface and the audio uses a single bit SPDIF interface in both directions.

Supported boards

  • FMC-IMAGEON

Supported devices

Supported carriers

Block design

The reference design is divided in three parts as related to the functionalities of the board. The first one, related to video transmission, uses the axi_hdmi_tx module and the axi_dmac modules to read 24 bits of RGB data from the SoC’s DDR memory, and then performs the transmission using the corresponding HDMI TX-related controller. On the receive side, the inverse operation is done, by using the HDMI RX-related controller.

In terms of audio part, the axi_spdif module is used to manage the audio output transmission on the HDMI connector. Additionally, a conversion from RGB to YCbCr and a downsampling from 444 to 422 are done in the transmit and receive (in reverse) datapaths as a default operation. To ensure the setup of the ADV7511 and ADV75611 ICs, Xilinx’s AXI IIC module is used.

Block diagram

The data and control paths, along with the corresponding clocks are depicted in the first diagram. As related to the functional description of the HDL modules, this is presented in the second diagram.

FMC-IMAGEON Block Diagram

FMC-IMAGEON block diagram

FMC-IMAGEON Functional Description

IMAGEON functional description

CPU/Memory interconnects addresses

The addresses are dependent on the architecture of the FPGA, having an offset added to the base address from HDL (see more at CPU/Memory interconnects addresses).

Instance

Zynq

axi_iic_main

0x4160_0000

axi_sysid_0

0x4500_0000

axi_hdmi_clkgen

0x7900_0000

axi_hdmi_dma

0x4300_0000

axi_hdmi_core

0x70E0_0000

axi_spdif_tx_core

0x75C0_0000

axi_i2s_adi

0x7760_0000

axi_iic_fmc

0x4162_0000

axi_hdmi_rx_core

0x4310_0000

axi_hdmi_rx_dma

0x43C2_0000

axi_spdif_rx_core

0x75C2_0000

axi_iic_imageon

0x43C4_0000

GPIO

The Software GPIO number is calculated as follows:

  • Zynq-7000: if PS7 EMIOs are used, then offset is 54

GPIO signal

Direction

HDL GPIO EMIO

Software GPIO

(from FPGA view)

Zynq-7000

hdmi_iic_rstn

INOUT

33

87

hdmi_rx_int

INOUT

32

86

gpio_bd[31:0]

INOUT

31:0

85:54

Interrupts

Below are the Programmable Logic interrupts used in this project.

Instance name

HDL

Linux Zynq

Actual Zynq

axi_hdmi_dma/irq

15

59

91

axi_hdmi_rx_dma/irq

14

58

90

axi_iic_imageon/iic2intc_irpt

11

55

87

Building the HDL project

The design is built upon ADI’s generic HDL reference design framework. ADI distributed the bit/elf files of this project as part of the ADI Kuiper Linux in the 2019_R1 release If you want to build the sources, ADI makes them available on the HDL repository. But, since this is an obsolete project, you need to check out the last release branch where it was tested (hdl_2019_r1). To get the source you must clone the HDL repository, and then build the project as follows:

Linux/Cygwin/WSL

/hdl$
git checkout hdl_2019_r1
/hdl$
cd projects/imageon/zed
/hdl/projects/imageon/zed$
 make

A more comprehensive build guide can be found in the Build an HDL project user guide.

Resources

More information

Support

Analog Devices, Inc. will provide limited online support for anyone using the reference design with ADI components via the EngineerZone FPGA reference designs forum.

For questions regarding the ADI Linux device drivers, device trees, etc. from our Linux GitHub repository, the team will offer support on the EngineerZone Linux software drivers forum.

For questions concerning the ADI No-OS drivers, from our No-OS GitHub repository, the team will offer support on the EngineerZone microcontroller No-OS drivers forum.

It should be noted, that the older the tools’ versions and release branches are, the lower the chances to receive support from ADI engineers.