Impulse develops Board Support Packages (BSP) for multiple languages (OpenCL illustrated below) targeting boards with FPGAs. The BSP enables software developers to access hardware functions from their code. This shortens development time and lowers the maintenance effort. Special functions may be included in the BSP to run in hardware, such as pre-processors, video encoders/decoders, camera interfaces, sensor interfaces, encryption modules and more. Users end up with a fully programmable hardware platform to develop their application using the OpenCL high-level language.

Enables kernels to communicate directly with I/O and/or custom or third-party IP functionsProvides access to all of the FPGA boards resources from OpenCL
Or adds I/O, customer functions, etc. to an existing BSP
Host-side API is provided to configure and control resources
Common I/O enhancements include interfaces to raw I/O, such as an Ethernet MAC, and protocol IP, such as a hardware TCP offload Engine (ToE) 
Common customer functions include existing IP for video CODECs, encryption, and communication protocols
BSPs are provided as single-project or single-site, royalty-free source. Ongoing maintenance is offered and recommended given the regular improvements to FPGA-based development boards. 

Impulse Engineering is also available for general Design Services. These include application code refactoring for FPGA, “tuning” for acceleration, or original code development from specification.