Dr. Andrew  Gill
Declarative FPGA Circuit Synthesis using Kansas Lava,
Dr. Andrew Gill,
University of Kansas, USA

Time: 08:30 - 08:50am
Location: Gold Room


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 the worker/wrapper transformation and other refinement techniques can be used to take concise 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.


Andrew (Andy) Gill was born and educated in Scotland, and has spent his professional career in the United States. Andy received his Ph.D. from the University of Glasgow in 1996, then spent three years in industry as a compiler developer, and a year in academia as a principal project scientist. He co-founded Galois in 2000, a technology transfer company that used language technologies to create trustworthiness in critical systems. In 2008 he returned to academia and research, joining the University of Kansas and the Information and Telecommunication Technology Center.

Andy believes that functional languages like Haskell are a great medium for expressing algorithms and solving problems. Since returning to academia, he has targeted the application area of telemetry, specializing in generating circuits from specifications. His research interests include optimization, language design, debugging, and dependability. The long-term goal of his research is to offer software engineers and functional language practitioners the opportunity to write clear and high-level executable specifications that can realistically be compiled into efficient implementations.