169 lines
4.5 KiB
Plaintext
169 lines
4.5 KiB
Plaintext
# 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}
|
|
=> ./beans_computing.gmi {beans computing}
|
|
|
|
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.
|
|
|
|
+ <table>
|
|
+ <tr><th>input</th><th>output</th></tr>
|
|
+ <tr><td>0</td><td>1</td></tr>
|
|
+ <tr><td>1</td><td>0</td></tr>
|
|
+ </table>
|
|
& * 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.
|
|
|
|
+ <table>
|
|
+ <tr><th>inputs</th><th>output</th></tr>
|
|
+ <tr><td>00</td><td>0</td></tr>
|
|
+ <tr><td>01</td><td>0</td></tr>
|
|
+ <tr><td>10</td><td>0</td></tr>
|
|
+ <tr><td>11</td><td>1</td></tr>
|
|
+ </table>
|
|
& * 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.
|
|
|
|
+ <table>
|
|
+ <tr><th>inputs</th><th>output</th></tr>
|
|
+ <tr><td>00</td><td>0</td></tr>
|
|
+ <tr><td>01</td><td>1</td></tr>
|
|
+ <tr><td>10</td><td>1</td></tr>
|
|
+ <tr><td>11</td><td>1</td></tr>
|
|
+ </table>
|
|
& * 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.
|
|
|
|
+ <table>
|
|
+ <tr><th>inputs</th><th>output</th></tr>
|
|
+ <tr><td>00</td><td>0</td></tr>
|
|
+ <tr><td>01</td><td>1</td></tr>
|
|
+ <tr><td>10</td><td>1</td></tr>
|
|
+ <tr><td>11</td><td>0</td></tr>
|
|
+ </table>
|
|
& * 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.
|
|
|
|
+ <table>
|
|
+ <tr><th>inputs</th><th>output</th></tr>
|
|
+ <tr><td>00</td><td>1</td></tr>
|
|
+ <tr><td>01</td><td>0</td></tr>
|
|
+ <tr><td>10</td><td>0</td></tr>
|
|
+ <tr><td>11</td><td>0</td></tr>
|
|
+ </table>
|
|
& * 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.
|
|
|
|
+ <table>
|
|
+ <tr><th>inputs</th><th>output</th></tr>
|
|
+ <tr><td>00</td><td>1</td></tr>
|
|
+ <tr><td>01</td><td>1</td></tr>
|
|
+ <tr><td>10</td><td>1</td></tr>
|
|
+ <tr><td>11</td><td>0</td></tr>
|
|
+ </table>
|
|
& * 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.
|