← All projects
ActiveSummer 2026 – PresentTeam of 2

dwn-fpga-study — FPGA Design-Space Exploration for Weightless Neural Networks

A 77-build automated sweep across width, encoder resolution, fan-in, depth, and clock target — built on the dwn2rtl compiler — to find the actual accuracy/area frontier instead of guessing at it.

77
Builds swept
−40% (−0.24 pts acc.)
LUT savings
58.6 → 100.9 MHz
Fmax
Scatter plot of accuracy versus LUT area for the sweep, with a highlighted Pareto frontier line tracing the best accuracy achievable at each area budget, annotated with the specific configuration at each frontier point.

The problem

Having a working compiler (dwn2rtl) only gets you a way to build a design — it doesn’t tell you which point in the width/depth/ encoder-resolution space is actually worth building. Answering that requires running the compiler dozens of times over and comparing real synthesis results, not guessing from intuition.

Approach

An automated sweep harness drives dwn2rtl across width, encoder resolution, fan-in, depth, and clock target — running synthesis and place-and-route for each generated design, then parsing the reports back into a comparable dataset. Configurable pipeline stages let the same design trade latency for Fmax without a rewrite, so timing tradeoffs are part of the sweep too, not a separate manual step afterward.

What broke

Running synthesis and place-and-route 77 times by hand isn’t viable — the entire value of this project is in the automation, so the build-and- report-parse cycle had to be scripted end to end and trusted to run unattended. That investment paid off directly: a 4× smaller encoder cut LUT usage 40% for a 0.24-point accuracy cost, a tradeoff that would have been expensive to discover by hand-tuning one design at a time.

Results

Change Effect
4× smaller encoder −40% LUT usage, −0.24 accuracy points
Configurable pipeline depth Fmax 58.6 MHz → 100.9 MHz on a 1,600-node design
Full sweep 77/77 generated designs verified bit-exact (via dwn2rtl’s own checks)

What I’d do differently

Pending — this project’s retrospective wasn’t in the source material this case study was drafted from. Krithik: what would you change if you did this again?