paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Making Concurrent Hardware Verification Sequential

使并发硬件验证顺序化
PLDI 9(PLDI)2025匹配度 2/10 · 该论文属于程序设计语言与形式化验证方向(Bluespec 启发的 Fjfj 语言、Coq 中证明 refinement 定理),与用户在 PL 形式化证明+工程实现的偏好有间接重合;但它既未涉及 LLM/Agent 与静态分析的交叉,也与浮点程序分析、贝叶斯程序分析无关,属于并发硬件验证这一较远的具体领域。引用 1 inbox
Thomas Bourgeat, Jiazheng Liu, Adam Chlipala, Arvind
crossref: 2026-09-10

AI 速览

一句话:提出受 Bluespec 启发的形式语言 Fjfj,通过语言限制将并发硬件模块验证顺序化,并在 Coq 中证明 refinement 定理。

Bluespec 等基于规则的硬件语言将模块类比为对象,但并发方法调用迫使验证考虑任意同时调用的集合,导致证明分支随模块 API 规模指数增长。本文提出 Fjfj:一种受 Bluespec 启发的新形式语言,通过一组审慎的语言限制,在不改变硬件并发本质的前提下支持对模块进行顺序化刻画,从而避免指数爆炸。作者在 Coq 中实现 Fjfj,并证明核心框架原则——精化(refinement)定理。最后通过流水线处理器、参数化 crossbar 和网络交换机三个实例的实现与验证,展示 Fjfj 的表达能力。

问题
基于规则的硬件语言中,模块的并发方法调用需要同时考虑任意调用子集,导致正确性证明分支数随 API 规模指数增长。
方法
提出形式语言 Fjfj,通过语言限制将并发硬件模块的行为顺序化描述,并在 Coq 中实现与证明其精化定理。
评估
在 Coq 中实现 Fjfj,并通过流水线处理器、参数化 crossbar 与网络交换机三个案例进行实现和验证,以展示其表达力。
原文摘要(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.

链接与引用

DOI 原文 · PDF(开放获取) ·

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