A. Gill, “Declarative FPGA circuit synthesis using Kansas Lava,” in The International Conference on Engineering of Reconfigurable Systems and Algorithms, July 2011.



Designing and debugging hardware components is challenging, especially when performance requirements demands a complex orchestra of cooperating and highly synchronized computation engines. New language-based solutions to this problem have the potential to revolutionize how we think about and build circuits. In this paper, we describe our language- based approach to semi-formal co-design. Using examples, we will show how generative techniques, high-level interfaces, and refinement techniques like the worker/wrapper transformation can be used to take descriptions of specialized computation, and generate efficient circuits. Kansas Lava, our high-level hardware description language built on top of the functional language Haskell, acts as a bridge between these computational descriptions and synthesizable VHDL. Central to the whole approach is the use of Haskell types to express communication and timing choices between computational components. Design choices and engineering compromises during co-design become type-centric refinements, encouraging architectural exploration.


  title = {Declarative {FPGA} Circuit Synthesis using {K}ansas {L}ava},
  booktitle = {The International Conference on Engineering of Reconfigurable Systems and Algorithms},
  year = {2011},
  month = {July},
  location = {Las Vegas, Nevada, USA},
  author = {Andy Gill},