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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

CHAPTER 3. GENERATING PARAMETERISED LIBRARIES WITH LAYOUT 37<br />

so that, for example, block R can be positioned explicitly at an <strong>of</strong>fset <strong>of</strong> the (unknown)<br />

size <strong>of</strong> block S. We do this by providing height() and width() functions that can be used in<br />

expressions to explicitly refer to the size <strong>of</strong> a particular block.<br />

Quartz combinators can therefore be used to provide relative placement capabilities though<br />

they are themselves described in terms <strong>of</strong> explicit coordinates. This approach has the ad-<br />

vantage that layout and function can be described by the same code and in many cases a<br />

geometrically sensible layout is a natural by-product <strong>of</strong> the functional description.<br />

The Quartz layout system provides an architecture independent abstract homogeneous grid<br />

<strong>of</strong> resources. This allows the layout infrastructure to be developed in an architecture indepen-<br />

dent manner and layout information can be translated into the specific format required for<br />

the target architecture during compilation. The assumption that the available resources are<br />

arranged in a homogeneous grid is an approximation to the complexity <strong>of</strong> modern <strong>FPGA</strong>s<br />

where the device fabric will typically also include specialised resources such as embedded<br />

RAM or fast multipliers however it is sufficiently close to reality for practical use.<br />

The Quartz layout grid is composed <strong>of</strong> elements <strong>of</strong> uniform size 1 × 1, so all positions on the<br />

grid can be addressed using purely integer co-ordinates. This is, once again, an approximation<br />

to <strong>FPGA</strong> structure where a single computational block has multiple resources, for example<br />

the Xilinx Virtex-II slice illustrated in Chapter 2 includes a look-up table and also other<br />

logic gates and multiplexers. How this simplified grid is used to describe real circuits will be<br />

demonstrated in Chapter 6.<br />

3.3 Requirements<br />

Figure 3.1 shows the different Quartz statements. Each type <strong>of</strong> statement produces particular<br />

kinds <strong>of</strong> structures <strong>with</strong> specific layout requirements. Our layout infrastructure must be able<br />

to support all <strong>of</strong> these structures. It is important to note that what we are essentially<br />

discussing how the size <strong>of</strong> each statement can be described since if the explicit coordinate<br />

system is to support fully relative placement then it is necessary to be able to place statements<br />

relative to the size <strong>of</strong> other statements. The same approach can be extended to whole blocks<br />

and each block should be given a size function, parameterised in the same way as the block

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

Saved successfully!

Ooh no, something went wrong!