shinei-nouzen-arch/fpga-agent/vivado-analysis

Claude Code and agent skill by shinei-nouzen-arch/fpga-agent

Trust tier 3
  • community
Source check pending

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-analysis

SKILL.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:

1. Input Port → Register (constrained by set_input_delay)
2. Register → Register (constrained by clock period)
3. Register → Output Port (constrained by set_output_delay)
4. Input Port → Output Port (combinational, set_max_delay)

Path structure (three sections):

Source Clock Path → Data Path → Destination Clock Path
(clock source (launch pin (clock source
to launch cell) to capture to capture
cell input) cell)

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 TypeSource ClockData PathDestination Clock
Setup/Recovery (max delay)Slow_maxSlow_maxSlow_min
Setup/Recovery (max delay)Fast_maxFast_maxFast_min
Hold/Removal (min delay)Slow_minSlow_minSlow_max
Hold/Removal (min delay)Fast_minFast_minFast_max

Key rule: Delays from different corners are NEVER mixed on same path during slack calculation.

Report Selection Guide

GoalCommandWhen to Use
Quick timing signoffreport_timing_summaryAfter implementation, mandatory before bitstream
Analyze specific pathsreport_timing -from/-to/-throughDebugging specific failing paths
Overall QoR score (1-5)report_qor_assessmentAfter routing, assess closure likelihood
Auto optimization hintsreport_qor_suggestionsWhen stuck on timing closure
Path characteristicsreport_design_analysisDeep analysis of logic levels, fanout, physical spread
Methodology compliancereport_methodologyEarly in flow to catch methodology violations
Resource usagereport_utilizationAfter synthesis or implementation
CDC checksreport_cdcAfter synthesis, verify clock domain crossings
Congestion analysisreport_design_analysis -congestionAfter placement, if timing degraded
Design rule checksreport_drcBefore bitstream generation
Bus skewreport_bus_skewIf set_bus_skew constraints exist (NOT in report_timing_summary)

Timing Report Header Fields

FieldMeaning
SlackPositive = meets timing. Negative = violation
SourceStartpoint cell + launch clock (edge, name, period)
DestinationEndpoint cell + capture clock (edge, name, period)
Path GroupClock group containing endpoint (async pins → async_default)
Path TypeMax (setup/recovery) or Min (hold/removal); corner (Slow/Fast)
RequirementClock period (same clock) or smallest positive delta (different clocks)
Data Path DelayTotal delay through logic section
Logic LevelsCount of each primitive type in data path
Clock Path SkewDestination - Source insertion delay + CPR
CPRClock Pessimism Removal — shared clock circuitry correction
Clock UncertaintyTSJ + TIJ + DJ + PE + UU (see below)
Clock Uncertainty Components
ComponentSource
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
ValueMeaning
UnplacedCell not placed, delay estimated
EstimatedCell placed but not routed
RoutedFinal routed delay

Clock Phase Shift Mode (Device Defaults)

Device FamilyDefault ModeBehavior
7 SeriesWAVEFORMModifies clock waveform edges
UltraScaleWAVEFORMModifies clock waveform edges
UltraScale+LATENCYModels as MMCM/PLL insertion delay
VersalLATENCYModels 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
ScoreInterpretationAction
1Design will likely NOT complete implementationMajor redesign needed
2Will complete but will NOT meet timingSignificant optimization required
3Will likely NOT meet timingTargeted optimization needed
4Will likely meet timingMinor adjustments may suffice
5Favorable timing-closure assessmentPerform final verification; generate a bitstream only if it is part of the requested deliverable and the applicable checks pass
Five Assessment Categories
CategoryWhat It Checks
UtilizationResource usage across device, SLR, Pblock levels
NetlistLogical structure, DONT_TOUCH properties, high fanout nets
ClockingClock skew on setup and hold paths
CongestionNetlist structures causing routing congestion
TimingWNS/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

