Dataflow Viewer - Dataflow Viewer - 2026.1 English - UG1399

Vitis High-Level Synthesis User Guide (UG1399)

Document ID
UG1399
Release Date
2026-06-23
Version
2026.1 English
The DATAFLOW optimization is a dynamic optimization tool. Use this tool after completing RTL Co-simulation. After C synthesis, the Dataflow Viewer lets you see the dataflow structure, inspect the channels (FIFO/PIPO), and examine the effect of channel depth on performance. Performance data is back-annotated to the Dataflow Viewer after co-simulation.
Important: If you open the Dataflow Viewer without running RTL co-simulation, you cannot see performance information such as read/write block times, co-sim depth, and stall times.

You must apply the DATAFLOW pragma or directive to your design to see results in the Dataflow Viewer. You can apply dataflow to the top-level function, or specify regions of a function, or loops. The Dataflow Viewer displays a representation of the dataflow graph structure, showing different processes and underlying producer-consumer connections. The icon beside the top-level function indicates the presence of the DATAFLOW pragma.

Tip: The default m_axi interface of the Vitis Kernel flow generated the example below. The use of the Vivado IP flow can result in a different dataflow diagram.
Figure 1. Dataflow Viewer Generated by Your Tool

Features of the Dataflow Viewer include the following:

  • Source code browser
  • Automatic cross-probing from process or channel to source code
  • Filtering of ports and channel types.
  • Process and channel table with details of the following.
    • Enable Channel Profiling from the C/RTL Cosimulation settings in the Config File Editor.
      Important: You must use cosim.enable_dataflow_profiling=true in the HLS config file to capture data for the Dataflow Viewer. The test bench must run at least two iterations of the top-level function.
    • Process read blocking/write blocking/stalling time after RTL co-simulation
    • Process latency and II
    • Channel type and width
    • Automatic cross-probing from Process and Channel table to the Graph and Source browser
    • Hover over channel or process to display tooltips with design information.

The Dataflow Viewer can help with performance debugging your designs.

When RTL co‑simulation deadlocks, the GUI opens the Dataflow Viewer and highlights affected channels and processes to help identify causes such as insufficient FIFO depth.

When your design does not perform as expected, the Process and Channels table can help you understand diagnose the issue. A process can stall waiting to read input, or can stall because it cannot write output. The channel table provides you with stalling percentages, as well as identifying if the process is "read blocked" or "write blocked."

The Dataflow Viewer displays a menu bar at the top of the report that includes the following features:

  • Zoom In/Zoom Out/Zoom Fit commands
  • Toggle Table command to show or hide the table beneath the graph
  • Group All/Ungroup All groups associated channels together to simpligy the diagram
  • Legend command for the display.