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

IN T ER :: Block → Bool<br />

IN T ER block bid d1 . . . dn ∼ r { τ1 id1 . . . τp idp. stmts } =<br />

∀d1 . . . dn r. S ∅stmts ⇒ SIN T ER ′ ∅ stmts<br />

SIN T ER ′ φ :: StmtListStmtList → Bool<br />

SIN T ER ′ φ stmt1 . . . stmtn =<br />

let c1 = SIN T ERφstmt1 in<br />

let c2 = SIN T ERφ∪{stmt1}stmt2 in<br />

.<br />

let cn = SIN T ER φ∪{stmt1,...,stmtn−1}stmtn in<br />

c1 ∧ . . . ∧ cn<br />

SIN T ERφ :: StmtList → Stmt → Bool<br />

SIN T ERφ assert e str = True<br />

SIN T ERφ e1 = e2 = True<br />

SIN T ERφ if e { stmts1 } else { stmts2 } =<br />

if e then SIN T ER ′ φstmts1 else SIN T ER ′ φstmts2 SIN T ERφ for i = e1..e2 { stmts } =<br />

∀ i. e1 ≤ i ≤ e2 −→ SIN T ER ′ φstmts ∧<br />

∀ i j. e1 ≤ i ≤ e2 ∧ e1 ≤ j ≤ e2 ∧ i = j −→ SIN T ER ′ {i↦→j}stmtsstmts<br />

SIN T ERφ a ; blkinst ; b at (x1, y1) =<br />

let (x2, y2) = (x1 + Width(a ; blkinst ; b), y1 + Height(a ; blkinst ; b)) in<br />

IN T ERSECT ′ (x1,y1),(x2,y2)φ<br />

IN T ERSECT ′ (x1,y1),(x2,y2) :: ((Exp × Exp) × (Exp × Exp)) → StmtList → Bool<br />

IN T ERSECT ′ (x1,y1),(x2,y2) stmt1 . . . stmtn =<br />

let c1 = IN T ERSECT (x1,y1),(x2,y2)stmt1 in<br />

.<br />

.<br />

let cn = IN T ERSECT (x1,y1),(x2,y2)stmtn in<br />

c1 ∧ . . . ∧ cn<br />

IN T ERSECT (x1,y1),(x2,y2) :: ((Exp × Exp) × (Exp × Exp)) → Stmt → Bool<br />

IN T ERSECT (x1,y1),(x2,y2) assert e str = True<br />

IN T ERSECT (x1,y1),(x2,y2) e1 = e2 = True<br />

IN T ERSECT (x1,y1),(x2,y2) if e { stmts1 } else { stmts2 } =<br />

if e then IN T ERSECT (x1,y1),(x2,y2)stmts1<br />

else IN T ERSECT (x1,y1),(x2,y2)stmts2<br />

IN T ERSECT (x1,y1),(x2,y2) for i = e1..e2 { stmts } =<br />

∀ i. e1 ≤ i ≤ e2 −→ IN T ERSECT (x1,y1),(x2,y2)stmts<br />

IN T ERSECT (x1,y1),(x2,y2) a ; blkinst ; b at (x ′ 1, y ′ 1) =<br />

let (x ′ 2 , y′ 2 ) = (x′ 1 + Width(a ; blkinst ; b), y′ 1 + Height(a ; blkinst ; b)) in<br />

(x ′ 2 ≤ x1) ∨ (x2 ≤ x ′ 1 ) ∨ (y′ 2 ≤ y′ 1 ) ∨ (y2 ≤ y ′ 1 )<br />

Figure 4.11: Generating intersection theorems

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

Saved successfully!

Ooh no, something went wrong!