UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 54934

LogiCORE IP AXI Video Direct Memory Access (VDMA) - Throttling, frame size errors (SOF), and/or unexpected TKEEP behavior

Description

I am using the AXI VDMA in my design and I am seeing one or more of the following behaviors:

  • Throttling on the S2MM side
  • MM2S_TKEEP signal unexpectedly contains zeros (i.e. one or more bytes are indicated as 'null bytes')
  • Frame size errors indicated in the S2MM_DMASR (i.e. DMAIntErr, EOLEarlyErr, SOFLateErr, Err_Irq)

 Why is there throttling? Why are there errors? Why is tkeep acting in this way? Do I need to drive s2mm_tkeep the same?

Solution


One possible solution could be to enable the Data Realignment Engine (DRE) by checking the 'Allow Unaligned Transfers' option when configuring the core.

This behavior can be caused by some type of mis-alignment, possibly indicating an issue with the tdata width, hsize, and/or stride settings. 

As per the product guide, when C_INCLUDE_S2MM_DRE = 0, then the Start Address must be aligned to multiples of C_M_AXI_S2MM_DATA_WIDTH bytes. 

Also Horizontal Size and Stride must be specified in even multiples of C_M_AXI_S2MM_DATA_WIDTH bytes.

However, by enabling the DRE, these restrictions are no longer applicable and the user is allowed to use un-aligned values because the core will handle re-alignment for you automatically (at the cost of increased area footprint due to extra logic). 

Note: the DRE is only supported for AXI Stream Data widths settings of 64 bits or less.


One common application where such a misalignment might unexpectedly occur is when scaling the frame size. 

If an application requires arbitrarily sized frames to be transferred to memory, it is very likely that a misalignment will occur at some point because the AXI VDMA's Horizontal Size must be adjusted at run-time to compensate. 

As a result, in many cases (i.e. for many scale factors) the Horizontal Size will no longer be an even multiple of C_M_AXI_S2MM_DATA_WIDTH.

Therefore, we recommend enabling the Data Realignment Engine in the AXI VDMA when used with the Video Scaler core.


Note: the behaviors described above can also be indicative of other issues.

For a detailed list of LogiCORE IP AXI Video Direct Memory Access Release Notes and Known Issues, see (Xilinx Answer 54448).

Linked Answer Records

Master Answer Records

AR# 54934
Date 05/28/2019
Status Active
Type General Article
IP
  • AXI Video Direct Memory Access
  • AXI Video DMA
Page Bookmarked