Video and Vision Processing Suite Intel® FPGA IP User Guide

ID 683329
Date 8/08/2022
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

5. Video and Vision Processing IP Registers

Each IP has an optional memory-mapped control agent interface. When you turn Memory-mapped control interface on in the GUI, the interface connects to your host processor via an Avalon memory-mapped host interface (or via an AXI4 memory-mapped bus through conversion in Platform Designer). It provides a unified method of controlling the IPs.

Every IP has a standard address map when you turn on Memory-mapped control interface. If you turn off Memory-mapped control interface, the IP always processes video data when it is available.

Generally, video and vision processing IP register maps have these distinctive areas:

  • A common area, which contains parameterization information. You can read from IPs to determine their parameters, which allows portability of software and binaries between different video and vision processing platforms.
  • An IP-specific video and vision processing area, which contains functional configuration information for the specific IP.
  • An optional control and debug register area, which allows you to write video field information in lite variants, read video field information in full variants, and to perform other control functions.

Control interfaces use Avalon memory-mapped interfaces. Platform Designer natively supports AXI4-Lite protocols and can automatically adapt to and from Avalon memory-mapped interfaces. Memory interfaces also use Avalon memory-mapped interfaces.

Table 8.  Register Map for Full Variant Video and Vision Processing IPsWith some exceptions (for example coefficient banks) in lite variants, register writes usually take effect at the start of the next field.
Address Register
Parameterization Registers
0x0000 VID_ID
0x0004 VERSION
0x0008 to 0x00FF IP-specific parameterization registers.
0x0100 to 0x011F Reserved for future use.

Reserved for optional Control and debug registers

0x0120 IMG_INFO_WIDTH
0x0124 IMG_INFO_HEIGHT
0x0128 IMG_INFO_INTERLACE
0x012C Reserved for future use.
0x0130 IMG_INFO_COLORSPACE
0x0134 IMG_INFO_SUBSAMPLING
0x0138 IMG_INFO_COSITING
0x013C IMG_INFO_FIELD_COUNT
IP-specific registers
Read-only registers
0x0140 STATUS
0x0144 to RW_BASE Optional additional read-only registers
Read-write registers
RW_BASE Optional COMMIT register
RW_BASE+4 onwards Optional additional read-write registers

Parameterization registers

The parameterization registers address space occupies from the base address of the IP to a maximum address of 0x011F. The first two registers in this section are the product ID and version registers, so you can identify the IP and the structure of its register map.

The next registers are an optional set of further parameterization information which IPs may populate to inform software on how to control the IP.

For example, a clipper describes clipping using either offsets from the edge of the video or using a top-left corner offset with required height and width. Control software can interrogate the clipper’s parameterization registers to determine which is correct and drive clipping control register accesses accordingly. You can use the same control software across different video pipeline configurations.

The parameterization registers section is followed by an unused area from 0x0100 to 0x011F.

Control and debug registers

You control the IPs in two ways:

  • Provide the input video field information. For example the type of video packets you send to the IP with respect to height, width, or interlacing.
  • Instruct the IP. For example which clipper offsets, mixer offsets, or scaling behavior to apply.

Full variants send image information packets down the video processing pipeline to communicate video field information. Image information packets handle the communication of any resolution changes to downstream IPs. You can control IP functions for full variants via the IP-specific registers.

Communicate video field information and control IP functions for lite variants via the control and IP-specific registers, using the register interface.

Registers 0x0120 to 0x0138 (IMG_INFO_WIDTH to IMG_INFO_COSITING) are the image information registers. For lite variants, write to these to set the dimensions and properties of incoming video fields. For full variants, ignore these registers. However, if you turn on debug features, you can read these registers to retrieve details of the image information fields that the IP receives via the last received image information packet.

Register 0x013C is the IMG_INFO_FIELD_COUNT register. Read this register for full variants when you turn on Debug features for the field count field of the last received image information packet.

Register 0x0140 is the STATUS register. IPs hold the LSB of this register high while they process video packets. The LSB returns low in-between video fields. For full variants, bit 1 of this register is the pending register updates bit. The IP sets this bit when you make writes to the IP's register map. The IP automatically clears this bit.

The COMMIT register is at address RW_BASE or later. Write to this register after writing new values to any of the registers in the IP-specific portion of the address map. The IP sets the pending register updates bit of the STATUS register in response and clears it when the new settings take effect.

IP-specific registers

This section of the register map is different for every IP and comprises read and write registers required to control the IP, such as clipping, mixing offsets, color space, or scaling coefficients.

IPs without a memory-mapped control interface

If you turn off Memory-mapped control interface, the IP always processes video data when it is available.