This project is a C++ implementation of:
- Quine–McCluskey Algorithm
- Petrick’s Method
- NAND/NOR Gate-Level Realization
The program minimizes Boolean expressions and converts them into optimized logic gate implementations.
It supports both:
- SOP (Sum of Products)
- POS (Product of Sums)
forms along with don't-care conditions.
- Quine–McCluskey Boolean minimization
- Petrick’s Method implementation
- Essential Prime Implicant selection
- Support for don't-care conditions
- SOP and POS simplification
- Truth table generation
- NAND-only realization
- NOR-only realization
- Gate count estimation
- Interactive CLI interface
Used for systematic Boolean expression minimization by:
- Grouping minterms
- Combining terms differing by one bit
- Finding prime implicants
- Selecting essential prime implicants
Used when multiple prime implicant combinations exist.
It helps find:
- Minimal cover solutions
- Optimized Boolean expressions
The minimized expressions are converted into:
- NAND-only circuits
- NOR-only circuits
which are universal gate implementations used in digital hardware design.
- C++
- STL
- Boolean Algebra
- Digital Logic Design
- Quine–McCluskey Method
- Petrick’s Method
.
├── logic_minimizer.cpp
├── README.mdg++ logic_minimizer.cpp -O2 -o logic
./logic1. Quine-McCluskey (Heuristic Method)
2. Quine-McCluskey (Petrick's Method)
3. Gate-level realization (NAND/NOR only)
F(A,B,C,D) = Σ(1,3,7,11,15)
F(A,B,C,D) = Π(0,2,5,8)
d(4,6,9)
The program generates:
- Minimized Boolean expression
- Prime implicants
- Truth table verification
- NAND/NOR gate implementation
- Total gate count
Input:
Minterms: 1 3 7 15
Output:
A'B + CD
Example:
NAND(A,B) -> T1
NAND(T1,C) -> F
- Fully algorithmic minimization
- Handles large Boolean expressions
- Supports don't-care optimization
- Hardware-level realization support
- Educational and practical implementation