- Source: Combinational logic
In automata theory, combinational logic (also referred to as time-independent logic) is a type of digital logic that is implemented by Boolean circuits, where the output is a pure function of the present input only. This is in contrast to sequential logic, in which the output depends not only on the present input but also on the history of the input. In other words, sequential logic has memory while combinational logic does not.
Combinational logic is used in computer circuits to perform Boolean algebra on input signals and on stored data. Practical computer circuits normally contain a mixture of combinational and sequential logic. For example, the part of an arithmetic logic unit, or ALU, that does mathematical calculations is constructed using combinational logic. Other circuits used in computers, such as half adders, full adders, half subtractors, full subtractors, multiplexers, demultiplexers, encoders and decoders are also made by using combinational logic.
Practical design of combinational logic systems may require consideration of the finite time required for practical logical elements to react to changes in their inputs. Where an output is the result of the combination of several different paths with differing numbers of switching elements, the output may momentarily change state before settling at the final state, as the changes propagate along different paths.
Representation
Combinational logic is used to build circuits that produce specified outputs from certain inputs. The construction of combinational logic is generally done using one of two methods: a sum of products, or a product of sums. Consider the following truth table:
Using sum of products, all logical statements which yield true results are summed, giving the result:
(
A
∧
¬
B
∧
¬
C
)
∨
(
A
∧
B
∧
C
)
{\displaystyle (A\wedge \neg B\wedge \neg C)\vee (A\wedge B\wedge C)\,}
Using Boolean algebra, the result simplifies to the following equivalent of the truth table:
A
∧
(
(
¬
B
∧
¬
C
)
∨
(
B
∧
C
)
)
{\displaystyle A\wedge ((\neg B\wedge \neg C)\vee (B\wedge C))\,}
Logic formula minimization
Minimization (simplification) of combinational logic formulas is done using the following rules based on the laws of Boolean algebra:
(
A
∨
B
)
∧
(
A
∨
C
)
=
A
∨
(
B
∧
C
)
(
A
∧
B
)
∨
(
A
∧
C
)
=
A
∧
(
B
∨
C
)
{\displaystyle {\begin{aligned}(A\vee B)\wedge (A\vee C)&=A\vee (B\wedge C)\\(A\wedge B)\vee (A\wedge C)&=A\wedge (B\vee C)\end{aligned}}}
A
∨
(
A
∧
B
)
=
A
A
∧
(
A
∨
B
)
=
A
{\displaystyle {\begin{aligned}A\vee (A\wedge B)&=A\\A\wedge (A\vee B)&=A\end{aligned}}}
A
∨
(
¬
A
∧
B
)
=
A
∨
B
A
∧
(
¬
A
∨
B
)
=
A
∧
B
{\displaystyle {\begin{aligned}A\vee (\lnot A\wedge B)&=A\vee B\\A\wedge (\lnot A\vee B)&=A\wedge B\end{aligned}}}
(
A
∨
B
)
∧
(
¬
A
∨
B
)
=
B
(
A
∧
B
)
∨
(
¬
A
∧
B
)
=
B
{\displaystyle {\begin{aligned}(A\vee B)\wedge (\lnot A\vee B)&=B\\(A\wedge B)\vee (\lnot A\wedge B)&=B\end{aligned}}}
(
A
∧
B
)
∨
(
¬
A
∧
C
)
∨
(
B
∧
C
)
=
(
A
∧
B
)
∨
(
¬
A
∧
C
)
(
A
∨
B
)
∧
(
¬
A
∨
C
)
∧
(
B
∨
C
)
=
(
A
∨
B
)
∧
(
¬
A
∨
C
)
{\displaystyle {\begin{aligned}(A\wedge B)\vee (\lnot A\wedge C)\vee (B\wedge C)&=(A\wedge B)\vee (\lnot A\wedge C)\\(A\vee B)\wedge (\lnot A\vee C)\wedge (B\vee C)&=(A\vee B)\wedge (\lnot A\vee C)\end{aligned}}}
With the use of minimization (sometimes called logic optimization), a simplified logical function or circuit may be arrived upon, and the logic combinational circuit becomes smaller, and easier to analyse, use, or build.
See also
Asynchronous circuit
Field-programmable gate array
Formal verification
Ladder logic
Programmable logic controller
Relay logic
Sequential logic
Tseytin transformation
References
Predko, Michael; Predko, Myke (2004). Digital electronics demystified. McGraw-Hill. ISBN 0-07-144141-7.
External links
Belton, D.; Bigwood, R. "Combinational Logic & Systems Tutorial Guide". Archived from the original on 2013-10-22.
Kata Kunci Pencarian:
- Diagram Euler
- Combinational logic
- Sequential logic
- Dynamic logic (digital electronics)
- Relay logic
- Register-transfer level
- Digital electronics
- Programmable logic array
- Programmable Array Logic
- Arithmetic logic unit
- Espresso heuristic logic minimizer