Run Simulation

SkillDev tools

Run circuit simulation (DC, tran, AC) on Virtuoso. Use when executing Spectre simulation, running analysis, or checking simulation results.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Run Simulation skill

What this skill tells your AI

The instructions your AI receives, as published by deanyou/virtuoso-cli in .agents/skills/sim-run/SKILL.md and read by ahel’s review.

Execute Spectre simulation via virtuoso sim run.

Prerequisites

Simulation must be set up first (see /sim-setup):

  • simulator('spectre) configured
  • design(lib cell view) set
  • modelFile(...) configured
  • desVar(...) set for any parameterized variables
  • resultsDir(...) set

Run analysis

# DC operating point
virtuoso sim run --analysis dc --param saveOppoint=t --timeout 120 --format json

# Transient
virtuoso sim run --analysis tran --stop 10u --timeout 300 --format json

# AC
virtuoso sim run --analysis ac --start 1 --stop 1e9 --dec 10 --timeout 300 --format json

Important: resultsDir — DO NOT CHANGE

⚠️ The ADE session binds run() to the resultsDir established when the GUI session was first created. Changing it to any other path silently breaks run() (returns nil).

# ✅ Find the canonical path from the runSimulation script
cat <netlist_dir>/runSimulation | grep "\-raw"
# → -raw ../../../../tmp/opt_5t_ota/psf  →  canonical = /tmp/opt_5t_ota

# ✅ If resultsDir is nil, restore to canonical path
virtuoso skill exec 'resultsDir("/tmp/opt_5t_ota")'

# ❌ Never do this before a run — it will break run()
virtuoso skill exec 'resultsDir("/tmp/some_new_path")'

sim run now returns a clear error if resultsDir is nil instead of auto-setting it to a temp path (which would break the ADE session binding).

Also: do not call sim setup again once a working ADE session exists — it resets the Ocean session state and can cause run() to return nil.

Verify success

After run(), check spectre.out for errors:

# Check the log
virtuoso skill exec 'resultsDir()' --format json
# Then read the spectre.out file at <resultsDir>/psf/spectre.out

# A successful run has PSF data files (dcOp.dc, tran.tran, etc.)
# A failed run only has artistLogFile, simRunData, variables_file

Key indicators

run() outputMeaning
Returns resultsDir pathSimulation completed
Returns nil, takes <0.01sAnalysis not configured or session lost
Returns nil, takes >0.1sNetlisting ran but spectre may have failed

Common errors in spectre.out

ErrorFix
SFE-868: Cannot open input fileModel path wrong — verify file exists
SFE-675: no valid section nameEmpty section "" in modelFile for .lib — remove it
SFE-1997: parameter not assignedSet desVar() for the missing parameter
OSSHNL-116: Cannot descend into viewsSubcell missing spectre view — remove instance or add view

Signals

GitHub stars
32
Forks
10
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
sim-run
Source
github.com/deanyou/virtuoso-cli