

Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
The importance of formal verification in hardware/soc design, introducing floyd's method and hoare logic. It also covers the limitations of these methods and the use of owicki-gries logic and temporal logic for concurrent and reactive systems.
Typology: Study notes
1 / 2
This page cannot be seen from the preview
Don't miss anything!


Why ‘formal’ verification?
Introducing formalism into the design is very useful. It can be used to checks rare case not necessarily encountered in simulation. It also provides a methodological approach for design (documenting assumptions,etc)
Floyd’s method
Label control points with invariant assertions. Proof: All assertions preserved by program transitions
Formal semantics through assertions.
Hoare Logic
This enhances Floyd’s method by introducing a termination condition.
Hoare Triple:
{P} S {Q} If P (precondition) holds and S terminates, then Q (post condition) holds.
Axiom for assignment:
Example: {y ≥ 0} x=y {x ≥ 0}
Compositional Rules
Sequential composition of S1 and S2 (both have to be terminating) is,
{P1} S1 {P2} S2 {P3}
For concurrent programs, sequential composition is not sufficient. Also Hoare Logic is insufficient to apply for non-terminating systems (eg: reactive systems like hardware).
Concurrent Programs
Uses shared resources (eg. cache protocol)
Owicki-Gries Logic:
No notion of time has been used so far. Eg: Q will eventually hold (not necessarily in critical sections)
We do not resort to FOL for this expressive power, because of the undecidability of FOL.
Eg: ∀ t ≥ 0:input(x,t) ⇒ ∃ t' ≥ t : output(y,t')
t can be 25 digits. To verify the above property, we need to count all these cases.
We can use Temporal Logic, which is an intermediate between propositional logic and FOL.
Temporal Logic works very well with hardware, since the latter is reactive, concurrent and finite (states).