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 3700ae9b33 need 3.12 for generic types 3 weeks ago
docs for release 0.0.6 3 weeks ago
examples dot fix and updated intro nb 2 months ago
src/kyupy beginning simple always block parsing in verilog 3 weeks ago
tests beginning simple always block parsing in verilog 3 weeks ago
.gitignore ignore more generated python files 3 weeks ago
.python-version add pytest dev dependency 3 weeks ago
.readthedocs.yaml need 3.12 for generic types 3 weeks ago
LICENSE.txt fix output with newest numpy 2 months ago
MANIFEST.in bump 3 years ago
README.md migrate readme to markdown 3 weeks ago
pyproject.toml need 3.12 for generic types 3 weeks 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.