Functional Design Using Behavioural and Structural Components [chapter]

Richard Sharp
2002 Lecture Notes in Computer Science  
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
more » ... ional 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.
doi:10.1007/3-540-36126-x_20 fatcat:aw7xc3gnzzbthbdmw6lp3mzt3u