DeepAI AI Chat
Log In Sign Up

Formal Verification of Arithmetic RTL: Translating Verilog to C++ to ACL2

by   David M. Russinoff, et al.

We present a methodology for formal verification of arithmetic RTL designs that combines sequential logic equivalence checking with interactive theorem proving. An intermediate model of a Verilog module is hand-coded in Restricted Algorithmic C (RAC), a primitive subset of C augmented by the integer and fixed-point register class templates of Algorithmic C. The model is designed to be as abstract and compact as possible, but sufficiently faithful to the RTL to allow efficient equivalence checking with a commercial tool. It is then automatically translated to the logic of ACL2, enabling a mechanically checked proof of correctness with respect to a formal architectural specification. In this paper, we describe the RAC language, the translation process, and some techniques that facilitate formal analysis of the resulting ACL2 code.


page 1

page 2

page 3

page 4


Deductive Verification of Programs with Underspecified Semantics by Model Extraction

We present a novel and well automatable approach to formal verification ...

Properties of the Hebrew Calendar

We describe an ACL2 program that implements the Hebrew calendar and the ...

Datapath Verification via Word-Level E-Graph Rewriting

Formal verification of datapath circuits is challenging as they are subj...

Automated Formal Equivalence Verification of Pipelined Nested Loops in Datapath Designs

In this paper, we present an efficient formal approach to check the equi...

Theorem and Algorithm Checking for Courses on Logic and Formal Methods

The RISC Algorithm Language (RISCAL) is a language for the formal modeli...

Michael John Caldwell Gordon (FRS 1994), 28 February 1948 – 22 August 2017

Michael Gordon was a pioneer in the field of interactive theorem proving...