In previous work we have outlined the design of a functional language, SAFL, and argued that it is well suited to hardware description and synthesis. Unlike conventional high-level synthesis languages, SAFL specifications capture explicitly resource allocation, variable binding and scheduling. This paper is concerned with the details of the FLaSH compiler: an optimising silicon compiler which translates SAFL specifications to RTL Verilog suitable for simulation or synthesis. We describe a number of high-level optimisation and analysis techniques which find novel application in the field of hardware-synthesis. In particular, we believe our approach to compiling function definitions into shared resources could be applied advantageously in existing industrial silicon compilers.
[1]
Richard Sharp,et al.
A Statically Allocated Parallel Functional Language
,
2000,
ICALP.
[2]
Richard Sharp,et al.
Hardware/Software Co-Design Using Functional Languages
,
2001,
TACAS.
[3]
J. D. Morison,et al.
Ella 2000: A Language for Electronic System Design
,
1993
.
[4]
Mary Sheeran,et al.
muFP, a language for VLSI design
,
1984,
LFP '84.
[5]
Pascal Raymond,et al.
The synchronous data flow programming language LUSTRE
,
1991,
Proc. IEEE.
[6]
Ian Page,et al.
Compiling occam into Field-Programmable Gate Arrays
,
2001
.