<img src="logo.png" width="278" height="100"> # 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: * C++: * cmake 3.8+ * gcc 7+/clang 7+/msvc 16+ * fmtlib 5.2.1+ * pybind11 2.3.0+ * Python: * python 3.6+ * setuptools * pybind11 * numpy * pyside2/pyqt5 To build a binary distribution, the following additional packages are required: * Python: * wheel To run the test suite, the following additional packages are required: * Python: * pytest * pytest-cov (for testing with coverage) ### 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.