# compuertas lógicas lang=es las bases de los circuitos digitales, o {digital systems} estos incluyen, claro está, a las: => ./danzas_compuertas.gmi {danzas compuertas} => ./coloring_computers.gmi {coloring computers} => ./cómputo_frijol.gmi {cómputo frijol} usamos la convención de utilizar dos valores posibles: 1 para denominar arriba, o verdadero, y 0 para denominar abajo, o falso. # una entrada ## buffer la salida es igual a la entrada ## NOT la salida es lo opuesto a la entrada. también podríamos decir que la salida es lo que no es la entrada. + + + + +
inputoutput
01
10
& * input: 0, output: 1 & * input: 1, output: 0 # dos entradas con dos entradas binarias, hay cuatro posibles combinaciones. ## AND la salida es verdadera únicamente cuando todas sus entradas son verdaderas. en cualquier otro caso, la salida es falsa. + + + + + + +
inputsoutput
000
010
100
111
& * inputs: 00, output: 0 & * inputs: 01, output: 0 & * inputs: 10, output: 0 & * inputs: 11, output: 1 ## OR la salida es verdadera cuando aunque sea una de sus entradas sea verdadera. únicamente cuando todas las entradas son falsas, su salida es falsa. + + + + + + +
inputsoutput
000
011
101
111
& * inputs: 00, output: 0 & * inputs: 01, output: 1 & * inputs: 10, output: 1 & * inputs: 11, output: 1 ## XOR la salida es verdadera cuando una y solo una de sus entradas sea verdadera. en cualquier otro caso, la salida es falsa. + + + + + + +
inputsoutput
000
011
101
110
& * inputs: 00, output: 0 & * inputs: 01, output: 1 & * inputs: 10, output: 1 & * inputs: 11, output: 0 también la podemos describir así: la salida es verdadera cuando las entradas son diferentes, y es falsa cuando las entradas son iguales. ## NOR la salida es verdadera cuando ninguna de sus entradas es verdadera. que es lo mismo que decir que su salida es verdadera cuando todas sus entradas son falsas. en cualquier otro caso, su salida es falsa. + + + + + + +
inputsoutput
001
010
100
110
& * inputs: 00, output: 1 & * inputs: 01, output: 0 & * inputs: 10, output: 0 & * inputs: 11, output: 0 NOR es una de las compuertas universales: con ella se puede construir a todas las demás. esto se debe en parte a que NOR se convierte en NOT si sus dos entradas están conectadas como una sola. por otro lado, NOR es equivalente a negar con NOT la salida de una compuerta OR. por cómo funciona, también la podemos considerar como un AND que funciona con 0 en vez de con 1. => ./nor.gmi {nor} ## NAND la salida es verdadera cuando aunque sea una de sus entrada es falsa. únicamente cuando todas sus entradas son verdaderas, su salida es falsa. + + + + + + +
inputsoutput
001
011
101
110
& * inputs: 00, output: 1 & * inputs: 01, output: 1 & * inputs: 10, output: 1 & * inputs: 11, output: 0 NAND es la otra compuerta universal. esto se debe en parte a que se convierte en NOT si sus dos entradas están conectadas como una sola. por otro lado, NAND es equivalente a negar con NOT la salida de una compuerta AND. por cómo funciona, también la podemos considerar como un OR que funciona con 0 en vez de con 1. # más entradas todas las compuertas funcionan igual para más de dos entradas, excepto XOR. importante: AND y OR poseen la propiedad distributiva. por ejemplo, un AND de tres entradas (a, b, c) es equivalente a un AND de dos entradas (a, b), con su salida (x) conectada a la entrada de otro AND de dos entradas (x, c) esto no sucede así ni en NOR ni en NAND. en su caso, hay que agregar un NOT entre las dos compuertas. # demorgan una compuerta AND es equivalente a una compuerta NOR con sus entradas negadas. una compuerta OR es equivalente a una compuerta NAND con sus entradas negadas.