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.