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 2. BACKGROUND AND RELATED WORK 13<br />

is leading to considerable interest in methods <strong>of</strong> describing hardware at higher and higher<br />

levels <strong>of</strong> abstraction. Even though circuits generated from high level descriptions may be<br />

less efficient and have worse performance than those that have been subject to painstaking<br />

low level effort this is <strong>of</strong>ten less important than the easier development and shorter time to<br />

market it allows.<br />

One approach to high level description <strong>of</strong> hardware is to compile imperative languages directly<br />

into hardware. Imperative programming languages specify explicit manipulations <strong>of</strong> the state<br />

<strong>of</strong> a computer system through a series <strong>of</strong> instructions and are commonly used by computer<br />

programmers to write s<strong>of</strong>tware applications. Unlike in VHDL or other declarative languages,<br />

the designer can concentrate on describing an algorithm in a similar style to a conventional<br />

programming language.<br />

A number <strong>of</strong> imperative languages have been proposed for hardware description. Handel-C<br />

[12] is a high level imperative language designed to be compiled into hardware. Available as<br />

a commercial system, Handel-C is based on ANSI-C and has extensions provided specifically<br />

for hardware development including explicit declaration <strong>of</strong> data widths, parallel processing<br />

and communication between parallel elements. Cobble [82] is another imperative language<br />

that allows declarative blocks to be used <strong>with</strong>in imperative programs, allowing the benefits<br />

<strong>of</strong> low-level and high-level programming styles to be exploited.<br />

Another approach that has been taken is to compile higher-level system models directly into<br />

hardware. The theoretical development <strong>of</strong> digital signal processing algorithms in particular<br />

is <strong>of</strong>ten conducted using mathematical tools like Matlab and systems have been presented for<br />

converting Matlab models into <strong>FPGA</strong> implementations automatically [36, 57, 58]. Other work<br />

includes graphical tools for composing hardware from block diagrams [56] and compilation<br />

<strong>of</strong> a domain-specific language for networking applications into <strong>FPGA</strong>s [37].<br />

SAFL [54] is a functional language for high-level hardware description. Functional pro-<br />

gramming treats computation as the evaluation <strong>of</strong> mathematical functions, emphasising the<br />

evaluation <strong>of</strong> expressions rather than the execution <strong>of</strong> commands. Pure functional languages<br />

encourage the use <strong>of</strong> formal reasoning about programs and are also characterised by the use<br />

<strong>of</strong> higher order functions - functions which take other functions as arguments. Functional<br />

languages are <strong>of</strong>ten considered to have significant advantages over imperative languages [28]

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

Saved successfully!

Ooh no, something went wrong!