"Semantic cleanup and curation of Spectre/SPICE transistor netlists for analog review or reusable reference circuits. Use when Codex needs to understand generated ADE/PEX netlists, split DUT/testbench/run decks, optionally strip layout-derived MOS tail parameters by reasoning, rename random nodes/instances into semantic names, or prepare clean comparator/opamp/SAR reference netlists. Scripts in this skill are checkers only, not primary cleanup engines."
Resources
2Install
npx skillscat add arcadia-1/virtuoso-bridge-lite/netlist Install via the SkillsCat registry.
Netlist Semantic Cleanup
Use this skill when converting generated netlists into readable, reviewable
Spectre/SPICE reference decks.
Principle
The primary cleanup engine is semantic understanding by the model and engineer.
Do not treat netlist cleanup as a blind text rewrite. A checker can report
leftover tool artifacts, but it cannot decide circuit boundaries, node meaning,
or instance names.
Workflow
- Preserve the raw generated artifact. Never edit ADE/PEX output in place.
- Read enough context to understand the circuit: ports, hierarchy, stimulus,
measurements, clocking, biasing, and intended DUT boundary. - Read
references/cleaning.mdbefore curating a real design. - Draft the semantic cleanup plan:
- DUT subckt or wrapper interface.
- Testbench-owned supplies, clocks, stimulus, loads, probes, and analyses.
- Run-deck-owned parameters, model includes, corners, sweeps, and saves.
- Rename map for random nodes/instances, plus unresolved review notes.
- Create the clean netlist as a curated source artifact. Use model reasoning to
split DUT/testbench/run decks and to choose semantic names. - Run the checker only after the semantic pass:
python skills/netlist/scripts/check_spectre_netlist.py netlist/dut/block.scs --mode dut
python skills/netlist/scripts/check_spectre_netlist.py netlist/tb/tb_block.scs --mode tbThe checker reports suspicious MOS tail parameters, random-looking node names,
generic instance names, and DUT/testbench mixing. It does not rewrite files and
should not be used as the main cleanup mechanism.
Rules
- Preserve MOS instance parameters by default when numerical behavior matters.
Removing layout side-effect tails is an explicit stripped-reference choice,
not the default. - If a stripped reference is requested, it may remove
ad/as,pd/ps,nrd/nrs,sa/sb/sca/scb,sp*, DFM, stress, proximity, and extraction
parameters, but expect performance differences and validate against the
full-parameter or raw deck. - Split reusable artifacts into DUT, testbench, and run decks. A clean DUT file
should not contain supplies, clocks, sweeps, saves, probes, or analysis
statements. - At the top of every curated netlist file or section containing MOS devices,
add an explicit terminal-order comment, for example:// MOS terminal order: D G S B (drain gate source bulk/body). - Replace random names (
net1,_net23,N_*, numeric mesh nodes,I42,M0) with semantic names where the circuit meaning is known. If meaning is
unknown, leave a short review note instead of guessing. - Validate after cleanup with a parser or Spectre syntax/smoke run when
Cadence is available.