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 6. LAYOUT CASE STUDIES 151<br />

6.6 Matrix Multiplier<br />

Our final circuit example is a matrix multiplier circuit. Matrix multiplication is a simple<br />

operation that has applications in many scientific computing applications as well as branches<br />

<strong>of</strong> digital signal processing. The multiplication <strong>of</strong> two matrices requires a large number <strong>of</strong><br />

multiplication and addition operations and there is considerable potential for parallelisation,<br />

making a hardware implementation attractive.<br />

Band matrix multipliers have previously been described as systolic grid-shaped circuits using<br />

Ruby [44, 68]. These descriptions were difficult to relate to a simple specification <strong>of</strong> matrix<br />

multiplication as a set <strong>of</strong> multiply-accumulate operations. We will describe our system in a<br />

clearer manner using a new combinator that describes 3D circuits.<br />

We are motivated to create new higher-dimensional combinators by the realisation that a<br />

combinator <strong>with</strong> a certain dimension is appropriate for processing data <strong>with</strong> a particular<br />

dimension. For example, a one-dimensional array such as a row can process one dimensional<br />

data, while a grid can process two dimensional data (or two one-dimensional data streams).<br />

However, the confusion <strong>with</strong> mapping an operation such as matrix multiplication onto a grid<br />

arises from the fact that the input data is two two-dimensional data sources and the output is<br />

two dimensional, while the grid itself only has 4 1-dimensional interface points in its domain<br />

and range. If we can describe higher dimensional combinators, such as cubical structures,<br />

then potentially we can describe circuits that operate on this kind <strong>of</strong> data much more clearly.<br />

An important point to note is that we are talking about multi-dimensional circuit descrip-<br />

tions, which are not the same as multi-dimensional circuits. Three dimensional <strong>FPGA</strong>s<br />

have been proposed [2, 17, 40, 51], however four dimensional and higher-dimensional FP-<br />

GAs pose interesting implementation difficulties. An alternative is to attempt to realise<br />

higher-dimensional <strong>FPGA</strong> circuitry on standard two dimensional silicon. Schmit proposes<br />

drawing on three and four dimensional topologies to increase the wiring density on stan-<br />

dard two-dimensional silicon [72]. What we propose is designing combinators which describe<br />

multi-dimensional circuits but which we expect to realise on two-dimensional silicon.<br />

Any higher-dimensional array can be flattened onto a 2D grid in a number <strong>of</strong> ways. We<br />

propose higher-dimensional combinators that have an implicit layout interpretation on the

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

Saved successfully!

Ooh no, something went wrong!