The input video is stored to DDR3 memory and the output video is read from DDR3 memory. A MicroBlaze 32-bit soft-core processor is implemented in the Zynq PL to control the HDMI interface to have access to the DDR3 memory and the video data for processing.
The data are stored in the DDR memory in 3 buffers arranged in a circular manner.
The input and output HDMI rate are identical.
The memory read and write are alternated to provide data for HDMI output while storing the HDMI input data. The memory read is performed ahead of the memory write.
The GUI host application controls the EMC²-DP via the 1GB Ethernet port using a write/read API. The Ethernet link is used to communicate with the ARM processor core running Linux that, in turn, communicates with the MicroBlaze processor to configure the system and drive its memory accesses remotely.
The host application can also provide any data to write to memory to be processed and then read it back.
For example, it can load a picture to display on the HDMI output and read a picture captured on the HDMI input.
A UDP server runs in Linux on the PS and the host application runs the UDP client. The MicroBlaze controls the VDMA IP core to perform the read and write operations requested by the host. The EMC²-DP boots from SD card so the application code runs at power up and could be used to configure the system from Ethernet.
From the graphic interface, the control commands can be sent manually. But more efficiently, the host application can load a set of commands from an xml file and send it to the system. Typically, a set of commands will be:
- Read from memory (with the option to display data in the GUI and/ or save it to a file),
- write to memory (the data can be manually entered or come from a file),
An XML command file can also be created or modified from the graphic interface.
The use of XML files facilitates the system configuration but also makes it easier and quicker to repeat operations like running full system tests. Therefore, the system is very flexible and can be controlled remotely using the Ethernet port.
The embedded system operates under the control of a windows GUI by sending commands to start the acquisition on the HDMI input and display data on the HDMI output.
Thus this system consists of 4 main software/firmware parts:
- The firmware for the Zynq PL (Programmable Logic)
- The UDP server on the Zynq PS (Processing System)
- The Petalinux project to run Linux on the Zynq.
- The UDP client in shape of a GUI in Windows.