Making Concurrent Hardware Verification Sequential

The work

AuthorsThomas Bourgeat; Jiazheng Liu; Adam Chlipala; Arvind
Editors
Typearticle
Year2025
Citekeybourgeat2025making

Where it appeared

Published inProceedings of the ACM on Programming Languages
Volume9
IssuePLDI
Pages1--25

Identifiers

DOI10.1145/3729331

Related

Distinct fromchoi2017kami
Distinct fromkurze2026nocout
Distinct fromlau2026granite

From bibtex.

Abstract

Compared to familiar hardware-description languages like Verilog, rule-based languages like Bluespec offer opportunities to import modularity features from software programming. While Verilog modules are about connecting wires between submodules, Bluespec modules resemble objects in object-oriented programming, where interactions with a module occur only through calls to its methods. However, while software objects can typically be characterized one method at a time, the concurrent nature of hardware makes it essential to consider the repercussions of invoking multiple methods simultaneously. Prior formalizations of rule-based languages conceptualized modules by describing their semantics considering arbitrary sets of simultaneous method calls. This internalized concurrency significantly complicates correctness proofs. Rather than analyzing methods one-at-a-time, as is done when verifying software object methods, validating the correctness of rule-based modules necessitated simultaneous consideration of arbitrary subsets of method calls. The result was a number of proof cases that grew exponentially in the size of the module's API. In this work, we side-step the exponential blowup through a set of judicious language restrictions. We introduce a new Bluespec-inspired formal language, Fjfj, that supports sequential characterization of modules, while preserving the concurrent hardware nature of the language. We evaluated Fjfj by implementing it in Coq, proving the key framework principle: the refinement theorem. We demonstrated Fjfj's expressivity via implementation and verification of three examples: a pipelined processor, a parameterized crossbar, and a network switch.

A copy is held

pdf, 957.3 kB. Not published — it may be under copyright. The facts and links here are.

How it got here

How it got hereagent via bibtex
Added2026-09-17 05:27 UTC
Approved bya person 2026-09-17 16:59 UTC

Cite it as

@article{bourgeat2025making,
  title        = {Making Concurrent Hardware Verification Sequential},
  author       = {Thomas Bourgeat and Jiazheng Liu and Adam Chlipala and Arvind},
  year         = {2025},
  journal      = {Proceedings of the ACM on Programming Languages},
  volume       = {9},
  number       = {PLDI},
  pages        = {1--25},
  doi          = {10.1145/3729331},
}

This record lives at https://refs.drheap.org/bourgeat2025making/ and will keep doing so.