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

compiler procedure that generates these scripts also supplies the height ge0 and width ge0<br />

theorems for all blocks used in the description as introduction rules (none in this case, since<br />

map only instantiates the supplied R block). This allows validity pro<strong>of</strong>s to build upon one<br />

another.<br />

The intersection theorem for map (page 87) is proved by the generated tactical:<br />

apply (simp, rule impI, simp)?<br />

apply ((<br />

done<br />

(rule allI )+,<br />

(case tac "0 ≤ n"),<br />

rule impdisj 12<strong>of</strong>4,<br />

(rule loop sum overlap|rule loop sum overlap’),<br />

(simp add: overlap0’’)+) |<br />

((rule allI )+,<br />

(case tac "0 ≤ n"),<br />

rule impdisj 34<strong>of</strong>4,<br />

rule loop sum overlap2,<br />

(simp add: overlap0’’)+) |<br />

auto intro: sum ge0 maxf ge0 sum nsub1 plusf maxf encloses)<br />

The loop sum overlap theorems are proved in the Structures theory. This theory contains<br />

theorems that match common layout structures, such as the layout <strong>of</strong> components in a loop.<br />

loop sum overlap is given as:<br />

Î(n::int) (j :: int) (j ’:: int). m ≤ n ;Îy. 0 ≤ f y =⇒<br />

((m ≤ j) ∧ (j ≤ (n − 1)) ∧ (m ≤ j’) ∧ (j’ ≤ (n − 1)) ∧ (j’ = j)) −→<br />

((sum (m, j − 1, f) + f j) ≤ sum (m, j’ − 1, f) |<br />

(sum (m, j’ − 1, f) + f j ’) ≤ sum (m, j − 1, f))<br />

Its pro<strong>of</strong> involves a number <strong>of</strong> steps and is given in Appendix B.8. The other loop sum overlap<br />

theorems are similar.<br />

Table 4.1 gives statistics on the pro<strong>of</strong>s for some <strong>of</strong> the blocks in the Prelude library and details<br />

for all <strong>of</strong> those where pro<strong>of</strong>s required manual intervention. Overall <strong>of</strong> nearly 40 blocks in the<br />

Prelude library, only 5 required manual intervention in their pro<strong>of</strong>s. Using the auto method

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

Saved successfully!

Ooh no, something went wrong!