HLS C/C++ to RTL Conversion

Expert skill in High-Level Synthesis (HLS) for converting C/C++ algorithms to optimized RTL implementations for FPGA acceleration.

Sby Skills Guide Bot
DevelopmentAdvanced0 views0 installs2/28/2026
Claude CodeCursor
hlsfpgavitisrtl-synthesishardware-acceleration

name: hls-cpp-to-rtl description: Expert skill for C/C++ to RTL conversion using High-Level Synthesis tools allowed-tools:

  • Read
  • Write
  • Edit
  • Glob
  • Grep
  • Bash

HLS C/C++ to RTL Skill

Overview

Expert skill for High-Level Synthesis (HLS) development, converting C/C++ algorithms to optimized RTL implementations for FPGA acceleration.

Capabilities

  • Write HLS-synthesizable C/C++ code
  • Apply Vitis HLS pragmas (PIPELINE, UNROLL, ARRAY_PARTITION)
  • Optimize loop initiation interval (II)
  • Configure HLS interface synthesis (AXI-MM, AXI-Stream, AXI-Lite)
  • Analyze HLS reports and iterate on design
  • Apply dataflow optimization
  • Handle fixed-point arithmetic (ap_fixed, ap_int)
  • Integrate HLS IP into Vivado block designs

Target Processes

  • hls-development.js
  • hardware-software-codesign.js
  • ip-core-integration.js

Usage Guidelines

Code Structure

  • Use static arrays for memory inference
  • Avoid dynamic memory allocation
  • Structure loops for pipeline optimization
  • Use ap_int/ap_uint for arbitrary precision

Key Pragmas

  • #pragma HLS PIPELINE II=1 - Pipeline loops for throughput
  • #pragma HLS UNROLL factor=N - Unroll loops for parallelism
  • #pragma HLS ARRAY_PARTITION - Memory partitioning
  • #pragma HLS DATAFLOW - Task-level parallelism
  • #pragma HLS INTERFACE - Port protocol specification

Interface Synthesis

  • AXI4-Lite: Control registers and scalar arguments
  • AXI4 Memory-Mapped: Large data arrays
  • AXI4-Stream: Streaming data interfaces
  • ap_none/ap_vld/ap_hs: Simple handshake protocols

Optimization Flow

  1. Baseline functional implementation
  2. Analyze synthesis report
  3. Identify bottleneck (II, latency, resources)
  4. Apply targeted optimizations
  5. Iterate until QoR targets met

Dependencies

  • Vitis HLS CLI awareness
  • C/C++ language expertise
  • FPGA resource understanding

Related skills