hls

Convert C/C++ algorithms to synthesisable RTL with HLS directives and equivalence verification.

180|46|Updated Apr 12, 2026
One-click install
npx skills add https://github.com/chuanseng-ng/digital-chip-design-agents --skill hls
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: hls
Source: https://github.com/chuanseng-ng/digital-chip-design-agents/tree/main/plugins/hls/skills/hls
Command: npx skills add https://github.com/chuanseng-ng/digital-chip-design-agents --skill hls

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires bambu, legup, circt-opt, vitis_hls, stratus, catapult, and includes scripts (resource) and references (resource) and assets (resource) components.

What problem does it solve?

This Skill addresses the challenges of converting C/C++ algorithms into synthesisable RTL, optimizing HLS directives, and ensuring RTL equivalence with the original C model.

Core Features & Use Cases

  • Algorithm Analysis: Identifies and resolves HLS-hostile patterns in C/C++ code.
  • Directive Planning: Implements HLS directives for latency, throughput, and area optimization.
  • Synthesis Execution: Performs HLS synthesis and verifies the generated RTL.
  • Co-Simulation Verification: Compares RTL outputs with the C golden model for accuracy.
  • Sign-off: Ensures all HLS-hostile patterns are resolved and verifies RTL equivalence.
  • Use Case: For a chip designer looking to convert a C/C++ algorithm into RTL for a high-level synthesis tool, this Skill automates the process from analysis to sign-off, reducing manual effort and potential errors.

Quick Start

Run the HLS analysis and synthesis for the provided C/C++ algorithm using the hls skill.

Frequently Asked Questions about hls

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

FAQPage Schema
How do I convert C/C++ algorithms to synthesizable RTL?▼

Converting C/C++ algorithms to synthesizable RTL requires high-level synthesis tools like Bambu or LegUp to translate the code, optimize HLS directives, and generate hardware designs.

What are HLS-hostile patterns and how do I fix them before synthesis?▼

HLS-hostile patterns are C/C++ coding structures that prevent effective high-level synthesis. Algorithm analysis identifies these patterns, and directive planning resolves them to optimize latency, throughput, and area.

How do I verify RTL equivalence with the original C model?▼

Verifying RTL equivalence involves running co-simulation verification to compare the generated RTL outputs against the C golden model, ensuring functional accuracy before final sign-off.

Does this high-level synthesis flow work with Bambu and LegUp?▼

Yes, the high-level synthesis flow supports Bambu HLS, LegUp HLS, vitis_hls, and other tools to execute synthesis, optimize directives, and verify the resulting hardware design.

What is the best way to optimize HLS directives for area and throughput?▼

Optimizing HLS directives requires algorithm analysis to resolve hostile patterns, followed by strategic directive planning for latency, throughput, and area optimization during synthesis execution.

Why does high-level synthesis fail on unoptimized C++ code?▼

High-level synthesis fails on unoptimized C++ code due to HLS-hostile patterns that block translation. Algorithm analysis resolves these issues, enabling successful C to RTL conversion and verification.