Newer
Older
<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.
## Prerequisites
The following packages are required in order to build the library:
* cmake 3.8+
* gcc 7+/clang 7+/msvc 16+
* fmtlib 6.1.2+
* pybind11 2.3.0+
* python 3.6+
* setuptools
* wheel
* pybind11
## Development
How to build and debug the library during development.
### 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)
python3 -m pip install b_asic-<version>-<python_tag>-<abi_tag>-<platform_tag>.whl
```
#### Installation (Source distribution)
```
python3 -m pip install b-asic-<version>.tar.gz
```
## Usage
How to build and use the library as a user.
### Installation
```
python3 -m pip install b_asic
```
### Importing
```
python3
>>> import b_asic as asic
>>> help(asic)
```
## Running tests
### pytest
Run all tests against installed version off b_asic using a virtual enviroment
In `B-ASIC`:
```
python3 -m venv .venv
source .venv/bin/activate
pip install .
pytest
```
## License
B-ASIC is distributed under the MIT license.
See the included LICENSE file for more information.