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

This leads naturally to the definition <strong>of</strong> intersection correctness:<br />

Definition 7 For every pair <strong>of</strong> block instantiations A and B <strong>with</strong>in a block, where A is<br />

placed at (xA, yA) <strong>with</strong> size functions (widthA, heightA) and B is placed at (xB, yB) <strong>with</strong><br />

size functions (widthB, heightB), for all possible allowable input values:<br />

(xB +widthB ≤ xA) ∨ (xA+widthA ≤ xB) ∨ (yB+heightB ≤ yA) ∨ (yA+heightA ≤ yB)<br />

A naive implementation <strong>of</strong> Definition 7 has (n − 1) × (n − 2) pro<strong>of</strong> obligations. However, by<br />

exploiting symmetry this can be reduced to (n − 1) × (n − 2)/2 obligations. This still means<br />

that for blocks <strong>with</strong> a large number <strong>of</strong> components instantiated <strong>with</strong>in them a large number<br />

<strong>of</strong> pro<strong>of</strong> obligations are generated, however because Quartz designs tend to be broken up into<br />

many entities each <strong>of</strong> which only contains a few constructs this is less <strong>of</strong> a problem than it<br />

might seem at first.<br />

The generation <strong>of</strong> pro<strong>of</strong> obligations from Quartz descriptions is discussed in detail in Section<br />

4.5, however it is worth mentioning here the special case <strong>of</strong> iteration. A Quartz for loop<br />

can lead to more than one block being instantiated which can potentially intersect <strong>with</strong> one<br />

another. When generating pro<strong>of</strong> obligations for a for loop construct, an additional pro<strong>of</strong><br />

obligation therefore exists that for any two iterations <strong>of</strong> the loop, any instantiated blocks can<br />

not overlap <strong>with</strong> one another.<br />

4.4 Pro<strong>of</strong> Environment<br />

We develop a mechanised theorem proving environment for layout verification based on a<br />

shallow embedding [8] <strong>of</strong> Quartz in Higher-Order Logic. This involves the definition <strong>of</strong> the<br />

semantics <strong>of</strong> Quartz constructs in terms <strong>of</strong> HOL connectives.<br />

We develop the Quartz<strong>Layout</strong> library <strong>of</strong> theories which provides definitions for and useful<br />

theorems about a sufficient subset <strong>of</strong> Quartz to enable layout pro<strong>of</strong>s. Our embedding is quite<br />

different to the typical embeddings <strong>of</strong> hardware description languages in logic since our aim<br />

is not to engage in functional verification but rather to verify layout. This means that the

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

Saved successfully!

Ooh no, something went wrong!