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 79<br />

Theorem 17 ∀ b t f. (∀y. 0 ≤ f y) ⇒ 0 ≤ sum(b, t, f)<br />

We also prove theorems about the inter-relationship between these two functions, such as:<br />

Theorem 18 ∀ b t f. (∀ x. 0 ≤ fx) ⇒ maxf(b, t, λk. sum(b, k, f)) = sum(b, t, f)<br />

Theorem 19<br />

∀ b t f. b ≤ t ∧ (∀ x. 0 ≤ f x) ⇒<br />

maxf(b, t + 1, λk. sum(b, k, f)) = maxf(b, t, λk. sum(b, k, f) + f(t + 1))<br />

Pro<strong>of</strong>s <strong>of</strong> all these theorems and many others about maxf and sum are listed in Appendix B.7.<br />

4.5 Generating Theories <strong>of</strong> Quartz Programs<br />

Given that we are using a shallow embedding <strong>of</strong> Quartz in Isabelle/HOL, we can not reason<br />

about Quartz descriptions directly. Instead, we must translate Quartz descriptions into<br />

semantic descriptions in Higher-Order Logic.<br />

4.5.1 Compiler Architecture<br />

When in verification mode the Quartz compiler translates from Quartz descriptions to Is-<br />

abelle/HOL during compilation. This allows the Quartz compiler to resolve all overloading<br />

prior to generating HOL descriptions - t a vital step since our Quartz<strong>Layout</strong> system does not<br />

support overloading.<br />

Figure 4.7 shows the functionality <strong>of</strong> the Quartz compiler when in layout verification mode.<br />

<strong>Layout</strong> verification is divided between the <strong>Layout</strong> Processing and Isabelle modules. The<br />

<strong>Layout</strong> Processing module converts Quartz programs into their HOL semantic definitions<br />

and generates theorems that must be proved to verify the correctness <strong>of</strong> a layout. These<br />

HOL definitions and pro<strong>of</strong> obligations are generated in an abstract data format which is then<br />

passed to the Isabelle module.

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

Saved successfully!

Ooh no, something went wrong!