<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.tachyony.co.uk/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=71.232.11.1</id>
	<title>Wikipedia - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.tachyony.co.uk/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=71.232.11.1"/>
	<link rel="alternate" type="text/html" href="https://wiki.tachyony.co.uk/wiki/Special:Contributions/71.232.11.1"/>
	<updated>2026-07-07T16:10:26Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://wiki.tachyony.co.uk/w/index.php?title=Combinational_logic&amp;diff=77313</id>
		<title>Combinational logic</title>
		<link rel="alternate" type="text/html" href="https://wiki.tachyony.co.uk/w/index.php?title=Combinational_logic&amp;diff=77313"/>
		<updated>2025-06-07T03:36:25Z</updated>

		<summary type="html">&lt;p&gt;71.232.11.1: /* Representation */ Added a translation of what the truth table represents into words. Seriously, those logic symbols are more readable as markup than the rendering. Who thought &amp;#039;and&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Short description|Type of digital logic implemented by Boolean circuits}}&lt;br /&gt;
{{distinguish|text=[[combinatory logic]], a topic in mathematical logic}}&lt;br /&gt;
&lt;br /&gt;
{{Automata theory}}&lt;br /&gt;
&lt;br /&gt;
In [[automata theory]], &#039;&#039;&#039;combinational logic&#039;&#039;&#039; (also referred to as &#039;&#039;&#039;time-independent logic&#039;&#039;&#039;&amp;lt;ref&amp;gt;&lt;br /&gt;
{{cite book | first1=C.J. Jr. | last1=Savant |first2=Martin |last2=Roden |first3=Gordon |last3=Carpenter |title=Electronic Design: Circuits and Systems |publisher= Benjamin/Cummings Publishing Company|date=1991 |isbn=0-8053-0285-9 |pages=682 |url=}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;) is a type of [[digital logic]] that is implemented by [[Boolean circuit]]s, 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 &#039;&#039;[[computer storage|memory]]&#039;&#039; while combinational logic does not.&lt;br /&gt;
&lt;br /&gt;
Combinational logic is used in [[computer]] circuits to perform [[Boolean algebra (logic)|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 adder]]s, [[full adder]]s, [[half subtractor]]s, [[Half subtractor|full subtractors]], [[multiplexer]]s, [[Multiplexer|demultiplexers]], [[Simple encoder|encoder]]s and [[Binary decoder|decoders]] are also made by using combinational logic.&lt;br /&gt;
&lt;br /&gt;
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.&amp;lt;ref&amp;gt;{{cite book |first=Douglas |last=Lewin |title=Logical Design of Switching Circuits |publisher=Thomas Nelson and Sons |edition=2nd |date=1974 |isbn=017-771044-6 |pages=162–3 |url=}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Representation==&lt;br /&gt;
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]], which represents a 3-input combinatorial logic element taking inputs A, B, and C, and with an output which is true only when both input A is true, and inputs B and C are either both true or both false. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin: 1em auto 1em auto; text-align:center;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! {{nobold|{{mvar|A}}}} || {{nobold|{{mvar|B}}}} || {{nobold|{{mvar|C}}}} || Result || [[logical equivalence|Logical equivalent]]&lt;br /&gt;
|-&lt;br /&gt;
| {{no|F}} || {{no|F}} || {{no|F}} || {{no|F}} || &amp;lt;math&amp;gt;\neg A \wedge \neg B \wedge \neg C&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{no|F}} || {{no|F}} || {{yes|T}} || {{no|F}} || &amp;lt;math&amp;gt;\neg A \wedge \neg B \wedge C&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{no|F}} || {{yes|T}} || {{no|F}} || {{no|F}} || &amp;lt;math&amp;gt;\neg A \wedge B \wedge \neg C&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{no|F}} || {{yes|T}} || {{yes|T}} || {{no|F}} || &amp;lt;math&amp;gt;\neg A \wedge B \wedge C&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{yes|T}} || {{no|F}} || {{no|F}} || {{yes|T}} || &amp;lt;math&amp;gt;A \wedge \neg B \wedge \neg C&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{yes|T}} || {{no|F}} || {{yes|T}} || {{no|F}} || &amp;lt;math&amp;gt;A \wedge \neg B \wedge C&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{yes|T}} || {{yes|T}} || {{no|F}} || {{no|F}} || &amp;lt;math&amp;gt;A \wedge B \wedge \neg C&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{yes|T}} || {{yes|T}} || {{yes|T}} || {{yes|T}} || &amp;lt;math&amp;gt;A \wedge B \wedge C&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Using sum of products, all logical statements which yield true results are summed, giving the result:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;(A \wedge \neg B \wedge \neg C) \vee (A \wedge B \wedge C) \,&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using [[Boolean algebra]], the result simplifies to the following equivalent of the truth table:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;A \wedge ((\neg B \wedge \neg C) \vee (B \wedge C)) \,&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Logic formula minimization==&lt;br /&gt;
Minimization (simplification) of combinational logic formulas is done using the following rules based on the [[Boolean algebra#Laws|laws of Boolean algebra]]:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
(A \vee B) \wedge (A \vee C) &amp;amp;= A \vee (B \wedge C) \\&lt;br /&gt;
(A \wedge B) \vee (A \wedge C) &amp;amp;= A \wedge (B \vee C)&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
A \vee (A \wedge B) &amp;amp;= A \\&lt;br /&gt;
A \wedge (A \vee B) &amp;amp;= A&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\begin{align} &lt;br /&gt;
&lt;br /&gt;
A \vee (\lnot A \wedge B) &amp;amp;= A \vee B \\&lt;br /&gt;
A \wedge(\lnot A \vee B) &amp;amp;= A \wedge B&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\begin{align} &lt;br /&gt;
&lt;br /&gt;
(A \vee B)\wedge(\lnot A \vee B)&amp;amp;=B \\&lt;br /&gt;
(A \wedge B) \vee (\lnot A \wedge B)&amp;amp;=B&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
&lt;br /&gt;
(A \wedge B) \vee (\lnot A \wedge C) \vee (B \wedge C) &amp;amp;= (A \wedge B) \vee (\lnot A \wedge C) \\&lt;br /&gt;
(A \vee B) \wedge (\lnot A \vee C) \wedge (B \vee C) &amp;amp;= (A \vee B) \wedge (\lnot A \vee C)&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Asynchronous circuit]]&lt;br /&gt;
* [[Field-programmable gate array]]&lt;br /&gt;
* [[Formal verification]]&lt;br /&gt;
* [[Ladder logic]]&lt;br /&gt;
* [[Programmable logic controller]]&lt;br /&gt;
* [[Relay logic]]&lt;br /&gt;
* [[Sequential logic]]&lt;br /&gt;
* [[Tseytin transformation]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{reflist}}&lt;br /&gt;
*{{cite book |first1=Michael |last1=Predko |first2=Myke |last2=Predko |title=Digital electronics demystified |publisher=McGraw-Hill |date=2004 |isbn=0-07-144141-7 }}&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
*{{cite web |first1=D. |last1=Belton |first2=R. |last2=Bigwood |title=Combinational Logic &amp;amp; Systems Tutorial Guide |url=http://www.ee.surrey.ac.uk/Projects/Labview/combindex.html |archive-url=https://web.archive.org/web/20131022174334/http://www.ee.surrey.ac.uk/Projects/Labview/combindex.html |archive-date=2013-10-22 }}&lt;br /&gt;
&lt;br /&gt;
{{Digital electronics}}&lt;br /&gt;
{{authority control}}&lt;br /&gt;
{{DEFAULTSORT:Combinational Logic}}&lt;br /&gt;
[[Category:Logic in computer science]]&lt;br /&gt;
[[Category:Digital electronics]]&lt;/div&gt;</summary>
		<author><name>71.232.11.1</name></author>
	</entry>
</feed>