Custom IC Creator Simulation Tools
Project description
Custom IC Creator Simulation Tools
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cicsim-0.2.2.tar.gz.
File metadata
- Download URL: cicsim-0.2.2.tar.gz
- Upload date:
- Size: 60.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
217b8145140264d63208ed3eb4d579e36ea9787622049854ab47ecf738bf28a6
|
|
| MD5 |
0d2745a0bc244eaa74cc174b6ab80b0f
|
|
| BLAKE2b-256 |
09e04d0e62e5232ee8b91c3a5f2391dc9d91e101a2abf91ad9f3c5a95919e35e
|
File details
Details for the file cicsim-0.2.2-py3-none-any.whl.
File metadata
- Download URL: cicsim-0.2.2-py3-none-any.whl
- Upload date:
- Size: 74.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cca8933410c4c593139f95d887b357646856ed317c0f87db12811a7c0a41a5c1
|
|
| MD5 |
8c4cc0f7c97605415072a1ef04219f87
|
|
| BLAKE2b-256 |
38a7214ca38467127f4a41d3159964d179c949e52b9c5571b63510cba020c3ec
|