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 3. GENERATING PARAMETERISED LIBRARIES WITH LAYOUT 56<br />

Quartz AST<br />

Lexer/<br />

Parser<br />

Preprocessed<br />

Quartz<br />

Preprocessor<br />

Quartz<br />

Input<br />

Type Processing<br />

Identifier<br />

Conversion<br />

Type<br />

Inference<br />

Overloading<br />

Resolution<br />

Full Instantiation<br />

<strong>Layout</strong> Processing<br />

Placement checks<br />

Size Inference<br />

<strong>Layout</strong><br />

<strong>Verification</strong><br />

Pebble Output<br />

Direction Processing<br />

Direction<br />

Inference<br />

Direction<br />

Concreting<br />

Directional<br />

Instantiation<br />

Pretty printer<br />

Distillation<br />

Block<br />

Analysis<br />

Translation /<br />

Unwinding<br />

<strong>Layout</strong><br />

Generation<br />

Identifier<br />

Selection<br />

Pebble AST<br />

Figure 3.16: Modified compiler architecture for compiling Quartz designs <strong>with</strong> layout information<br />

To achieve this, the Pebble 5 language must be extended to enable the evaluation <strong>of</strong> the more<br />

complex expressions that can be generated by Quartz compilation. We describe this extended<br />

Pebble as LE-Pebble (<strong>Layout</strong>-Enhanced Pebble). The expressions supported by the Pebble<br />

5 language are essentially the same as those <strong>of</strong> Quartz before the new functions were added<br />

to support layout. LE-Pebble differs in that the standard expressions must be augmented<br />

<strong>with</strong> max, maxf, sum and if expression types. In practice we will be able to eliminate these<br />

constructs when compiling from Quartz to Pebble in many cases, however in the general case<br />

they are still required.<br />

LE-Pebble does not require height() and width() functions, these will be eliminated during<br />

compilation and replaced <strong>with</strong> appropriate simple expressions.<br />

The Quartz compilation framework is extended as shown in Figure 3.16 to support the<br />

compilation <strong>of</strong> designs <strong>with</strong> layout information.<br />

3.7.1 Changes to the Type Processing Module<br />

In the standard compiler framework the type processing module carries out type checking<br />

on the Quartz input, using a derivative <strong>of</strong> the Hindley/Milner algorithm [14, 53]. The type

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

Saved successfully!

Ooh no, something went wrong!