Controlling the RTL FIFO Depth - 2022.1 English

Vitis High-Level Synthesis User Guide (UG1399)

Document ID
Release Date
2022.1 English

For most designs using streaming data, the default RTL FIFO depth of 2 is sufficient. Streaming data is generally processed one sample at a time.

For multirate designs in which the implementation requires a FIFO with a depth greater than 2, you must determine (and set using the STREAM directive) the depth necessary for the RTL simulation to complete. If the FIFO depth is insufficient, RTL co-simulation stalls.

Because stream objects cannot be viewed in the GUI directives pane, the STREAM directive cannot be applied directly in that pane.

Right-click the function in which an hls::stream<> object is declared (or is used, or exists in the argument list) to:

  • Select the STREAM directive.
  • Populate the variable field manually with name of the stream variable.

Alternatively, you can:

  • Specify the STREAM directive manually in the directives.tcl file, or
  • Add it as a pragma in source.