Semi-Automated Translation of a Formal ISA Specification to Hardware
summary
Prototype pipeline converts Sail ISA specs into Clash hardware by translating Sail’s monadic effects into monadic stream functions that compile to a naive single‑cycle RISC‑V subset implementation. The pipeline composes state/exception/nondeterminism monads into effect‑parameterized arrows, generates functional finite‑state transducers, and emits Verilog via Clash; it works end‑to‑end on a subset of RISC‑V as a proof‑of‑concept and aims to add microarchitectural effects (timing, resources) for refined multi‑cycle designs.
AI-written summary · about
chapters (8)
- 0:00Intro
- 0:13Overview
- 1:43Sail for Formal ISA Specification
- 3:17CASH for Hardware Design
- 4:41Composition is Hard
- 5:41Monadic Stream Functions
- 6:54User's Perspective
- 7:23Bridging the Chasm and Then Some
related talks
36mTowards a Formally-verified Software Toolchain for open ISAs
02h 49mA Tour of the RISC V ISA Formal Specification
26mArchSem: Reusable Rigorous Semantics of Relaxed Architectures
20mSail RISC-V: Status and Future Challenges
59mTutorial: High Level Sail Overview
31mFormal Specification
27mClash: Haskell as an HDL
09mDemo: RISC-V Instruction Information Parsing and Storage for SAIL
