KyuPy - Processing VLSI Circuits With Ease ========================================== KyuPy is a python package for high-performance processing and analysis of non-hierarchical VLSI designs. Its purpose is to provide a rapid prototyping platform to aid and accelerate research in the fields of VLSI test, diagnosis and reliability. KyuPy is freely available under the MIT license. Main Features ------------- * Partial [lark](https://github.com/lark-parser/lark) parsers for common files used with synthesized designs: bench, gate-level verilog, standard delay format (SDF), standard test interface language (STIL) * 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](https://numpy.org) and [numba](https://numba.pydata.org) Getting Started --------------- KyuPy requires Python 3.6 or newer. Install the latest release by running: ```commandline pip3 install --user kyupy ``` For best performance, ensure you have [numba](https://pypi.org/project/numba) installed: ```commandline pip3 install --user numba ``` GPU/CUDA support may [require some additional setup](https://numba.pydata.org/numba-doc/latest/cuda/index.html). If CUDA or numba is not available, KyuPy will automatically fall back to slow, pure python execution. The Jupyter Notebook [UsageExamples.ipynb](https://github.com/s-holst/kyupy/blob/main/UsageExamples.ipynb) on GitHub contains some useful examples to get familiar with the API. Development ----------- To contribute to KyuPy or simply explore the source code, clone the KyuPy [repository](https://github.com/s-holst/kyupy) on GitHub. Within your local checkout, run: ```commandline pip3 install --user -e . ``` to make the kyupy package available in your python environment. The source code comes with tests that can be run with: ``` pytest ``` KyuPy depends on the following packages: * [lark-parser](https://pypi.org/project/lark-parser) * [numpy](https://pypi.org/project/numpy) * [numba](https://pypi.org/project/numba) (optional, required only for GPU/CUDA support)