Implementing Software Programs in FPGAs Using Flowpaths
نویسندگان
چکیده
Embedded systems design often involves writing code in high-level languages such as C/C++ and Java and optimizing using Assembly while minimizing design time. Equally important is the choice of the execution target. Among these microprocessor targets are microprocessor cores for FPGAs. These cores are useful for applications that also contain application-specific hardware implemented on the FPGA usually developed in VHDL or Verilog by hardware designers. More recently, several methods for using C as a hardware description language and for compiling C programs to hardware have been researched. This paper compares the use of flowpaths implemented in an FPGA generated from high-level Forth with C, Java, and Forth executed on microprocessors and microprocessor cores on FPGAs. The results show that flowpaths perform within a factor of 2 of a minimal hand-crafted direct hardware implementation and orders of magnitude better than compiling the program to a microprocessor.
منابع مشابه
Flowpaths: Compiling stack-based IR to hardware
The performance of software executed on a microprocessor is adversely affected by the basic fetch-execute cycle. A further performance penalty results from the load-execute-store paradigm associated with the use of local variables in most high-level languages. Implementing the software algorithm directly in hardware such as on an FPGA can alleviate these performance penalties. Such implementati...
متن کاملExecuting large algorithms on low-capacity FPGAs using flowpath partitioning and runtime reconfiguration
This paper describes a new method of executing a software program on an FPGA for embedded systems. Rather than combine reconfigurable logic with a microprocessor core, this method uses a new technique to compile Java programs directly to special-purpose processors that are called “flowpaths”. Flowpaths allow a software program to be executed in such a way that one low-capacity FPGA is executing...
متن کاملJava Flowpaths: Efficiently Generating Circuits for Embedded Systems from Java
The performance of software executed on a microprocessor is adversely affected by the basic fetchexecute cycle. A further performance penalty results from the load-execute-store paradigm associated with the use of local variables in most high-level languages. This paper describes creating Java flowpaths, a general method of generating hardware directly from Java bytecodes that support basic ope...
متن کاملGenerating Hardware from Java Using Self - Propagating Flowpaths
The performance of software executed on a microprocessor is adversely affected by the basic fetch-execute cycle. A further performance penalty results from the loadexecute-store paradigm associated with the use of local variables in most high-level languages. Implementing a software algorithm directly in hardware such as on an FPGA can alleviate these performance penalties. Such implementations...
متن کاملFPGAs: Re-Inventing the Signal Processor
FPGAs are increasingly being employed for building real-time signal processing systems. They have been used extensively for implementing the PHY in software radio architectures. This paper provides a technology and market perspective on the use FPGAs for signal processing and demonstrates FPGA DSP using an adaptive channel equalizer case study.
متن کامل