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

B<br />

C<br />

A<br />

D<br />

Figure 4.20: The surround combinator<br />

Appendix C.4 gives the Quartz description and correctness pro<strong>of</strong> for this combinator’s layout.<br />

Validity <strong>of</strong> height and width expressions are proved by auto configured to expand let defin-<br />

itions and using Theorem 11 (z aleq bc). Containment pro<strong>of</strong>s can also most be completed<br />

purely by auto however one requires the use <strong>of</strong> a variant <strong>of</strong> Theorem 9.<br />

The true value <strong>of</strong> the verification methodology comes into play <strong>with</strong> the intersection pro<strong>of</strong>s.<br />

Once again, these are proved entirely automatically using purely auto - however the error that<br />

was discovered in the layout was discovered because an intersection theorem was not proved.<br />

The error was that C was naively placed <strong>with</strong> its y co-ordinate defined by heightA+heightD<br />

however this did not take into account <strong>of</strong> the fact that it was possible for it to overlap block E<br />

under some circumstances. A simple correction to define the y co-ordinate as the maximum<br />

<strong>of</strong> the height <strong>of</strong> E or A and D was sufficient to produce a valid layout.<br />

This is still a relatively simple layout for this combinator. A more complex layout description<br />

could use conditionals to compare the heights and widths <strong>of</strong> the various blocks and adjust<br />

their relative placement accordingly (for example, the B and E blocks could be aligned <strong>with</strong><br />

the bottom <strong>of</strong> the combinator as a whole rather than the bottom <strong>of</strong> the A block if they have<br />

a greater height than A).<br />

E

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

Saved successfully!

Ooh no, something went wrong!