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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

CHAPTER 5. SPECIALISATION 114<br />

5.2.3 Verifying Distributed Specialisation<br />

In dynamic specialisation applications after the correctness <strong>of</strong> a general circuit has been<br />

carefully determined, through whatever means, it is vital to ensure that the new circuits<br />

generated by the specialisation system are functionally correct. Since it is not possible to<br />

simulate each new circuit as it is generated the only reasonable approach is to verify the<br />

specialisation process itself.<br />

Distributed specialisation provides a clear and modular approach to the verification prob-<br />

lem. Essentially we rely on the fact that a block <strong>with</strong> specialisation code should, under all<br />

circumstances, output the same logical value - regardless <strong>of</strong> how this is computed from static<br />

or dynamic hardware inputs.<br />

This splits the overall task <strong>of</strong> verifying a specialisation procedure into many smaller and much<br />

simpler tasks: verification <strong>of</strong> each self-specialising block. In theory it is much worse to have<br />

to verify each new specialising block that is written than to verify a single procedure that<br />

specialises any circuit however in practice we would suggest that this approach is superior.<br />

It is likely that most circuits will rely on self-specialising blocks that have already been<br />

developed and thus will not require further verification. The kind <strong>of</strong> blocks likely to have<br />

their own specialisation code developed will be library blocks which will should already be<br />

subject to extensive verification effort. If high-level specialisation has been implemented for<br />

blocks in order to increase the speed <strong>of</strong> processing then this will be functionally identical to<br />

the lower-level specialisation and the lower-level pro<strong>of</strong>s can be used to verify the high-level<br />

specialisation procedure.<br />

Because specialisation is being carried out at the HDL level we do not need to concern<br />

ourselves <strong>with</strong> details <strong>of</strong> signal routing and need to perform only a high level functional<br />

verification. By dividing the verification task each individual verification goal will tend to be<br />

quite simple, to the point where we would expect automatic pro<strong>of</strong> tools to be able to achieve<br />

a high level <strong>of</strong> automation in proving self-specialising blocks automatically.<br />

Figure 5.5 illustrates simple pro<strong>of</strong>s for the partial specialisation and2 and xor2 blocks de-<br />

scribed in Figures 5.2 and 5.4. The hardware primitives have been given HOL semantics<br />

and the partial specialisation blocks described in their expanded HOL form as given by the

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

Saved successfully!

Ooh no, something went wrong!