Modeling Algorithms in SystemC and ACL2

  title={Modeling Algorithms in SystemC and ACL2},
  author={John W. O'Leary and David M. Russinoff},
  booktitle={International Workshop on the ACL2 Theorem Prover and Its Applications},
We describe the formal language MASC, based on a subset of SystemC and intended for modeling algorithms to be implemented in hardware. By means of a special-purpose parser, an algorithm coded in SystemC is converted to a MASC model for the purpose of documentation, which in turn is translated to ACL2 for formal verification. The parser also generates a SystemC variant that is suitable as input to a high-level synthesis tool. As an illustration of this methodology, we describe a proof of… 

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

This paper describes the RAC language, the translation process, and some techniques that facilitate formal analysis of the resulting ACL2 code, enabling a mechanically checked proof of correctness with respect to a formal architectural specification.

Engineering a Formal, Executable x86 ISA Simulator for Software Verification

This work describes a formal, executable model of the x86 instruction-set architecture and presents design decisions made during model development to optimize both validation and verification, i.e., efficiency of both simulation and reasoning.

Using ACL2 in the Design of Efficient, Verifiable Data Structures for High-Assurance Systems

The Intermediate Verification Language for the toolchain features code generation to mainstream programming languages, as well as GPU-based and hardware-based realizations, and ACL2 is used to develop the efficient yet verifiable data structure design.

Python facilitates the rapid prototyping and hw/sw verification of processor centric SoCs for FPGAs

This paper shows how SysPy can also facilitate high-level functional verification of a SoC when used as an Architectural Description Language (ADL), helping a designer make decisions about key architectural features early in the design phase.

Verified Hardware/Software Co-Assurance: Enhancing Safety and Security for Critical Systems

  • D. Hardin
  • Computer Science
    2020 IEEE International Systems Conference (SysCon)
  • 2020
This work describes how the Russinoff-O’Leary Restricted Algorithmic C (RAC) toolchain is used to translate the authors' JSON filter to ACL2, present proofs of correctness for its associated data types, and describe validation and performance results obtained through the use of concrete test vectors.



Function extraction

Implementation and Application of Functional Languages

Asil is described, an AOP EDSL for instrumenting ActionScript bytecode, that is firmly based on well-known functional programming technique to provide abstraction mechanisms that other AOP languages tend to lack.

Bit-Blasting ACL2 Theorems

This work explains how to use GL, a framework for proving finite ACL2 theorems with BDD- or SAT-based reasoning, which makes it unnecessary to deeply understand why a property is true, and automates the process of admitting it as a theorem.

Towards a Mathematical Science of Computation

The prospects for a mathematical science of computation is discussed and it is shown that from Newton’s law of gravitation and his laws of motion, one can deduce that the planetary orbits obey Kepler's laws.

Formal Verification of Floating-Point RTL at AMD Using the ACL 2 Theorem Prover

The methodology is based on a mechanical translator from a synthesizable subset of the Verilog hardware description language to the formal logic of the ACL2 theorem prover, and its application to the floating-point units of commercial microprocessors produced by Advanced Micro Devices, Inc.

Russinoff: A Formal Theory of Register-Transfer Logic and Computer Arithmetic

    SystemC Language Reference Manual

    • IEEE Computer Society
    • 2011

    A Formal Theory of Register-Transfer Logic and Computer Arithmetic

    • A Formal Theory of Register-Transfer Logic and Computer Arithmetic

    C-to-Silicon Compiler User's Guide

    • Cadence Design Systems
    • 2012

    SystemC Language Reference Manual Available at http://homes

    • IEEE Computer Society
    • 2011