Compiling high-level programs to FPGA configurations!
The goal of the Cameron project is to make FPGAs and other adaptive computer systems available to more applications programmers, by raising the abstraction level from hardware circuits to software algorithms. To this end, we have developed a variant of the C programming language and an optimizing compiler that maps high-level programs directly onto FPGAs, and have tested the language and compiler on a variety of image processing (and other) applications.

Overview of the Cameron Project...

Click on thumbnail to see the full size poster from the DARPA ACS PI meeting


SA-C ("single assignment C") is a variant of the C programming language that exploits instruction-level and loop-level parallelism, arbitrary bit-precision data types, and true multidimensional arrays.

The Optimizing Compiler

The SA-C compiler provides one-step compilation from SA-C source code to executable FPGA configurations (and the host code to load and execute them). In the process it applies both novel and standard compiler optimizations.

Image Processing Applications

We have implemented many image processing operators in SA-C, including Wavelets, the Canny operator, and the ARAGTAP pre-screener for automatic target recognition (ATR).

Newest Application: Probing

Probing is an ATR technique in which pairs of pixels ("probes") are arranged around the silhouette of a target. The likelihood of the target is then a function of the number of probes that straddle an edge.

Web page Last Updated on: 3/25/2002