Results 1 -
2 of
2
Architectural Descriptions for FPGA Circuits
- IEEE Computer Society
, 1995
"... FPGA-based synthesis tools require information about behaviour and architectural to make effective use of the limited number of cells typically available. A hardware description language which models layout and behaviour is used to elegantly specify circuit architecture. This source level informatio ..."
Abstract
-
Cited by 20 (9 self)
- Add to MetaCart
FPGA-based synthesis tools require information about behaviour and architectural to make effective use of the limited number of cells typically available. A hardware description language which models layout and behaviour is used to elegantly specify circuit architecture. This source level information is used to efficiently translate circuit descriptions onto FPGA devices. 1 Introduction FPGAs offer many advantages for many kinds of applications and present new opportunities for system design [DeHon 94], but their main disadvantages are the limited number of cells available on a single chip and the difficulty of performing global communication. It is important that the available cells are utilized efficiently . One way to do this is to design circuits with a low level schematic editor and manually configure the cells and routing elements. Although this method allows the realization of highly optimised hardware, it has several shortcomings. Design at the gate level is error prone, and c...
Embedded Languages for Describing and Verifying Hardware
, 2001
"... Abstract Lava is a system for designing, specifying, verifying and implementing hardware. It is embedded in the functional programming language Haskell, which means that hardware descriptions are first-class objects in Haskell. We are thus able to use modern programming language features, such as hi ..."
Abstract
-
Cited by 17 (2 self)
- Add to MetaCart
Abstract Lava is a system for designing, specifying, verifying and implementing hardware. It is embedded in the functional programming language Haskell, which means that hardware descriptions are first-class objects in Haskell. We are thus able to use modern programming language features, such as higher-order functions, polymorphism, type classes and laziness, in hardware descriptions. We present two rather different versions of Lava. One version realises the embedding by using monads to keep track of the information specified in a hardware description. The other version uses a new language construct, called observable sharing, which eliminates the need for monads so that descriptions are much cleaner. Adding observable sharing to Haskell is a non-conservative extension, meaning that some properties of Haskell are lost. We thus investigate to what extent we are still allowed to use a normal Haskell compiler or interpreter. We also introduce an embedded language for specifying properties. The use of this language is two-fold. On the one hand, we can use it to specify and later formally verify properties of the described circuits. On the other hand, we can use it to specify and randomly test properties of normal Haskell programs. As a bonus, since hardware descriptions are embedded in Haskell, we can also use it to test our circuit descriptions.

