24.04.2013 Views

Verification of Parameterised FPGA Circuit Descriptions with Layout ...

Verification of Parameterised FPGA Circuit Descriptions with Layout ...

Verification of Parameterised FPGA Circuit Descriptions with Layout ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

CHAPTER 2. BACKGROUND AND RELATED WORK 21<br />

specification.<br />

The aim <strong>of</strong> automated verification is to have this formal verification process carried out auto-<br />

matically, or to provide substantial machine assistance allowing users to carry out verification<br />

more easily.<br />

Formal verification, however conducted, usually begins <strong>with</strong> the construction <strong>of</strong> a specifica-<br />

tion. This provides a high level description <strong>of</strong> the expected behaviour <strong>of</strong> the system being<br />

described given a particular sequence <strong>of</strong> inputs. In order to be useful, a formal specification<br />

should be constructed that is an unambiguous description in some formalism. Logic is a<br />

popular formalism for describing hardware functionality and logics such as first-order logic,<br />

higher-order logic and modal/temporal logic have all been used to describe hardware speci-<br />

fications. The choice <strong>of</strong> formalism depends on the style <strong>of</strong> verification to be performed (for<br />

example, what properties are to be verified). It is also necessary to build an implementation<br />

model <strong>of</strong> the system. For some systems, this may be the hardware description <strong>of</strong> the system<br />

itself but in others it may be necessary to apply some abstraction in order to produce a<br />

usable model.<br />

The key to verification is to relate these mathematical models at different levels <strong>of</strong> abstrac-<br />

tion. A set <strong>of</strong> desired mathematical expressions proved in the specification model should be<br />

shown to hold in the implementation model. The correctness <strong>of</strong> the original specification<br />

is absolutely essential to formal verification since <strong>with</strong>out this it is not possible to make<br />

meaningful statements about the implementation model.<br />

One popular means <strong>of</strong> relating specification and implementation models is model checking.<br />

This approach has key benefits (such as its ease <strong>of</strong> use) but quickly becomes computational<br />

intractable as the size <strong>of</strong> the hardware to be verified increases. An alternative is theorem<br />

proving, where the formal semantics <strong>of</strong> hardware descriptions are shown to be equivalent<br />

through a chain <strong>of</strong> mathematical reasoning. Theorem pro<strong>of</strong>s can be extremely large and<br />

complex, so mechanised theorem-proving tools are <strong>of</strong>ten used to help construct them.<br />

A fundamental point that must be laboured is that formal methods can not guarantee the<br />

correctness <strong>of</strong> the final product, only <strong>of</strong> the design process. At some level all formal methods<br />

involve assumptions about the correct behaviour <strong>of</strong> underlying layers - if not the tools that

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!