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 4. VERIFYING CIRCUIT LAYOUTS 67<br />

assurance that the generated parameterised VHDL library (Chapter 3) is correct.<br />

<strong>Verification</strong> <strong>of</strong> the parameterised VHDL would be possible but would have to be substantially<br />

repeated for each new circuit. The alternative approach is to attempt to verify the original<br />

Quartz description. Quartz combinators could be verified once and then this pro<strong>of</strong> could be<br />

used in the pro<strong>of</strong>s <strong>of</strong> all circuit descriptions that use this combinator. This approach <strong>of</strong>fers a<br />

higher degree <strong>of</strong> reuse <strong>of</strong> pro<strong>of</strong>s, which is extremely beneficial.<br />

Since Quartz is a high-order language, we have selected Higher-Order Logic (HOL) as the<br />

appropriate formalism for our pro<strong>of</strong> system. This enables us to model most <strong>of</strong> the features<br />

<strong>of</strong> Quartz descriptions and thus to conduct verification at the level closest to the original<br />

circuit description. The use <strong>of</strong> HOL for functional verification <strong>of</strong> hardware is well understood<br />

[8, 52], although the level <strong>of</strong> automation that can be achieved is <strong>of</strong>ten not that great.<br />

Other formalisms, such as the Boyer-Moore logic [9] used by the ACL2 theorem prover<br />

[34], are simpler and can be more highly automated however they are less general. Using a<br />

first-order logic makes it impossible to prove properties <strong>of</strong> Quartz higher-order combinators,<br />

only about their instantiated instances i.e. while we might wish to prove the correctness <strong>of</strong><br />

the map n R combinator we would be restricted to separately proving the correctness <strong>of</strong> the<br />

map n add and map n inv blocks.<br />

In this chapter we develop a system based around the embedding <strong>of</strong> HOL in the Isabelle<br />

[61] generic theorem prover. Isabelle/HOL [55] is a well developed Isabelle object logic and<br />

comes <strong>with</strong> many useful definitions and theorems.<br />

Our infrastructure is not specific to Isabelle, or to the Isabelle version <strong>of</strong> HOL, nor are we<br />

limited to using HOL for pro<strong>of</strong>s. The layout verification stage <strong>of</strong> the Quartz compiler is<br />

designed to be invoked on polymorphic, high-order circuit descriptions however it could be<br />

invoked later during compilation to produce output for a different formalism. We separate<br />

the generation <strong>of</strong> pro<strong>of</strong> obligations from the interface to the Isabelle theorem prover and it<br />

would be easy to provide an interface to a different pro<strong>of</strong> tool.

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

Saved successfully!

Ooh no, something went wrong!