Small-HC : A Handel-C subset language

A project log for High level turbo FPGA development system

This project is about developing an easy-to-use high-level hardware development tool, and an FPGA board to use it on.

will.stevenswill.stevens 05/12/2019 at 08:200 Comments

Handel-C is a language related to C and Occam, designed for the purpose of translating programs directly into hardware. Handel-C was available and in use about 10-20 years ago, I'm not sure whether anybody still uses it now. Originially developed and sold by Celoxica, the DK Design Suite product which includes an implementation of Handel-C has since been aquired by Mentor Graphics.

Although Handel-C allowed more-or-less direct compilation of ANSI-C programs to hardware circuits, the resulting circuits were seldom very good. More usually, Handel-C and the associated IDE served as a rapid development language and environment, in which a programmer could directly write parallelised, pipelined Handel-C programs which would result in a reasonably efficient circuit. It was also possible to use it to gradually refine an ANSI-C program into a form more suitable for hardware implemention. 

The subset of Handel-C that I am working on is called 'Small-HC'. It supports some of the features of Handel-C, and more will be added over time. The following features are currently supported:

A short example program for flashing an LED (very quickly) is shown below:

unsigned 1 testbit;
port output(testbit) (163); // 163 is the output pin number on the FPGA

void main(void)
    testbit = 0;
    testbit = 1;