CharLib: An open-source standard cell library characterizer
- 🔩 Supports combinational and sequential cells
- 📈 Plots timing and I/O voltages
- 🧑💻 Easy-to-use, with YAML-based configuration
- 🐍 Implemented in Python 3 with a modified PySpice backend
- 🌶️ Compatible with ngspice and Xyce
Introduction
CharLib is an open cell library characterizer originally based on libretto. The current version supports timing characterization of combinational and sequential cells.
Installation
CharLib can be installed from PyPI using pip:
# Install our customized version of PySpice
pip install git+https://github.com/infinitymdm/PySpice
# Install CharLib
pip install charlib
Make sure you also have a compatible circuit simulator. ngspice and xyce are currently supported.
Usage
charlib run path/to/library/config/
CharLib searches the specified directory for a YAML file containing a valid cell library configuration, then characterizes the specified cells. See yaml.md for information on constructing a config file.
The general process for using CharLib is as follows:
- Acquire SPICE files and transistor models for the cells you want to characterize
- Write a configuration YAML file for the library
- Run CharLib
References
[1] M. Mellor and J. E. Stine, "CharLib: an open-source characterization tool written in Python", 2023.
[2] Synopsys, "What is Library Characterization?", https://www.synopsys.com/glossary/what-is-library-characterization.html, 2023
[3] S. Nishizawa and T. Nakura, "libretto: An Open Cell Timing Characterizer for Open Source VLSI Design," IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences, 論文ID 2022VLP0007, [早期公開] 公開日 2022/09/13, Online ISSN 1745-1337, Print ISSN 0916-8508, https://doi.org/10.1587/transfun.2022VLP0007, https://www.jstage.jst.go.jp/article/transfun/advpub/0/advpub_2022VLP0007/_article/-char/ja,
[4] I. K. Rachit and M. S. Bhat, "AutoLibGen: An open source tool for standard cell library characterization at 65nm technology," 2008 International Conference on Electronic Design, Penang, Malaysia, 2008, pp. 1-6, doi: 10.1109/ICED.2008.4786726.
[5] E. Salman, A. Dasdan, F. Taraporevala, K. Kucukcakar and E. G. Friedman, "Exploiting Setup-Hold-Time Interdependence in Static Timing Analysis," IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol. 26, no. 6, pp. 1114-1125, June 2007, doi: 10.1109/TCAD.2006.885834.
Metadata
Release files for charlib 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| charlib-1.0.0.tar.gz | 40.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| charlib-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 84.3 kB
Release files / charlib-1.0.0.tar.gz
| Download URL | charlib-1.0.0.tar.gz |
|---|---|
| Size | 40.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3e091f742a8d718739129749b956a007a16691f76332aadb7064720a28d2c545
|
|
BLAKE2b-256 checksum How to use checksums |
55d5e10516cc813b59012f9b59f86277a1a61bc5eee42132d3b88a98b7dd3e77
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.7.1 CPython/3.10.13 Linux/6.5.11-263.current
|
Release files / charlib-1.0.0-py3-none-any.whl
| Download URL | charlib-1.0.0-py3-none-any.whl |
|---|---|
| Size | 43.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
de3b18735bcbd598e37ab30234f3c13deaa9919ebd82987d1d4132371809d8fa
|
|
BLAKE2b-256 checksum How to use checksums |
5f829d5f6bf19d0385c0406bead59a67f718d8412ff62603d2bd1cb983d5f482
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.7.1 CPython/3.10.13 Linux/6.5.11-263.current
|