Kansas Lava: Using Haskell to Design and Implement Circuits for FPGAs
Monday, November 5, 2012 - 4:00pm - 4:50pm
KEC 1001
Andy Gill
Assistant Professor
Department of Electrical Engineering and Computer Science
University of Kansas
Speaker Biography:
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.
Abstract:
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.
_______________________________________________
Colloquium mailing list
[email protected]
https://secure.engr.oregonstate.edu/mailman/listinfo/colloquium