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

Verifying <strong>Circuit</strong> <strong>Layout</strong>s<br />

In this chapter we describe how Quartz circuit layouts can be verified mechanically. Sec-<br />

tion 4.1 introduces our basic approach and Section 4.2 explains why Higher-Order Logic was<br />

selected as an good formalism. Section 4.3 discusses how we will define “correctness” <strong>of</strong> a lay-<br />

out. Section 4.4 describes the theoretical developments that provide a pro<strong>of</strong> environment for<br />

Quartz layouts, while Section 4.5 describes how the Quartz compiler is adapted to generate<br />

definitions and pro<strong>of</strong> obligations automatically. Section 4.6 demonstrates the application <strong>of</strong><br />

our verification framework to the Prelude library and describes how automatically-generated<br />

scripts are honed based on these examples, while in Section 4.7 we apply the system to a<br />

range <strong>of</strong> other combinators. Section 4.8 discusses the strengths and weaknesses <strong>of</strong> our system<br />

and Section 4.9 summarises this chapter.<br />

4.1 Introduction<br />

Using explicit co-ordinates to define the placement <strong>of</strong> components in parameterised circuit<br />

descriptions can be complex and error-prone. The Quartz layout system based on giving<br />

layout interpretations to higher-order combinators substantially reduces the scope for errors<br />

since the task <strong>of</strong> describing a circuit layout is divided hierarchically into smaller and simpler<br />

components. Combinators <strong>with</strong> layout interpretations can be written once and used many<br />

times, so while the placement co-ordinates <strong>with</strong>in each combinator are relatively simple, it is<br />

65

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

Saved successfully!

Ooh no, something went wrong!