Compiling Complete Programs into Circuits (CCPC 2012)

Submitted by Satnam Singh
March 4, 2012

Submitted by Satnam Singh

A workshop on Sunday 4 March 2012 co-located with ASPLOS 2012 in London.

David F. Bacon (IBM Research)
Satnam Singh Microsoft Research and the University of Birmingham)

Compiling programs into circuits is becoming increasingly important as we strive
to reduce the latency and energy consumption of our computing systems. Although
significant effort has been put into the task of “C to gates” synthesis which
aims to improve the productivity of hardware engineers there has been little
work in the area of converting complete programs written by software engineers
into circuits. The purpose of this workshop is to bring together researchers and
developers working on novel techniques for translating programs into circuits as
well as people using alternative techniques for translating algorithms into
circuits without using conventional hardware description languages based on
event-based simulation semantics. Our objective is to foster interaction between
researchers and developers working in this area and to establish a community
that can help drive forward a common set of goals and principles for the
synthesis of programs into circuits.

Examples of topics of interest include:
System design using Bluespec and in particular we encourage case-studies and
experience reports.
Synthesis of algorithms in high level languages into circuits e.g. from C#, F#,
Go, Java and Scala into hardware.
Analysis, verification and debugging of hardware systems described in high level
languages (including formal verification techniques and language semantics).
Embedded domain specific languages for hardware design e.g. Lava.
Support for high-level language features e.g. dynamic recursion and dynamic
Numerical aspects e.g. specification and control of range and precision.

We have a limited number of presentation slots so we welcome suggestions for
people to give talks about their experience of using or developing alternative
techniques for implementing computations on circuits although we may not be able
to fit in all the proposals. There is no plan to have a formal proceedings.

If you would like to present your own work on this topic please contact one of
the organizers: or