An overview of a compiler for mapping software binaries to hardware

Gaurav Mittal*, David Zaretsky, Xiaoyong Tang, Prith Banerjee

*Corresponding author for this work

Research output: Contribution to journalReview articlepeer-review


As new applications in embedded communications and control systems push the computational limits of digital signal processing (DSP) functions, there will be an increasing need for software applications to be migrated to hardware in the form of a hardware-software codesign system. In many cases, access to the high-level source code may not be available. It is thus desirable to have a technology to translate the software binaries intended for processors to hardware implementations. This paper provides details on the retargetable FREEDOM compiler. The compiler automatically translates DSP software binaries to register-transfer level (RTL) VHDL and Verilog for implementation on field-programmable gate arrays (FPGAs) as standalone or system-on-chip implementations. We describe the underlying optimizations and some novel algorithms for alias analysis, data dependency analysis, memory optimizations, procedure call recovery, and back-end code scheduling. Experimental results on resource usage and performance are shown for several program binaries intended for the Texas Instruments C6211 DSP (VLIW) and the ARM 922T reduced instruction set computer (RISC) processors. Implementation results for four kernels from the Simulink demo library and others from commonly used DSP applications, such as MPEG-4, Viterbi, and JPEG are also discussed. The compiler generated RTL code is mapped to Xilinx Virtex II and Altera Stratix FPGAs. We record overall performance gains of 1.5-26.9 × for the hardware implementations of the kernels. Comparisons with the power aware compiler techniques (PACT) high-level synthesis compiler are used to show that software binaries can be used as intermediate representations from any high-level language and generate efficient hardware implementations.

Original languageEnglish (US)
Pages (from-to)1177-1190
Number of pages14
JournalIEEE Transactions on Very Large Scale Integration (VLSI) Systems
Issue number11
StatePublished - Nov 2007
Externally publishedYes


  • Binary translation
  • Compiler
  • Decompilation
  • Hardware-software codesign
  • High-level synthesis
  • Reconfigurable computing

ASJC Scopus subject areas

  • Software
  • Hardware and Architecture
  • Electrical and Electronic Engineering


Dive into the research topics of 'An overview of a compiler for mapping software binaries to hardware'. Together they form a unique fingerprint.

Cite this