Introducing Kansas Lava

  • Andy Gill
  • Tristan Bull
  • Garrin Kimmell
  • Erik Perrins
  • Ed Komp
  • Brett Werling
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6041)


Kansas Lava is a domain specific language for hardware description. Though there have been a number of previous implementations of Lava, we have found the design space rich, with unexplored choices. We use a direct (Chalmers style) specification of circuits, and make significant use of Haskell overloading of standard classes, leading to concise circuit descriptions. Kansas Lava supports both simulation (inside GHCi), and execution via VHDL, by having a dual shallow and deep embedding inside our Signal type. We also have a lightweight sized-type mechanism, allowing for MATLAB style matrix based specifications to be directly expressed in Kansas Lava.


Clock Cycle Forward Error Correction Applicative Functor Sequential Circuit Memory Operation 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Bjesse, P., Claessen, K., Sheeran, M., Singh, S.: Lava: Hardware design in haskell. In: International Conference on Functional Programming, pp. 174–184 (1998)Google Scholar
  2. 2.
    Singh, S., James-Roxby, P.: Lava and jbits: From hdl to bitstream in seconds. In: FCCM 2001: Proceedings of the the 9th Annual IEEE Symposium on Field-Programmable Custom Computing Machines, Washington, DC, USA, pp. 91–100. IEEE Computer Society, Los Alamitos (2001)Google Scholar
  3. 3.
    Claessen, K., Sands, D.: Observable sharing for functional circuit description. In: Thiagarajan, P.S., Yap, R.H.C. (eds.) ASIAN 1999. LNCS, vol. 1742, p. 62. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  4. 4.
    Gill, A.: Type-safe observable sharing in Haskell. In: Proceedings of the 2009 ACM SIGPLAN Haskell Symposium (September 2009)Google Scholar
  5. 5.
    Singh, S.: Designing reconfigurable systems in lava. In: International Conference on VLSI Design, p. 299 (2004)Google Scholar
  6. 6.
    Axelsson, E., Björk, M., Sheeran, M.: Teaching hardware description and verification. In: IEEE International Conference on Multimedia Software Engineering, International Symposium on Microelectronics Systems Education, pp. 119–120 (2005)Google Scholar
  7. 7.
    McBride, C., Patterson, R.: Applicative programing with effects. Journal of Functional Programming 16(6) (2006)Google Scholar
  8. 8.
    Moon, T.K.: Error correction coding: mathematical methods and algorithms. Wiley Interscience, Hoboken (2005)CrossRefzbMATHGoogle Scholar
  9. 9.
    Leijen, D., Meijer, E.: Domain specific embedded compilers. In: 2nd USENIX Conference on Domain Specific Languages (DSL 1999), Austin, Texas, pp. 109–122 (October 1999)Google Scholar
  10. 10.
    Chakravarty, M.M.T., Keller, G., Jones, S.P.: Associated type synonyms. In: ICFP 2005: Proceedings of the Tenth ACM SIGPLAN International Conference on Functional Programming, pp. 241–253. ACM, New York (2005)CrossRefGoogle Scholar
  11. 11.
    Jones, G., Sheeran, M.: Circuit design in ruby. In: Staunstrup (ed.) Formal Methods for VLSI Design. Elsevier Science Publications, Amsterdam (1990)Google Scholar
  12. 12.
    Sheeran, M.: mufp, a language for vlsi design. In: LFP 1984: Proceedings of the 1984 ACM Symposium on LISP and functional programming, pp. 104–112. ACM, New York (1984)CrossRefGoogle Scholar
  13. 13.
    Sander, I.: System Modeling and Design Refinement in ForSyDe. PhD thesis, Royal Institute of Technology, Stockholm, Sweden (April 2003)Google Scholar
  14. 14.
    Bellows, P., Hutchings, B.: JHDL - an HDL for reconfigurable systems. In: Annual IEEE Symposium on Field-Programmable Custom Computing Machines, p. 175 (1998)Google Scholar
  15. 15.
    Jantsch, A., Sander, I.: Models of computation and languages for embedded system design. IEE Proceedings on Computers and Digital Techniques 152(2), 114–129 (2005); Special issue on Embedded Microelectronic SystemsCrossRefGoogle Scholar
  16. 16.
    Gill, A., Hutton, G.: The worker/wrapper transformation. Journal of Functional Programming 19(2), 227–251 (2009)CrossRefzbMATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Andy Gill
    • 1
  • Tristan Bull
    • 1
  • Garrin Kimmell
    • 1
  • Erik Perrins
    • 1
  • Ed Komp
    • 1
  • Brett Werling
    • 1
  1. 1.Information Technology and Telecommunication Center, Department of Electrical Engineering and Computer ScienceThe University of KansasLawrenceUSA

Personalised recommendations