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

Pro<strong>of</strong> Pointwise, by expanding the definition <strong>of</strong> surround to give the proposition:<br />

∃l2, t2, b2, r2. l ; map n B ; l2 ∧ t ; map m B ; t2 ∧ (l2, t2) ; grid m,n A ; (b2, r2)<br />

∧ b2 ; D ; b ∧ r2 ; E ; r =<br />

[map n B, map m B] ; grid m,n A ; [map m C, map n C]<br />

Then by expanding the definitions <strong>of</strong> series and parallel composition.<br />

The placement co-ordinates <strong>of</strong> the C block in this combinator are particularly worthy <strong>of</strong><br />

interest. The max function is used to describe the y co-ordinate that C is placed at, this<br />

ensures that the layout is truly general and independent <strong>of</strong> the sizes <strong>of</strong> each block. The<br />

verification <strong>of</strong> this combinator’s layout is discussed further in Section 4.7.<br />

3.6.2 Combinators<br />

Another key problem is that the map n R combinator block itself has been given a layout<br />

interpretation - <strong>with</strong> its elements arranged vertically. However, in this example we require<br />

both a vertically and horizontally arranged map . One possibility is to require designers to<br />

choose between vmap and hmap blocks, however this reduces the link between the original<br />

pure-functional description and the placed version. It also ignores the fact that most <strong>of</strong> the<br />

time the map combinator is used in manner where vertical layout is the most appropriate.<br />

The Quartz overloading mechanism can be used to handle circumstances where multiple<br />

blocks are required which have the same basic functional properties but differ in some other<br />

way. Figure 3.15 illustrates how this system can be used to provide a map n R combinator<br />

which has a default vertical layout but can also be configured to be laid out horizontally.<br />

A simple usage <strong>of</strong> map n R will be resolved to refer to the default case map block which then<br />

instantiates the general combinator <strong>with</strong> the specific default layout (vertical, for map). If<br />

horizontal layout is desired then the fully flexible map block can be invoked specifically by<br />

adding an additional orientation parameter to the instantiation.<br />

In Figure 3.15 we have used an integer parameter to control the orientation <strong>of</strong> the map block<br />

however if the Quartz type system were extended to support enumerated types then this could

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

Saved successfully!

Ooh no, something went wrong!