INESC TEC
INESC TEC
INESC TEC
Search results for:
Filter your results

0 Search results

CHARD

INESC TEC

About Technology

Code restructuring solution for efficient FPGA implementations.

CHARD is a software that automatically restructures code, transforming C code into a dataflow graph (DFG) and applies graph optimizations to generate C code with high-level synthesis (HLS) directives for FPGA-based hardware accelerators.

Inventors
Afonso Soares Ferreira
João Paiva Cardoso
João Paiva Cardoso
Licensing Contacts
Daniel Marques Vasconcelos
Daniel Marques Vasconcelos

Problem

Programming FPGAs for hardware acceleration is a complex and time-consuming task that requires specific skills and tools that are different from typical software development.


In addition, current HLS tools allow software developers to use C-like languages to program FPGA, still require hardware expertise and manual code transformations and directives to generate efficient hardware implementations. This affects productivity, performance, and energy efficiency of FPGA-based systems, especially for applications that involve data-intensive and parallel computations, such as image processing, machine learning, and DSP algorithms.

Solution

Code restructuring solution for efficient FPGA implementations.

Our solution is CHARD, a software that automatically restructures code, transforming C code into a dataflow graph (DFG) and applies graph optimizations to generate C code with high-level synthesis (HLS) directives for FPGA-based hardware accelerators. The technology aims to enable software developers to program FPGAs more easily and efficiently, without requiring deep knowledge of hardware design or HLS tools.


The technology is based on a flexible frontend that can handle different input languages and a backend that implements various graph transformations and optimizations, such as folding, unfolding, pipelining, arithmetic optimizations, array partitioning, and data reuse. CHARD is implemented in a framework that can automatically generate HLS-friendly C code from execution traces of the input critical functions, achieving speedups of 30-100 times (vs original unmodified C code) and 2-15 faster (vs C optimized with Vivado HLS directives).

Unique benefits

Versatility

Supports different input programming language

User-friendly

Simpler instructions than HLS tools eliminating the need for deep HLS knowledge

Resilient

Ready to highly complex code restructuring and immune to non-included particular transformations

Performance

Automatic generation of optimized C code with significant speedups

Use Cases

High-Level Synthesis (HLS) hardware for FPGAs

Technology Details

Commercial Rights
INESC TEC has exclusive rights, INESC TEC has exclusive rights
License Status
Available
Technology Area(s)

Electronics & Photonics

Computer Science

Impact Area(s)
Digital Transformation
Scientific Publications

Graph-Based Code Restructuring Targeting HLS for FPGAs

Applied reconfigurable computing