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 7. CONCLUSION AND FUTURE WORK 166<br />

have been unable to implement our system for generating parameterised placed VHDL from<br />

Pebble, although we are confident <strong>of</strong> its design and do not foresee any difficulties <strong>with</strong> this.<br />

There is currently no support for generating parameterised Pebble when Quartz blocks have<br />

recursive size expressions. There are a number <strong>of</strong> possible solutions to this problem that we<br />

have discussed, though we have not implemented them. The only totally general solution<br />

would be to allow Pebble expressions to contain recursive functions, which is not difficult<br />

although it is slightly untidy. We would recommend that recursive size expressions should be<br />

eliminated where possible by attempting to compute the transitive closure <strong>of</strong> the recursion.<br />

The verification framework also appears to work well for a wide variety <strong>of</strong> descriptions, rang-<br />

ing from library combinators to real circuits such as the median filter described in Section 6.3.<br />

However, we have learnt some important lessons about the relative ease <strong>of</strong> verifying different<br />

kinds <strong>of</strong> Quartz structures.<br />

<strong>Circuit</strong>s described iteratively can generally be verified relatively easily using the extensive<br />

range <strong>of</strong> theorems in the Quartz<strong>Layout</strong> library developed for maxf and sum. The theorems<br />

in the Structures theory which can be applied to easily prove intersection theorems for loops<br />

are particularly useful since the pro<strong>of</strong> goals tend to be quite complicated but are all <strong>of</strong> the<br />

same basic structure.<br />

<strong>Verification</strong> <strong>of</strong> recursively defined Quartz blocks is less automated. The compiler’s trans-<br />

lation into Isabelle recdef recursive definitions is correct but the definitions are not easily<br />

utilised by the theorem prover. We have had much more success <strong>with</strong> defining blocks using<br />

primitive recursion – however this is not a completely general approach. Pro<strong>of</strong>s for recursive<br />

size functions require induction, however generally after this the automated pro<strong>of</strong> tools are<br />

effective at completing the pro<strong>of</strong>.<br />

Two important lessons have been learnt from the verification <strong>of</strong> our example circuits. Firstly,<br />

that the size inference process produces better results than expected and the need for manual<br />

specification <strong>of</strong> size functions is much less than was initially presumed. Secondly, that the<br />

relational nature <strong>of</strong> Quartz seriously complicates layout reasoning in some cases.<br />

The success <strong>of</strong> the size inference process is such that for most real circuits it is likely that<br />

size inference will be used almost all <strong>of</strong> the time, <strong>with</strong> manual size expressions only specified

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

Saved successfully!

Ooh no, something went wrong!