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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Bjesse, P., Claessen, K., Sheeran, M., Singh, S.: Lava: Hardware design in haskell. ACM Press (1998)
Galois, Inc., Portland, Oregon. Cryptol Programming Guide (October 2008), http://www.galois.com/files/Cryptol/Cryptol_Programming_Guide.pdf
Galois, Inc., Portland, Oregon. From Cryptol to FPGA (October 2008), http://www.galois.com/files/Cryptol/Cryptol_Tutorial.pdf
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)
Hughes, J.: Generalising monads to arrows. Science of Computer Programming 37, 67–111 (1998)
Kiselyov, O., Lmmel, R., Schupke, K.: Strongly typed heterogeneous collections. In: Proceedings of the Haskell Workshop, Snowbird, Utah (2004)
Li, Y., Lesser, M.: HML, a novel hardware description language and its translation to VHDL. IEEE Transactions on VLSI 8(1), 1–8 (2000)
Makinwa, K.: Smart sensors - no signal to small. In: DCIS (2011)
Martin-Lf, P.: Intuitionistic type theory. Bibliopolis, Napoli (1984)
Mycroft, A., Sharp, R.: The FLaSH compiler: Efficient ciruits from functional specifications. Technical report, University of Cambridge, Computing Laboratory (2000)
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)
Norell, U.: Towards a practical programming language based on dependent type theory (2007)
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)
O’Donnell, J.T.: The Hydra Computer Hardware Description Language. University of Glasgow (2003)
Paterson, R.: A new notation for arrows. In: ICFP, pp. 229–240 (2001)
Peterson, W.W.: Cyclic codes for error detection. In: Proceedings of the Institute of Radio Engineers, Gainesville, Florida (1961)
Sander, I.: System Modeling and Design Refinement in ForSyDe. PhD thesis, Royal Institute of Technology, Stockholm, Sweden (April 2003)
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)
Sharp, R. (ed.): Higher-Level Hardware Synthesis. LNCS, vol. 2963. Springer, Heidelberg (2004)
Sheeran, M.: μFP: A language for VLSI design. In: LISP and Functional Programming, pp. 104–112 (1984)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)