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

and then used to combine blocks <strong>with</strong> the explicit co-ordinates hidden. Some examples <strong>of</strong><br />

full circuits described and laid out using this framework can be found in Chapter 6.<br />

The Quartz layout infrastructure is, to our knowledge, unique in supporting both iterative and<br />

recursive constructs and the compilation <strong>of</strong> designer-specified combinators into parameterised<br />

output.<br />

Systems based around Ruby [26] and Lava [7] have been used to exploit the geometric in-<br />

terpretation <strong>of</strong> higher-order combinators to generate placed circuits, however both generate<br />

flattened netlists not parameterised output. Neither support for loop iteration constructs,<br />

although this is somewhat less relevant since they are not being compiled into a form that<br />

relies heavily on iteration (VHDL).<br />

Pebble [49, 50] has been extended <strong>with</strong> below and beside relative placement language con-<br />

structs and a procedure for the conversion from relative to explicit co-ordinates has been<br />

formally analysed. This approach allows the generation <strong>of</strong> parameterised output and ensures<br />

that components can not overlap, however it is somewhat limiting in that it does not support<br />

mixing absolute and relative placement information in a single description and can not de-<br />

scribe pathological examples such as the irregular grid arrangement illustrated in Chapter 1.<br />

Furthermore, the generated placements are not necessarily as compact as possible, although<br />

this can be improved through the use <strong>of</strong> partial evaluation. The Pebble approach <strong>of</strong> building<br />

relative placement constructs into the language rather than allowing them to be user-defined<br />

as Quartz permits through its higher-order combinators is inherently more limited, although<br />

necessarily so since Pebble is not a high-order language.

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

Saved successfully!

Ooh no, something went wrong!