Towards a Formally-verified Software Toolchain for open ISAs
summary
An open-source pipeline takes Sail PDL ISA models and drives a symbolic execution engine plus Z3 SMT solver and logic-program rewrite tools to synthesize assembler/encoding fragments and prove that a short POWER instruction sequence preserves a universal final-state invariant. It demonstrates automatic extraction of semantics from Sail, generates bitvector ASTs for the jit/OMR code cache, and finds no counterexample for straight-line code; loops and halting limits still block full program verification. Works reliably on Power and RISC‑V, limited for ARM/MIPS.
AI-written summary · about
chapters (10)
- 0:00Introduction and motivation
- 2:11Testing vs formal verification
- 5:02Why formal verification matters now
- 8:17Symbolic CPU concept
- 12:01Toolchain synthesis approach
- 15:15Challenges with semantics
- 20:16Acc Gen and Prologue
- 23:12SAIL language for ISAs
- 25:20Current toolchain system
- 26:49Q&A on formal specs
related talks
09mSemi-Automated Translation of a Formal ISA Specification to Hardware
26mArchSem: Reusable Rigorous Semantics of Relaxed Architectures
02h 49mA Tour of the RISC V ISA Formal Specification
59mTutorial: High Level Sail Overview
20mSail RISC-V: Status and Future Challenges
09mDemo: RISC-V Instruction Information Parsing and Storage for SAIL
09mBreaking the RISC-V Processor Customization Barrier with Formal Verification
16mAutomatic Test Generation and Verification for RISC-V Vector Extension
