Volume 30, Number 1, 5-28, DOI: 10.1007/s10703-006-0020-3

Verification of SpecC using predicate abstraction

Edmund Clarke, Himanshu Jain and Daniel Kroening

From the issue entitled "Special Issue on MEMOCODE 2004; Guest Editors: Constance Heitmeyer and Jean-Pierre Talpin"

View Related Documents

Abstract

Languages such as SystemC or SpecC offer modeling of hardware and whole system designs at a high level of abstraction. However, formal verification techniques are widely applied in the hardware design industry only for low level designs, such as a netlist or RTL. The higher abstraction levels offered by these new languages are not yet amenable to rigorous, formal verification. This paper describes how to apply predicate abstraction to SpecC system descriptions. The technique supports the concurrency constructs offered by SpecC. It models the bit-vector semantics of the language accurately, and can be used both for property checking and for checking refinement together with a traditional low-level design given in Verilog.

Keywords  Verification - System level design - Predicate abstraction

This paper is an extended version of [29].
This research was sponsored by the Gigascale Systems Research Center (GSRC) under contract no. 9278-1-1010315, the National Science Foundation (NSF) under grant no. CCR-9803774, the Office of Naval Research (ONR), the Naval Research Laboratory (NRL) under contract no. N00014-01-1-0796, the Army Research Office (ARO) under contract no. DAAD19-01-1-0485, and the General Motors Collaborative Research Lab at CMU. The views and conclusions contained in this document are those of the author and should not be interpreted as representing the official policies, either expressed or implied, of GSRC, NSF, ONR, NRL, ARO, GM, or the U.S. government.

Fulltext Preview

Image of the first page of the fulltext document