界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
开发与工程 · SKILL.md

hls-cpp-to-rtl

hls-cpp-to-rtl

【开发与工程】Expert skill for C/C++ to RTL conversion using High-Level Synthesis tools

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

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 graph: domains: [domain:embedded-systems] specializations: [specialization:fpga-programming] skillAreas: [skill-area:hdl-design, skill-area:fpga-synthesis] roles: [role:embedded-engineer]

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
我的收藏