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

verification. The modified Quartz compiler ensures that this occurs (see Section 4.5).<br />

Otherwise the HOL type system is generally suitable for modelling the Quartz type sys-<br />

tem. Quartz boolean types can be represented as HOL booleans and Quartz integers can<br />

be modelled as HOL integers. Isabelle/HOL also defines a theory <strong>of</strong> natural numbers <strong>with</strong><br />

an extensive range <strong>of</strong> useful theorems and we will make some use <strong>of</strong> this when modelling<br />

recursive blocks, however in general we use the integer type which is a more accurate model<br />

and supports true arithmetic.<br />

Quartz tuples are represented using the HOL Cartesian product type, which defines tuples as<br />

nested pairs. This means that the types <strong>of</strong> (a, b, c) and (a, (b, c)) are considered equivalent,<br />

however this is not a major problem since this is more permissive than the Quartz type<br />

system and designs must already type-check using the Quartz compiler’s type processor.<br />

The Types theory defines the types <strong>of</strong> wires and <strong>of</strong> vectors. Wires are named types only, <strong>with</strong><br />

no properties. This is a useful model for our purposes since we are actually not interested<br />

in wiring in any way and the values on wires in a generated circuit are not relevant to its<br />

compilation.<br />

Vectors are defined as functions from integers to some other type. In this model a two<br />

dimensional Quartz vector wire a[m][n] is given type int → int → wire. There are significant<br />

limitations to this model [52], essentially arising from the fact that it is not possible to<br />

identify that a vector has a fixed number <strong>of</strong> elements and if each element <strong>of</strong> two vectors are<br />

equivalent then the vectors themselves are equivalent. However, this theoretical model is<br />

quite sufficient for layout pro<strong>of</strong>s although it would likely be limiting when reasoning about<br />

functional properties.<br />

4.4.2 Blocks and Block Instantiation<br />

There are three characteristics <strong>of</strong> blocks that are <strong>of</strong> interest when reasoning about Quartz<br />

layouts: their semantic interpretation, width expression and height expression. It is necessary<br />

to model the meaning <strong>of</strong> blocks as well as purely their height and width expressions since<br />

the two are inter-related, <strong>with</strong> size expressions possibly involving internal signals defined in<br />

a block.

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

Saved successfully!

Ooh no, something went wrong!