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

irregular positions can be eliminated using primitive-level specialisation.<br />

High-level specialisation can fit our definition <strong>of</strong> distributed specialising - blocks operating<br />

independently <strong>with</strong>out centralised control. In some cases it may be desirable to provide<br />

explicit control over the kind <strong>of</strong> specialisation engaged in and this can be done by adding extra<br />

parameters. The Quartz overloading mechanism can be used to overload a parameterised<br />

block <strong>with</strong> a non-parameterised one which instantiates the self-specialising block <strong>with</strong> a<br />

default set <strong>of</strong> parameters – the same method we used in Section 3.6 to give blocks multiple<br />

layout interpretations.<br />

5.5 Specialising a Multiplier<br />

We will demonstrate high level specialisation <strong>with</strong> a simple example: a parallel multiplier<br />

circuit. Since one <strong>of</strong> the main advantages <strong>of</strong> specialising designs in Quartz rather than using<br />

synthesis tool optimisations is that we are able to specialise and compact placed designs<br />

we will take this opportunity to evaluate whether any performance benefit is gained from<br />

compaction.<br />

5.5.1 Parallel Multiplier Implementation<br />

Before we can specialise a multiplier circuit it is necessary to describe a multiplier circuit in<br />

Quartz. Since we are interested in evaluating the real performance <strong>of</strong> the specialised circuit,<br />

we will design a multiplier for a real <strong>FPGA</strong> architecture - Xilinx Virtex-II.<br />

A parallel multiplier operates using a shift-add methodology that is similar to the way binary<br />

multiplication is performed on paper. A multiplier performing the operation x × y can<br />

be described as a grid-shaped circuit <strong>with</strong> x values flowing vertically and y values flowing<br />

horizontally. Each functional cell must perform a the multiplication operation for one bit<br />

<strong>of</strong> x and one bit <strong>of</strong> y, producing sum and carry outputs in a similar way to a ripple adder,<br />

except that these outputs will be connected to additional processing cells <strong>with</strong> only the final<br />

stage producing an output.<br />

The Virtex-II architecture contains specific components <strong>with</strong>in each half-slice to implement

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

Saved successfully!

Ooh no, something went wrong!