A python module for parsing, processing, and simulating gate-level circuits.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Stefan Holst 20cf441abb add doc gen dependencies 22 hours ago
docs migrate readme to markdown 22 hours ago
examples dot fix and updated intro nb 1 month ago
src/kyupy add dff to techlib 23 hours ago
tests fix oob in test 23 hours ago
.gitignore ignore more generated python files 23 hours ago
.python-version add pytest dev dependency 23 hours ago
.readthedocs.yaml migrate readme to markdown 22 hours ago
LICENSE.txt fix output with newest numpy 1 month ago
MANIFEST.in bump 3 years ago
README.md migrate readme to markdown 22 hours ago
pyproject.toml add doc gen dependencies 22 hours ago

README.md

KyuPy - Pythonic Processing of VLSI Circuits

KyuPy is a Python package for processing and analysis of non-hierarchical gate-level VLSI designs. It contains fundamental building blocks for research software in the fields of VLSI test, diagnosis and reliability:

  • Efficient data structures for gate-level circuits and related design data.
  • Partial lark parsers for common design files like bench, gate-level Verilog, standard delay format (SDF), standard test interface language (STIL), design exchange format (DEF).
  • Bit-parallel gate-level 2-, 4-, and 8-valued logic simulation.
  • GPU-accelerated high-throughput gate-level timing simulation.
  • High-performance through the use of numpy and numba.

Getting Started

KyuPy is available in PyPI. It requires Python 3.10 or newer, lark, and numpy. Although optional, numba should be installed for best performance. numba-cuda is required for GPU/CUDA acceleration. If numba is not available, KyuPy will automatically fall back to slow, pure Python execution.

The Jupyter Notebook Introduction.ipynb contains some useful examples to get familiar with the API.

Development

To work with the latest pre-release source code, clone the KyuPy GitHub repository.

  • Using pip: Run pip install -e . within your local checkout to make the package available in your Python environment. The source code comes with tests that can be run with pytest.
  • Using uv: Run uv run pytest within your local checkout to get started.