UCLID5 Verification Condition: correspondence invariant
CodeArtifactThe `correspondence` invariant is a UCLID5 verification condition used in the formal verification of pipelined Y86-64 microprocessors. It checks that the state produced by PIPE execution is consistent with the state produced by SEQ execution after the required flushing sequence and under the permitted initial pipeline-state restrictions.
WIKI
Overview
The correspondence invariant is the UCLID5 representation of a correctness condition for verifying that a pipelined Y86-64 processor model (PIPE) behaves consistently with a sequential processor model (SEQ). The cited source identifies Figure 14 as a "Verification Condition" and states that the check ensures PIPE operation is consistent with SEQ operation. [C1]
invariant correspondence :
(
step > nflush+3
&& pipe_state_ok0
) ==>
((S_stat_b0 == SAOK ==> S_pc_a == S_pc_b0)
&& S_rf_a == S_rf_b0
&& S_cc_a == S_cc_b0
&& S_mem_a == S_mem_b0
&& S_stat_a == S_stat_b0) ||
((S_stat_b0 == SAOK ==> S_pc_a == S_pc_b1)
&& S_rf_a == S_rf_b1
&& S_cc_a == S_cc_b1
&& S_mem_a == S_mem_b1
&& S_stat_a == S_stat_b1);
NEIGHBORHOOD
No graph connections found for this entity yet. It may appear in future ingestion runs.
explore full graph →