~/talk

A Clash Course in Solving Sudoku (Functional Pearl)

Talkat Haskell 2025 · 2025-10-16..10-17· [functional-programming]
slides:none on file

Builds an FPGA Sudoku solver by compiling Haskell with Clash Haskell-to-FPGA from a Bird 2006 functional pearl, translating a backtracking solver into fixed-size vectors, bit-vector masks for pruning, and a RAM-backed stack for backtracking. Most standard 9×9 puzzles finish in <100 cycles in cycle-accurate simulation; hard cases take thousands. Synthesized on an Artix‑7 at 200 MHz uses ~9,000 logic cells for 3×3 (25,000 for 3×4), communicates at 9,600 bps, and successfully runs on real hardware.

AI-written summary · about

  1. 0:00Clash and Sudoku solver intro
  2. 1:45What is Clash in hardware design
  3. 3:34Clash fundamentals
  4. 7:03Sudoku solver approach
  5. 9:11Software to hardware translation
  6. 11:00Sudoku solver pruning
  7. 14:13Constraint structure and folding
  8. 17:52Branching in hardware
  9. 20:00Recursion with stack and RAM
  10. 22:08IO and serial setup
  11. 23:52Parser, solver, formatter
  12. 25:16Solver performance and testing
  13. 26:41Hardware implementation
  14. 28:09Parallel solvers and scaling
  15. 29:12Clash benefits for hardware
  16. 32:27Clash vs Haskell for hardware
  17. 34:35Getting started with Clash
  18. 35:18Power draw and racing
  19. 36:27Clash adoption barriers
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.