Verification of Parameterised FPGA Circuit Descriptions with Layout ...

Verification of Parameterised FPGA Circuit Descriptions with Layout ... Verification of Parameterised FPGA Circuit Descriptions with Layout ...

24.04.2013 Views

CHAPTER 2. BACKGROUND AND RELATED WORK 22 compile a design description into actual hardware then the operation of the hardware itself. The limits of formal methods for verification must be kept in mind – the techniques do not guarantee correct hardware but they do promise to remove or reduce error in the most error-prone stages of the process. 2.4.1 Model Checking Model checking is an automatic model based property-verification method that is widely applicable for verification tasks. Checking starts with a model description and attempts to discover whether hypotheses asserted by the user are valid in the model. In this way the model checker can verify properties of the model (such as freedom from deadlocks), or can provide counterexamples in the form of an execution trace which fails the test. Modal checking is based on temporal logic [29] which allows the expression of formulae over transition systems. Model checking is essentially the exploration of the full state space of a system and thus can be highly automated but the size of the model that can effectively be executed is limited by the practical constraints of computer processor power, memory, etc. Despite this through considerable practical work on data structures (for example BDDs [11]) circuits of considerable size have been verified using model checkers. Symbolic Trajectory Evaluation (STE) [73], for example, is a model checking approach de- signed to verify circuits with very large state spaces since it is more sensitive to the property being checked than to the size of the circuit. STE grew out of symbolic simulation and it still close to traditional simulation as a verification method. A number of commercially available tools for hardware verification through model checking are available from EDA vendors such as Cadence and Synopsis. Model checking is increasingly used in commercial circuit development as part of the verification process, although not totally replacing simulation. Model checking is particularly useful even in systems that are too large for full exhaustive checking (which is most full systems) because it finds counter- examples - state transition traces that do not meet the specification - and so can be used as part of a bug-fixing process. Simulation and model checking can be used in combination to explore a large state space, with simulation used to reach an interesting state and then

CHAPTER 2. BACKGROUND AND RELATED WORK 23 model checking used to explore exhaustively around that state. 2.4.2 Theorem Proving In theorem proving the relationship between a specification and an implementation is re- garded as a theorem that must be proved in an appropriate formalism. The broadest interpretation of theorem proving can encompass most methods of formal ver- ification including checking boolean equivalence and model checking, however it is generally applied to mathematic proofs of the properties of systems. The chief advantage of this ap- proach is the formal proof established through this process can be justified at every step and thus the overall soundness of the process is ensured. However the size and complexity of even relatively simple theorems means that proof by a human is often a long and difficulty process. Mechanised theorem-proving systems can be used to aid the proof of large theorems. Despite the name, these systems are generally better regarded as proof assistants than provers, since they usually require considerable human intervention to steer them toward their goal. The- orem provers can often automate trivial stages of proofs leaving only the difficult parts for humans to tackle and many can automatically explore possible proofs as a tree search using a variety of different algorithms. Theorem provers and the field of automated deduction in general have a long history, dating back to Robinson’s demonstration of resolution as a basis for mechanised deduction [70] in 1965. One of the earliest applications of theorem proving was to geometric problems, as we apply it in this thesis, with Gelernter’s geometry-theorem proving machine [19, 20] in 1959. Computational geometry [67] is an active field in its own right that specifically tackles the kind of proofs we consider in Chapter 4. However, geometry-specific algorithms are too restrictive in the type of equations they can process as we discuss later in this thesis.

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

model checking used to explore exhaustively around that state.<br />

2.4.2 Theorem Proving<br />

In theorem proving the relationship between a specification and an implementation is re-<br />

garded as a theorem that must be proved in an appropriate formalism.<br />

The broadest interpretation <strong>of</strong> theorem proving can encompass most methods <strong>of</strong> formal ver-<br />

ification including checking boolean equivalence and model checking, however it is generally<br />

applied to mathematic pro<strong>of</strong>s <strong>of</strong> the properties <strong>of</strong> systems. The chief advantage <strong>of</strong> this ap-<br />

proach is the formal pro<strong>of</strong> established through this process can be justified at every step and<br />

thus the overall soundness <strong>of</strong> the process is ensured. However the size and complexity <strong>of</strong><br />

even relatively simple theorems means that pro<strong>of</strong> by a human is <strong>of</strong>ten a long and difficulty<br />

process.<br />

Mechanised theorem-proving systems can be used to aid the pro<strong>of</strong> <strong>of</strong> large theorems. Despite<br />

the name, these systems are generally better regarded as pro<strong>of</strong> assistants than provers, since<br />

they usually require considerable human intervention to steer them toward their goal. The-<br />

orem provers can <strong>of</strong>ten automate trivial stages <strong>of</strong> pro<strong>of</strong>s leaving only the difficult parts for<br />

humans to tackle and many can automatically explore possible pro<strong>of</strong>s as a tree search using<br />

a variety <strong>of</strong> different algorithms.<br />

Theorem provers and the field <strong>of</strong> automated deduction in general have a long history, dating<br />

back to Robinson’s demonstration <strong>of</strong> resolution as a basis for mechanised deduction [70] in<br />

1965. One <strong>of</strong> the earliest applications <strong>of</strong> theorem proving was to geometric problems, as<br />

we apply it in this thesis, <strong>with</strong> Gelernter’s geometry-theorem proving machine [19, 20] in<br />

1959. Computational geometry [67] is an active field in its own right that specifically tackles<br />

the kind <strong>of</strong> pro<strong>of</strong>s we consider in Chapter 4. However, geometry-specific algorithms are too<br />

restrictive in the type <strong>of</strong> equations they can process as we discuss later in this thesis.

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

Saved successfully!

Ooh no, something went wrong!