Word Level Predicate Abstraction and Refinement for Verifying RTL Verilog

SEI Report
This paper proposes to use predicate abstraction for verifying RTL Verilog, a technique successfully used for software verification.
Publisher

Software Engineering Institute

Abstract

Model checking techniques applied to large industrial circuits suffer from the state space explosion problem. A major technique to address this problem is abstraction. The most commonly used abstraction technique for hardware verification is localization reduction, which removes latches that are not relevant to the property. However, localization reduction fails to reduce the size of the model if the property actually depends on most of the latches. 

This paper proposes to use predicate abstraction for verifying RTL Verilog, a technique successfully used for software verification. The main challenge when using predicate abstraction is the discovery of suitable predicates. We propose to use weakest pre-conditions of Verilog statements in order to obtain new predicates during abstraction refinement. This technique has not been applied to circuits before. On benchmarks taken from an industrial microprocessor, we successfully verified safety properties with more than 32,000 latches in the cone of influence. We compare the performance of our technique with a modern model checker that implements localization reduction.

Cite This SEI Report

Kroening, D., Sharygina, N., & Clarke, E. (2005, June 1). Word Level Predicate Abstraction and Refinement for Verifying RTL Verilog. Retrieved August 17, 2026, from https://www.sei.cmu.edu/library/word-level-predicate-abstraction-and-refinement-for-verifying-rtl-verilog/.

@techreport{kroening_2005,
author={Kroening, Daniel and Sharygina, Natasha and Clarke, Edmund},
title={Word Level Predicate Abstraction and Refinement for Verifying RTL Verilog},
month={Jun},
year={2005},
institution={Software Engineering Institute, Carnegie Mellon University},
url={https://www.sei.cmu.edu/library/word-level-predicate-abstraction-and-refinement-for-verifying-rtl-verilog/},
note={Accessed: 2026-Aug-17}
}

Kroening, Daniel, Natasha Sharygina, and Edmund Clarke. "Word Level Predicate Abstraction and Refinement for Verifying RTL Verilog." Software Engineering Institute, Carnegie Mellon University. Software Engineering Institute, June 1, 2005. https://www.sei.cmu.edu/library/word-level-predicate-abstraction-and-refinement-for-verifying-rtl-verilog/.

D. Kroening, N. Sharygina, and E. Clarke, "Word Level Predicate Abstraction and Refinement for Verifying RTL Verilog," Software Engineering Institute, Carnegie Mellon University. Software Engineering Institute, 1-Jun-2005 [Online]. Available: https://www.sei.cmu.edu/library/word-level-predicate-abstraction-and-refinement-for-verifying-rtl-verilog/. [Accessed: 17-Aug-2026].

Kroening, Daniel, Natasha Sharygina, and Edmund Clarke. "Word Level Predicate Abstraction and Refinement for Verifying RTL Verilog." Software Engineering Institute, Carnegie Mellon University, Software Engineering Institute, 1 Jun. 2005. https://www.sei.cmu.edu/library/word-level-predicate-abstraction-and-refinement-for-verifying-rtl-verilog/. Accessed 17 Aug. 2026.

Kroening, Daniel; Sharygina, Natasha; & Clarke, Edmund. Word Level Predicate Abstraction and Refinement for Verifying RTL Verilog. Software Engineering Institute. 2005. https://www.sei.cmu.edu/library/word-level-predicate-abstraction-and-refinement-for-verifying-rtl-verilog/