Editing Carsten Milkau/NOT Gate
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 8: | Line 8: | ||
|+ value table | |+ value table | ||
|- | |- | ||
− | ! | + | !input || output |
− | |||
− | |||
|- | |- | ||
|0||1 | |0||1 | ||
Line 19: | Line 17: | ||
=== Connectors === | === Connectors === | ||
− | * Input | + | * Input: one of two values (0 or 1) |
− | * Output | + | * Output: the other of the two values |
== Implementation == | == Implementation == | ||
Line 26: | Line 24: | ||
NOT gates can often be avoided by modifying the circuit. For instance, an [[User:Carsten Milkau/OR Gate|OR Gate]] with two NOT gates connected to its inputs and outputs can always be replaced by an AND gate with just one NOT gate connected. | NOT gates can often be avoided by modifying the circuit. For instance, an [[User:Carsten Milkau/OR Gate|OR Gate]] with two NOT gates connected to its inputs and outputs can always be replaced by an AND gate with just one NOT gate connected. | ||
− | + | Unfortunately, there is no single-component implementation of a NOT gate. However, if you happen to have a data signal with a known value (like a memory containing a constant), often you can feed this signal into a single component in order to turn it into a NOT gate. | |
− | |||
− | |||
− | |||
− | |||
=== Using A Less-Than Comparator === | === Using A Less-Than Comparator === | ||
Line 38: | Line 32: | ||
If you have a circuit available (e.g. a constant memory) that has a value ''b'' known to stay between 0 and 1 (but not 0), you can turn a [[Kit (Logic Processor)#Compare Unit|Compare Unit]] into a logic NOT gate by comparing the input ''x'' to ''b'', i.e. | If you have a circuit available (e.g. a constant memory) that has a value ''b'' known to stay between 0 and 1 (but not 0), you can turn a [[Kit (Logic Processor)#Compare Unit|Compare Unit]] into a logic NOT gate by comparing the input ''x'' to ''b'', i.e. | ||
− | <pre> | + | <pre>not_x = (x < b)</pre> |
{| class="wikitable" | {| class="wikitable" | ||
Line 47: | Line 41: | ||
|compare 1 || Compare Unit || Input 1 || x '''(input)''' | |compare 1 || Compare Unit || Input 1 || x '''(input)''' | ||
|- | |- | ||
− | | || || Input 2 || ''b'' (constant or | + | | || || Input 2 || ''b'' (constant or bound value) |
|- | |- | ||
| || || Operation Selector || Lesser | | || || Operation Selector || Lesser | ||
Line 60: | Line 54: | ||
If you have a circuit output available that is known to be zero when the NOT gate is used (e.g. a constant memory), you can turn a [[Kit (Logic Processor)#Compare Unit|Compare Unit]] into a logic NOT gate by comparing the input ''x'' to ''0'', i.e. | If you have a circuit output available that is known to be zero when the NOT gate is used (e.g. a constant memory), you can turn a [[Kit (Logic Processor)#Compare Unit|Compare Unit]] into a logic NOT gate by comparing the input ''x'' to ''0'', i.e. | ||
− | <pre> | + | <pre>not_x = (x = 0)</pre> |
{| class="wikitable" | {| class="wikitable" | ||
Line 77: | Line 71: | ||
=== Using Subtraction === | === Using Subtraction === | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |