Skip to main content

Custom IC Creator Simulation Tools

tests

Why

This is a script package I use to control ngspice, it can

  • Run corner simulations
  • Create IPs (used in wulffern/aicex )
  • Create simulation directories
  • View waveforms

Changelog

Version Comment
0.0.1 First version of cicsim
0.0.3 All in on open source tools
0.1.2 First version on pipy
0.1.3 github action update
0.1.4 Added waveform viewer
0.1.5 Update waveform viewer
0.1.6 wave: added search. Added docs
0.1.7 Bugfix: ngraw deprecated float_
0.1.8 Added template command
0.1.9 Bugfix: allow absolute path in template command
0.1.11 Added directory name option (dname) to template
0.1.12 Added sndrfs and enobfs to fftWithHanning
0.1.13 Added docs
0.1.14 Nothing exiting
0.1.15 Added "archive" command to save old simulations. Added "--no-color" option
0.1.16 Fixed ngspice-45 compatibility. Fixed regex escapes. Fixed seed value handling
0.1.17 Updated docs and spec
0.1.18 Code quality overhaul: replaced os.system with subprocess, replaced eval with ast.literal_eval, migrated to Python logging module, added documentation for all CLI commands, removed setup.py in favor of pyproject.toml
0.1.19 Wave viewer overhaul: measurement cursors (A/B) with delta readout, scroll-wheel zoom, keyboard shortcuts, engineering notation on axes (EngFormatter), Export PDF, legend toggle, regex search tooltip, Help menu. Fixed pyproject.toml license for Python 3.8. Added unit tests
0.2.0 New pyqtgraph backend (--backend pg): hierarchical wave browser, automatic dual Y-axes, GPU-accelerated rendering, closeable tabs, analysis functions (FFT/PSD, Histogram, Differentiate, X vs Y). Fixed AC analysis complex data plotting
0.2.1 Multi-format file support: CSV, TSV, Excel, JSON, Parquet, Feather, HDF5, Pickle, and more. --sheet option for Excel files. String/categorical axis support with rotated labels. Gradient (dy/dx) and slope in cursor readout. Double-click to plot. Regex signal picker for X vs Y

Install this module

If you want to follow the latest and greatest

git clone https://github.com/wulffern/cicsim
cd cicsim
python3 -m pip install --user -e . 

If you want the latest stable

python3 -m pip install cicsim

Get started with simulation

Head over to Sky130nm tutorial to see cicsim in action.

Get started with waveform viewer

A standalone cicwave command is available that defaults to the pyqtgraph backend. It is equivalent to cicsim wave --backend pg.

# Standalone command (defaults to pg backend)
cicwave output_tran/tran_SchGtTtKffVh_*

# Or via cicsim subcommand
cicsim wave output_tran/tran_SchGtTtKffVh_*              # tkinter backend
cicsim wave --backend pg output_tran/tran_SchGtTtKffVh_*  # pyqtgraph backend

Supported file formats: .raw (ngspice), .csv, .tsv, .txt, .xlsx, .xls, .ods, .json, .parquet, .feather, .h5, .hdf5, .pkl, .pickle, .html, .xml, .fwf, .dta, .sas7bdat, .sav.

# Open CSV / Excel files
cicwave data.csv
cicwave data.xlsx --sheet "Sheet2"

Wave viewer keyboard shortcuts

Key Action
A Set cursor A at mouse position
B Set cursor B at mouse position
Escape Clear cursors
F Auto scale (fit)
R Reload all waves
L Toggle legend
Ctrl+O Open file
Ctrl+P Export PDF
Ctrl+N New plot tab (pg)
Ctrl+W Close current tab (pg)
Ctrl+Q Quit
Scroll Zoom x-axis
Shift+Scroll Zoom y-axis

Analysis functions (pg backend, right-click menu)

Function Description
FFT / PSD Power spectral density in dB with Hanning window
Histogram Distribution with Gaussian fit, mean and sigma
Differentiate Numerical dy/dx
X vs Y Parametric plot with regex signal picker

Commands

Usage: cicsim [OPTIONS] COMMAND [ARGS]...

  Custom Integrated Circuit Simulation

  This package provides helper scripts for simulating integrated circuits

  Check website for more information : http://analogicus.com/cicsim/

Options:
  --color / --no-color  Enable/Disable color output
  --help                Show this message and exit.

Commands:
  archive      Save a cicsim run output
  plot         Plot from rawfile
  portreplace  Replace ${PORTS} and ${VPORTS} with the subcircuit ports...
  results      Results of single runfile
  run          Run a ngspice simulation of TESTBENCH
  simcell      Create a ngspice simulation directory for a Cell
  srun         Run a spectre simulation of TESTBENCH
  summary      Generate simulation summary for results
  template     Run an IP template with <options> YAML file
  wave         Open waveform viewer

A standalone command is also available:

Usage: cicwave [OPTIONS] [FILES]...

  Waveform viewer (standalone). Defaults to the pyqtgraph backend.

Options:
  --x TEXT                Specify x-axis
  --backend [tk|pg]       GUI backend (default: pg)
  --sheet TEXT            Sheet name for Excel files
  --help                  Show this message and exit.

Release files for cicsim 0.2.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cicsim 0.2.7
File Size Uploaded
cicsim-0.2.7.tar.gz 66.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cicsim 0.2.7
File Interpreter ABI Platform
cicsim-0.2.7-py3-none-any.whl Python 3 none any Details

Total release size: 147.6 kB

Release files / cicsim-0.2.7.tar.gz

Download URL cicsim-0.2.7.tar.gz
Size 66.7 kB
Tags Source
SHA-256 checksum
How to use checksums
9e46f30094d55e0c43ac669f6c927d59fa95655c356db0f192928d11140296bf
BLAKE2b-256 checksum
How to use checksums
b6a3c3a05462a90e4f46d25269dab3f005fbc13f94d00fda8cde490c3e9f8423
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 13, 2026.

Transparency log

Release files / cicsim-0.2.7-py3-none-any.whl

Download URL cicsim-0.2.7-py3-none-any.whl
Size 80.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fd5a12e5f182b3042a19db3223c6551da146a24be853a204b40e6d5607a5d528
BLAKE2b-256 checksum
How to use checksums
78540e60c9633b9d312e3cf5f121df8e9575f6d8e5b30407ef55351fba2d5d5b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 13, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.7 This release

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.17

2 release files

0.1.16

2 release files

0.1.15

2 release files

0.1.14

2 release files

0.1.13

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.3

2 release files

0.1.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page