Hardware Synthesis Using SAFL and Application to Processor Design

Invited Talk
  • Alan Mycroft
  • Richard Sharp
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2144)


We survey the work done so far in the FLaSH project (Functional Languages for Synthesising Hardware) in which the core ideas are (i) using a functional language SAFL to describe hardware computation; (ii) transforming SAFL programs using various meaning-preserving transformations to choose the area-time position (e.g. by resource duplication/sharing, specialisation, pipelining); and (iii) compiling the resultant program in a resource-aware manner (keeping the gross structure of the resulting program by a 1-1 mapping of function definitions to functional units while exploiting ease-of-analysis properties of SAFL to select an efficient mapping) into hierarchical RTL Verilog.

After this survey we consider how SAFL allows some of the design space concerning pipelining and superscalar techniques to be explored for a simple processor in the MIPS style. We also explore how ideas from partial evaluation (static and run-time data) can be used to unify the disparate approaches in Hydra/Lava/Hawk and SAFL and to allow processor specialisation.


Output Port Partial Evaluation Input Register Functional Language Ready Signal 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Van Berkel, K. Handshake Circuits: an Asynchronous Architecture for VLSI Programming. International Series on Parallel Computation, vol. 5. Cambridge University Press, 1993.Google Scholar
  2. 2.
    Bjesse, P., Claessen, K., Sheeran, M. and Singh, S. Lava: Hardware Description in Haskell. Proc. 3rd ACM SIGPLAN International Conference on Functional Programming, 1998.Google Scholar
  3. 3.
    Burstall, R.M. and Darlington, J.A Transformation System for Developing Recursive Programs, JACM 24(1), 1979.Google Scholar
  4. 4.
    Cartwright, R. and Fagan, M. Soft Typing. Proc. ACM SIGPLAN Conference on Programming Language Design and Implementation, 1991.Google Scholar
  5. 5.
    Halbwachs, N., Caspi, P., Raymond, P. and Pilaud, D. The Synchronous Dataflow Programming Language Lustre. Proc. IEEE, vol. 79(9). September 1991.Google Scholar
  6. 6.
    Harel, D. and Pnueli, A. On the Development of Reactive Systems. Springer-Verlag NATO ASI Series, Series F, Computer and Systems Sciences, vol. 13, 1985.Google Scholar
  7. 7.
    Hennessy, J.L. and Patterson, D.A. Computer Architecture: A Quantitative Approach. Morgan Kaufmann, 1990.Google Scholar
  8. 8.
    Jones, N.D., Gomard, C.K. and Sestoft, P. Partial Evaluation and Automatic Program Generation. Prentice-Hall International Series in Computer Science, 1993.Google Scholar
  9. 9.
    The Jazz Synthesis System:
  10. 10.
    Ku, D. and De Micheli, G. HardwareC-a Language for Hardware Design (version 2.0), Stanford University Technical Report: CSL-TR-90-419, 1990.Google Scholar
  11. 11.
    Li, Y. and Leeser, M. HML, a Novel Hardware Description Language and its Translation to VHDL. IEEE Transactions on VLSI Systems, vol. 8. no. 1. February 2000.Google Scholar
  12. 12.
    Matthews, J., Cook, B. and Launchbury, J. Microprocessor Specification in Hawk. Proc. IEEE International Conference on Computer Languages, 1998.Google Scholar
  13. 13.
    McKay, N and Singh, S. Dynamic Specialisation of XC6200 FPGAs by Parial Evaluation. Lecture Notes in Computer Science: Proc. FPL 1998, vol. 1482, Springer-Verlag, 1998.Google Scholar
  14. 14.
    De Micheli, G. Synthesis and Optimization of Digital Circuits. McGraw-Hill, 1994.Google Scholar
  15. 15.
    Milner, R., Tofte, M., Harper, R. and MacQueen, D. The Definition of Standard ML (Revised). MIT Press, 1997.Google Scholar
  16. 16.
    Moore, S.W., Robinson, P. and Wilcox, S.P. Rotary Pipeline Processors. IEE Part-E, Computers and Digital Techniques, Special Issue on Asynchronous Architectures, 143(5), September 1996.Google Scholar
  17. 17.
    Morison, J.D. and Clarke, A.S. ELLA 2000: A Language for Electronic System Design. Cambridge University Press 1994.Google Scholar
  18. 18.
    Mycroft, A. and Sharp, R.W. The FLaSH Project: Resource-aware Synthesis of Declarative Specifications. Proc. International Workshop on Logic Synthesis 2000.Google Scholar
  19. 19.
    Mycroft, A. and Sharp, R. A Statically Allocated Parallel Functional Language. Lecture Notes in Computer Science: Proc. 27th ICALP, vol. 1853, Springer-Verlag, 2000.Google Scholar
  20. 20.
    Mycroft, A. and Sharp, R. Hardware/Software Co-Design Using Functional Languages. Lecture Notes in Computer Science: Proc. TACAS’01, vol. 2031, Springer-Verlag, March 2001.Google Scholar
  21. 21.
    Nielson, F. and Nielson, H.R. Two Level Semantics and Code Generation. Theoretical Computer Science, 56(1):59–133, 1988.zbMATHCrossRefMathSciNetGoogle Scholar
  22. 22.
    O’Donnell, J.T. Hydra: Hardware Description in a Functional Language using Recursion Equations and High Order Combining Forms, The Fusion of Hardware Design and Verification, G. J. Milne (ed.), North-Holland, 1988.Google Scholar
  23. 23.
    Sharp, R. and Mycroft, A. The FLaSH Compiler: Efficient Circuits from Functional Specifications. AT&T Research Laboratories Cambridge Technical Report tr.2000. 3, June 2000. Available from
  24. 24.
    Sharp, R. and Mycroft, A. Soft Scheduling for Hardware. Lecture Notes in Computer Science: Proc. SAS’01, vol. 2126, Springer-Verlag, July 2001.Google Scholar
  25. 25.
    Sharp, R. and Mycroft, A. A Higher-Level Language for Hardware Synthesis. Lecture Notes in Computer Science: Proc. CHARME’01, vol. 2144 (this volume), Springer-Verlag, September 2001.Google Scholar
  26. 26.
    Sheeran, M. muFP, a Language for VLSI Design. Proc. ACM Symp. on LISP and Functional Programming, 1984.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • Alan Mycroft
    • 1
    • 2
  • Richard Sharp
    • 1
  1. 1.Computer LaboratoryCambridge UniversityCambridgeUK
  2. 2.AT&T Laboratories CambridgeCambridgeUK

Personalised recommendations