Functional Design Using Behavioural and Structural Components

  • Authors:
  • Richard Sharp

  • Affiliations:
  • -

  • Venue:
  • FMCAD '02 Proceedings of the 4th International Conference on Formal Methods in Computer-Aided Design
  • Year:
  • 2002

Quantified Score

Hi-index 0.01

Visualization

Abstract

In previous work we have demonstrated how the functional language SAFL can be used as a behavioural hardware description language. Other work (such as 碌FP and Lava) has demonstrated that functional languages are apposite for structural hardware description.One of the strengths of systems such as VHDL and Verilog is their ability to mix structural- and behavioural-level primitives in a single specification. Motivated by this observation, we describe a unified framework in which a stratified functional language is used to specify hardware across different levels of abstraction: Lava-style structural expansion is used to generate acyclic combinatorial circuits; these combinatorial fragments are composed at the SAFL-level. We demonstrate the utility of this programming paradigm by means of a realistic case-study. Our tools have been used to specify, simulate and synthesise a DES encryption/ decryption circuit. Area-time performance figures are presented.Finally, we show how similar integration techniques can be used to embed languages such as Magma/Lava into industrial HDLs such as Verilog and VHDL. Our methodology offers significant advantages over the "Perlscript" technique so commonly employed in practice.