Hardware Buffer Depth

The syntax of this pragma is:
#pragma SDS data buffer_depth(ArrayName:BufferDepth)
Important: The hardware interpretation of this pragma might be revised in a future release.

This pragma must be specified immediately preceding a function declaration, or immediately preceding another #pragma SDS bound to the function declaration, and applies to all the callers of the function.

Some notes about the syntax:
  • Multiple arrays can be specified in one pragma, separated by a comma(,). For example:
    #pragma SDS data buffer_depth(ArrayName1:BufferDepth1, ArrayName2:BufferDepth2)
  • ArrayName must be one of the formal parameters of the function.
  • BufferDepth must a compile-time constant value.
  • This pragma applies only to arrays that map to BRAM or FIFO interfaces. For a BRAM-mapped array, the value specifies hardware multi-buffer depth. For a FIFO-mapped array, the value specifies the depth of the hardware FIFO allocated for the array. For this pragma, the following must hold:
    • BRAM: 1 ≤ BufferDepth ≤ 4, and 2 ≤ ArraySize ≤ 16384.
    • FIFO: BufferDepth = 2n, where 4 ≤ n ≤ 20.