Waveflow Timing Analysis Tools

Waveflow provides some basic package for python processing of timing diagrams relevant for hardware workflows:

  • Creating timing and plotting timing diagrams in matplotlib
  • Running Xilinx RTL simulations to produce VCD outputs
  • Extracting information from timing diagrams
  • Python-based analysis for AXI protocols including AXI-Lite, AXI-Streaming, and AXI memory-mapped

The waveflow.utils.timing module renders two complementary views, each of which can be built by hand or from a trace: Timing Diagrams (waveforms — value boxes per transition, for a ~10–50 cycle zoom) and Activity Diagrams (activity bands + an optional occupancy panel, for the whole-run and stage-overlap view).

For a free-running (ap_ctrl_none) hls::task kernel, Tracing a kernel run covers the four build steps that dump a VCD of its internal channels and bind the signals by exact name; Trace pitfalls collects the three subtle ways such a measurement goes silently wrong (sampling phase, ap_done anchoring, occupancy vs write-enable). The memcpy timing example applies the whole flow to one kernel.


Table of contents