Qt C++ Code Review
x-tools-author/x-tools
Read-only review of Qt6 C++ code that combines a deterministic lint script with six parallel analysis agents and reports only high-confidence issues.
Vitis HLS synthesis assistant for C/C++ to RTL conversion. An agent skill from Shinei-Nouzen-Arch/FPGA-Agent.
$ npx skills add Shinei-Nouzen-Arch/FPGA-Agent --skill vitis-hls-synthesis -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Shinei-Nouzen-Arch/FPGA-Agent vitis-hls-synthesis --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Shinei-Nouzen-Arch/FPGA-Agent.git skills-src && mkdir -p .claude/skills && cp -r skills-src/vitis-hls-synthesis .claude/skills/vitis-hls-synthesis && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "vitis-hls-synthesis" agent skill from https://github.com/Shinei-Nouzen-Arch/FPGA-Agent/tree/main/vitis-hls-synthesis into .claude/skills/vitis-hls-synthesis/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vitis-hls-synthesis", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Shinei-Nouzen-Arch/FPGA-Agent/tree/main/vitis-hls-synthesisType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Shinei-Nouzen-Arch/FPGA-Agent --skill vitis-hls-synthesis -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Shinei-Nouzen-Arch/FPGA-Agent vitis-hls-synthesis --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Shinei-Nouzen-Arch/FPGA-Agent.git skills-src && mkdir -p .agents/skills && cp -r skills-src/vitis-hls-synthesis .agents/skills/vitis-hls-synthesis && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "vitis-hls-synthesis" agent skill from https://github.com/Shinei-Nouzen-Arch/FPGA-Agent/tree/main/vitis-hls-synthesis into .agents/skills/vitis-hls-synthesis/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vitis-hls-synthesis", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Shinei-Nouzen-Arch/FPGA-Agent --skill vitis-hls-synthesis -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Shinei-Nouzen-Arch/FPGA-Agent vitis-hls-synthesis --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Shinei-Nouzen-Arch/FPGA-Agent.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/vitis-hls-synthesis .cursor/skills/vitis-hls-synthesis && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "vitis-hls-synthesis" agent skill from https://github.com/Shinei-Nouzen-Arch/FPGA-Agent/tree/main/vitis-hls-synthesis into .cursor/skills/vitis-hls-synthesis/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vitis-hls-synthesis", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Shinei-Nouzen-Arch/FPGA-Agent.git --path vitis-hls-synthesis--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Shinei-Nouzen-Arch/FPGA-Agent --skill vitis-hls-synthesis -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Shinei-Nouzen-Arch/FPGA-Agent vitis-hls-synthesis --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Shinei-Nouzen-Arch/FPGA-Agent.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/vitis-hls-synthesis .gemini/skills/vitis-hls-synthesis && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "vitis-hls-synthesis" agent skill from https://github.com/Shinei-Nouzen-Arch/FPGA-Agent/tree/main/vitis-hls-synthesis into .gemini/skills/vitis-hls-synthesis/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vitis-hls-synthesis", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Shinei-Nouzen-Arch/FPGA-Agent vitis-hls-synthesisInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Shinei-Nouzen-Arch/FPGA-Agent --skill vitis-hls-synthesis -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Shinei-Nouzen-Arch/FPGA-Agent.git skills-src && mkdir -p .github/skills && cp -r skills-src/vitis-hls-synthesis .github/skills/vitis-hls-synthesis && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "vitis-hls-synthesis" agent skill from https://github.com/Shinei-Nouzen-Arch/FPGA-Agent/tree/main/vitis-hls-synthesis into .github/skills/vitis-hls-synthesis/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vitis-hls-synthesis", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Shinei-Nouzen-Arch/FPGA-Agent --skill vitis-hls-synthesis -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Shinei-Nouzen-Arch/FPGA-Agent vitis-hls-synthesis --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Shinei-Nouzen-Arch/FPGA-Agent.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/vitis-hls-synthesis .opencode/skills/vitis-hls-synthesis && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "vitis-hls-synthesis" agent skill from https://github.com/Shinei-Nouzen-Arch/FPGA-Agent/tree/main/vitis-hls-synthesis into .opencode/skills/vitis-hls-synthesis/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vitis-hls-synthesis", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
vitis-hls-synthesisVitis HLS synthesis assistant for C/C++ to RTL conversion. An agent skill from Shinei-Nouzen-Arch/FPGA-Agent.
Vitis Hls Synthesis is an agent skill from Shinei-Nouzen-Arch/FPGA-Agent. Vitis HLS synthesis assistant for C/C++ to RTL conversion. Covers kernel development, pragma optimization, interface configuration, and synthesis report analysis. For post-synthesis implementation use vivado-impl, for timing analysis use vivado-analysis, for hardware debug use vivado-debug.
Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1081 other files (for example `REFERENCE.md`, `agents/openai.yaml` and `examples/Design_Tutorials/02-Beamformer/README.md`).
It sits in Development. It works with C++. The licence is GPL-2.0.
10 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit b60a52e. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (Python, from the files we listed), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Vitis Hls Synthesis loads about 1.8k tokens when it runs. Until then it costs about 78 tokens; SKILL.md has 655 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Shinei-Nouzen-Arch/FPGA-Agent at commit b60a52e, republished under its GPL-2.0 licence (© Shinei-Nouzen-Arch). 655 words, ~1,820 tokens.
.claude/skills/vitis-hls-synthesis/SKILL.md (or your agent's skills folder). This skill also uses 1075 other files; get the full folder from GitHub.This skill helps you efficiently perform FPGA high-level synthesis development in the Vitis HLS environment. For complete syntax reference, see REFERENCE.md.
Select only the stages needed for the requested outcome and reuse the existing project and results. Report interpretation does not require project initialization or a new build. Code or configuration changes include proportionate validation; an execution request includes the requested run stages and result checks. Generate or review scripts without executing them when that is the requested deliverable. Existing authorization covers necessary in-scope follow-up, but does not automatically extend the task to packaging, implementation, or hardware programming.
When initialization is needed, determine the project structure and target device from existing sources, configuration, and prior user instructions. Reuse established settings and create only missing directories. Ask only for consequential information that is unavailable; never guess a device or clock required for a run. A generic example can retain clearly marked parameters without blocking on device selection.
mkdir -p <project>/src <project>/tbWrite HLS kernel code, add pragma optimization instructions as needed, select appropriate data types and interface protocols.
Create or update the relevant .cfg file, preserving established device, clock, interface, and flow settings unless changing them is part of the request.
For execution requests, run the applicable stages and their prerequisites:
Check the status, relevant logs, and outputs of each requested stage. Use simulation results to assess tested functionality and HLS synthesis estimates to assess clock performance, II, latency, and resources against the stated requirements. HLS estimates are not post-route timing signoff; apply the Vivado timing acceptance criteria only when implementation is in scope. Report what was verified, what remains unverified, and the requested artifact locations. Continue necessary authorized work rather than treating report generation or a partial run as completion.
| Task | Command |
|---|---|
| Environment Setup | source <Vitis_dir>/settings64.sh |
| Synthesis | v++ -c --mode hls --config <config.cfg> |
| C Simulation | vitis-run --mode hls --csim --config <config.cfg> |
| Synthesis | vitis-run --mode hls --csynth --config <config.cfg> |
| Co-Simulation | vitis-run --mode hls --cosim --config <config.cfg> |
| Export IP | vitis-run --mode hls --package --config <config.cfg> |
| Optimization Type | Instruction Example |
|---|---|
| Pipeline | #pragma HLS PIPELINE II=1 |
| Loop Unroll | #pragma HLS UNROLL factor=4 |
| Array Partition | #pragma HLS ARRAY_PARTITION variable=arr type=cyclic factor=2 |
| Dataflow | #pragma HLS DATAFLOW |
| Interface Configuration | #pragma HLS INTERFACE mode=m_axi port=mem bundle=gmem |
| Parameter | Description |
|---|---|
part=<part_number> | Target device model |
clock=<ns> | Clock period (ns) |
flow_target=<vivado/vitis> | Target output type |
syn.top=<function_name> | Top-level function name |
syn.file=<source_file> | Source file path |
For complete syntax and parameter reference, see REFERENCE.md. Reference implementation examples are available in the examples/ directory - read these files first when users need coding patterns or best practices.
Add pipeline optimization to loops to achieve II=1:
void kernel(float A[32][32], float B[32][32], float C[32][32]) {
#pragma HLS INTERFACE m_axi port=A bundle=gmem
#pragma HLS INTERFACE m_axi port=B bundle=gmem
#pragma HLS INTERFACE m_axi port=C bundle=gmem
for (int i = 0; i < 32; i++) {
for (int j = 0; j < 32; j++) {
#pragma HLS PIPELINE II=1
float sum = 0;
for (int k = 0; k < 32; k++) {
sum += A[i][k] * B[k][j];
}
C[i][j] = sum;
}
}
}Partition arrays to improve parallel access:
#pragma HLS ARRAY_PARTITION variable=input_data type=cyclic factor=4 dim=1
#pragma HLS ARRAY_PARTITION variable=weights type=complete dim=1Implement multi-stage task parallelism:
void top(hls::stream<int> &in, hls::stream<int> &out) {
#pragma HLS DATAFLOW
hls::stream<int> fifo1, fifo2;
#pragma HLS STREAM variable=fifo1 depth=16
#pragma HLS STREAM variable=fifo2 depth=16
read_image(in, fifo1);
process_image(fifo1, fifo2);
write_image(fifo2, out);
}Implement AXI4-Stream input and output:
#include "hls_stream.h"
void axis_process(hls::stream<ap_int<32>> &in, hls::stream<ap_int<32>> &out) {
#pragma HLS INTERFACE axis port=in
#pragma HLS INTERFACE axis port=out
#pragma HLS PIPELINE II=1
ap_int<32> data = in.read();
// Data processing
out.write(data);
}Convert floating-point to fixed-point for performance optimization:
#include "ap_fixed.h"
// ap_fixed<total_width, integer_bits, quantization_mode, overflow_mode>
typedef ap_fixed<16, 8, AP_RND, AP_SAT> fixed_t;
fixed_t value = 1.5f; // Automatic quantization© Shinei-Nouzen-Arch, GPL-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1,075 other files in vitis-hls-synthesis of Shinei-Nouzen-Arch/FPGA-Agent.
Open the folder on GitHubat commit b60a52e
Vitis Hls Synthesis next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Vitis Hls Synthesis this skillShinei-Nouzen-Arch/FPGA-Agent | 180 | — | ~1.8k | Automated safety check: Pass | GPL-2.0 | |
| Qt C++ Code Reviewx-tools-author/x-tools | 1.1k | 2 repos | ~4.3k | Automated safety check: Pass | BSD-3-Clause | |
| YugabyteDB ASH Instrumentationyugabyte/yugabyte-db | 11k | — | ~4.5k | Automated safety check: Pass | Custom licence | |
| pybind11 Release Preparationpybind/pybind11 | 18k | — | ~1.7k | Automated safety check: Pass | Custom licence | |
| Qt Cpp ReviewSerial-Studio/Serial-Studio | 7.2k | — | ~4.3k | Automated safety check: Pass | Custom licence | |
| Paddle Eager GraphPaddlePaddle/Paddle | 24k | — | ~562 | Automated safety check: Pass | Apache-2.0 |
x-tools-author/x-tools
Read-only review of Qt6 C++ code that combines a deterministic lint script with six parallel analysis agents and reports only high-confidence issues.
yugabyte/yugabyte-db
Procedure for adding or changing YugabyteDB Active Session History wait states in TServer and DocDB C++ code, including the macro to use for sync and async paths.
pybind/pybind11
Opens the pybind11 release-preparation pull request: picking the release base, bumping the version in common.h and integrating the changelog, following docs/release.rst.
Serial-Studio/Serial-Studio
Qt6/C++ deep code review for Serial Studio. An agent skill from Serial-Studio/Serial-Studio.
PaddlePaddle/Paddle
A skill your agent uses when navigating Paddle eager-mode (dynamic graph) source code, tracing forward/backward execution, debugging autograd issues, understanding PyLayer, or investigating…
alxv2016/folloup-sticky
ESP32 firmware engineering for ESP-IDF projects. An agent skill from alxv2016/folloup-sticky.
Shinei-Nouzen-Arch/FPGA-Agent
A skill your agent uses when the user needs help with Vivado in-system debugging, hardware programming, or debug core configuration.
Shinei-Nouzen-Arch/FPGA-Agent
A skill your agent uses when the user needs Vivado design analysis, timing report interpretation, or timing-closure diagnosis.
Shinei-Nouzen-Arch/FPGA-Agent
A skill your agent uses when the user needs help writing XDC/SDC timing or physical constraints for Vivado FPGA designs.
Shinei-Nouzen-Arch/FPGA-Agent
A skill your agent uses when the user needs Vivado implementation strategy selection or optimization.
Shinei-Nouzen-Arch/FPGA-Agent
A skill your agent uses when the user needs help with Vivado simulation strategy, flow selection, and debugging.
Shinei-Nouzen-Arch/FPGA-Agent
A skill your agent uses when the user needs help with Vivado synthesis strategy selection, synthesis attribute configuration, synthdesign option tuning, resource inference control…
Works with
Categories
Vitis HLS synthesis assistant for C/C++ to RTL conversion. An agent skill from Shinei-Nouzen-Arch/FPGA-Agent. Vitis Hls Synthesis is an agent skill from Shinei-Nouzen-Arch/FPGA-Agent. Vitis HLS synthesis assistant for C/C++ to RTL conversion.
Vitis Hls Synthesis fits situations like: development work in your project.
Run `npx skills add Shinei-Nouzen-Arch/FPGA-Agent --skill vitis-hls-synthesis -a claude-code`. Or copy the skill folder (vitis-hls-synthesis in Shinei-Nouzen-Arch/FPGA-Agent) into .claude/skills/vitis-hls-synthesis in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Shinei-Nouzen-Arch/FPGA-Agent --skill vitis-hls-synthesis -a codex`. Or copy the skill folder (vitis-hls-synthesis in Shinei-Nouzen-Arch/FPGA-Agent) into .agents/skills/vitis-hls-synthesis in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Shinei-Nouzen-Arch/FPGA-Agent --skill vitis-hls-synthesis -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/vitis-hls-synthesis, .gemini/skills/vitis-hls-synthesis, .github/skills/vitis-hls-synthesis and .opencode/skills/vitis-hls-synthesis in your project.
Going by SKILL.md and its folder, Vitis Hls Synthesis needs Python for the scripts in its folder. Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Vitis Hls Synthesis is published under the GPL-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.8k tokens (SKILL.md is roughly 7.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Vitis Hls Synthesis: Qt C++ Code Review (x-tools-author/x-tools, 1.1k stars), YugabyteDB ASH Instrumentation (yugabyte/yugabyte-db, 11k stars), pybind11 Release Preparation (pybind/pybind11, 18k stars) and Qt Cpp Review (Serial-Studio/Serial-Studio, 7.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Shinei-Nouzen-Arch (a GitHub user) maintains it in Shinei-Nouzen-Arch/FPGA-Agent, which has 180 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on September 5, 2026.
Source: Shinei-Nouzen-Arch/FPGA-Agent on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.