A Higher-Level Language for Hardware Synthesis

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


We describe SAFL+: a call-by-value, parallel language in the style of ML which combines imperative, concurrent and functional programming. Synchronous channels allow communication between parallel threads and 7r-calculus style channel passing is provided. SAFL+ is designed Tor hardware description and synthesis; a silicon compiler, translating SAFL+ into RTL-Verilog, has been implemented. By parameterising functions over both data and channels the SAFL+ fun declaration becomes a powerful abstraction mechanism unifying a range of structuring techniques treated separately by existing HDLs. We show how SAFL+ is implemented at the circuit level and define the language formally by means of an operational semantics.


  1. 1.
    The Jazz Synthesis System. See:
  2. 2.
    Berry, G., AND Boudol, G. The chemical abstract machine. Theoretical Computer Science 96 (1992), 217 248.Google Scholar
  3. 3.
    Bjesse, P., Claessen, K., Sheeran, M., AND Singh, S. Lava: Hardware description in Haskell. In Proceedings of the 3rd International Conference on Functional Programming (1998), SIGPLAN, ACM.Google Scholar
  4. 4.
    Celoxica (Ltd.). Handel-C language datasheet. Available from Celoxica:
  5. 5.
    Hoe, J., AND Arvind. Hardware synthesis from term rewriting systems. In Proceedings of X IFIP International Conference on VLSI (1999).Google Scholar
  6. 6.
    Inmos (Ltd.). Occam 2 Reference Manual. Prentice Hall, 1998.Google Scholar
  7. 7.
    Johnson, S., AND Bosk, B. DDD: A system for mechanised digital design derivation. Tech. Rep. 323, Indiana University, 1990.Google Scholar
  8. 8.
    Ku, D., AND De Micheli, G. HardwareC—a language for hardware design (version 2.0). Tech. Rep. CSL-TR-90-419, Stanford University, 1990.Google Scholar
  9. 9.
    Li, Y., AND Leeser, M. HML, a novel hardware description language and its translation to VHDL. Transactions on VLSI Systems, I (February 2000).Google Scholar
  10. 10.
    Marlow, S., Peyton Jones, S., Moran, A., AND Reppy, J. Asynchronous exceptions in Haskell. To appear. Proceedings of ACM SIGPLAN 2001 Conference on Programming Language Design and Implementation (PLDI) 2001.Google Scholar
  11. 11.
    Mattmkws, J., Cook, B., AND Launciibury, J. Microprocessor specification in Hawk. In Proceedings of the IEEE International Conference on Computer Languages (1998).Google Scholar
  12. 12.
    Milner, R. The polyadic πcalculus: A tutorial. Tech. Rep. ECS-LFCS-91-180, University of Edinburgh, October 1991.Google Scholar
  13. 13.
    Milner, R., Tokho, M., Harper, R., AND MacQuioion, D. The Definition of Standard ML (Revised). MIT Press, 1997.Google Scholar
  14. 14.
    Mycroft, A., AND Sharp, R. A statically allocated parallel functional language. In Proceedings of the International Conference on Automata, Languages and Programming (2000), vol. 1853 of LNCS, Springer-Verlag.CrossRefGoogle Scholar
  15. 15.
    Mycroft, A., AND Sharp, R. Hardware/software co-design using functional languages. In Proceedings of TACAS (2001), vol. 2031 of LNCS, Springer-Verlag.Google Scholar
  16. 16.
    Sharp, R., AND Mycroft, A. The FLaSH compiler: Efficient circuits from functional specifications. Tech. Rep. fr.2000.3, AT&T Laboratories Cambridge, 2000.Google Scholar
  17. 17.
    Sharp, R., AND Mycroft, A. Soft scheduling for hardware, 2001. To appear. Proceedings of the 8th International Static Analysis Symposium.Google Scholar
  18. 18.
    Sheeran, M. muFP, a language for VLSI design. In Proceedings of the ACM Symposium on LISP and Functional Programming (1984).Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • Richard Sharp
    • 1
  • Alan Mycroft
    • 1
  1. 1.Computer LaboratoryCambridge UniversityCambridgeUK

Personalised recommendations