A system and method for compiling computer code written to conform to a high-level
language standard to generate a unified executable containing the hardware logic
for a reconfigurable processor, the instructions for a traditional processor (instruction
processor), and the associated support code for managing execution on a hybrid
hardware platform. Explicit knowledge of writing hardware-level design code is
not required since the problem can be represented in a high-level language syntax.
A top-level driver invokes a standard-conforming compiler that provides syntactic
and semantic analysis. The driver invokes a compilation phase that translates the
CFG representation being generated into a hybrid controlflow-dataflow graph representation
representing optimized pipelined logic which may be processed into a hardware description
representation. The driver invokes a hardware description language (HDL) compiler
to produce a netlist file that can be used to start the place-and-route compilation
needed to produce a bitstream for the reconfigurable computer. The programming
environment then provides support for taking the output from the compilation driver
and combining all the necessary components together to produce a unified executable
capable of running on both the instruction processor and reconfigurable processor.