Skip to content
Snippets Groups Projects
Felix Goding's avatar
Felix Goding authored
957cb690
History

B-ASIC - Better ASIC Toolbox

B-ASIC is an ASIC toolbox for Python 3 that simplifies circuit design and optimization.

Development

How to build and debug the library during development.

Prerequisites

The following packages are required in order to build the library:

  • cmake 3.8+
    • gcc 7+/clang 7+/msvc 16+
    • fmtlib 5.2.1+
    • pybind11 2.3.0+
  • python 3.6+
    • setuptools
    • wheel
    • pybind11
    • numpy
    • pyside2/pyqt5

Using CMake directly

How to build using CMake.

Configuring

In B-ASIC:

mkdir build
cd build
cmake ..

Building (Debug)

In B-ASIC/build:

cmake --build .

The output gets written to B-ASIC/build/lib.

Building (Release)

In B-ASIC/build:

cmake --build . --config Release

The output gets written to B-ASIC/build/lib.

Using setuptools to create a package

How to create a package using setuptools that can be installed using pip.

Setup (Binary distribution)

In B-ASIC:

python3 setup.py bdist_wheel

The output gets written to B-ASIC/dist/b_asic-<version>-<python_tag>-<abi_tag>-<platform_tag>.whl.

Setup (Source distribution)

In B-ASIC:

python3 setup.py sdist

The output gets written to B-ASIC/dist/b-asic-<version>.tar.gz.

Installation (Binary distribution)

In B-ASIC/dist:

pip install b_asic-<version>-<python_tag>-<abi_tag>-<platform_tag>.whl

Installation (Source distribution)

In B-ASIC/dist:

pip install b-asic-<version>.tar.gz

Running tests

How to run the tests using pytest in a virtual environment.

Linux/OS X

In B-ASIC:

python3 -m venv env
source env/bin/activate
pip install .
pytest

Windows

In B-ASIC (as admin):

python3 -m venv env
.\env\Scripts\activate.bat
pip install .
pytest

Test with coverage

pytest --cov=b_asic --cov-report html test

Usage

How to build and use the library as a user.

Installation

pip install b_asic

Importing

python3
>>> import b_asic as asic
>>> help(asic)

License

B-ASIC is distributed under the MIT license. See the included LICENSE file for more information.