Functional Completeness in Digital Logic
Last Updated :
17 Sep, 2024
Functional Completeness is a crucial concept in digital logic design. A set of logical operators is functionally complete if it can be used to express any Boolean function. This means that any logical operation, regardless of complexity, can be constructed using only operators from a functionally complete set.
Functional Completeness in Digital Logic
A set of operations is said to be functionally complete or universal if and only if every switching function can be expressed utilizing operations in it. A set of Boolean functions is functionally complete if all other Boolean functions can be constructed from this set and a set of input variables are provided, e.g.
- Set A = {+,*,' (OR, AND, complement) } are functionally complete.
- Set B = {+,'} are functionally complete
- Set C = {*,'} are functionally complete
Post's Functional Completeness Theorem
Important closed classes of functions:
- T0 – class of all 0-preserving functions, such as f(0, 0, ... , 0) = 0.
- T1 – class of all 1-preserving functions, such as f(1, 1, ... , 1) = 1.
- S – class of self-dual functions, such as f(x1, … ,xn) = ¬ f(¬x1, … , ¬xn).
- M – class of monotonic functions, such as : {x1, … ,xn} ? {x1, … ,xn}, if xi ? yi if {x1, … ,xn} ? {x1, … ,xn} then f(x1, … ,xn) ? f(x1, … ,xn)
- L – class of linear functions, which can be presented as: f(x1, … ,xn) = a0 + a1·x1 + … + an·xn ; ai {0, 1}.
Theorem - A system of Boolean functions is functionally complete if and only if for each of the five defined classes T0, T1, S, M, L, there is a member of F which does not belong to that class. These are minimal functionally complete operator sets - One element - {?}, {?}. Two elements - {\displaystyle \{\vee ,\neg \}}, {\displaystyle \{\wedge ,\neg \}}, {\displaystyle \{\to ,\neg \}}, {\displaystyle \{\gets ,\neg \}}, {\displaystyle \{\to ,\bot \}}, {\displaystyle \{\gets ,\bot \}}, {\displaystyle \{\to ,\nleftrightarrow \}}, {\displaystyle \{\gets ,\nleftrightarrow \}}, {\displaystyle \{\to ,\nrightarrow \}}, {\displaystyle \{\to ,\nleftarrow \}}, {\displaystyle \{\gets ,\nrightarrow \}}, {\displaystyle \{\gets ,\nleftarrow \}}, {\displaystyle \{\nrightarrow ,\neg \}}, {\displaystyle \{\nleftarrow ,\neg \}}, {\displaystyle \{\nrightarrow ,\top \}}, {\displaystyle \{\nleftarrow ,\top \}}, {\displaystyle \{\nrightarrow ,\leftrightarrow \}}, {\displaystyle \{\nleftarrow ,\leftrightarrow \}}. Three elements - {\displaystyle \{\lor ,\leftrightarrow ,\bot \}}, {\displaystyle \{\lor ,\leftrightarrow ,\nleftrightarrow \}}, {\displaystyle \{\lor ,\nleftrightarrow ,\top \}}, {\displaystyle \{\land ,\leftrightarrow ,\bot \}}, {\displaystyle \{\land ,\leftrightarrow ,\nleftrightarrow \}}, {\displaystyle \{\land ,\nleftrightarrow ,\top \}}.
Solved Examples of functional Completeness -
Check if function F(A, B, C) = A'+BC' is functionally complete.
- Explanation - Let us start by putting all variables as 'A' so it becomes F(A, A, A) = A'+A.A' = A'----(i) F(B, B, B) = B'+B.B' = B'---(ii) Now substitute F(A, A, A) in place of the variable 'A' and F(B,B, B) in place of the variable 'C' F(F(A, A, A), B, F(B, B, B)) = (A')'+B.(B')' = A+B---(iii) from (i) and (ii) complement is derived and from (iii) operator '+' is derived so this function is functionally complete as from above if a function contains {+,'} is functionally complete.
Check if function F(A, B) = A'+B is functionally complete.
- Explanation - Let us start by putting all variables as 'A' so it becomes F(A, A) = A'+A = 1----(i) F(B, B) = B'+B = 1---(ii) F(A,0) = A'+0 = A'---(iv) Now substitute F(A,0) in place of the variable 'A' F(F(A,0), B) = (A')'+B = A+B---(iii) from (iv) complement is derived and from (iii) operator '+' is derived so this function is functionally complete as from above if a function contains {+,'} is partially functionally complete.
Check if function F(A, B) = A'B is functionally complete.
- Explanation - Let us start by putting all variables as 'A' so it becomes F(A, A) = A'.A' = 0----(i) F(A,0) = A'.0 = 0---(ii) F(A,1) = A'.1 = A'---(iv) Now substitute F(A,1) in place of the variable 'A' F(F(A,1), B) = (A')'*B = A*B---(iii) from (iv) complement is derived and from (iii) operator '*' is derived so this function is functionally complete as from above if a function contains {*,'} is partially functionally complete. Note - If the function becomes functionally complete by substituting '0' or '1' then it is known as partially functionally complete.
Check if function F(A, B) = A'B+AB' (EX-OR) is functionally complete.
- Explanation - Let us start by putting all variables as 'A' so it becomes F(A,1) = A'.1 + A.0 = A'----(i) F(A',B) = AB + A'B'--(ii) F(A',B') = AB' + A'B--(iii) F(A,B') = A'B' + AB---(iv) So there is no way to get {+,*,'} according to condition. So EX-OR is non functionally complete .
Advantages of Functional Completeness
1. Flexibility: A functionally complete set of logical operations can represent any boolean function, which makes it a flexible and powerful tool for digital logic design.
2. Efficiency: A functionally complete set of logical operations can be implemented using a small number of basic gates, which makes it an efficient and cost-effective approach for implementing digital circuits.
3. Universality: A functionally complete set of logical operations is universal, which means that it can be used in any application that requires digital logic design.
Disadvantages of Functional Completeness
1. Complexity: Functionally complete sets of logical operations can be complex and difficult to understand, especially for beginners in digital logic design.
2. Limited Applicability: Functionally complete sets of logical operations may not be suitable for all digital logic design applications. Some applications may require specialized operations or functions that are not represented by functionally complete sets.
3.Non-Intuitiveness: Functionally complete sets of logical operations can be difficult to use and interpret because they are based on abstract mathematical concepts rather than intuitive concepts.
Summary
Functional Completeness in digital logic refers to the ability of a set of gates to express any Boolean function. NAND and NOR gates are functionally complete on their own, making them essential for building any logic circuit. This concept is critical for simplifying and optimizing hardware design. Understanding functional completeness enables efficient circuit implementation.
Related Articles:
Which of the following sets of gates is functionally complete ?
Explanation:
A single NAND gate is universally complete by itself. A single NOR is also complete. {AND, OR} is not complete because it cannot generate negation.
Which single gate is functionally complete by itself ?
Explanation:
Both NAND and NOR are universal gates (functionally complete alone). AND, OR, and XOR are not.
To prove that a set is functionally complete, the minimal thing we must be able to express is ?
-
-
AND and NOT (or OR and NOT)
-
-
All 16 possible 2-input functions
Explanation:
{AND, NOT} and {OR, NOT} are the two standard minimal complete sets. Once you have one of these pairs, you can build everything else.
The function f(A,B) = A ↑ B (NOR) can generate ?
Explanation:
f(A,A) = A ↑ A = ¬(A ∨ ¬A = ¬A. So NOT is obtained immediately. Then OR = ¬(¬A ↑ ¬B), etc.
The function f(A,B) = A NAND B is functionally complete by itself because ?
Explanation:
Getting NOT from f(A,A) is the key first step. Then everything else follows.
Which of the following single 2-input gates is functionally complete by itself ?
Explanation:
- XOR alone: all functions are linear without constant term → cannot get NOT or constants.
- A → B alone: cannot generate FALSE without additional constants.
- A ↔ B alone: all functions even parity → 1-preserving and self-dual in a way that blocks completeness.
Quiz Completed Successfully
Your Score : 2/6
Accuracy : 0%
Login to View Explanation
1/6
1/6
< Previous
Next >
Explore
Number Systems
Boolean Algebra and Logic Gates
Minimization Techniques
Combinational Circuits
Sequential Circuits
Conversion of Flip-Flop
Register, Counter, and Memory Unit
LMNs and GATE PYQs