Individual skill
fpga-project-analyzer
Analyze and explain existing AMD/Xilinx FPGA projects visually - Vivado block designs (.xpr, .bd, .hwh, .xsa, BD Tcl), Verilog/SystemVerilog/VHDL, PYNQ overlays and notebooks, HLS/bare-metal C, device trees, timing/DRC reports and build logs. Builds a drill-down Vivado-style diagram (block design -> IP -> RTL -> registers) and finds bugs - clock-domain crossings, unconstrained I/O, reset polarity, address map, interrupts, PYNQ overlay mistakes. Use when asked to understand, review, document or debug an FPGA, Zynq, MPSoC or PYNQ project, or a failed Vivado build.
skills/fpga-project-analyzer/SKILL.md
Source commit e5b0d0adf6932b6135eaec0caf97614f2fb573da
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- No
- Repository scan complete
- No
- Skill scan complete
- No
- Observed behavior
- Not checked yet
- Last checked
- Nov 6, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 27
- Repository last updated
- Nov 1, 2026
- License
- MIT
Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
SKILL.mdcore · 4,805 bytesSKILL.mdcore · 4,805 bytesSKILL.mdcore · 4,805 bytesreferences/review.mddoc · 5,337 bytesscripts/fpa.pyruns · 276 bytesscripts/fpalib/__init__.pyruns · 81 bytesscripts/fpalib/assets/vendor/ELK-LICENSE.mddoc · 14,480 bytesscripts/fpalib/assets/vendor/elk.bundled.jsruns · 1,585,569 bytesscripts/fpalib/assets/viewer.htmlasset · 52,568 bytesscripts/fpalib/bdjson.pyruns · 8,380 bytesscripts/fpalib/bdtcl.pyruns · 20,699 bytesscripts/fpalib/build.pyruns · 22,829 bytesscripts/fpalib/cli.pyruns · 6,187 bytesscripts/fpalib/doc.pyruns · 7,257 bytesscripts/fpalib/hdl.pyruns · 75,223 bytesscripts/fpalib/hwh.pyruns · 12,581 bytesscripts/fpalib/lint.pyruns · 28,748 bytesscripts/fpalib/mcp.pyruns · 8,494 bytesscripts/fpalib/model.pyruns · 4,505 bytesscripts/fpalib/refs.pyruns · 8,227 bytesscripts/fpalib/reports.pyruns · 11,785 bytesscripts/fpalib/summary.pyruns · 12,511 bytesscripts/fpalib/viewer.pyruns · 3,088 bytesscripts/fpalib/vivado.pyruns · 11,271 bytesscripts/fpalib/vivado/clock_map.tclasset · 1,547 bytesscripts/fpalib/vivado/export_bd.tclasset · 2,232 bytesscripts/fpalib/vivado/reports.tclasset · 670 bytesscripts/fpalib/vivado/rtl_netlist.tclasset · 2,325 bytesscripts/fpalib/xdc.pyruns · 4,016 bytes
Read excerpt
# FPGA Project Analyzer
Scripts read the project; you read their compact output. Do not open .bd/.hwh/.xpr/report files directly.
`FPA` below stands for `python3 <this skill's directory>/scripts/fpa.py`; type the full command each time
(a shell variable does not word-split in zsh). Outputs go to `<project>/.fpa/`.
## Workflow
1. `FPA build <project>` - extracts everything, runs the checks, prints a ~40-line summary
(blocks, clock domains, streams, AXI-MM, IRQ -> GIC/DT numbers, address map, software refs, reports, findings).
Repo with several boards/builds or a Makefile flow: point it at the build's own lists instead of scanning,
e.g. `--src sim/plps.d --src sim/psbd.d` (make .d / .f / .lst files, dirs or globs; repeatable).
2. Drill into what matters, never the whole tree:
- `FPA show <project> <block>` one block (`/` = top, `/stream_proc/scaler_0` = nested): pins, peers,
net names, clock domains, address, registers, software refs, src file:line; add `--nets` to list the