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.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.
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. 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=truein 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.
- Enable Channel Profiling from the
C/RTL Cosimulation settings
in the Config File Editor.
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.