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 7. CONCLUSION AND FUTURE WORK 169<br />

common hardware constructs, however it contains several flaws which are not present in<br />

our approach. Firstly, by limiting itself to “conventional” arithmetic and logical expressions<br />

the Pebble system can not infer conditional branches in block sizes and is forced to select<br />

the maximum possible size <strong>of</strong> conditionals – something which can introduce inefficiency since<br />

circuits may not be placed as compactly as possible. Compaction <strong>of</strong> circuits <strong>with</strong> conditionals<br />

can be achieved using partial evaluation, however this requires that the final design is not<br />

parameterised in any variables which appear in conditional expressions.<br />

With the Pebble system layout correctness is achieved by design, through reliance on simple<br />

beside and below placement and the use <strong>of</strong> block size inference. However the Pebble system<br />

does not meet our own, more stringent, definition <strong>of</strong> correctness – for example, it may generate<br />

incorrect layouts when the size <strong>of</strong> each iteration <strong>of</strong> a loop is different. The insistence on using<br />

relative placement is also limiting and means that pathological cases such as the irregular<br />

grid example we described in Section 4.7 can not be described.<br />

On the other hand, the Pebble system does have some advantages over our framework. Firstly,<br />

it is much simpler and easier to implement in other languages, such as VHDL. By limiting<br />

itself to basic arithmetic and boolean expressions hardware may not be laid out completely<br />

optimally, however the expressions it does generate are simpler than those generated by the<br />

Quartz system which <strong>of</strong>ten contain conditionals or maxf/sum functions which have not been<br />

optimised away by the limited number <strong>of</strong> optimisations applied by the Quartz compiler.<br />

Finally, by incorporating beside and below as language constructs the Pebble system can<br />

express n-ary placement relationships more easily than can be done <strong>with</strong> Quartz. Quartz<br />

combinators are blocks like any other and have a fixed arity so can only be parameterised<br />

by a certain number <strong>of</strong> other blocks. Combinators can be parameterised by block vectors<br />

however this creates an unwanted type constraint that all blocks must have the same type.<br />

The Pebble system is designed to support placement <strong>of</strong> iteratively described circuit descrip-<br />

tions and does not detail how recursive blocks should be handled. This also causes problems<br />

for the compilation <strong>of</strong> Quartz layouts (see Section 3.7.4) however our general infrastructure<br />

does support recursive size functions.

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

Saved successfully!

Ooh no, something went wrong!