Skip to content

velidurmuscan/VDSProject_Group6

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

104 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Forks Stargazers Issues


Logo

VDS Class Project
Group #6
Winter Semester 2021/2022

GitHub repository for Verification of Digital Systems Class Project
Explore the docs »

View Demo · Report Bug · Request Feature



Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

In the course of this Lab assignment students are going to implement a minimal BDD package in C++. This package implements the fundamental manipulation methods for ROBDDs as they were introduced in the lecture Verification of Digital Systems by Prof. Kunz. The package will be implemented using the Test Driven Development (TDD) paradigm presented by Dr. Wedler.

The project is split into three parts:

(back to top)

Part1:

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

Main tasks in this part:

  • Set up and maintain a Git repository
  • Use CMake as a build system of the project
  • Verify the code using GTest
  • Set up a Continuous Integration (CI) pipeline with GitHub Actions
  • Use Doxygen (or a similar tool) to generate documentation for the API. (Optional)

(back to top)

Part2:

Improvement of the performance of the implementation via provided benchmarks.

Main tasks in this part:

  • Learning how to identify performance bottlenecks within the code.
  • Analyzing benchmark results.
  • How to overcome bottlenecks.

(back to top)

Part3:

Extending the existing implementation by a practical application of BDD. Using BDDs, it is possible to symbolically represent a state-space. This representation allows to check quickly, whether a specific state is within the reachable state space or not.

(back to top)

Built With

Will be updated later.

(back to top)

Getting Started

Will be updated later.

(back to top)

Prerequisites

Will be updated later.

(back to top)

Installation

Will be updated later.

(back to top)

Usage

Will be updated later.

(back to top)

Roadmap

Part-1

  • README implementation
  • CI reading&understanding
  • ROBDD algorithm reading&understanding
  • C++ functions reading&understanding
  • How to write basic test functions in C++ properly
  • Doxygen reading&understanding
  • Google Test reading&understanding
  • Doxygen implementation
  • CI implementation
  • Function implementations
  • Test code implementations
  • Google Test implementation

(back to top)

Part-2

  • Setting up new file directory in the project files
  • Installing WSL
  • Setting up Boost library via WSL integration
  • Understanding the scientific paper (Brace et al., 1990)
  • Implementing hashed tables in C++
  • Successful benchmarks results
  • Successful verification results
  • README update

(back to top)

Part-3

  • Setting up new file directory in the project files
  • Implementation of tests
  • Implementation of functions
  • Successful test results
  • README update

(back to top)

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Will be updated later.

(back to top)

Contact

Veli Durmuşcan - durmusc@rhrk.uni-kl.de

Shreya Vithal Kulhalli - kulhalli@rhrk.uni-kl.de

Osama Omar Youssif Ayoub - ayoub@rhrk.uni-kl.de

Project Link

(back to top)

Acknowledgments

You might find helpful links below.

Project Related Resources

Given Task Links

(back to top)

Additional Materials

(back to top)

General Resources

(back to top)

About

This repository contains the basic files for the class project of the course "Verification of Digital Systems"

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C++ 90.2%
  • Python 6.7%
  • CMake 1.1%
  • C 0.9%
  • Starlark 0.7%
  • Shell 0.2%
  • Other 0.2%