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

domain<br />

(a) Domain & range convention<br />

range<br />

z<br />

y<br />

x<br />

(b) Dimensions<br />

Figure 6.16: Representing three dimensional blocks<br />

2D <strong>FPGA</strong> but can also be given alternative layout interpretations through manipulation<br />

using correctness-preserving transformations.<br />

6.6.1 A 3D “cube” Combinator<br />

The standard layout interpretation <strong>of</strong> a Quartz block is as a four sided tile, <strong>with</strong> two sides<br />

assigned to the domain and two to the range. The assignment <strong>of</strong> sides to domain and range<br />

and the division into two sides is a convention only. It is important to realise that any<br />

convention is sufficient providing it is consistently applied and we can bear this in mind<br />

when choosing a convention for visualising the three dimensional blocks which make up a<br />

cubical circuit.<br />

Figure 6.16(a) illustrates how we divide the six sides <strong>of</strong> a cube into a block’s domain and<br />

range. Visualised in this way the block’s top, back and left sides form the domain while the<br />

front, bottom and right form the range. We describe block domains and ranges as tuples <strong>of</strong><br />

different dimensions, so the range is described <strong>of</strong> a tuple <strong>of</strong> (xs, ys, zs) while the range is a<br />

tuple <strong>of</strong> (zs, ys, xs). We use the signal xs to describe signals that are travelling along the<br />

x-axis, ys to mean the signals travelling along the y-axis etc. Note that we have extended<br />

the convention <strong>of</strong> reversing the order <strong>of</strong> the sides from the 2D case to this 3D case. In the<br />

n-dimensional case a block’s range dimensions should always be expressed in reverse order<br />

from its domain dimensions.<br />

Each side <strong>of</strong> the cube is itself a two dimensional array <strong>of</strong> values. This requires some convention<br />

<strong>of</strong> assigning dimensions, which we do as shown in Figure 6.16(b). This means that the<br />

domain and range signals are assigned the dimensions <strong>of</strong>: xs[z][y], ys[z][x] and zs[y][x]. This

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

Saved successfully!

Ooh no, something went wrong!