SY

A workflow assistant for running standard Synopsys tools in ASIC development.

Install

mkdir -p .claude/skills/synopsys-flow && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/13838" && unzip -o skill.zip -d .claude/skills/synopsys-flow && rm skill.zip

Installs to .claude/skills/synopsys-flow

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Use when running Synopsys ASIC tools — Design Compiler synthesis, VCS simulation, SpyGlass lint/CDC, DFT Compiler scan insertion, or VC Formal property proving.
160 chars✓ has a “when” trigger
Advanced

Key capabilities

  • Run Design Compiler (`compile_ultra`) for ASIC synthesis.
  • Compile and run simulation in VCS.
  • Perform SpyGlass lint, CDC, or low-power rule checking.
  • Insert scan chains with DFT Compiler (`insert_dft`).
  • Perform property proving in VC Formal.
  • Generate reports for timing, area, power, and quality of results.

How it works

The skill provides scripts and guidelines for executing Synopsys ASIC front-end tools, including Design Compiler for synthesis, VCS for simulation, SpyGlass for linting, DFT Compiler for scan insertion, and VC Formal for property proving.

Inputs & outputs

You give it
RTL source files, SDC constraints, and assertion files
You get back
Synthesized netlists, simulation results, lint/CDC reports, scan-inserted designs, or formal proof reports

When to use synopsys-flow

  • Run ASIC synthesis
  • Compile and run simulations
  • Execute RTL linting
  • Perform property proving

About this skill

Synopsys Flow

Synopsys ASIC front-end tools: DC, VCS, SpyGlass, DFT Compiler, VC Formal.


When to use

  • Running Design Compiler (compile_ultra) for ASIC synthesis.
  • Compiling and running simulation in VCS.
  • SpyGlass lint, CDC, or low-power rule checking.
  • Inserting scan chains with DFT Compiler (insert_dft).
  • Property proving in VC Formal.

Not for: Cadence equivalents (use cadence-flow); FPGA flows (use vivado-flow / quartus-flow); SDC/XDC authoring (use timing-constraints); RTL coding rules (use synthesis-guidelines).


Design Compiler (synthesis)

# Setup
set TOP my_design
set TECH_LIB /libs/tech.db
set TARGET_LIB /libs/std_cell.db

set link_library "* $TECH_LIB $TARGET_LIB"
set target_library $TARGET_LIB

