paperbot · PL 论文追踪

全部论文 待读 收藏

P2 The Essence of Verilog: A Tractable and Tested Operational Semantics for Verilog

Verilog 的本质:一种可处理且经测试的 Verilog 操作语义
OOPSLA 7(OOPSLA2)2023匹配度 3/10 · 论文属于程序语言与形式语义方向,为 Verilog 提供核心语言与操作语义,兼具形式化和工程实现,与静态分析/形式验证有间接关联;但它不涉及 LLM/Agent、机器学习程序、浮点分析或贝叶斯程序分析,因而与用户当前追的核心问题匹配度低。引用 8 inbox
Qinlin Chen, Nairen Zhang, Jinpeng Wang, Tian Tan, Chang Xu, Xiaoxing Ma, Yue Li
crossref: 2026-09-10

AI 速览

一句话:提出核心语言 λV,为 Verilog 给出覆盖完整特性、可执行且经测试的操作语义,并解决语义陷阱。

Verilog 是主流硬件描述语言,但其语义陷阱常困扰软硬件开发者,已有形式语义研究不够全面。本文借鉴 JavaScript/Python 核心语言思路,提出核心语言 λV,用尽可能少的语言结构刻画 Verilog 本质,并给出形式操作语义。λV 覆盖迄今最完整的语言特性,同时处理已知语义陷阱。作者用约 27,000 行 Java 实现并系统测试其全域性与与 Verilog 的一致性。作为可靠参考语义,λV 能发现真实模拟器中的语义 bug,揭示标准规范中的歧义;还可作为核心语言支持状态空间探索和 concolic execution 等工具。

问题
Verilog 的语义陷阱使软硬件开发者难以准确理解其行为,而已有形式语义研究不够全面,未能充分解决这些问题。
方法
以核心语言 λV 定义 Verilog 的形式操作语义,用尽可能少的语言结构覆盖完整语言特性,并用 Java 实现该语义。
评估
通过约 27,000 行 Java 实现,全面测试 λV 的全域性与对 Verilog 的一致性,并展示其能检测真实模拟器语义 bug 和标准规范歧义。
原文摘要(Abstract)

With the increasing need to apply modern software techniques to hardware design, Verilog, the most popular Hardware Description Language (HDL), plays an infrastructure role. However, Verilog has several semantic pitfalls that often confuse software and hardware developers. Although prior research on formal semantics for Verilog exists, it is not comprehensive and has not fully addressed these issues. In this work, we present a novel scheme inspired by previous work on defining core languages for software languages like JavaScript and Python. Specifically, we define the formal semantics of Verilog using a core language called λ V , which captures the essence of Verilog using as few language structures as possible. λ V not only covers the most complete set of language features to date, but also addresses the aforementioned pitfalls. We implemented λ V with about 27,000 lines of Java code, and comprehensively tested its totality and conformance with Verilog. As a reliable reference semantics, λ V can detect semantic bugs in real-world Verilog simulators and expose ambiguities in Verilog’s standard specification. Moreover, as a useful core language, λ V has the potential to facilitate the development of tools such as a state-space explorer and a concolic execution tool for Verilog.

链接与引用

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

BibTeX
@article{paperbot1835,
  title = {The Essence of Verilog: A Tractable and Tested Operational Semantics for Verilog},
  author = {Qinlin Chen and Nairen Zhang and Jinpeng Wang and Tian Tan and Chang Xu and Xiaoxing Ma and Yue Li},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {7},
  number = {OOPSLA2},
  year = {2023},
  doi = {10.1145/3622805}
}