Behavioral Consistency of C and Verilog Programs Using Bounded Model Checking

Abstract

We present an algorithm that checks behavioral consistency between an ANSI-C program and a circuit given in Verilog using Bounded Model Checking. Both the circuit and the program are unwound and translated into a formula that is satisfiable if and only if the circuit and the code disagree. The formula is then checked using a SAT solver. We are able to translate C programs that make use of side effects, pointers, dynamic memory allocation, and loops with conditions that cannot be evaluated statically. We describe experimental results on various reactive present an algorithm that checks behavioral consistency between an ANSI-C program and a circuit given in Verilog using Bounded Model Checking. Both the circuit and the program are unwound and translated into a formula that is satisfiable if and only if the circuit and the code disagree. The formula is then checked using a SAT solver. We are able to translate C programs that make use of side effects, pointers, dynamic memory allocation, and loops with conditions that cannot be evaluated statically. We describe experimental results on various reactive circuits and programs, including a small processor given in Verilog and its Instruction Set Architecture given in ANSI-C.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
May 01, 2003
Accession Number
ADA461052

Entities

People

  • Daniel Kroening
  • Edmund M. Clarke
  • Karen Yorav

Organizations

  • Carnegie Mellon University

Tags

DTIC Thesaurus Topics

  • Abstracts
  • Algorithms
  • Computer Programming
  • Computer Science
  • Computers
  • Computing System Architectures
  • Consistency
  • Decoding
  • Equations
  • Instruction Set Architecture
  • Instructions
  • Iterations
  • Language
  • Notation
  • Side Effects
  • Specifications
  • Standards

Fields of Study

  • Computer science

Readers

  • Computer Science.
  • Integrated Circuit Design and Technology.
  • Operations Research