report_qor_suggestions ← Generate suggestions
↓
write_qor_suggestions file.rqs ← Export to file
↓
read_qor_suggestions file.rqs ← Import in next run
↓
Suggestions auto-apply ← If AUTOMATIC=Yes
Suggestion Classification
DimensionValues
OriginGENERATED (current run) / EXISTING (imported from .rqs)
StatusAPPLIED / FAILED TO APPLY
Stage generatedopt_design / place_design / phys_opt_design / route_design
Stage applicableWhere suggestion should be applied
AutomaticYes (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
CategoryFields
TimingPath Type, Requirement, Slack, Timing Exception
LogicStart/End Pin Primitives, Pins, Logic Levels, Routes
PhysicalArch Boundary Crossings (IO/RAM/DSP/NOC), Pblock restrictions, Bounding Box, Net Fanout/Detour
PropertyCombined LUT pairs, MARK_DEBUG, DONT_TOUCH, Fixed constraints
DFXDFX Path Type, Boundary Nets, Boundary Fanout
Complexity (Rent Exponent) Interpretation
Rent ExponentComplexityAction
< 0.65Low to NormalNo action needed
0.65 - 0.85HighReview hierarchy, consider floorplanning
> 0.85Very HighRedesign hierarchy, reduce connectivity

Average Fanout: < 4 normal, 4-5 placement difficulty, > 5 implementation failure risk.

Congestion Level Interpretation
LevelImpactAction
3-4MinorUsually acceptable unless timing budget is tight
5+Significant QoR impactApply congestion mitigation strategies

Timing Closure Decision Tree

Setup Violation Resolution
Setup violation detected
├─ Check Logic Levels (report_design_analysis)
│ └─ High logic levels → Pipeline registers / retiming (vivado-synth: -global_retiming)
├─ Check Fanout (report_design_analysis)
│ └─ High fanout → MAX_FANOUT attribute / phys_opt replication (vivado-impl)
├─ Check Physical Spread (report_design_analysis -congestion)
│ └─ Large bounding box → Pblock floorplanning (vivado-constraints)
├─ Check Clock Skew
│ └─ Negative skew → Review clock tree, BUFG placement
└─ Check Timing Exception
└─ Missing/wrong constraint → Fix in XDC (vivado-constraints)
Hold Violation Resolution
Hold violation detected
├─ Check fast-corner delay
│ └─ Very short data path → Add delay cells (phys_opt_design hold fix)
├─ Check Clock Skew
│ └─ Large positive skew → Review clock tree balance
└─ Check Inter-SLR paths (SSI devices)
└─ SLR crossing → SLR-aware placement (vivado-impl)
Congestion Mitigation
Congestion Level ≥ 5
├─ Check utilization (report_utilization)
│ └─ > 80% LUT → Reduce design size or use area-optimized synthesis
├─ Check high-fanout nets
│ └─ Replicate drivers (phys_opt_design fanout optimization)
├─ Try congestion-focused strategies
│ └─ vivado-impl: Congestion_* strategies
└─ Floorplanning
└─ Spread logic across device (Pblocks, vivado-constraints)

Message Severity Levels

SeverityMeaningAction Required
StatusGeneral processing feedbackNone
InfoProcess/design feedbackNone
WarningConstraints not applied as intended, sub-optimal results possibleReview
Critical WarningInput/constraints failing best practices, often leads to errorsFix recommended
ErrorProblem stopping design flowMust 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
KeywordMatches
*CELLAny cell
*NETAny net
*PINAny pin
*PORTAny port
*CLOCKAny 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:

verilog
// Before: 32-bit counter, deep comparator logic
reg [31:0] counter;
// After: range-constrained, smaller comparator
reg [9:0] counter; // if max value < 1024
Deep Memory Decomposition
AttributePurposeEffect
RAM_DECOMPControl memory decomposition strategypower vs area tradeoff
CASCADE_HEIGHTGranular cascading depth controlLimits 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

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
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/shinei-nouzen-arch/fpga-agent/vivado-analysis/badge)](https://verified-skill.com/skills/shinei-nouzen-arch/fpga-agent/vivado-analysis)

Something wrong with this skill or its page? Tell us.