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

a badly placed design will feature unnecessary long wire lengths <strong>with</strong> accompanying delays<br />

and impact on maximum clock frequency.<br />

While modern place and route systems based on simulated annealing can achieve excellent<br />

results for the highest performance it is still common to intervene manually in the placement<br />

<strong>of</strong> designs and much <strong>of</strong> the value <strong>of</strong> Intellectual Property Cores, such as those produced by the<br />

Xilinx Core Generator tool, is that they are carefully laid out to provide good performance.<br />

Manual placement is <strong>of</strong> particular value when a human designer can recognise and exploit an<br />

underlying regularity in a high level description.<br />

Ensuring optimal resource use and layout is particularly important for parameterised hard-<br />

ware libraries since any inefficiency will affect all designs that use them. Controlling place-<br />

ment is also desirable for reconfigurable circuits to support partial reconfiguration, since<br />

identical components at identical locations common to two different configurations do not<br />

need to be reconfigured when switching between them.<br />

The Xilinx “RLOC” placement macro allows primitive hardware components to be placed<br />

relative to each other in a structural design description. RLOCs provide a relatively low-level<br />

interface to influence the place and route system and allow the production <strong>of</strong> parameterised,<br />

fully or partially laid out designs in a conventional hardware description language like VHDL<br />

or Verilog. However, supplying explicit coordinate information for every component in a<br />

large circuit is tedious and error-prone.<br />

Relative placement, laying out components beside or below one another, has been proposed<br />

for producing designs. Systems that support this technique include Ruby [26], Lava [7] and<br />

Pebble [49, 50]. Neither the Ruby-based or Lava-based systems that have been developed<br />

maintain full parameterisation while processing layout, something that makes them unsuit-<br />

able if the desired goal is to produce parameterised library descriptions. The Pebble system<br />

does maintain parameterisation while converting relative positions into explicit coordinates<br />

however the generated layouts are not necessarily optimal and designers are restricted to<br />

using relative positioning only, <strong>with</strong>out any explicit coordinates.<br />

In this chapter we develop a system that allows the combination <strong>of</strong> relative and explicit<br />

placement information in a single framework and the compilation <strong>of</strong> these descriptions into

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

Saved successfully!

Ooh no, something went wrong!