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

4.3 Specifying Correctness<br />

In order to formally verify anything it is necessary to state the requirements for correctness.<br />

In the case <strong>of</strong> circuit layouts we define correctness in terms <strong>of</strong> validity, containment and<br />

intersection.<br />

4.3.1 Validity<br />

Validity is a property <strong>of</strong> the size expressions (height and width) for a block:<br />

Definition 5 A block size expression is valid if, for all allowable values <strong>of</strong> all variables in<br />

the expression, it always evaluates to a value greater than or equal to zero.<br />

∀x1, x2, . . . , xn. assertions(x1, x2, . . .,xn) ⇒ 0 ≤ f(x1, x2, . . . , xn)<br />

This requirement may appear trivial and indeed its pro<strong>of</strong> is <strong>of</strong>ten easy, however it is an<br />

extremely important requirement. Blocks <strong>with</strong> size expressions that evaluate to negative<br />

values will usually render otherwise correct layouts useless. A common pro<strong>of</strong> obligation for<br />

other correctness requirements is <strong>of</strong> the form:<br />

sizeA ≤ sizeA + sizeB<br />

This is provable only if it can be assumed that sizeB ≥ 0.<br />

The implication in Definition 5 is also significant. It states that it is only necessary for size<br />

expressions to be valid for inputs that meet the preconditions specified in the design (via<br />

assertions). For example, a size expression n × 2 is valid provided that n ≥ 0.<br />

4.3.2 Containment<br />

The size <strong>of</strong> a block is a bounding box defined as a rectangle <strong>with</strong> bottom left co-ordinates (0, 0)<br />

and the top right corner <strong>with</strong> co-ordinates as defined by the block’s size expressions. The size<br />

<strong>of</strong> a block can be specified manually and can be regarded as a specification that a block must

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

Saved successfully!

Ooh no, something went wrong!