Skip to main content

From Arrows to Netlists Describing Hardware

  • Conference paper
  • 2418 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 7973))

Abstract

This paper describes how to transform a functional domain specific langauge (DSL) into hardware represented by a netlist. In earlier papers we proposed the usage of an algebraic structure called “arrows” (basically an abstraction of Haskell’s higher-order type (→) for describing DSLs. This structure forms the basis of a novel concept that gives the developer a tool at hand to describe hardware functionally in a natural way. Aside of that an arrow provides not only a tool to synthesize, but to verify and reason about the input DSL. We have taken this concept to the next stage, from a static size length arrow into a fixed size length vector arrows fitting much better to logic gates with a fixed number of in- and output pins. There are many sound possibilities to use the algebraic arrow data structure to model hardware. This paper presents some of them which showed to be most useful. A simple example, the implementation of a cyclic redundancy check (CRC) algorithm, is used to illustrate the presented techniques.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Bjesse, P., Claessen, K., Sheeran, M., Singh, S.: Lava: Hardware design in haskell. ACM Press (1998)

    Google Scholar 

  2. Galois, Inc., Portland, Oregon. Cryptol Programming Guide (October 2008), http://www.galois.com/files/Cryptol/Cryptol_Programming_Guide.pdf

  3. Galois, Inc., Portland, Oregon. From Cryptol to FPGA (October 2008), http://www.galois.com/files/Cryptol/Cryptol_Tutorial.pdf

  4. Grundy, J., Melham, T., O’Leary, J.: A reflective functional language for hardware design and theorem proving. Journal on Functional Programming 16(2), 157–196 (2006)

    Article  MathSciNet  MATH  Google Scholar 

  5. Hughes, J.: Generalising monads to arrows. Science of Computer Programming 37, 67–111 (1998)

    Article  Google Scholar 

  6. Kiselyov, O., Lmmel, R., Schupke, K.: Strongly typed heterogeneous collections. In: Proceedings of the Haskell Workshop, Snowbird, Utah (2004)

    Google Scholar 

  7. Li, Y., Lesser, M.: HML, a novel hardware description language and its translation to VHDL. IEEE Transactions on VLSI 8(1), 1–8 (2000)

    Article  Google Scholar 

  8. Makinwa, K.: Smart sensors - no signal to small. In: DCIS (2011)

    Google Scholar 

  9. Martin-Lf, P.: Intuitionistic type theory. Bibliopolis, Napoli (1984)

    Google Scholar 

  10. Mycroft, A., Sharp, R.: The FLaSH compiler: Efficient ciruits from functional specifications. Technical report, University of Cambridge, Computing Laboratory (2000)

    Google Scholar 

  11. Mycroft, A., Sharp, R.: Hardware/Software co-design using functional languages. In: Margaria, T., Yi, W. (eds.) TACAS 2001. LNCS, vol. 2031, pp. 236–251. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  12. Norell, U.: Towards a practical programming language based on dependent type theory (2007)

    Google Scholar 

  13. O’Donnell, J.: Hardware description with recursion equations. In: Proceedings of the IFIP 8th International Symposium on Computer Hardware Description Languages and their Applications, pp. 363–382. North-Holland (April 1987)

    Google Scholar 

  14. O’Donnell, J.T.: The Hydra Computer Hardware Description Language. University of Glasgow (2003)

    Google Scholar 

  15. Paterson, R.: A new notation for arrows. In: ICFP, pp. 229–240 (2001)

    Google Scholar 

  16. Peterson, W.W.: Cyclic codes for error detection. In: Proceedings of the Institute of Radio Engineers, Gainesville, Florida (1961)

    Google Scholar 

  17. Sander, I.: System Modeling and Design Refinement in ForSyDe. PhD thesis, Royal Institute of Technology, Stockholm, Sweden (April 2003)

    Google Scholar 

  18. Sander, I., Jantsch, A.: System Modeling and Transformational Design Refinement in ForSyDe. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 23(1), 17–32 (2004)

    Article  Google Scholar 

  19. Sharp, R. (ed.): Higher-Level Hardware Synthesis. LNCS, vol. 2963. Springer, Heidelberg (2004)

    MATH  Google Scholar 

  20. Sheeran, M.: μFP: A language for VLSI design. In: LISP and Functional Programming, pp. 104–112 (1984)

    Google Scholar 

  21. Yorgey, B.A., Weirich, S., Cretin, J., Jones, S.P., Vytiniotis, D., Magalhães, J.P.: Giving haskell a promotion. In: Proceedings of the 8th ACM SIGPLAN Workshop on Types in Language Design and Implementation, TLDI 2012, pp. 53–66. ACM, New York (2012)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Brettschneider, M., Häberlein, T. (2013). From Arrows to Netlists Describing Hardware. In: Murgante, B., et al. Computational Science and Its Applications – ICCSA 2013. ICCSA 2013. Lecture Notes in Computer Science, vol 7973. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-39646-5_10

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-39646-5_10

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-39645-8

  • Online ISBN: 978-3-642-39646-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics