Wire sorts: a language abstraction for safe hardware composition
Michael Christensen, Timothy Sherwood, Jonathan Balkind, Ben Hardekopf
Abstract
Effective digital hardware design fundamentally requires decomposing a design into a set of interconnected modules, each a distinct unit of computation and state. However, naively connecting hardware modules leads to real-world pathological cases which are surprisingly far from obvious when looking at the interfaces alone and which are very difficult to debug after synthesis. We show for the first time that it is possible to soundly abstract even complex combinational dependencies of arbitrary hardware modules through the assignment of IO ports to one of four new sorts which we call: to-sync, to-port, from-sync, and from-port. This new taxonomy, and the reasoning it enables, facilitates modularity by escalating problematic aspects of module input/output interaction to the language-level interface specification. We formalize and prove the soundness of our new wire sorts, implement them in a practical hardware description language, and demonstrate they can be applied and even inferred automatically at scale. Through an examination of the Base-Jump STL, the OpenPiton manycore research platform, and a complete RISC-V implementation, we find that even on our biggest design containing 1.5 million primitive gates, analysis takes less than 31 seconds; that across 172 unique modules analyzed, the inferred sorts are widely distributed across our taxonomy; and that by using wire sorts, our tool is 2.6ś33.9x faster at finding loops than standard synthesis-time cycle detection.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 87b95f24-2b94-4c4c-b9fc-bcf8484b8748Cited by top-tier papers5
- Modular Hardware Design with Timeline TypesRachit Nigam, Pedro Henrique Azevedo de Amorim, Adrian SampsonPLDI 2023 · 16 citations
- Zoomie: A Software-like Debugging Tool for FPGAsTianrui Wei, Kevin Laeufer, Katie Lim, Jerry Zhao et al.ASPLOS 2024 · 1 citation
- ChiSA: Static Analysis for Lightweight Chisel VerificationJiacai Cui, Qinlin Chen, Zhongsheng Zhan, Tian Tan et al.POPL 2026
- Anvil: A General-Purpose Timing-Safe Hardware Description LanguageJason Zhijingcheng Yu, Aditya Ranjan Jha, Umang Mathur, Trevor E. Carlson et al.ASPLOS 2026
- Exploiting Sophisticated Static Analysis for VerilogQinlin Chen, Nairen Zhang, Jinpeng Wang, Jiacai Cui et al.PLDI 2026
Builds on2
- Predictable accelerator design with time-sensitive affine typesRachit Nigam, Sachille Atapattu, Samuel Thomas, Zhijing Li et al.PLDI 2020 · 58 citations
- The essence of Bluespec: a core language for rule-based hardware designThomas Bourgeat, Clément Pit-Claudel, Adam Chlipala, ArvindPLDI 2020 · 55 citations
Related papers
- Modular Hardware Design of Pipelined Circuits with HazardsMinseong Jang, Jungin Rhee, Woojin Lee, Shuangshuang Zhao et al.PLDI 2024 · 4 citations
- Revamping Verilog Semantics for Foundational VerificationJoonwon Choi, Jaewoo Kim, Jeehoon KangOOPSLA 2025 · 1 citation
- Loop Rerolling for Hardware DecompilationZachary D. Sisco, Jonathan Balkind, Timothy Sherwood, Ben HardekopfPLDI 2023 · 12 citations
- UMOC: Unified Modular Ordering Constraints to Unify Cycle- and Register-Transfer-Level ModelingShunning Jiang, Yanghui Ou, Peitian Pan, Christopher BattenDAC 2021 · 4 citations
- Solver-Aided Constant-Time Hardware VerificationKlaus von Gleissenthall, Rami Gökhan Kici, Deian Stefan, Ranjit JhalaCCS 2021 · 16 citations
