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

occasionally. Manual size expressions are still necessary, in order to describe the size <strong>of</strong><br />

primitive blocks or blocks which should reserve more space on the <strong>FPGA</strong> than they actually<br />

require – for example, so that larger designs can be swapped into the same area using run-<br />

time reconfiguration. However, the present verification framework requires the verification<br />

<strong>of</strong> the validity and containment <strong>of</strong> size expressions generated from the inference algorithm<br />

and these pro<strong>of</strong> goals could be mostly eliminated if pro<strong>of</strong> <strong>of</strong> the correctness <strong>of</strong> the inference<br />

algorithm itself could be built into the Isabelle embedding 1 .<br />

That Quartz directional abstraction complicates layout reasoning is a slightly unexpected<br />

result since it is generally regarded as simplifying functional reasoning. The use <strong>of</strong> the<br />

definite description operator to define the values <strong>of</strong> internal signals using a block’s predicate<br />

as generated by the semantic function Bβ makes it difficult to use the actual values <strong>of</strong> these<br />

signals (unless they are defined very simply). It is possible that the mechanism for resolving<br />

Quartz directions could be coded in Isabelle and used to extract the real values however<br />

since the algorithm is incomplete it is difficult to see how the necessary properties could be<br />

established formally.<br />

Despite this, internal signals do not tend to cause problems most <strong>of</strong> the time because it is<br />

not actually necessary to resolve their value. Since Quartz is one <strong>of</strong> the few languages <strong>with</strong><br />

directional abstraction this would also not be an issue if the verification framework were<br />

applied to another language.<br />

We have also shown how the layout infrastructure can be used as part <strong>of</strong> a system <strong>of</strong> dis-<br />

tributed self-specialising Quartz blocks to transparently specialise hardware when one or<br />

more input values are known at compile-time. The limitations <strong>of</strong> our current framework for<br />

carrying out distributed specialisation are discussed in Section 5.3 however even <strong>with</strong> these<br />

limitations it can be a useful tool for carrying out some simple optimisations on generated<br />

hardware <strong>with</strong>out requiring any significant designer effort.<br />

HDL-level specialisation is particularly important for placed hardware libraries because it<br />

allows designs to be compacted as logic is eliminated from circuits. This is not something<br />

that can be achieved <strong>with</strong> low level specialisation <strong>of</strong> the synthesised design because placement<br />

constraints are only parameterised in the high-level description.<br />

1 It would not be possible to totally eliminate all containment pro<strong>of</strong> obligations, since it still remains<br />

necessary to prove that no block exists to the left or below <strong>of</strong> (0, 0)

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

Saved successfully!

Ooh no, something went wrong!