Monday, November 5, 2012 - 4:00pm to 4:50pm
KEC 1001

Speaker Information

Andy Gill
Assistant Professor
Department of Electrical Engineering and Computer Science
University of Kansas


Designing and debugging hardware components is challenging, especially when performance requirements demand 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 talk we give an overview of the Kansas Lava project, our language-based approach to semi-formal co-design. Using examples, we will show how generative techniques, high-level interfaces, and refinement techniques such as the worker/wrapper transformation can be used to take descriptions of specialized computation, and generate efficient circuits.

Our high-level hardware description language, like other Lava's before it, is built on top of the functional language Haskell. Haskell acts as a bridge between 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.

Writing solutions in Kansas Lava requires considerable knowledge of both Haskell and hardware-level subtleties, even assuming simple clocking models. Towards making the authoring of Kansas Lava specifications simpler, we will close with presenting our new Haskell rewrite engine, called HERMIT.

Speaker Bio

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 such as 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.