The essence of Bluespec: a core language for rule-based hardware design

Thomas Bourgeat, Clément Pit-Claudel, Adam Chlipala, Arvind
2020 Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation  
The Bluespec hardware-description language presents a significantly higher-level view than hardware engineers are used to, exposing a simpler concurrency model that promotes formal proof, without compromising on performance of compiled circuits. Unfortunately, the cost model of Bluespec has been unclear, with performance details depending on a mix of user hints and opaque static analysis of potential concurrency conflicts within a design. In this paper we present Kôika, a derivative of Bluespec
more » ... that preserves its desirable properties and yet gives direct control over the scheduling decisions that determine performance. Kôika has a novel and deterministic operational semantics that uses dynamic analysis to avoid concurrency anomalies. Our implementation includes Coq definitions of syntax, semantics, key metatheorems, and a verified compiler to circuits. We argue that most of the extra circuitry required for dynamic analysis can be eliminated by compile-time BSV-style static analysis. CCS Concepts: • Software and its engineering → Semantics; Compilers; • Hardware → Theorem proving and SAT solving.
doi:10.1145/3385412.3385965 dblp:conf/pldi/BourgeatPCA20 fatcat:xxyivqnmejekbndmnrqsqfnf7a