Simplification of Boolean Functions
By Notes Vandar
3.1 Simplification of Boolean algebra using Boolean rules
Simplifying Boolean functions is crucial for optimizing digital circuits, reducing the number of gates, and minimizing power consumption. This process often involves applying Boolean rules and identities to reduce complex expressions to simpler forms. Here’s a step-by-step approach to simplification:
Step-by-Step Simplification Process
- Write the Boolean Expression: Start with the Boolean expression that needs to be simplified.
- Identify Terms: Break down the expression into its constituent terms, identifying any common factors or patterns.
- Apply Boolean Identities: Use the fundamental Boolean identities and laws to simplify the expression. Here are some commonly used identities:
- Identity Law:
- A+0=AA + 0 = A
- A⋅1=AA \cdot 1 = A
- Null Law:
- A+1=1A + 1 = 1
- A⋅0=0A \cdot 0 = 0
- Idempotent Law:
- A+A=AA + A = A
- A⋅A=AA \cdot A = A
- Complement Law:
- A+¬A=1A + \neg A = 1
- A⋅¬A=0A \cdot \neg A = 0
- Distributive Law:
- A⋅(B+C)=(A⋅B)+(A⋅C)A \cdot (B + C) = (A \cdot B) + (A \cdot C)
- A+(B⋅C)=(A+B)⋅(A+C)A + (B \cdot C) = (A + B) \cdot (A + C)
- Absorption Law:
- A+(A⋅B)=AA + (A \cdot B) = A
- A⋅(A+B)=AA \cdot (A + B) = A
- De Morgan’s Laws:
- ¬(A⋅B)=¬A+¬B\neg (A \cdot B) = \neg A + \neg B
- ¬(A+B)=¬A⋅¬B\neg (A + B) = \neg A \cdot \neg B
- Identity Law:
- Combine Like Terms: After applying identities, combine like terms where possible to further simplify the expression.
- Repeat as Necessary: Continue applying Boolean rules until no further simplifications can be made.
Example of Simplification
Given Expression: F(A,B,C)=A⋅B+A⋅¬C+B⋅¬CF(A, B, C) = A \cdot B + A \cdot \neg C + B \cdot \neg C
Step 1: Identify common terms.
In this case, AA is common in the first two terms.
Step 2: Apply the Distributive Law:
F=A⋅(B+¬C)+B⋅¬CF = A \cdot (B + \neg C) + B \cdot \neg C
Step 3: Recognize if further simplification is possible:
Since (B+¬C)(B + \neg C) and (B⋅¬C)(B \cdot \neg C) do not combine further, the expression is already simplified.
3.2 K-map method (two, three, and four Variable Maps), Don’t care conditions
What is a Karnaugh Map (K-Map)?
A Karnaugh Map (K-Map) is a graphical representation used to simplify Boolean expressions and functions. It helps visualize relationships between variables and facilitates the minimization of expressions by grouping ones (1s) in the map.
K-Map Structures
1. Two-Variable K-Map
- Structure:
- A 2×2 grid, with each cell representing a combination of variable values.
AB | 0 | 1 |
---|---|---|
0 | 0 | 1 |
1 | 1 | 0 |
- Example: If F(A,B)=A⋅¬B+¬A⋅BF(A, B) = A \cdot \neg B + \neg A \cdot B, the K-Map will look like this:
AB | 0 | 1 |
---|---|---|
0 | 0 | 1 |
1 | 1 | 0 |
2. Three-Variable K-Map
- Structure:
- A 2×4 grid, representing three variables (A, B, and C). One variable is on the vertical axis, and the other two are on the horizontal axis.
00 | 01 | 11 | 10 | |
---|---|---|---|---|
0 | 0 | 1 | 1 | 0 |
1 | 1 | 1 | 0 | 0 |
- Example: For F(A,B,C)=A⋅B+¬A⋅¬CF(A, B, C) = A \cdot B + \neg A \cdot \neg C, the K-Map would represent these combinations accordingly.
3. Four-Variable K-Map
- Structure:
- A 4×4 grid for four variables (A, B, C, D), with two variables on the vertical axis and two on the horizontal axis.
00 | 01 | 11 | 10 | |
---|---|---|---|---|
00 | 0 | 1 | 1 | 0 |
01 | 1 | 0 | 1 | 1 |
11 | 0 | 0 | 1 | 1 |
10 | 1 | 1 | 0 | 0 |
- Example: For F(A,B,C,D)=A⋅B+C⋅¬DF(A, B, C, D) = A \cdot B + C \cdot \neg D, fill in the map based on the combinations.
Don’t Care Conditions
Definition: Don’t care conditions (denoted as “X”) are situations where the output can be either 0 or 1 without affecting the overall function. They are useful in simplification because they allow flexibility in grouping.
- Usage: In a K-Map, you can treat “don’t care” conditions as either 1s or 0s, whichever helps to create larger groups, leading to simpler expressions.
Example: If you have a function F(A,B)F(A, B) with the following outputs:
AB | Output |
---|---|
00 | 0 |
01 | 1 |
10 | X |
11 | 1 |
The K-Map for this scenario would allow you to group the “1s” and the “X” to simplify the expression effectively.
3.3 Canonical and standard forms, product of Sums, sum of product simplification
Canonical Forms
Canonical forms are standardized representations of Boolean functions that express the function explicitly in terms of its variables. There are two primary canonical forms:
- Canonical Sum of Products (SOP):
- In this form, the function is expressed as a sum (OR) of products (ANDs).
- Each product term (minterm) corresponds to a specific combination of input variables that results in an output of 1.
- Example: For a function F(A,B,C)F(A, B, C) that is true for minterms m1,m3,m5m_1, m_3, m_5: F(A,B,C)=A⋅¬B⋅C+¬A⋅B⋅C+A⋅B⋅¬CF(A, B, C) = A \cdot \neg B \cdot C + \neg A \cdot B \cdot C + A \cdot B \cdot \neg C
- Canonical Product of Sums (POS):
- In this form, the function is expressed as a product (AND) of sums (ORs).
- Each sum term (maxterm) corresponds to a combination of variables that results in an output of 0.
- Example: For a function F(A,B,C)F(A, B, C) that is false for maxterms M0,M2,M4M_0, M_2, M_4: F(A,B,C)=(A+B+C)(A+¬B+C)(¬A+B+C)F(A, B, C) = (A + B + C)(A + \neg B + C)(\neg A + B + C)
Standard Forms
Standard forms refer to the non-canonical representations of Boolean functions, which may not include all combinations of variables but still express the function correctly.
- Standard SOP:
- A simplified version of the canonical SOP form, which can often omit redundant terms.
- Standard POS:
- A simplified version of the canonical POS form.
Sum of Products (SOP) Simplification
Sum of Products (SOP) simplification is the process of reducing a Boolean expression in SOP form using Boolean identities and laws.
Steps for Simplification:
- Identify and group terms: Look for common factors in the product terms.
- Apply Boolean identities: Use identities like absorption, distribution, and De Morgan’s laws to simplify.
- Repeat as necessary: Continue simplifying until no further reductions are possible.
Product of Sums (POS) Simplification
Product of Sums (POS) simplification is similar to SOP but focuses on reducing expressions in POS form.
Steps for Simplification:
- Identify and group terms: Look for common factors in the sum terms.
- Apply Boolean identities: Use identities like absorption and distribution to simplify.
- Repeat as necessary: Continue simplifying until no further reductions are possible.
Example of Simplification
Example Function: Let’s simplify the function F(A,B,C)=A⋅B+A⋅¬B+¬A⋅CF(A, B, C) = A \cdot B + A \cdot \neg B + \neg A \cdot C.
- Identify Common Terms:
- The first two terms can be grouped: A⋅(B+¬B)+¬A⋅CA \cdot (B + \neg B) + \neg A \cdot C.
- Apply the Complement Law:
- Since B+¬B=1B + \neg B = 1: F(A,B,C)=A⋅1+¬A⋅C=A+¬A⋅CF(A, B, C) = A \cdot 1 + \neg A \cdot C = A + \neg A \cdot C
- Further Simplification:
- No further simplifications can be made, so the simplified form is: F(A,B,C)=A+¬A⋅CF(A, B, C) = A + \neg A \cdot C
3.4 NAND and NOR implementation
NAND and NOR gates are considered universal gates because they can be used to implement any Boolean function or logic circuit. This section discusses how to implement basic logic functions using only NAND and NOR gates.
1. NAND Gate Implementation
Basic NAND Function
A NAND gate outputs false (0) only when all its inputs are true (1). The truth table is as follows:
A | B | Output (A NAND B) |
---|---|---|
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
Implementing Basic Logic Functions Using NAND Gates
- NOT Gate:
- A NOT gate can be implemented using a NAND gate by connecting both inputs to the same variable.
- Implementation: ¬A=A NAND A\neg A = A \text{ NAND } A
- AND Gate:
- An AND gate can be implemented using NAND gates.
- Implementation: A⋅B=¬(A NAND B)=(A NAND B) NAND (A NAND B)A \cdot B = \neg(A \text{ NAND } B) = (A \text{ NAND } B) \text{ NAND } (A \text{ NAND } B)
- OR Gate:
- An OR gate can be constructed using NAND gates.
- Implementation: A+B=¬(¬A⋅¬B)=(A NAND A) NAND (B NAND B)A + B = \neg(\neg A \cdot \neg B) = (A \text{ NAND } A) \text{ NAND } (B \text{ NAND } B)
Example: Implementing F(A,B)=A⋅B+¬CF(A, B) = A \cdot B + \neg C
- Using only NAND gates, the function can be implemented as:
- A⋅BA \cdot B using NAND: X=A NAND BX = A \text{ NAND } B
- F=¬X NAND (C NAND C)F = \neg X \text{ NAND } (C \text{ NAND } C).
2. NOR Gate Implementation
Basic NOR Function
A NOR gate outputs true (1) only when all its inputs are false (0). The truth table is as follows:
A | B | Output (A NOR B) |
---|---|---|
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 0 |
Implementing Basic Logic Functions Using NOR Gates
- NOT Gate:
- A NOT gate can be implemented using a NOR gate by connecting both inputs to the same variable.
- Implementation: ¬A=A NOR A\neg A = A \text{ NOR } A
- OR Gate:
- An OR gate can be implemented using NOR gates.
- Implementation: A+B=¬(¬A NOR ¬B)=(A NOR A) NOR (B NOR B)A + B = \neg(\neg A \text{ NOR } \neg B) = (A \text{ NOR } A) \text{ NOR } (B \text{ NOR } B)
- AND Gate:
- An AND gate can be constructed using NOR gates.
- Implementation: A⋅B=¬(A NOR B)=(A NOR A) NOR (B NOR B)A \cdot B = \neg(A \text{ NOR } B) = (A \text{ NOR } A) \text{ NOR } (B \text{ NOR } B)
Example: Implementing F(A,B)=A+B⋅CF(A, B) = A + B \cdot C
- Using only NOR gates, the function can be implemented as:
- B⋅CB \cdot C using NOR: X=¬(B NOR C)=(B NOR B) NOR (C NOR C)X = \neg(B \text{ NOR } C) = (B \text{ NOR } B) \text{ NOR } (C \text{ NOR } C)
- F=¬(A NOR X)F = \neg(A \text{ NOR } X).
3.5 Quine McClusky method.
The Quine-McCluskey method is a systematic technique for minimizing Boolean functions, particularly useful for functions with more than four variables, where Karnaugh Maps become impractical. It is a tabular method that allows for the minimization of expressions using a clear step-by-step approach.
Steps in the Quine-McCluskey Method
- List Minterms:
- Identify the minterms of the function you want to minimize. A minterm is a product term that corresponds to an output of 1 in the truth table.
- Group Minterms by Number of Ones:
- Organize the minterms into groups based on the number of 1s in their binary representations.
- Combine Minterms:
- Compare minterms in adjacent groups (differing by one 1) and combine them if they can be simplified. Replace the differing bit with a dash (−) to indicate it can be either 0 or 1.
- Repeat Combination:
- Continue combining the new terms with each other, creating new groups, until no further combinations can be made.
- Prime Implicants:
- The remaining terms after the last combination step are known as prime implicants. They cannot be further simplified.
- Prime Implicant Chart:
- Create a chart with the prime implicants as rows and the original minterms as columns. Mark the cells where a prime implicant covers a minterm.
- Essential Prime Implicants:
- Identify essential prime implicants, which are those that cover at least one minterm that no other prime implicant covers.
- Selection of Remaining Prime Implicants:
- If there are still uncovered minterms after selecting essential prime implicants, choose additional prime implicants to cover them, aiming for the minimum number of terms.
- Formulate the Final Expression:
- Combine the selected prime implicants to form the minimized Boolean expression.
Example
Consider the function:
F(A,B,C,D)=Σ(0,1,2,5,6,7,8,9,10,14)F(A, B, C, D) = \Sigma(0, 1, 2, 5, 6, 7, 8, 9, 10, 14)
- List Minterms:
- Minterms: 0, 1, 2, 5, 6, 7, 8, 9, 10, 14
- Group Minterms:
Number of 1s | Minterms |
---|---|
0 | 0000 (0) |
1 | 0001 (1), 0010 (2), 1000 (8) |
2 | 0101 (5), 0110 (6), 1001 (9), 1010 (10) |
3 | 0111 (7), 1110 (14) |
- Combine Minterms:
- Combine minterms differing by one position:
- 0 (0000) and 1 (0001) → 000- (C)
- 1 (0001) and 2 (0010) → 00-1 (B)
- Continue this process for all groups.
- Combine minterms differing by one position:
- Prime Implicants:
- Identify the remaining simplified terms after combinations.
- Prime Implicant Chart:
- Create a chart marking which prime implicants cover which minterms.
- Select Essential Prime Implicants:
- Identify essential prime implicants and select additional ones if necessary.
- Final Expression:
- Combine the selected prime implicants to derive the minimized expression.