FVO — Formal Verification Online
Lesson 5.5 · Exploring New RTL with Formal

Sharper questions with assertions

Once the covers look right, write down the designer's assumptions about the design as assertions. For the lift these are the safety properties in the wrapper:

AssertionDesigner's intuitionExpected
a_door_not_movingNever move with the door openproven (the FSM encodes it)
a_no_wrapNever try to go above floor 3 or below floor 0proven
a_one_floorEach MOVE changes the floor by exactly one in the travel directionproven
a_open_for_callThe door only opens for a callproven
a_clear_servedA call is only forgotten when that floor is servedproven

a_no_wrap is a nice example of formal checking something a designer "knows" is impossible. The 2-bit floor + 1 would silently wrap from 3 to 0 — but the controller only moves up when there is a call above it. The proof confirms that reasoning for every possible sequence of button presses.

Was this page helpful?

Tip: select any text on the page before clicking Report and it will be quoted in your report.