Skip to content

Minimal ROBDD library implemented as part of the Verification of Digital Systems course

Notifications You must be signed in to change notification settings

rpigor/librobdd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Stargazers Issues


ROBDD library

Verification of Digital Systems class project
Winter Semester 2023/2024
Group #7



Table of Contents
  1. About the project
  2. Getting started
  3. Acknowledgments

About the project

This is a minimal Reduced Ordered Binary Decision Diagram (ROBDD) package written in C++. This package implements the fundamental manipulation methods for BDDs as they were introduced in the lecture Verification of Digital Systems by Prof. Kunz. The package was implemented using the Test Driven Development paradigm presented by Dr. Wedler.

The project is split into three parts.

  • Implementation of the basic functionality of the BDD package using the TDD methodology. This is the biggest part of the project.

  • Improvement of the performance of the implementation via provided benchmarks.

  • Extending the existing implementation by a practical application of BDD. Using BDDs, it is possible to symbolically represent a state-space and perform a reachability analysis.

(back to top)

Getting started

Dependencies

List of dependencies required to compile the project:

  • Boost 1.81 or higher (libboost-all-dev)
  • Graphviz (graphviz-dev)
  • GoogleTest (libgtest-dev)

Be aware that this project uses boost::unordered_flat_map and thus requires Boost 1.81 or higher, which is not currently available in Ubuntu's official repository. If you don't have access to this version of the library, you can use boost::unordered_map with minor adjustments.

Installation

  1. Install the dependencies

  2. Clone the repo

    git clone https://github.com/rpigor/librobdd

Installation with CLion

CLion comes with CMake.

  1. Open CLion and open librobdd/CMakeLists.txt as a project

  2. Select your target and build the project

Installation without CLion

  1. Navigate to the project folder
    cd librobdd
  2. Invoke CMake to create the build directory and generate makefiles
    cmake -S . -B build
  3. Invoke CMake to build the project
    cmake --build build

(back to top)

Acknowledgments

Thank you Veli Durmuşcan, Shreya Vithal Kulhalli and Osama Omar Youssif Ayoub for the work on this README.md.

(back to top)

About

Minimal ROBDD library implemented as part of the Verification of Digital Systems course

Topics

Resources

Stars

Watchers

Forks