shinei-nouzen-arch/fpga-agent/vivado-sim
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 help with Vivado simulation strategy, flow selection, and debugging. This includes behavioral simulation (RTL functional verification), post-synthesis simulation (netlist functional verification), post-implementation timing simulation (SDF back-annotation, timing verification), Vivado Simulator xsim usage (xvlog/xvhdl/xelab/xsim three-step flow, launch_simulation Project Mode), third-party simulator integration (Questa/ModelSim/VCS/Xcelium/Riviera/ActiveHDL, compile_simlib, export_simulation), SAIF/VCD power simulation (open_saif/log_saif, open_vcd/log_vcd, read_saif + report_power), simulation netlist generation (write_verilog -mode funcsim/timesim, write_sdf), xsim debugging commands (add_force, add_wave, log_wave, add_bp, step, run, restart, get_objects, get_value), simulation properties and settings, glbl.v usage, or any question about choosing the right simulation approach for verification or power analysis.
Install
npx vskill@latest install shinei-nouzen-arch/fpga-agent/vivado-simSKILL.md
Vivado Simulation Decision Guide
Based on UG900 (v2025.2). For complete command syntax and property tables, see REFERENCE.md.
Simulation Flow Overview
Three Simulation Stages
| Stage | Input | Purpose | Speed | Accuracy | |
|---|---|---|---|---|---|
| Behavioral (RTL) | RTL source + TB | Functional verification | Fastest | No timing | |
| Post-Synthesis | Synth netlist | Verify synthesis correctness | Medium | Functional only | |
| Post-Implementation | Impl netlist + SDF | Timing verification | Slowest | Full timing |
When to Use Each Stage
- Daily development → Behavioral sim only
- Functional mismatch after synthesis → Post-synthesis sim to isolate
- Timing closure verification → Post-implementation timing sim
- Power estimation → Any stage + SAIF dump →
report_power
Vivado Simulator (xsim) — Project Mode
Recommended for interactive development with Vivado GUI/project.
Simulation Modes in Project Mode
Generate Scripts Without Running
Vivado Simulator (xsim) — Non-Project Mode (Scripted)
Three-step flow: Compile → Elaborate → Simulate
xelab Debug Level Decision
| Scenario | Option | Effect | |
|---|---|---|---|
| Waveform + breakpoints | -debug typical | Standard debugging (recommended) | |
| All signals observable | -debug all | Full visibility, slower elaboration | |
| Fastest simulation | -debug off | No debug, maximum speed | |
| Line stepping | -debug line | Source-level stepping |
xelab Key Options
| Option | Purpose | |
|---|---|---|
-d MACRO=value | Verilog \`define | |
-i <path> | Verilog include search path | |
-L <library> | Library search order | |
-s <snapshot> | Output snapshot name | |
-timescale 1ns/1ps | Default timescale | |
-mt <N> | Multi-threading (2, 4, 8, off) | |
-transport_int_delays | Transport delay mode (timing sim) | |
-pulse_r 0 -pulse_e 0 | Pulse rejection/error (timing sim) | |
-sdfroot <instance> | SDF annotation root instance | |
-generic_top <param=val> | Override top-level generics (VHDL) | |
-override_timeunit | Override module timeunit with -timescale |
xsim Runtime / Debug Commands
| Command | Description | |
|---|---|---|
run <time> | Run simulation for specified time | |
run -all | Run until $finish or breakpoint | |
restart | Reset simulation to time 0 | |
step / step <N> | Single-step (N statements) | |
current_time | Return current simulation time | |
add_force <signal> <value> [<time> <value>...] | Force signal value (supports sequences) | |
remove_forces <signal> | Remove forced values | |
add_wave <signal> | Add signal to waveform viewer | |
log_wave -r / | Log all signals to WDB (waveform database) | |
add_bp <file> <line> | Add breakpoint at source line | |
add_bp -condition {<expr>} | Conditional breakpoint | |
remove_bp <id> | Remove breakpoint | |
get_objects -r * | List all objects (hierarchical) | |
get_value <signal> | Read current signal value | |
set_value <signal> <value> | Set signal value (non-persistent) | |
report_values | Report all signal values |
add_force Examples
Timing Simulation (Post-Implementation)
Netlist Generation
write_verilog -mode Options
| Mode | Purpose | |
|---|---|---|
funcsim | Functional simulation netlist (no timing) | |
timesim | Timing simulation netlist (with SDF annotation) | |
design | Design netlist (non-simulation) | |
synth_stub | Synthesis stub for OOC | |
pin_planning | I/O pin planning |
SDF Back-Annotation
xelab handles SDF automatically when -sdf_anno true is used in write_verilog:
For manual SDF specification:
Process Corner Selection
glbl.v Requirements
| Stage | glbl.v Needed? | Reason | |
|---|---|---|---|
| Behavioral | Only if using MMCM/PLL/GT primitives | Global set/reset signals | |
| Post-Synthesis | Yes | Netlist references global signals | |
| Timing Sim | Required | SDF annotation depends on it |
Path: $XILINX_VIVADO/data/verilog/src/glbl.v
Third-Party Simulator Integration
Supported Simulators
| Simulator | -simulator value | Vendor | |
|---|---|---|---|
| Questa Advanced Simulator | questa | Siemens EDA | |
| ModelSim | modelsim | Siemens EDA | |
| VCS | vcs | Synopsys | |
| Xcelium | xcelium | Cadence | |
| Riviera-PRO | riviera | Aldec | |
| Active-HDL | activehdl | Aldec |
Step 1: Compile Simulation Libraries (One-Time)
Step 2: Set Target Simulator
Step 3: Export Simulation Scripts
export_simulation vs launch_simulation -scripts_only
| Feature | export_simulation | launch_simulation -scripts_only | |
|---|---|---|---|
| Custom output dir | Yes | Project default | |
| Non-Project Mode | Yes | No | |
| IP compiled libs | -use_ip_compiled_libs | Automatic | |
| All sim types | Yes | Current mode only |
SAIF/VCD Power Simulation
SAIF Collection (Recommended for report_power)
VCD Collection
SAIF vs VCD
| Feature | SAIF | VCD | |
|---|---|---|---|
| File size | Small (statistical summary) | Large (full waveform) | |
| report_power support | Direct read_saif | Needs conversion | |
| Best for | Vivado power analysis | Third-party tools / waveform viewing | |
| Recommended | Yes (for power) | When waveform needed |
Simulation Properties Quick Reference
Simulation Fileset Management
Language Support
| Language | Standard | xsim Support | |
|---|---|---|---|
| Verilog | IEEE 1364-2001/2005 | Full | |
| SystemVerilog | IEEE 1800-2012 (partial 2017) | Full | |
| VHDL | IEEE 1076-1993/2008 | Full | |
| Mixed Language | Verilog/SV + VHDL | Supported |
Security
- Security scanPassed, 100 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-sim/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-sim)