Metadata-Version: 2.3
Name: SINGr
Version: 0.0.1.dev2
Summary: ngSPICE Based Signal-Integrity Simulator and Analyser.
Author: Thomas Damjanovic
Requires-Dist: numpy
Requires-Dist: seaborn
Requires-Dist: inspice>=1.7.0.6
Requires-Dist: ecdtools>=0.7.0
Requires-Dist: pybis2spice
Requires-Dist: scipy
Requires-Dist: kmeans1d
Requires-Dist: pandas
Requires-Dist: jinja2
Requires-Dist: pydantic>=2.13.4
Maintainer: Thomas Damjanovic
Requires-Python: >=3.12
Description-Content-Type: text/markdown

# SINGr: An ngSPICE SI Simulation and Analysis Tool for Automated Simulation and Optimisation Workflows

**S**ignal **I**ntegrity **ng**SPICE Analyser or SINGr (like singer) for short

This package is designed for the purpose of allowing one to specify arbitrary net topologies with modular structural components such as transmission line models, terminations, and behavioural models of components and then simulate them with a range of different workflows. 

## Features
Currently, only the base configuration structure is implemented, which uses a recursive tree structure with arbitrary node connections to allow for more complex structures. There are, however, two automated simulation and analysis workflows that have been implemented:

- **Waveform Analysis**
  - This assesses all valid transitions and logic states (currently limited to NRZ/PAM2 waveforms) and provides, *rise/fall time* (at 10% and 90%), *settling time* (within 10% margin of stable value), *slew rate*, *overshoot*, and *undershoot*. 
- **Eye Analysis**
  - This segments a time series of logic transitions into chunks of 3 and then overlays them to assess eye width, eye height, eye amplitude, and logic levels.  

## Contribution
Developers can contribute to the tool by forking the repository and submitting pull requests.

## Issues and Feature Requests
* Please record any bugs, issues and feature requests here: https://github.com/Jamanaman/SINGr/issues
* Detailed information on how any issue can be reproduced should be provided including any IBIS files used and version number of the program. Screenshots would also help.

## References
This tool is built off of pyBIS2PICE (https://github.com/Jamanaman/pybis2spice) to translate IBIS Models that are used in SI simulations, ecdtools which allows one to parse and process ibis files, and InSpice as the interface into ngSPICE. 

Eye Diagram analysis was implemented using a PAM4 Eye-Diagram Analysis algorithm [1] using Least Median of Squares mode estimation instead of shorth mode estimation [2].

[1] Jargon, J. and Cheron, J. (2021), A Robust Algorithm for PAM4 Eye-Diagram Analysis, Proceedings of the Asia Pacific Microwave Conference, Brisbane, AU, [online], https://tsapps.nist.gov/publication/get_pdf.cfm?pub_id=932331 (Accessed June 29, 2026) 

[2] Jargon, Jeffrey & Wang, Chih-Ming Jack & Hale, Paul. (2008). A Robust Algorithm for Eye-Diagram Analysis. Journal of Lightwave Technology. 26. 3592-3600. [online], https://ieeexplore.ieee.org/document/4758639 (Accessed June 29, 2026)