Skip to content

Logic Network Synthesizer based on Quine–McCluskey algorithm

License

Notifications You must be signed in to change notification settings

Andreabont/OpenQM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenQM is a implementation of Quine–McCluskey algorithm focused on usability, relased under GNU GPLv3 license. It provide a library to integrate the algorithm in other prjects and a simple CLI executable.

Build

Installing the dependencies

  • cmake
  • libboost

Compile!

git clone https://github.com/Andreabont/OpenQM.git
mkdir build
cd build
cmake ..
make
make test

Usage in CLI

#>./OpenMP 
Insert implicants followed by return. Write 'q' or 'quit' to exit...
1001
1110
1100
q

Solution:
1001 (9)
11-0 (12, 14)

Expression: ab'c'd + abd'

Usage as library

Implicants

#include <vector>
#include "implicant.h"

int main() {

    Implicant singleImplicant = "0101";

    std::vector<Implicant> listOfImplicants = {
        "0001",
        "1001",
        "1011",
        "1100",
        "1101",
        "1110",
        "1111"
    };

}

Apply Quine–McCluskey

# Get the QM solution
std::vector<Implicant> solution = makeQM(implicant_list, dont_care_list);

# Get the boolean expression
std:string expression = getBooleanExpression(solution);

About

Logic Network Synthesizer based on Quine–McCluskey algorithm

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published