shinei-nouzen-arch/fpga-agent/vivado-analysis
Claude Code and agent skill by shinei-nouzen-arch/fpga-agent
- community
Checking that the SKILL.md file is still in the repository.
Use this skill when the user needs Vivado design analysis, timing report interpretation, or timing-closure diagnosis. Covers report_timing/report_timing_summary, slack and path analysis, clock skew/uncertainty, report_qor_assessment/suggestions, report_design_analysis for congestion and complexity, report_methodology, utilization, CDC/DRC/bus skew reports, message severity, waivers, and setup/hold closure strategy. This skill interprets reports and recommends next analysis steps. For TCL execution use vivado-tcl, for constraint changes use vivado-constraints, for implementation directives use vivado-impl, for full timing closure workflows use vivado-timing-closure.
Install
npx vskill@latest install shinei-nouzen-arch/fpga-agent/vivado-analysisSKILL.md
Vivado Design Analysis & Timing Closure Guide
Based on UG906 (v2025.2). This skill helps interpret analysis reports and make timing closure decisions. For complete command syntax, see REFERENCE.md. For TCL execution, use vivado-tcl. For constraint changes, use vivado-constraints. For implementation strategies, use vivado-impl.
Timing Path Fundamentals
Four common path types:
Path structure (three sections):
Slack formula:
- Max delay (Setup/Recovery):
slack = data_required_time - data_arrival_time - Min delay (Hold/Removal):
slack = data_arrival_time - data_required_time
Max/Min Delay Analysis Corner Selection
| Analysis Type | Source Clock | Data Path | Destination Clock | |
|---|---|---|---|---|
| Setup/Recovery (max delay) | Slow_max | Slow_max | Slow_min | |
| Setup/Recovery (max delay) | Fast_max | Fast_max | Fast_min | |
| Hold/Removal (min delay) | Slow_min | Slow_min | Slow_max | |
| Hold/Removal (min delay) | Fast_min | Fast_min | Fast_max |
Key rule: Delays from different corners are NEVER mixed on same path during slack calculation.
Report Selection Guide
| Goal | Command | When to Use | |
|---|---|---|---|
| Quick timing signoff | report_timing_summary | After implementation, mandatory before bitstream | |
| Analyze specific paths | report_timing -from/-to/-through | Debugging specific failing paths | |
| Overall QoR score (1-5) | report_qor_assessment | After routing, assess closure likelihood | |
| Auto optimization hints | report_qor_suggestions | When stuck on timing closure | |
| Path characteristics | report_design_analysis | Deep analysis of logic levels, fanout, physical spread | |
| Methodology compliance | report_methodology | Early in flow to catch methodology violations | |
| Resource usage | report_utilization | After synthesis or implementation | |
| CDC checks | report_cdc | After synthesis, verify clock domain crossings | |
| Congestion analysis | report_design_analysis -congestion | After placement, if timing degraded | |
| Design rule checks | report_drc | Before bitstream generation | |
| Bus skew | report_bus_skew | If set_bus_skew constraints exist (NOT in report_timing_summary) |
Timing Report Header Fields
| Field | Meaning | |
|---|---|---|
| Slack | Positive = meets timing. Negative = violation | |
| Source | Startpoint cell + launch clock (edge, name, period) | |
| Destination | Endpoint cell + capture clock (edge, name, period) | |
| Path Group | Clock group containing endpoint (async pins → async_default) | |
| Path Type | Max (setup/recovery) or Min (hold/removal); corner (Slow/Fast) | |
| Requirement | Clock period (same clock) or smallest positive delta (different clocks) | |
| Data Path Delay | Total delay through logic section | |
| Logic Levels | Count of each primitive type in data path | |
| Clock Path Skew | Destination - Source insertion delay + CPR | |
| CPR | Clock Pessimism Removal — shared clock circuitry correction | |
| Clock Uncertainty | TSJ + TIJ + DJ + PE + UU (see below) |
Clock Uncertainty Components
| Component | Source | |
|---|---|---|
| TSJ (Total System Jitter) | Combined system jitter on both clocks | |
| TIJ (Total Input Jitter) | From set_input_jitter constraint | |
| DJ (Discrete Jitter) | Hardware primitives (MMCM/PLL) | |
| PE (Phase Error) | Phase variation between clock signals | |
| UU (User Uncertainty) | From set_clock_uncertainty constraint |
Delay Type in Path Details
| Value | Meaning | |
|---|---|---|
| Unplaced | Cell not placed, delay estimated | |
| Estimated | Cell placed but not routed | |
| Routed | Final routed delay |
Clock Phase Shift Mode (Device Defaults)
| Device Family | Default Mode | Behavior | |
|---|---|---|---|
| 7 Series | WAVEFORM | Modifies clock waveform edges | |
| UltraScale | WAVEFORM | Modifies clock waveform edges | |
| UltraScale+ | LATENCY | Models as MMCM/PLL insertion delay | |
| Versal | LATENCY | Models as MMCM/PLL insertion delay |
Warning: Migrating 7 Series/UltraScale designs to UltraScale+ changes phase shift modeling. Review and remove legacy multicycle path constraints used for phase shift.
QoR Assessment Interpretation (report_qor_assessment)
Score Meaning
| Score | Interpretation | Action | |
|---|---|---|---|
| 1 | Design will likely NOT complete implementation | Major redesign needed | |
| 2 | Will complete but will NOT meet timing | Significant optimization required | |
| 3 | Will likely NOT meet timing | Targeted optimization needed | |
| 4 | Will likely meet timing | Minor adjustments may suffice | |
| 5 | Favorable timing-closure assessment | Perform final verification; generate a bitstream only if it is part of the requested deliverable and the applicable checks pass |
Five Assessment Categories
| Category | What It Checks | |
|---|---|---|
| Utilization | Resource usage across device, SLR, Pblock levels | |
| Netlist | Logical structure, DONT_TOUCH properties, high fanout nets | |
| Clocking | Clock skew on setup and hold paths | |
| Congestion | Netlist structures causing routing congestion | |
| Timing | WNS/TNS/WHS/THS per clock group, net/LUT budget |
Each shows OK or REVIEW status. Items with asterisk (*) don't directly affect score but impact closure.
A QoR score predicts closure likelihood; it does not replace checks on the final design. For closure requests, use the full timing acceptance criteria, including constraint coverage and applicable bus-skew, CDC, DRC, and methodology checks. For report-only requests, explain the evidence and any verification gaps without automatically starting implementation or bitstream generation.
ML Strategy Availability
Available when ALL conditions met:
- opt_design ran with Explore or Default directive
- phys_opt_design enabled
- Design fully routed
- UltraScale or UltraScale+ device family
Auto-Termination
Set MIN_RQA_SCORE property (1-5) to auto-terminate runs scoring below threshold.
QoR Suggestions Workflow
Suggestion Classification
| Dimension | Values | |
|---|---|---|
| Origin | GENERATED (current run) / EXISTING (imported from .rqs) | |
| Status | APPLIED / FAILED TO APPLY | |
| Stage generated | opt_design / place_design / phys_opt_design / route_design | |
| Stage applicable | Where suggestion should be applied | |
| Automatic | Yes (auto-apply) / No (manual action needed) |
Suggestion Categories
Clocking, Congestion, Utilization, Timing, Netlist, XDC, Strategy
Design Analysis Interpretation (report_design_analysis)
Timing Path Characteristics — Five Categories
| Category | Fields | |
|---|---|---|
| Timing | Path Type, Requirement, Slack, Timing Exception | |
| Logic | Start/End Pin Primitives, Pins, Logic Levels, Routes | |
| Physical | Arch Boundary Crossings (IO/RAM/DSP/NOC), Pblock restrictions, Bounding Box, Net Fanout/Detour | |
| Property | Combined LUT pairs, MARK_DEBUG, DONT_TOUCH, Fixed constraints | |
| DFX | DFX Path Type, Boundary Nets, Boundary Fanout |
Complexity (Rent Exponent) Interpretation
| Rent Exponent | Complexity | Action | |
|---|---|---|---|
| < 0.65 | Low to Normal | No action needed | |
| 0.65 - 0.85 | High | Review hierarchy, consider floorplanning | |
| > 0.85 | Very High | Redesign hierarchy, reduce connectivity |
Average Fanout: < 4 normal, 4-5 placement difficulty, > 5 implementation failure risk.
Congestion Level Interpretation
| Level | Impact | Action | |
|---|---|---|---|
| 3-4 | Minor | Usually acceptable unless timing budget is tight | |
| 5+ | Significant QoR impact | Apply congestion mitigation strategies |
Timing Closure Decision Tree
Setup Violation Resolution
Hold Violation Resolution
Congestion Mitigation
Message Severity Levels
| Severity | Meaning | Action Required | |
|---|---|---|---|
| Status | General processing feedback | None | |
| Info | Process/design feedback | None | |
| Warning | Constraints not applied as intended, sub-optimal results possible | Review | |
| Critical Warning | Input/constraints failing best practices, often leads to errors | Fix recommended | |
| Error | Problem stopping design flow | Must fix |
Tip: Promote warning severity: set_msg_config -id "Common 17-81" -new_severity "CRITICAL WARNING"
Design Check Waiver System
When to Waive
- Known-safe CDC crossings with external synchronization
- DRC checks not applicable to your design
- Methodology checks overridden by design intent
Waiver Wildcards
| Keyword | Matches | |
|---|---|---|
*CELL | Any cell | |
*NET | Any net | |
*PIN | Any pin | |
*PORT | Any port | |
*CLOCK | Any clock | |
* | Any string |
Waivers auto-saved in checkpoints. Export with write_waivers, import with read_xdc or source.
Cannot delete AMD IP waivers.
Synthesis Analysis & Closure Techniques
RTL Optimization: Integer Range Constraints
Explicitly define signal ranges to reduce logic depth:
Deep Memory Decomposition
| Attribute | Purpose | Effect | |
|---|---|---|---|
| RAM_DECOMP | Control memory decomposition strategy | power vs area tradeoff | |
| CASCADE_HEIGHT | Granular cascading depth control | Limits BRAM cascade chain depth |
RAMB Utilization (Non-Power-of-2 Depth)
When memory depth is not a power of 2, synthesis may over-allocate BRAMs. Manually partition with address decoder for optimal utilization. Check report_utilization and synthesis log for memory mapping.
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingvivado-analysis/SKILL.md
Popularity
- Repository stars
- 132
- Repository forks
- 16
- 7-day trend score
- 24
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 17 May 2026, 5 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/shinei-nouzen-arch/fpga-agent/vivado-analysis)