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

still vital to ensure that the layout is correct.<br />

While close examination by a human designer is an good method <strong>of</strong> finding many bugs in<br />

layout descriptions, it is no substitute for a formal assurance <strong>of</strong> correctness. In the develop-<br />

ment <strong>of</strong> the example designs illustrated in Chapter 6 there have been several occasions where<br />

Quartz descriptions which appeared on first inspection to be correctly laid out have turned<br />

out to contain errors.<br />

The hierarchical decomposition that is typical <strong>of</strong> Quartz circuit designs can be exploited so<br />

that sections <strong>of</strong> the a circuit can be proved correct independently <strong>of</strong> each other and then<br />

these pro<strong>of</strong>s integrated into a pro<strong>of</strong> <strong>of</strong> correctness for the entire design. However, the type<br />

<strong>of</strong> pro<strong>of</strong>s involved in formally verifying a layout description are not particularly well suited<br />

to hand-pro<strong>of</strong> by the designer, or indeed a different pro<strong>of</strong> expert.<br />

<strong>Layout</strong>s <strong>of</strong> large numbers <strong>of</strong> components leads to long theorems requiring pro<strong>of</strong> - but the<br />

constituents <strong>of</strong> these theorems are <strong>of</strong>ten either trivial or quite simple. These two factors<br />

combine to make it likely that “pen and paper” pro<strong>of</strong> <strong>of</strong> these theorems is likely to be<br />

particularly unreliable unless extreme care is taken.<br />

Furthermore, there is a high level <strong>of</strong> pro<strong>of</strong> re-use between different circuit descriptions, by<br />

exploiting similar properties <strong>of</strong> arithmetic operators, binary relations and Quartz size expres-<br />

sion functions. This suggests that layout verification may be a good candidate for the use <strong>of</strong><br />

mechanised pro<strong>of</strong> tools.<br />

In this chapter we describe a pro<strong>of</strong> infrastructure based on Higher-Order Logic which elimi-<br />

nates the possibility <strong>of</strong> human error in pro<strong>of</strong>s and demonstrates a high level <strong>of</strong> automation.<br />

4.2 Choice <strong>of</strong> Formalism<br />

There are two main possible approaches to verifying Quartz layouts. The first is to verify the<br />

output circuit description for each compiled circuit, either in the form <strong>of</strong> parameterised/hier-<br />

archical VHDL or in netlist format. <strong>Verification</strong> <strong>of</strong> placed netlists is effectively carried out<br />

by the synthesis tools that generate the <strong>FPGA</strong> bitstream since they will raise an error if an<br />

incorrect layout is specified, however this is not <strong>of</strong> much use if the desire is to provide an

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

Saved successfully!

Ooh no, something went wrong!