VHDL and Verilog are not the right tools when it comes to developing on FPGAs fast.
- It is time-consuming. If the first cycle takes 3 months, then each subsequent cycle easily takes 2 weeks. Time is money.
- Porting or upgrading a design from one FPGA device to another is also time-consuming. This makes it essential to choose the final FPGA vendor and family upfront.
- Dual-platform development on CPU and FPGA needs synchronisation. The code works on either the CPU or the FPGA, which makes the functional tests made for the CPU-version less trustworthy.
Here is where OpenCL comes in.
- Shorter development cycles. Programming in OpenCL is normally much faster than in VHDL or Verilog. If you are porting C/C++ code onto FPGA the development cycles will be dramatically shorter. Think weeks instead of months – as this news article explains. This means a radically reduced investment as well as providing time for architectural exploration.
- OpenCL works on both CPUs and FPGAs, so functional tests can be run on either. As a bonus the code can be optimised for GPUs, within a short time-frame.
- The performance is equal to VHDL and Verilog, unless FPGA-specific optimisations are used, such as vector-widths not equal to a power of two.
- Vendor Agnostic solution. Porting to other FPGAs takes considerably less time and the compiler solves this problem for you.
- Both Xilinx and Altera have OpenCL compilers. Altera were the first to come out with an OpenCL offering and have a full SDK, which is an add-on to Quartus II. Xilinx also have a stand-alone OpenCL development environment solution called SDAccel.
Support for OpenCL is strong by both Altera and Xilinx
Both vendors suggest OpenCL to overcome existing FPGA design problems. Altera suggest to use OpenCL to speed-up the process for existing developers. So OpenCL is not a third party tool, you need to trust separately.
OpenCL allows a user to abstract away the traditional hardware FPGA development flow for a much faster and higher level software development flow – Altera
Xilinx suggests that OpenCL can enable companies without the needed developer resources to start working with FPGAs.
Teams with limited or no FPGA hardware resources, however, have found the transition to FPGAs challenging due to the RTL (VHDL or Verilog) development expertise needed to take full advantage of these devices. OpenCL eases this programming burden – Xilinx
Why choose StreamHPC?
There are several reasons to choose letting us to do the porting and protoyping of your product.
- We have the right background, as our team consists of CPU, GPU and FPGA developers. Our code is therefore designed with easy porting in mind.
- Our costs are lower than having the product done in Verilog/VHDL.
- We give guarantees and support for our products on all platforms the product is ported on.
- We can port the final OpenCL code to Verilog/VHDL, keeping the same performance. In case you don’t trust a high-level language, we have you covered.
- Optionally you can get both the code and a technical report with a detailed explanation of how we did it. So you can learn from this and modify the code yourself.
- You get free advice on when (and not) to use OpenCL for FPGAs.
There are three ways to get in contact quickly:
call: +31 854865760 (European office hours)
e-mail: contact@streamhpc.com
Fill in this form – mention when you want to be called back (possible outside normal office hours):
[contact_form]
Want to read more?
We wrote about OpenCL-on-FPGAs on our blog in the previous years.
- Why use OpenCL on FPGAs? (2014)
- Starting with Altera OpenCL-on-FPGAs (2013)
- OpenCL on Altera FPGAs (2012)