posted on 2002-10-01, 00:00authored byMiroslav N Velev, Randal E. Bryant
We study the applicability of the logic of Positive Equality
with Uninterpreted Functions (PEUF) [2][3] to the verification
of pipelined microprocessors with very large Instruction Set
Architectures (ISAs). Abstraction of memory arrays and functional
units is employed, while the control logic of the processors
is kept intact from the original gate-level designs. PEUF is an
extension of the logic of Equality with Uninterpreted Functions,
introduced by Burch and Dill [4], that allows us to use distinct
constants for the data operands and instruction addresses
needed in the symbolic expression for the correctness criterion.
We present several techniques that make PEUF scale very efficiently
for the verification of pipelined microprocessors with
large ISAs. These techniques are based on allowing a limited
form of non-consistency in the uninterpreted functions, representing
initial memory state and ALU behaviors. Our tool
required less than 30 seconds of CPU time and 5 MB of memory
to verify a 5-stage MIPS-like pipelined processor that implements
191 instructions of various classes. The verification was
done by correspondence checking - a formal method, where a
pipelined microprocessor is compared against a non-pipelined
specification.