diff --git a/README.md b/README.md index 44f2b7b..ea660cf 100644 --- a/README.md +++ b/README.md @@ -1,55 +1,71 @@ # BBDD Manipulation package A C++ library for creating, manipulating, and analyzing **Biconditional Binary Decision Diagrams (BBDDs)**. It provides efficient data structures and algorithms for representing boolean functions in the form of BBDDs, with an intuitive API for integration into projects. --- ## 📂 Project Structure Below is an overview of the main files and directories: - `include/` - Public headers - `bbdd.hpp` - main functionality of merging and extending bbdds - `bbdd_node.hpp` - bbdd node definition, hashing function, dumping node, compare nodes - `bbdd_types.hpp` - bbdd cases, bbdd operations, and pointer sized - `chain_variable_ordering.hpp` - creating and manipulating chain variable ordering - `computed_table.hpp` - merge cache data structure - `extend_table.hpp` - extend cache data structure - `unique_table.hpp` - main storage structure with inserting and deleting functions - `examples/` - Usage demonstrations - `full_adder.cpp` - example of creating the bbdd of a full adder and writing the design to a .dot and .blif file - `CMakeLists.txt` - Build configuration (CMake project setup) - `README.md` - This file - `LICENSE` - License file --- ## Getting Started -TODO - ### Installation requirements - CMAKE version >= 3.31.6 - c++ compiler (tested with g++ version 15.2.1 20250808) ### Build with CMake - Build examples ```bash git clone https://phabricator.ict.tuwien.ac.at/source/SoC_BBDD_Library.git mkdir build && cd build cmake .. make ``` - Build the docs ```bash git clone https://phabricator.ict.tuwien.ac.at/source/SoC_BBDD_Library.git mkdir build && cd build cmake .. make docs ``` + +### Full adder examples + +```bash +./build/example/full_adder +``` + - Creates `sum.dot` + - can be converted to .png using the following command + +```bash +dot -Tpng sum.dot -o sum.png +``` + + - Also created `full_adder.blif` + - can for example be opened in yosys +```bash +read_blif full_adder.png +```