Reveal: A Formal Verification Tool for Verilog Designs

  • Authors:
  • Zaher S. Andraus;Mark H. Liffiton;Karem A. Sakallah

  • Affiliations:
  • Department of Electrical Engineering and Computer Science, University of Michigan, Ann Arbor MI 48109-2122;Department of Electrical Engineering and Computer Science, University of Michigan, Ann Arbor MI 48109-2122;Department of Electrical Engineering and Computer Science, University of Michigan, Ann Arbor MI 48109-2122

  • Venue:
  • LPAR '08 Proceedings of the 15th International Conference on Logic for Programming, Artificial Intelligence, and Reasoning
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

We describe the Reveal formal functional verification system and its application to four representative hardware test cases. Reveal employs counterexample-guided abstraction refinement, or CEGAR, and is suitable for verifying the complex control logic of designs with wide datapaths. Reveal performs automatic datapath abstraction yielding an approximation of the original design with a much smaller state space. This approximation is subsequently used to verify the correctness of control logic interactions. If the approximation proves to be too coarse, it is automatically refined based on the spurious counterexample it generates. Such refinement can be viewed as a form of on-demand "learning" similar in spirit to conflict-based learning in modern Boolean satisfiability solvers. The abstraction/refinement process is iterated until the design is shown to be correct or an actual design error is reported. The Reveal system allows some user control over the abstraction and refinement steps. This paper examines the effect on Reveal's performance of the various available options for abstraction and refinement. Based on our initial experience with this system, we believe that automating the verification for a useful class of hardware designs is now quite feasible.