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

y_in<br />

x_in<br />

x_in<br />

y_in<br />

x_in<br />

x_in<br />

R R<br />

R R<br />

R R<br />

R R<br />

z_out<br />

z_in<br />

R<br />

R<br />

R<br />

R<br />

x_out<br />

x_out<br />

y_out<br />

x_out<br />

x_out<br />

y_out<br />

Figure 6.18: A cubical circuit can be viewed as a column <strong>of</strong> grids.<br />

each other, however the wiring is somewhat complex as the z dimension connections need to<br />

be routed through the x and y connections between the two grids.<br />

We can do this by “folding” the extra dimensional signals into a tuple <strong>with</strong> one <strong>of</strong> the<br />

“standard” grid dimensions and extracting them as needed. This can be done using the<br />

zip n,m language construct which converts an n-tuple <strong>of</strong> vectors into an m-dimensional vector<br />

<strong>of</strong> tuples. A pre-requisite for this operation is that the vectors are the same size in the<br />

dimensions that are being zipped and it turns out that there is only one valid way <strong>of</strong> carrying<br />

this out.<br />

Figure 6.19 shows how a cube combinator can be written in terms <strong>of</strong> col and grid. Note the<br />

re-arrangement <strong>of</strong> the domain tuple into a pair <strong>of</strong> a tuple <strong>of</strong> (x d, y d) and z d while the<br />

same has been done to the range tuple. Pairs are actually extremely powerful mechanisms -<br />

they allow us to split signals into a part to perform operations on and a part to ignore. The<br />

conversion <strong>of</strong> the 3-tuple <strong>of</strong> domain/range signals into a pair allows the use <strong>of</strong> the fst and snd<br />

blocks to control the applications <strong>of</strong> the zip 2 block - we will show how this transformation<br />

can be included in the description shortly.

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

Saved successfully!

Ooh no, something went wrong!