The Essence of Verilog

Qinlin Chen, Nairen Zhang, Jinpeng Wang,Tian Tan,Chang Xu,Xiaoxing Ma,Yue Li

Proceedings of the ACM on Programming Languages(2023)

引用 0|浏览20
暂无评分
摘要
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 lambda(V), which captures the essence of Verilog using as few language structures as possible. lambda(V) not only covers the most complete set of language features to date, but also addresses the aforementioned pitfalls. We implemented lambda(V) with about 27,000 lines of Java code, and comprehensively tested its totality and conformance with Verilog. As a reliable reference semantics, lambda(V) can detect semantic bugs in real-world Verilog simulators and expose ambiguities in Verilog's standard specification. Moreover, as a useful core language, lambda(V) has the potential to facilitate the development of tools such as a state-space explorer and a concolic execution tool for Verilog.
更多
查看译文
关键词
Core Languages,Hardware Description Languages,Semantics,Verilog
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要