↓Skip to main content

Dynamatic + XLS: integrating dynamic and static HLS

Description #

My master’s thesis, currently in progress at ETH Zürich with the Digital Systems and Design Automation group.

Dynamatic compiles software-like descriptions into dynamically scheduled circuits: dataflow units wired together over handshake interfaces that decide when to fire at runtime. That lets a circuit exploit parallelism a static schedule has to give up on, because classical HLS has to budget for the longest possible execution path up front.

Dynamism isn’t free everywhere, though. A loop with a mostly linear body and no inter-loop dependencies can be scheduled statically at an initiation interval of 1 — wrapping it in ready-valid handshaking buys nothing and costs timing and area. Hybrid circuits, with statically scheduled islands embedded in a dynamic one, are known to open up new Pareto frontiers, but the prior work largely leans on closed-source commercial HLS, which makes a genuinely end-to-end hybrid flow hard to build.

Google’s XLS is the piece that makes this tractable: it’s open source, it generates the kind of statically scheduled dataflow units Dynamatic needs, and it exposes an MLIR interface. The thesis builds the integration:

  • A static region in the IR — a new MLIR operation in Dynamatic holding a nested region that describes a statically scheduled unit, with XLS synthesising that region down to RTL.
  • Making the dynamic circuit aware of it — exposing the timing characteristics of XLS-generated units (latency, initiation interval, and above all the combinational delays at their interfaces) to Dynamatic’s buffer placement, so the surrounding dynamic circuit is buffered correctly.
  • Memory accesses inside static regions, which the handshake-based memory interfaces don’t accommodate for free.
  • Evaluation against purely dynamic Dynamatic output, against a commercial static HLS flow, and against the improvements reported in the literature.

If time allows, two extensions: automatically identifying which regions benefit from static scheduling, and supporting more complex static regions, such as internal loops built on XLS’s state-feedback mechanism.

The work is being upstreamed into Dynamatic as a series of pull requests.


Dynamatic · XLS