11/17/2001 Jeff Connelly - transformed to HTML
08/06/2001 Jeff Connelly - originally written
AB Q 00 a 01 b
ab form the unary gate's function number. Possible functions are:
00 clear - output 0 regardless of inputs 01 pass/buffer - output input 10 not - output inverted input 11 mark - output 1 regardless of inputs
If b == c then A[abcd]B = B[abcd]A Commutativity A[abcd]B = B[acbd]A Reversed inputs 0[abcd]B = [ab]B Unary gate inside binary gate 1[abcd]B = [cd]B " " " A[abcd]A = [ad]A " " " A[abcd]0 = [ac]A " " " A[abcd]1 = [bd]A " " "
Rarely used unary gates: ba, bc, ca, cb, da, db, dc
Notation: abcd are bits of any truth table. A and B are arbitrary inputs. Square brackets indicate a binary function (four bits inside) or a unary function (two bits, prefixed to input). A question mark prefixing a variable indicates an unknown unary gate. Q is the output.
input output 00 a 01 b 10 c 11 d
Inputs Output A B Q 0 0 a 0 1 b 1 0 c 1 1 d
Output same if When the inputs inputs swapped? are reversed, / Unary functions that gate becomes this / operate on B when: / / /ab cd| \ad / Name b=c? abcd A=0 A=1 A=B / Notes/Alternatives clear X 0000 clear clear clear |Rev. In | AND X 0001 clear pass pass |Reference| ---------------------------------------+---------+--------------------------- AB' 0010 clear not clear BA' use NOR (inv B) pass A 0011 clear mark pass pass B BA' 0100 pass clear clear AB' use AND (inv B) pass B 0101 pass pass pass pass A ----------------------------------------------------------------------------- XOR X 0110 pass not clear OR X 0111 pass mark pass NOR X 1000 not clear not XNOR X 1001 not pass mark ----------------------------------------------------------------------------- not B 1010 not not not not A B+A' 1011 not mark mark A+B' use NAND (inv A) not A 1100 mark clear not not B A+B' 1101 mark pass mark B+A' use OR (inv A) ---------------------------------------+---------+--------------------------- NAND X 1110 mark not not |Rev. In | mark X 1111 mark mark mark |Reference|
A function number (Q section of the truth table) tells us a lot about a binary gate. First of all, if the two inner bits are equal, the order of inputs does not effect the output of the gate. This happens because "b" is the output if A=0 and B=1, while the "c" bit is the output if A=1 and B=0:
AB Q 00 a 01 b if b=c, gate is commutative 10 c 11 d
Therefore if b=c, the order of inputs does not affect output. Mathematically, this means:
If b == c then A[abcd]B = B[abcd]A Commutativity A[abcd]B = A[acbd]B
To find the equivalent gate if the inputs are swapped, we can swap b and c. Take [1110], the NAND gate. Swap b and c and you'll get [1110] again, because b=c - the gate is commutative.
[1101] is the A+B' gate. Swap the b and c to get [1011], the B+A' gate. If we reverse the inputs of the A+B' gate, the output is same as if we used the B+A' gate on the swapped inputs:
0[1101]1 = A+B' = 0+1' = 0+0 = 0 1[1011]0 = A'+B = 1'+0 = 0+0 = 0 1[1101]0 = A+B' = 1+0' = 1+1 = 1 0[1011]1 = A'+B = 0'+1 = 1+1 = 1
This is true for all gates.
Gates are sometimes used as digital "filters"..for example, the XOR. According to the chart, when A=0, Q=B, and when A=1, Q=B'. So a circuit could have the output of another circuit (for example, an astable multivibrator) connected to A of an XOR gate, and B would be connected to a user-settable logic level. Normally B would be 0, so Q=0 xor A, which lets A pass through unchanged. However if B is set to 1, A will be inverted. XOR is like a controlled not, in fact in Quantum computing there is a CNOT gate. Other gates are like controlled other unary gates, which act as a one gate when A=0, another when A=1.
This chart is less useful than the first one but more complete. Several unary gates can be formed from function number bits of a binary gate.
TODO: complete this ab = 0[abcd]B ac = 1[abcd]B ad = A[abcd]A ba bc bd = A[abcd]1 ca cb cd = 1[abcd]B da db dc 0[abcd]B = [ab]B Unary gate inside binary gate 1[abcd]B = [cd]B " " " A[abcd]A = [ad]A " " " A[abcd]0 = [ac]A " " " A[abcd]1 = [bd]A " " "
Examining how exactly boolean gates work is helpful when dealing with trinary algebra because they're quite similar.
Modified Sun Mar 25 08:48:47 2007
generated Sun Mar 25 08:56:33 2007
http://jeff.tk/bingates/