vitis-hls-synthesis

Convert C/C++ HLS designs to optimized RTL for AMD FPGAs.

27|5|Updated Apr 19, 2026
One-click install
npx skills add https://github.com/adeleempurpled290/FPGA-Agent-skills --skill vitis-hls-synthesis-adeleempurpled290
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: vitis-hls-synthesis
Source: https://github.com/adeleempurpled290/FPGA-Agent-skills/tree/main/vitis-hls-synthesis
Command: npx skills add https://github.com/adeleempurpled290/FPGA-Agent-skills --skill vitis-hls-synthesis-adeleempurpled290

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill eliminates the steep learning curve and manual effort of converting C/C++ HLS designs to optimized RTL for AMD FPGAs, reducing design time from weeks to hours and avoiding common pitfalls like timing violations, interface misconfigurations, and suboptimal resource usage.

Core Features & Use Cases

  • HLS Kernel Optimization: Apply pipeline, unroll, array partition, and dataflow pragmas to meet performance targets like II=1 and timing closure.
  • Interface Configuration: Set up AXI4-Stream, M_AXI, S_AXILITE, and other interface protocols for seamless integration with FPGA memory and peripherals.
  • Synthesis Report Analysis: Interpret timing, resource, and latency reports to identify bottlenecks and validate design requirements.
  • Use Case: A radar beamformer developer can use this Skill to optimize a floating-point QR decomposition kernel, configure AXI interfaces for DDR access, and migrate the design from a Versal Premium to a Zynq Ultrascale+ RFSoC with no code changes.

Quick Start

Use the vitis-hls-synthesis skill to optimize your C/C++ HLS kernel for a 3ns clock target, add pipeline pragmas to achieve an initiation interval of 1, and analyze the synthesis report to confirm timing slack is positive and resource usage meets your device constraints.

Frequently Asked Questions about vitis-hls-synthesis

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I convert C/C++ code to RTL for AMD FPGAs using Vitis HLS?

Vitis HLS synthesis converts C/C++ HLS designs to optimized RTL for AMD FPGAs, eliminating manual RTL coding. It configures AXI interfaces and applies pragmas to generate functional kernels meeting timing and bandwidth requirements.

How do I optimize HLS kernels to achieve an initiation interval of 1 and meet timing closure?

HLS optimization applies pipeline, unroll, array partition, and dataflow pragmas to C/C++ designs. This meets performance targets like II=1 and timing closure by analyzing synthesis reports for bottlenecks and resource usage.

What is the best way to configure AXI interfaces for DDR access in Vitis HLS?

AXI interface configuration sets up AXI4-Stream, M_AXI, and S_AXILITE protocols for seamless integration with FPGA memory and peripherals. This ensures Vitis acceleration kernels meet memory bandwidth requirements during C/C++ to RTL synthesis.

Can I migrate an HLS design from Versal Premium to Zynq Ultrascale+ without changing code?

Cross-platform design migration allows moving C/C++ HLS kernels between AMD FPGA platforms like Versal Premium and Zynq Ultrascale+ RFSoC. The synthesis process adapts the RTL generation to target different device constraints without code changes.

How do I analyze Vitis HLS synthesis reports to identify timing and resource bottlenecks?

Synthesis report analysis interprets timing, resource, and latency reports to identify bottlenecks and validate design requirements. It confirms timing slack is positive and resource usage meets target FPGA device constraints.

Why does my C/C++ HLS design fail timing closure during FPGA synthesis?

Timing violations occur when C/C++ HLS designs lack proper optimization for target clock periods. Applying pipeline and array partition pragmas, along with AXI interface adjustments, helps achieve positive timing slack and resource compliance.