What is FPGA Development?
At RidgeRun, we design and implement Intellectual Property (IP) cores to accelerate Image Processing applications by using FPGAs. Our specialization in High-Level Synthesis allows us to have high-complexity solutions faster than any other conventional approach, keeping in mind optimizations in order to optimize the IP footprint.
FPGA is a reconfigurable device able to implement digital logic, allowing the user to implement their own designs before scaling them to the silicon (ASIC) stage. It is commonly found in electronic emulators in testing processes, computational accelerators and customized applications, such as control systems and video game consoles, among others.
Their ability to implement custom logic designs makes it possible to have complex processing applications, allowing better performance than a common General Purpose Processor (GPP), keeping the power consumption low compared to superscaler architectures such as Graphics Processing Units (GPU).
At RidgeRun, we are motivated in accelerating image processing applications with FPGAs, achieving high-performances and lower power consumption. You can check some of our IP Cores in Image Signal Processing using FPGA.
-
Field Programmable Gate Array (FPGA) is widely used in electronic circuits, and allows for end users to reconfigure hardware to better suit their needs through programmable logic blocks, connected through programmable interconnects.
-
FPGAs are used for their configurability, from simple applications to complex processing.
-
FPGAs allow for better security due to their flexibility.
-
FPGAs allow software algorithms to be implemented on hardware and allow for better performance.
-
This includes accelerated Image Signal Processing using FPGA, including
-
Debayer
-
Color space converter (UYVY <-> RGBA)
-
Auto-white balancer
-
Histogram equalizer
-
Geometric Transformation Unit (GTU)
-
-
A common FPGA is composed of three key components:
-
Configurable logic blocks
-
Programmable routing
-
I/O Blocks
The FPGA configuration consists in defining the logic function equations by setting its Truth Table into the logic blocks to create a custom logic unit. It also implies the routing, which makes the necessary connections to connect different custom logic units, joining simple units into a greater and more complex unit, capable of implementing complicated tasks such as image processing accelerators.
The I/O Blocks allows the custom logic units to receive signals from the physical ports (external connections) and transmit stimulus to the outputs, allowing them to interact with external devices.
There are some other units that, depending on the model and vendor, can be listed, such as Hard-Cores, which are specialized unites that makes the FPGA even more powerful, such as microprocessors, AI accelerators, memories, and Digital Signal Processors (DSP), allowing it to do complex tasks without the need of spending logic blocks and interconnects.
Configurable Logic Blocks (CLB)
-
Logic blocks implement logic functions
-
Why are they beneficial:
-
Provide computation and storage elements
-
Customizable/Programmable
-
Programmable Routing
-
Connects logic blocks with I/O blocks to enable functionality
-
Also known as interconnects
-
Programmable Input/Output (I/O) Blocks
-
Used to interface with external components
-
Large portion of the FPGA's size, and size increases with the amount of standards required
-
Special functional blocks for more specialized programmable functions
-
ALUs, microprocessors, etc.
-
-
Browse FPGA Development Content
Read more about image and video-based FPGA Development
Read more about FPGA Boards and Development on the RidgeRun Wiki
RidgeRun's FPGA Hardware, Software & Services
RidgeRun is specialized in High-Level Synthesis for designing and implementing FPGA accelerators, especially for image processing algorithms, exposing them through a standardizd Video for Linux 2.0 (V4L2) interface, allowing the users to use them with GStreamer.
Inside of our services:
-
Design and development of custom GStreamer applications
-
Design and implementation of custom FPGA IP Cores for Xilinx-based products.
-
Development of Linux drivers for cameras and FPGAs.
-
Implementation of AI in computer vision applications.
-
Design of IP cores for image processing, AI, and scientific computing applications.
-
Development of hybrid parallel applications (OpenMP, MPI, CUDA, FPGA).
We are proud to present some of our star IP Cores:
Contact RidgeRun to Get Started on Your FPGA Development Project