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 5. SPECIALISATION 108<br />

is carried out either by the designer or automatically by synthesis tools. The process can<br />

encompass a range <strong>of</strong> low level logic optimisations such as constant propagation and dead<br />

logic removal (eliminating logic that computes a result which is never used). However, the<br />

increasing role <strong>of</strong> <strong>FPGA</strong>s and their potential for run-time reconfiguration raises the possibility<br />

<strong>of</strong> dynamic specialisation - changing the circuit at run-time.<br />

At present the most common use <strong>of</strong> run-time reconfiguration is to swap different pre-synthesised<br />

library circuits on and <strong>of</strong>f a chip. However, dynamic specialisation can be used to reconfigure<br />

an <strong>FPGA</strong> to carry out the same operation but to perform it in some way that is better - for<br />

example using fewer logic resources or being able to run at a higher clock frequency.<br />

Dynamic specialisation becomes a useful option for circuits which do not have static inputs<br />

but do have one or more inputs that changes at a much lower rate than the others. A good<br />

example is a cryptographic processor which may have two inputs: an encryption key and<br />

plaintext data to encrypt. If the key changes much less frequently than the plaintext then<br />

the decryption circuit can usefully be specialised for that key value, producing a design that<br />

is more efficient.<br />

The usefulness <strong>of</strong> dynamic specialisation depends on the trade-<strong>of</strong>f between the expected<br />

benefit to be gained from specialisation and the time taken to generate a specialised design<br />

and reconfigure the <strong>FPGA</strong>. This trade-<strong>of</strong>f is not necessarily one purely <strong>of</strong> time, since it could<br />

be that the desire is to free logic area on the <strong>FPGA</strong> for other uses rather than purely making<br />

the design run faster.<br />

Dynamic specialisation poses a particular difficulty from the point <strong>of</strong> view <strong>of</strong> design verifi-<br />

cation. Standard verification methodologies based on simulation (or even model checking <strong>of</strong><br />

the finished design) are not going to be any use for verifying the correctness <strong>of</strong> designs which<br />

are being produced in the order <strong>of</strong> seconds rather than days, weeks or months - and very<br />

probably <strong>with</strong>out any human intervention. This suggests that it is appropriate to employ<br />

formal verification and theorem proving for dynamic specialisation to verify the equivalence<br />

<strong>of</strong> a specialised version to the general-purpose design.<br />

Some success has been reported <strong>with</strong> this approach in verifying a procedure to partially<br />

evaluate a multiplier circuit using higher-order logic [80]. This partial evaluation procedure

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

Saved successfully!

Ooh no, something went wrong!