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.

Appendix C<br />

Placed Combinator Libraries<br />

This appendix contains the Quartz descriptions and layout correctness pro<strong>of</strong>s for some Quartz<br />

libraries. The wide range <strong>of</strong> wiring blocks in the Quartz prelude library have been omitted,<br />

since they are all defined to have size 0 × 0, as have many combinators which have similar<br />

functions to the one shown. For example, the snd block is structurally very similar to the fst<br />

block and has been omitted, as has the col block which is very similar to row.<br />

C.1 Prelude Library<br />

C.1.1 fst<br />

/∗∗ Apply block R to the first element <strong>of</strong> a tuple ∗/<br />

block fst (block R ‘a ∼ ‘b) (‘a i1, ‘c i2) ∼ (‘b o1, ‘c o2)<br />

attributes {<br />

height = height(i1 ;R ; o1).<br />

width = width(i1 ;R ;o1).<br />

layout−proved.<br />

} {<br />

o2 = i2.<br />

i1 ; R ; o1 at (0,0).<br />

}<br />

theory fst = Quartz<strong>Layout</strong>:<br />

section {* Function definitions *}<br />

consts<br />

struct:: "((’t276=>’t277=>bool,’t276=>’t277=>int)block)=>(’t276*’t284)=>(’t277*’<br />

t284)=>bool"<br />

207

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

Saved successfully!

Ooh no, something went wrong!