# Read RTL
analyze -format sverilog [glob rtl/*.sv]
elaborate $TOP
link

# Constraints
source constraints/timing.sdc

# Compile
compile_ultra -timing_high_effort_script

# Reports
report_timing > rpt/timing.rpt
report_area   > rpt/area.rpt
report_power  > rpt/power.rpt
report_qor    > rpt/qor.rpt

# Output
write -format verilog -hierarchy -output netlist/${TOP}.v
write_sdc out/${TOP}.sdc
write_sdf out/${TOP}.sdf

VCS (simulation)

# Compile
vcs -full64 -sverilog \
    -f filelist.f \
    -timescale=1ns/1ps \
    +define+SIM \
    -o simv

# Run
./simv +fsdbDumpfile=dump.fsdb

SpyGlass (lint + CDC)

# Project setup
new_project lint_proj
read_file -type verilog [glob rtl/*.sv]
set_option top top_module

# Lint
current_goal lint/lint_rtl
run_goal
write_report lint_report.rpt

# CDC
current_goal cdc/cdc_verify
run_goal
write_report cdc_report.rpt

DFT Compiler (scan insertion)

# Pre-DFT
set_scan_configuration -chain_count 4
set_scan_configuration -clock_mixing no_mix

# Check DFT rules
create_test_protocol
dft_drc

# Insert scan
insert_dft
write -format verilog -output scan_netlist.v

# Report
report_scan_path > scan_path.rpt

VC Formal (property proof)

# Setup
read_file -type verilog netlist/design.v
read_file -type sva assertions.sva

# Run formal
set_engine_mode {Hp Ht}
prove -all

# Report
report_property -all

File Organization

project/
├── rtl/              # RTL source
├── tb/               # Testbenches
├── constraints/      # SDC files
├── scripts/
│   ├── syn/          # DC scripts
│   ├── sim/          # VCS scripts
│   ├── lint/         # SpyGlass scripts
│   ├── dft/          # DFT Compiler scripts
│   └── formal/       # VC Formal scripts
├── work/             # Tool outputs
└── reports/          # Reports

Anti-patterns (do NOT do this)

  1. Library setup hardcoded in scripts. Source a setup.tcl from environment so the same flow runs at multiple sites/PDKs.
  2. Skipping link / check_design after analyze + elaborate. Unresolved references and partial elaboration silently produce wrong netlists.
  3. Running compile_ultra without an SDC. DC defaults to no clock → trivially-met timing → garbage QoR.
  4. Lint and CDC reports not gated in CI. Reports nobody reads = bugs nobody catches.
  5. Hand-edited netlists. Always re-run synth from RTL; manual netlist edits don't survive the next ECO.
  6. compile instead of compile_ultra. Legacy command — compile_ultra is the modern flow with better timing closure.

Validation gates

  • analyze + elaborate + link clean (no unresolved references).
  • check_design reports zero blocking errors.
  • DC WNS ≥ 0 across all clock groups, or every violator documented and waivered.
  • SpyGlass lint + CDC waiver lists reviewed; no new unwaived violations.
  • VCS regression PASS rate = 100% on the gate-level netlist (GLS sanity).
  • DFT Compiler stuck-at coverage ≥ 99% (or project target).
  • VC Formal proofs all converge (proven, not bounded), or boundedness justified.
  • Tool versions and library setup recorded with each release.

When not to use it

  • When using Cadence equivalents for ASIC tools.
  • When working with FPGA flows.
  • When authoring SDC/XDC files or RTL coding rules.

Limitations

  • The skill is specific to Synopsys ASIC tools.
  • The skill does not cover Cadence equivalents or FPGA flows.
  • The skill does not cover SDC/XDC authoring or RTL coding rules.

How it compares

This skill provides specific command-line examples and anti-patterns for Synopsys ASIC tools, offering a detailed workflow for front-end ASIC design, unlike general EDA tool usage.

Compared to similar skills

synopsys-flow side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
synopsys-flow (this skill)03moReviewAdvanced
wp-testing-core69moReviewIntermediate
bats-testing-patterns22moReviewIntermediate
orchardcore-tester16moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

wp-testing-core

mikkelkrogsholm

Core WordPress testing procedures and patterns for browser-based plugin testing. Use when testing WordPress plugins, logging into WordPress admin, verifying plugin activation, or navigating WordPress UI.

692

bats-testing-patterns

wshobson

Master Bash Automated Testing System (Bats) for comprehensive shell script testing. Use when writing tests for shell scripts, CI/CD pipelines, or requiring test-driven development of shell utilities.

215

orchardcore-tester

OrchardCMS

Tests OrchardCore CMS features through browser automation. Use when the user needs to build, run, setup, or test OrchardCore functionality including admin features, content management, media library, and module testing.

14

app-commands

growilabs

GROWI main application (apps/app) specific commands and scripts. Auto-invoked when working in apps/app.

13

e2e-tester

redpanda-data

Write and run Playwright E2E tests for Redpanda Console using testcontainers. Analyzes test failures, adds missing testids, and improves test stability. Use when user requests E2E tests, Playwright tests, integration tests, test failures, missing testids, or mentions 'test workflow', 'browser testing', 'end-to-end', or 'testcontainers'.

13

replit-load-scale

jeremylongshore

Implement Replit load testing, auto-scaling, and capacity planning strategies. Use when running performance tests, configuring horizontal scaling, or planning capacity for Replit integrations. Trigger with phrases like "replit load test", "replit scale", "replit performance test", "replit capacity", "replit k6", "replit benchmark".

13

Search skills

Search the agent skills registry