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 4. VERIFYING CIRCUIT LAYOUTS 93<br />

R (3)<br />

R (2)<br />

R (1)<br />

R (0)<br />

(a)<br />

imap 4 R<br />

R (0) R (1) R (2) R (3)<br />

(b) irow 4 R<br />

Figure 4.13: Index operators<br />

R (3,0) R (3,1) R (3,2)<br />

R (2,0) R (2,1) R (2,2)<br />

R (1,0) R (1,1) R (1,2)<br />

R (0,0) R (1,0) R (2,0)<br />

(c) igrid 3,4 R<br />

The full definitions and pro<strong>of</strong>s for some <strong>of</strong> the prelude library blocks are given in Appen-<br />

dix C.1. This appendix omits all wiring blocks, where pro<strong>of</strong>s are usually trivial and many<br />

blocks where the block structures are very similar and thus the pro<strong>of</strong>s identical to others<br />

(such as col, which is very similar to row ).<br />

4.7 Proving Other Combinators<br />

While the prelude library consists <strong>of</strong> some extremely useful constructs, most <strong>of</strong> the blocks<br />

in it are quite simple. In Chapter 6 we will investigate the effectiveness <strong>of</strong> our verification<br />

framework when applied to full circuit descriptions, however we are also interested in the<br />

ease <strong>with</strong> which we can prove other useful libraries <strong>of</strong> combinators.<br />

4.7.1 Index Operators<br />

The index operators are versions <strong>of</strong> some <strong>of</strong> the standard Quartz prelude blocks which pa-<br />

rameterise their blocks <strong>with</strong> an integer parameter. For example, the index-map combinator<br />

imap n R is similar to map n R except the it instantiates instances <strong>of</strong> R parameterised <strong>with</strong><br />

0, 1, . . .,n − 1 as shown in Figure 4.13(a). Operations such as irow n R (Figure 4.13(b)) and<br />

igrid n R (Figure 4.13(c)) correspond to rown R and grid n R respectively.<br />

The index operators are particularly important examples for our system because the extra<br />

parameterisation <strong>of</strong> the R block could lead to the size <strong>of</strong> each instance <strong>of</strong> R being different.

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

Saved successfully!

Ooh no, something went wrong!