~/talk

Lessons learned while formally verifying the ZipCPU

Talkat ORConf 2018 · 2018-09-21..09-23· [embedded-and-hardware]
slides:none on file

ZipCPU gets fully proven with SymbiYosys using induction and bounded checks, finding bugs tests never caught: bus reads that don’t halt, compressed-instruction edge cases, debug-port write ordering, and a multiply/divide race. Verification uses an abstract multiply to model behavior, aggregation forces a swap assumptions and assertions step across submodules, and many proofs finish from tiny counterexamples — one full-CPU proof needs only 18 clock cycles. End result still requires simulation; overall setup takes weeks, per-run proofs minutes.

AI-written summary · about

  1. 0:00Intro
  2. 1:59Formal verification properties
  3. 4:51Prior formal verification
  4. 5:48Pipeline stages
  5. 6:18Execution units
  6. 6:48Conditional execution
  7. 8:00instruction cache
  8. 9:08valid trace
  9. 9:52data cache
  10. 10:28formal methods
  11. 11:20first lesson learned
  12. 12:16debug port
  13. 13:06pipeline
  14. 13:33abstraction
  15. 15:06aggregation
  16. 15:39assumptions and assertions
  17. 16:30multipass verification
  18. 16:54assumptions
  19. 17:08what happened
  20. 17:49what I found
  21. 19:33formal
  22. 19:58Questions
~/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.