Inferensys

Glossary

High-Level Synthesis (HLS)

An automated design process that translates algorithmic descriptions written in C or C++ into hardware description language for FPGA implementation, accelerating the deployment of custom RF inference pipelines.
DevOps managing AI deployment pipeline on laptop, CI/CD stages visible, automation-focused workspace.
HARDWARE DESIGN AUTOMATION

What is High-Level Synthesis (HLS)?

High-Level Synthesis (HLS) is an automated design process that translates algorithmic descriptions written in high-level languages like C or C++ directly into register-transfer level (RTL) hardware description language, such as VHDL or Verilog, for implementation on FPGAs or ASICs.

High-Level Synthesis (HLS) bridges the gap between software algorithm development and hardware implementation by allowing developers to describe a function's behavior in untimed C++ and then automatically synthesize a timed, pipelined digital circuit. The compiler analyzes data dependencies, schedules operations into clock cycles, and binds logical operations to physical hardware resources like DSP slices and block RAM, enabling rapid exploration of design space trade-offs between throughput, latency, and area without manual RTL coding.

For model compression for RF inference, HLS is critical for deploying custom neural network accelerators on FPGAs. Tools like hls4ml translate compressed machine learning models directly into HLS C++ projects, generating highly parallel, streaming dataflow architectures that process IQ samples with minimal latency. This allows engineers to implement custom precision arithmetic and operator fusion directly in hardware, achieving performance unattainable on general-purpose processors for real-time automatic modulation classification.

FROM C++ TO GATES

Key Features of HLS for RF Inference

High-Level Synthesis bridges the gap between algorithm development and hardware implementation, enabling rapid deployment of custom RF inference pipelines on FPGAs without manual RTL design.

01

C/C++ to RTL Abstraction

HLS compiles untimed algorithmic descriptions written in C++ directly into synthesizable Register-Transfer Level (RTL) code. This eliminates the need for engineers to manually describe finite state machines and data paths in Verilog or VHDL, collapsing months of hardware design into days of software-like iteration. The tool automatically schedules operations across clock cycles, infers memory architectures, and binds functional units to hardware resources based on user-defined constraints.

02

Pragma-Driven Optimization

Hardware micro-architecture is controlled through compiler directives rather than code rewrites. Key pragmas include:

  • PIPELINE: Overlaps loop iterations to achieve initiation intervals of 1
  • UNROLL: Replicates loop bodies for parallel execution
  • ARRAY_PARTITION: Splits BRAM into multiple banks for simultaneous access
  • DATAFLOW: Enables task-level pipelining between sequential functions This allows rapid design space exploration without altering algorithmic correctness.
03

Streaming Dataflow Architecture

HLS natively supports hls::stream and ap_axis interfaces that model infinite FIFO channels. For RF inference, this maps directly to the continuous arrival of IQ samples from an ADC. The compiler synthesizes deep pipelines where each stage processes a sample per clock cycle, achieving deterministic ultra-low latency—often sub-microsecond—by eliminating the need for frame-based batch processing common in GPU inference.

04

Arbitrary Precision Data Types

Unlike CPUs and GPUs constrained to 8/16/32/64-bit boundaries, HLS allows arbitrary precision integers and fixed-point types (e.g., ap_int<7>, ap_fixed<12,4>). This is critical for deploying quantized neural networks where weights and activations may use non-standard bit-widths like 3-bit or 6-bit. The compiler synthesizes exactly the required logic, eliminating wasted silicon and reducing dynamic power consumption proportionally to the bit-width reduction.

05

DSP48 Macro Mapping

The HLS compiler automatically infers multiply-accumulate (MAC) operations and maps them to dedicated DSP48 slices in Xilinx FPGAs. A single DSP48 can perform a P = A * B + C operation in one clock cycle. For neural network inference, the tool can pack multiple low-precision multiplications into a single DSP48 using techniques like INT8 dot-product mode, effectively doubling or quadrupling the computational throughput of the fabric without increasing resource utilization.

06

C/RTL Co-Simulation

HLS tools include automated co-simulation frameworks that verify the generated RTL against the original C++ testbench. The same test vectors drive both the algorithmic model and the cycle-accurate hardware simulation, with automatic assertion checking on the outputs. This eliminates the classic hardware-software verification gap and ensures that the synthesized modulation classifier produces bit-identical results to the floating-point reference model used during training.

HLS FOR RF INFERENCE

Frequently Asked Questions

Essential questions about using High-Level Synthesis to accelerate automatic modulation classification on FPGA hardware.

High-Level Synthesis (HLS) is an automated design process that translates algorithmic descriptions written in C, C++, or SystemC into hardware description language (HDL) code for FPGA or ASIC implementation. Instead of manually designing digital circuits using VHDL or Verilog, engineers describe the desired functionality at a behavioral level. The HLS tool then performs scheduling—assigning operations to clock cycles—allocation—selecting the number and type of hardware resources—and binding—mapping operations to specific functional units. For modulation classification, this means a Python-trained neural network can be synthesized directly into a custom hardware pipeline, bypassing the traditional manual RTL design flow entirely.

Prasad Kumkar

About the author

Prasad Kumkar

CEO & MD, Inference Systems

Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.

His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.