El temporizador 555 es un circuito bastante utilizado que puede ser configurado de dos modos distintos, como monoestable o como aestable. Un multivibrador aestable, no tiene estado estable, por consiguiente varia constantemente, es decir, este circuito oscila entre dos estados correspondientes al 0 logico (0 voltios DC) y el 1 logico (5 voltios DC).
La siguiente figura muestra un diagrama con los elementos del temporizador. Los comparadores son dispositivos cuyas salidas estan a nivel alto cuando el voltaje en la entrada positiva es mayor que el voltaje en la entrada negativa y estan a nivel bajo cuando el voltaje en la entrada negativa es mayor que el voltaje en la entrada positiva. Hay un divisor de voltaje formado por tres resistencias de 5 KΩ que generan un nivel de disparo de 1/3Vcc y un novel de umbral de 2/3 de Vcc. Hay un Latch que permite almacenar el estado mientras el temporizador posee niveles bajos en las salidas de los comparadores.
Temporizador 555 configurado como aestable
La siguiente figura muestra la configuracion de este circuito como aestable. En esta configuracion debe conectarse dos resistencias (R1 y R2) y un condensador (C1). Las entradas disparo y umbral deben conectarse a condensador C1. Los elementos R1, R2 y C1, conforman la red de temporizacion que determina la frecuencia de oscilacion.
Para comprender el funcionamiento, el temporizador cumple los siguientes eventos.
Al conectar el circuito, el condensador C1 esta descargado, por consiguiente el voltaje en el pin 2 y 6 esta en 0V, entonces la salida del comparado B, esta a nivel alto y la salida del comparador A esta en alto. El latch hace un set. La salida ~Q esta en nivel bajo colocando el transistor en estado de corte. La salida del temporizador esta en nivel alto.
El condensador C1 empieza a cagarse a traves de las resistencias R1 y R2. Cuando el voltaje en el condensador supera 1/3Vcc, la salida dell comparador B pasa a nivel bajo. En ese momento en el latch hay un estado de no cambio.
El condensador C1 continua cargandose, cuando el voltaje en el condensador supera 2/3Vcc, el comparado A cambia a nivel alto. El latch hace un reset. La salida pasa a nivel bajo. El transistor queda en estado de saturacion, entonces el condensador empieza a descargarse a traves de la resistencia R2 y del transistor.
En el momento que el condensador se descarga y su voltaje es inferior a 2/3Vcc, el comparador A pasa a nivel bajo. El latch esta en estado de no cambio.
Cuando el condensador queda con un voltaje inferior a 1/3Vcc, el comparador B queda en nivel alto y el latch hace un set. La salida del temporizador pasa a nivel alto. El transistor queda en estado de corte. El condensador empieza a cargarse nuevamente a traves de las resistencias R1 y R2.
La frecuencia de oscilacion del temporizador esta dada por la siguiente formula:
El ciclo de trabajo en este circuito, se obtiene como una relacion entre las resistencias R1 y R2, dado a que el condensador se carga a traves de R1 y R2 y se descarga a traves de R2. Entonces el ciclo de trabajo se obtiene mediante la siguiente formula:
Se puede apreciar que el ciclo de trabajo nunca sera de 50%, esto indica que el tiempo en nivel alto es diferente que el tiempo en nivel bajo.
Para obtener un ciclo de trabajo del 50%, es necesario lograr que el condensador se cargue por una resistencia y descargue por la otra. Se puede obtener colocando un diodo en paralelo a R2 con el fin que el condensador se cargue por la resistencia R1 y a traves del diodo cuya resistencia ideal es 0 y se descargue a traves de R2. Entonces con esta configuracion, la frecuencia y el ciclo de trabajo son:
Divisor de Frecuencia
Una de las aplicaciones de los Flip-Flops es el divisor de frecuencia. El objetivo es reducir a la mitad la frecuencia de una señal periodica. Si se considera un Flip-Flop J-K y se conectan sus entradas J=K=1, la salida Q correspondera a una señal periodica con la mitad de la frecuencia de la señal original. La implementacion es la siguiente:
En el oscilograma anterior, se puede apreciar que para cada flanco de bajada del reloj, hay una basculacion que se observa en Q un instante despues dado el tiempo de propagacion del Flip-Flop. Para este ejemplo, la frecuencia del reloj equivale a:
Con base en el sumador completo de 4 bits, el cual se encuentra disponible en el circuito 74LS83 o 74LS283, es posible aplicar el algoritmo de la resta e implementarlo en un circuito logico. Para ello, se emplea el algoritmo de la resta que es el siguiente.
Para realizar la resta en binario se requiere seguir un algoritmo descrito por los siguientes pasos:
Se iguala el numero de cifras en el minuendo y el sustraendo añadiendo ceros a la izquierda del numero con menos cifras.
Se conserva el minuendo.
Se complementa a 1 el sustraendo. El complemento consiste en la cantidad que le hace falta a un numero para alcanzar el numero maximo de su base. En el sistema binario el complemento a 1 equivale a intercambiar 1 por 0 y 0 por 1.
Se suma el minuendo con el sustraendo complementado.
Si existe acarreo, se suma el acarreo al resultado de la suma anterior. La existencia del acarreo indica que el resultado es positivo.
Si no existe acarreo, se complementa a 1 el resultado de la suma anterior. La no existencia de acarreo indica que el resultado es negativo.
Con base en la anterior descripcion, la resta 101101012 – 100010102 es:
El resultado es 1010112 positivo
Ahora por ejemplo la resta 101101012 – 110010102 es:
El resultado es 101012 negativo
Entonces, con base en el algoritmo la resta anteriormente descrito, 11012 –10002 es:
El resultado es 01012 positivo
Asi mismo, con base en el algoritmo la resta anteriormente descrito, 10012 –11002 es:
El resultado es 00112 negativo
Entonces el algoritmo indica los siguientes pasos:
Complementar a 1 el sustraendo. Dada dos entradas A y B, el sustraendo se puede complementar haciendo uso de la compuerta NOT.
Sumar el minuendo con el sustraendo complementado. Se puede hacer uso entonces del CI 74283. La siguiente figura muestra estos dos pasos.
Si el acarreo de salida es 1, entonces se suma al resultado de la suma y el resultado es positivo. Si el acarreo de salida es 0, se debe complementar el resultado de la suma y el resultado es positivo.
Entonces es debe colocar otro sumador completo, en donde la entrada A sea la salida del sumador de la figura anterior. La entrada B con el dato 00002 y el acarreo de entrada se conecta al acarreo de salida del primer sumador. Para el caso en que el acarreo de salida del primer sumador mostrado en la figura anterior, sea 1, se adicionara ese valor al resultado, si es cero se sumara 0, por consiguiente se mantiene el valor.
Si el acarreo es 0, se debe complementar a 1 la salida. Para ello se plantea la siguiente tabla de verdad.
Co
Xi
Yi
0
0
1
0
1
0
1
0
0
1
1
1
En donde Co es el acarreo de salida de la primera suma. Xi es la salida de la segunda suma (esta salida esta compuesta por 4 bits) y Yi es la salida definitiva del restador (esta salida esta compuesta por 4 bits). Entonces se obtiene la siguiente expresion Booleana:
Entonces la implementacion definitiva se presenta en la siguiente figura:
Los registros son circuitos secuenciales construidos a base de Flip-Flops los cuales permiten almacenamiento de información. Generalmente, los registros están construidos a base de Flip-Flops tipo D, debido a que siempre que a la entrada se coloca un 1 lógico, se desea obtener a la salida Q un 1 lógico, y siempre que a la entrada se coloca un 0 lógico, se desea obtener a la salida Q un 0 lógico. Un registro puede presentar diferentes funcionalidades definida por el desplazamiento de la información y la carga en paralelo de la información.
Los registros, pueden tener diferentes movimientos, los cuales dependen de su forma de entrada y salida de datos.
En la figura anterior se muestra los diferentes movimientos de datos en un registro. La primera imagen corresponde a entrada en paralelo, salida en paralelo. La segunda imagen corresponde a entrada en serie con desplazamiento a la derecha, salida en paralelo. La tercera imagen corresponde a entrada en serie con desplazamiento a la izquierda, salida en paralelo. La cuarta imagen corresponde a entrada en serie con desplazamiento a la derecha, salida en serie. La quinta imagen corresponde a entrada en serie con desplazamiento a la izquierda, salida en serie. La sexta imagen corresponde a entrada en paralelo, salida en serie con desplazamiento a la derecha.
Resgistros con Entrada y Salida en Paralelo
Un registro con entrada y salida en paralelo, tiene como objetivo, capturar un dato en paralelo y colocarlo directamente en la salida del registro. La siguiente figura presenta el diseño de dicho registro.
Registros de Desplazamiento con Entrada y Salida en Serie
Un registro con entrada y salida en serie, tiene como objetivo, capturar un dato bit a bit dado una frecuencia. Con este tipo de implementaciones, la entrada y la salida del registro son solo un bit.
Los registros de desplazamiento pueden tener entrada de datos en el bit de menor peso, de esta forma los bits a la salida se obtienen en el bit de mayor peso. Este tipo de desplazamiento, es un desplazamiento a la izquierda. Este desplazamiento se puede representar de la siguiente forma:
En la representación anterior, se inicializa las salidas Q en 0. Suponiendo que se ingresa por el bit de menor peso un uno, en el siguiente flanco de reloj, se desplaza hacia la izquierda todos los bits, obteniendo un desplazamiento por cada flanco de reloj.
La siguiente figura presenta un registro de desplazamiento hacia la izquierda
Por otro lado, los registros de desplazamiento pueden tener entrada de datos en el bit de mayor peso, de esta forma los bits a la salida se obtienen en el bit de menor peso. Este tipo de desplazamiento, es un desplazamiento a la derecha. Este desplazamiento se puede representar de la siguiente forma:
En la representación anterior, se inicializa las salidas Q en 0. Suponiendo que se ingresa por el bit de mayor peso un uno, en el siguiente flanco de reloj, se desplaza hacia la derecha todos los bits, obteniendo un desplazamiento por cada flanco de reloj.
La siguiente figura presenta un registro de desplazamiento hacia la derecha
Registros de Desplazamiento en Cascada
El registro 74194, contiene en su configuración diferentes posibilidades. Este registro, puede hacer carga en paralelo, desplazamiento a la derecha y desplazamiento a la izquierda. Este circuito además es apropiado para hacer conexiones en cascada, de esa forma, puede implementarse registro de más de 4 bits.
La siguiente figura muestra una implementación de un registro de 8 bits construido a base de registros 74194, los cuales son registros de 4 bits.
Un multiplexor, tambien llamado MUX, es un circuito combinacional que permite dirigir la informacion digital procedente de varias fuentes a una unica linea la cual estaria conectada a un destino comun.
Los multiplexores tienen n lineas de seleccion, que permiten seleccionar 2n entradas y tienen siempre una sola salida
Multiplexor 4-1
Este multiplexor indica que tiene cuatro entradas de un bit, por consiguiente tiene dos lineas de seleccion y una sola salida de un bit. Dada la definicion, la tabla de verdad para este multiplexor seria la siguiente.
Entradas
Salida
S1
S0
D3
D2
D1
D0
Y
0
0
X
X
X
0
0
0
0
X
X
X
1
1
0
1
X
X
0
X
0
0
1
X
X
1
X
1
1
0
X
0
X
X
0
1
0
X
1
X
X
1
1
1
0
X
X
X
0
1
1
1
X
X
X
1
Entonces la expresion Booleana es la siguiente:
La implementacion de este circuito es el siguiente:
El CI 74LS153 contiene dos multiplexores 4-1. La siguiente figura representa este circuito. En este circuito las lineas activas a nivel bajo Ea y Eb son habilitadoras, es decir, que el circuito funcionara si en estas entradas hay un 0 logico.
Este multiplexor indica que tiene dos entradas de cuatro bits, por consiguiente tiene una sola linea de seleccion y una sola salida de cuatro bits. Dada la definicion, la tabla de verdad para este multiplexor seria la siguiente.
Entradas
Salidas
S
A3
A2
A3
A0
B3
B2
B1
B0
Y3
Y2
Y1
Y0
0
a3
a2
a1
a0
X
X
X
X
a3
a2
a1
a0
1
X
X
X
X
b3
b2
b1
b0
b3
b2
b1
b0
La tabla anterior indica que si la linea de seleccion es 0, entonces la salida contendra lo que tiene la entrada A de 4 bits. Si la linea de seleccion es 1, entonces la salida contendra lo que tiene la entrada B de 4 bits.
Las expresiones Booleanas de este circuito son
La implementacion de este circuito es la siguiente:
Una memoria es un dispositivo de almacenamiento de datos binarios. Las memorias almacenan bloques de datos generalmente de 8 bits que corresponde a un byte. Un byte es compuesto por dos bloques de 4 bits que reciben el nombre de nibble. Una unidad de información se denomina palabra y es compuesta por uno o más bytes.
Una memoria esta formada por matrices de celdas. Una celda es un elemento de almacenamiento que puede almacenar un 1 o 0 lógico. La posición en una unidad de datos se denomina dirección. La dirección corresponde a la ubicación de una unida de datos o palabra dentro de la memoria.
La capacidad de una memoria, corresponde al número total de unidades de datos que puede almacenar. La operación de escritura en una memoria coloca los datos en una posición de memoria específica. La operación de lectura toma los datos de una posición de memoria específica.
Lectura y Escritura
Los datos se colocan en la memoria a través del proceso de escritura y se toman de la memoria a través del proceso de lectura mediante un conjunto de líneas denominadas bus de datos. El bus de datos en una memoria es bidireccional, lo que indica que los datos pueden entrar a la memoria o salir de ella. En el caso de la memoria organizada en bytes, el bus de datos tiene 8 líneas que corresponden a 8 bits.
En las operaciones de lectura y escritura, se debe seleccionar una posición de memoria mediante una dirección que se debe colocar en un dato binario. Esta dirección se ubica en un conjunto de líneas denominadas bus de direcciones. El código de la dirección se decodifica mediante un circuito combinacional denominado decodificador de instrucciones y selecciona el registro en donde se debe almacenar o leer el dato. El número de líneas del bus de direcciones depende de la capacidad de la memoria. Esta capacidad esta determinada por potencias base 2, debido a que dicha dirección se encuentra en binario. Por ejemplo, si una memoria tiene un bus de datos de 8 bits, entonces, su capacidad es de 28=256 direcciones de memoria.
La siguiente figura representa un diagrama en bloques de una memoria.
Operación de escritura
En la operación de escritura de una memoria, se introduce en el bus de direcciones un código que corresponde a la dirección en la que se desea almacenar el dato. El decodificador de direcciones decodifica el valor colocado en el bus de direcciones seleccionando el registro en el cual se almacena el dato. Posteriormente, se debe colocar en el bus de datos el dato que se desea almacenar. Finalmente se debe dar una orden de escritura para que el dato quede almacenado en la memoria. Cuando se escribe un nuevo dato en una posición de memoria, el dato anterior es sobreescrito, lo cual indica que ese dato anterior se destruye.
Operación de lectura
En la operación de lectura de una memoria, se introduce en el bus de direcciones un código que corresponde a la dirección de la que se desea capturar o leer el dato. El decodificador de direcciones decodifica el valor colocado en el bus de direcciones seleccionando el registro del cual se toma el dato. Finalmente se debe dar una orden de lectura para que el dato se coloque en el bus de datos. Una vez este en el bus de datos, se puede hacer uso de dicha información. Cuando se lee un dato de una posición de memoria, el dato se mantiene almacenado. Esto permite darle nuevo uso a dicho dato.
Memorias de Solo Lectura ROM
ROM son las siglas de read-only memory, que significa "memoria de sólo lectura". Las memorias ROM mantienen de forma permanente los datos almacenados, los cuales, pueden ser leídos pero no modificados (memoria no volátil). Una memoria ROM almacena datos que se requieren constantemente en las aplicaciones. La ROM suele almacenar la configuración del sistema o el programa de arranque de un computador.
Las memorias de sólo lectura o ROM son utilizada como medio de almacenamiento de datos en los computadores, debido a que no se puede escribir fácilmente, su uso principal reside en la distribución de programas que están estrechamente ligados al soporte físico del computador, y que seguramente no necesitarán actualización. Por ejemplo, una tarjeta gráfica puede realizar algunas funciones básicas a través de los programas contenidos en la ROM.
Una razón de que se utilice la memoria ROM para almacenar datos es la velocidad ya que los discos son más lentos. Además no se puede leer un programa que es necesario para ejecutar un disco desde el propio disco. Por lo tanto, la BIOS, o el sistema de arranque oportuno de la computadora normalmente se encuentran en una memoria ROM.
Las ROMs semiconductoras se fabrican de con tecnología bipolar o con tecnología MOS (Metal-Oxido Semiconductor). La siguiente figura muestra la clasificación de las memorias ROM.
ROM Básica
La ROM básica es una memoria programada permanentemente durante el proceso de fabricación para proporcionar funciones estándar. La mayoría de los circuitos integrados ROM utilizan la presencia o ausencia de de una conexión de transistor en una unión fila-columna para representar un 1 o 0. Las celdas de una memoria pueden ser bipolares, es decir, que están construidas a base de transistores BJT (Bipolar Junction Transistor) o pueden ser construidas a base de transistores MOSFET (Metal-Oxide Semiconductor Field Efect Transistor).
La representación de una memoria ROM pequeña, por ejemplo, una memoria de 256X4, que indica que tiene 256 posiciones de memoria y cada posición es de 4 bits, se realiza mediante una matriz de celdas de 256 filas por 4 columnas. Esta memoria tiene entonces 8 bits en el bus de direcciones y 4 bits en el bus de datos.
PROM
Las PROM (ROM Programable) se encuentran disponibles en tecnología bipolar y en tecnología MOS. Generalmente estas memorias tienen buses de datos de 4 u 8 bits y capacidades de alrededor de 250.000 posiciones de memoria. Las PROM utilizan mecanismos de fundición para almacenar bits donde una celda se funde o no para representar un 1 o 0 lógico, entonces una memoria PROM utiliza fusibles en cada celda. El proceso de la fundición es irreversible. Una vez programada no se puede cambiar.
Durante el proceso de programación de la memoria, a cada celda se le aplica una corriente suficiente para fundir el fusible de la celda. De esta forma esta celda queda abierta y representaría un 0 lógico.
Normalmente una memoria PROM se programa colocándola en un dispositivo denominado programador de PROM. El proceso de programación consiste en colocar una dirección en el bus de direcciones y enviar un impulso que produzca corriente a cada línea del bus de datos para fundir los fusibles requeridos. De esta forma queda almacenado el dato.
EPROM
Una EPROM es una PROM borrable. Una EPROM puede ser reprogramada, si antes se borra los datos que contenga la memoria. Utiliza matrices NMOSFET con estructura de puerta aislada. La puerta del transistor aislada no tiene conexión eléctrica y puede almacenar una carga eléctrica durante un periodo de tiempo indefinido. Los bits en esta matriz se representan mediante la presencia o ausencia de una carga almacenada en la puerta. El borrado consiste en la eliminación de la carga de la puerta. Los tipos fundamentales de EPROM son las UVPROM (PROM Borrable por Ultravioleta) y las EEPROM (PROM Eléctricamente Borrable)
UVPROM
En una UVPROM la puerta aislada del FET esta flotando dentro de un material oxido aislante. El proceso de programación hace que los electrones sean eliminados de la puerta flotante. El borrado se realiza mediante la exposición del chip de la matriz de memoria a una radiación ultravioleta de alta intensidad a través de una ventana de cuarzo que posee la memoria en la parte superior del encapsulado. La carga positiva almacenada en la puerta se neutraliza después de un periodo de tiempo de exposición de la luz ultravioleta sobre la memoria.
EEPROM
Las PROM Borrables Eléctricamente, se puede borrar y programar mediante impulsos eléctricos. Las EEPROM se pueden reprogramar dentro del propio circuito, lo que permite reconfigurar cualquier sistema. Los dos tipos de EEPROM son los MOS de puerta flotante y la de silicio de oxido nitroso (NMOS, Metal Oxide Silicon). La aplicación de una tensión en la puerta de control de la estructura de puerta flotante permite la eliminación y el almacenamiento de la carga en la puerta flotante.
Memorias de Acceso Aleatorio RAM
En una memoria RAM los datos se pueden leer y escribir de forma aleatoria, es decir, que se puede leer y escribir de una posición de memoria deseada. Además, los tiempos de respuesta en una memoria RAM son bajos, esto indica que es una memoria supremamente eficiente. Al escribir un dato en una posición de la memoria, los datos anteriores son reemplazados por el nuevo dato. Sin embargo, cuando los datos son leídos de una posición de memoria, estos datos se conservan. La memoria RAM puede almacenar información, mientras tenga energía eléctrica.
Las memorias RAM, también se fabrican con tecnologías bipolar y MOS. Hay otras memorias que usan ambas tecnologías denominadas BiMOS. La siguiente grafica muestra la clasificación de memorias RAM.
Arquitectura de RAM Estática (SRAM)
Una memoria SRAM se direcciona del mismo modo que una memoria ROM. La principal diferencia entre la organización de las SRAM y las PROM es que las SRAM, tienen bus de datos bidireccional, es decir de entrada y salida y tienen unidad de control de lectura y escritura de información.
En modo de lectura, se coloca en el bus de datos el dato almacenado en la posición de memoria correspondiente a la dirección colocada en el bus de direcciones. En modo de escritura, el dato colocado en el bus de datos, se almacena en la posición de memoria correspondiente a la dirección colocada en el bus de direcciones. El bus de datos se compone de las líneas llamadas DQ0 a DQ7. En el proceso de escritura, estas líneas se denominan D0 a D7 y en el proceso de lectura estas líneas se denominan Q0 a Q7.
La figura anterior muestra la organización de una memoria SRAM. La matriz de celdas de memoria esta organizada en 256 filas y 128 X 8 columnas, es decir, 128 columnas cada una de 8 bits. El modo de operación de la SRAM es el siguiente. La entrada de habilitación E, debe estar a nivel bajo para que el circuito se encuentre habilitado. 8 de las 15 líneas de dirección se decodifican en el decodificador de filas. Esto indica que se selecciona solo una de 256 filas. Las líneas restantes de dirección las decodifica el decodificador de columnas. Esto indica que se selecciona solo una da 128 columnas de 8 bits.
En el proceso de lectura, la entrada de habilitación W debe estar a nivel alto y la entrada de habilitación G, debe estar activa a nivel bajo. Las compuertas negativa AND, posterior a las líneas de habilitación, permiten activar los buffer triestado del bus de datos, de tal forma que los datos almacenados, se presenten en el bus de datos.
En el proceso de escritura, la entrada de habilitación W debe estar activa a nivel bajo y la entrada de habilitación G, debe estar a nivel alto. Las compuertas negativa AND, posterior a las líneas de habilitación, permiten activar los buffer triestado del bus de datos, de tal forma que los datos colocados en el bus de datos, ingresen a la matriz de memoria en la fila y columna seleccionada.
Expansion de Memorias
Las memorias disponibles se pueden ampliar para incrementar la longitud de palabra, es decir, el número de bits de los datos o para ampliar la cantidad de posiciones de memoria, es decir, ampliar el número de direcciones de la memoria.
Expansión de longitud de palabra
El objetivo de la expansión de la longitud de la palabra es ampliar el bus de datos. Para ello, es recomendable utilizar dos memorias RAM o ROM idénticas. La siguiente figura muestra el símbolo de una memoria ROM de 32 X 8.
Con base en la memoria anterior, se puede ampliar el número de bits del bus de datos al doble, utilizando dos circuitos integrados de esta memoria. En este caso se obtendría una memoria PROM de 32 X 16. La implementación de esta memoria expandida seria la siguiente.
En la expansión anterior, se debe colocar el bus de direcciones en común para ambas memorias y la salida se amplia al doble de cada memoria.
De igual forma se implementa para una memoria RAM. La siguiente figura muestra el símbolo lógico de una memoria RAM de 1Kb X 8.
Con base en esta memoria de 1Kb X 8, la implementación de la memoria expandida seria la siguiente.
En la implementación anterior, las entradas del bus de direcciones van en común y el bus de datos expande. Sin embargo, es necesario tener en cuenta que el bus de datos es bidireccional. En esta memoria, al colocar la línea WE en 0, la memoria se encuentra en estado de escritura y al colocar la línea WE en 1, la memoria se encuentra en estado de lectura. Esto indica que el bus de datos es de entrada cuando WE es 0 y de salida cuando WE es 1. Por tal motivo, en este ejemplo se ha conectado diodos LED para visualizar la salida y dipswitch para proporcionar datos de entrada.
Expansión de capacidad de almacenamiento o tamaño
El objetivo de la expansión de la capacidad de almacenamiento es ampliar el bus de direcciones en un bit. Al hacer esta operación, se expande la capacidad de la memoria al doble.
Con base en la memoria PROM 32 X 8, se puede ampliar la capacidad de la memoria al doble usando dos memorias idénticas, resultando una memoria expandida de 64 X 8. La implementación de esta memoria expandida seria la siguiente.
En la expansión anterior, se debe colocar el bus de direcciones en común para ambas memorias. Además la entrada CS, se convierte en el bit de mayor peso del bus de direcciones, de tal forma que cuando es 0 habilita la memoria inferior y cuando es 1 habilita la memoria superior. Las salidas se conectan en común.
Esta expansión con memoria RAM también es posible. Con base en la memoria RAM de 1Kb X 8, la implementación de la memoria expandida seria la siguiente.
En la expansión anterior, se debe colocar el bus de direcciones en común para ambas memorias. Además la entrada CS, se convierte en el bit de mayor peso del bus de direcciones, de tal forma que cuando es 0 habilita la memoria inferior y cuando es 1 habilita la memoria superior. Además, en esta memoria, al colocar la línea WE en 0, la memoria se encuentra en estado de escritura y al colocar la línea WE en 1, la memoria se encuentra en estado de lectura. Esto indica que el bus de datos es de entrada cuando WE es 0 y de salida cuando WE es 1. Por tal motivo, en este ejemplo se ha conectado diodos LED para visualizar la salida y dipswitch para proporcionar datos de entrada.
Existen circuitos que permiten almacenar informaciones logicas basadas en circuitos basicos como compuertas y algunos circuitos de la logica combinacional. En este capitulo se presentan circuitos biestables, monoestables y aestables. Los circuitos biestables son aquellos que poseen estados de SET (activado) y RESET (desactivado) en los cuales se permite mantener informacion de forma indefinida. Un circuito monoestable, tiene un unico estado estable el cual se produce mediante una activacion o disparo que se le proporciona al circuito y su salida tiene una ancho de pulso determinado previamente configurado. El circuito aestable, no posee estado estable lo cual indica que se comporta como un oscilador.
El latch, es un dispositivo de almacenamiento de dos estados. Este dispositivo, posee realimentacion. Dicha realimentacion consiste en que una salida se conecta con una estrada opuesta. Este aspecto permite mantener un estado a la salida del circuito.
Latch S-R
El latch S-R es un tipo de multivibrador biestable. Las letras S-R significan Set-Reset con entrada activa a nivel alto. Se compone de dos compuertas NOR acopladas como se muestra en la siguiente figura.
El funcionamiento de este circuito se puede analizar, verificando cada uno de los posibles estados de la entrada del circuito.
Un primer caso, es colocando un 1 logico en la entrada S y un 0 logico en la entrada R. Entonces se puede notar que la salida de la segunda compuerta sera 0, debido a que una de sus entradas es 1. La primer compuerta tiene a la entrada R un 0 y de realimentacion tiene un 0 entonces la salida es 1. Este caso se denomina Set, que indica que la entrada S tiene un 1, la entrada R tiene un 0 y las salidas quedan Q=1 y ~Q=0.
Un segundo caso, es colocando un 1 logico en la entrada R y un 0 logico en la entrada S. Entonces se puede notar que la salida de la primera compuerta sera 0, debido a que una de sus entradas es 1. La segunda compuerta tiene a la entrada S un 0 y de realimentacion tiene un 0 entonces la salida es 1. Este caso se denomina Reset, que indica que la entrada R tiene un 1, la entrada S tiene un 0 y las salidas quedan Q=0 y ~Q=1.
Un tercer caso, es colocando en las entradas R y S 0 logico. Para este caso, las salidas de las compuertas NOR, dependen de las entradas de la realimentacion. Por consiguiente es necesario considerar condiciones iniciales en la salida. Si se considera que la salida Q=0 y ~Q=1, entonces la salida de la primera compuerta sera 0 y la salida de la segunda compuerta sera 1. Si se considera que la salida Q=1 y ~Q=0, entonces la salida de la primera compuerta sera 1 y la salida de la segunda compuerta sera 0. Por consiguiente se puede observar que si la entrada es R=0 y S=0, las salidas conservan su estado actual. A este caso, se le denomina No Cambio.
Un cuarto caso, es colocando en las entradas R y S 1 logico. Para este caso, las salidas de las compuertas NOR, siempre seran 0. Al ser este circuito un biestable, se indica que la salida ~Q es el complemento de Q, entonces si ambas salidas son 0, no se cumple esta condicion, lo cual indica que este es un caso Invalido.
Entonces la tabla de verdad del latch S-R es la siguiente:
Entradas
Salidas
Estado
R
S
Q
~Q
0
0
NC
NC
No cambio
0
1
1
0
Set
1
0
0
1
Reset
1
1
0
0
No valido
Latch ~R - ~S
Este latch tiene las mismas caracteristicas que el latch S-R considerando que sus entradas son activas a nivel bajo. Se compone de dos compuertas NAND acopladas como se muestra en la siguiente figura.
El funcionamiento de este circuito se puede analizar, verificando cada uno de los posibles estados de la entrada del circuito.
Un primer caso, es colocando un 1 logico en la entrada S y un 0 logico en la entrada R. Entonces se puede notar que la salida de la segunda compuerta sera 1, debido a que una de sus entradas es 0. La primer compuerta tiene a la entrada R un 1 y de realimentacion tiene un 1 entonces la salida es 0. Este caso se denomina Reset, que indica que la entrada S tiene un 1, la entrada R tiene un 0 y las salidas quedan Q=0 y ~Q=1.
Un segundo caso, es colocando un 1 logico en la entrada R y un 0 logico en la entrada S. Entonces se puede notar que la salida de la primera compuerta sera 1, debido a que una de sus entradas es 0. La segunda compuerta tiene a la entrada R un 1 y de realimentacion tiene un 1 entonces la salida es 0. Este caso se denomina Set, que indica que la entrada R tiene un 1, la entrada S tiene un 0 y las salidas quedan Q=1 y ~Q=0.
Un tercer caso, es colocando en las entradas R y S 1 logico. Para este caso, las salidas de las compuertas NAND, dependen de las entradas de la realimentacion. Por consiguiente es necesario considerar condiciones iniciales en la salida. Si se considera que la salida Q=0 y ~Q=1, entonces la salida de la primera compuerta sera 0 y la salida de la segunda compuerta sera 1. Si se considera que la salida Q=1 y ~Q=0, entonces la salida de la primera compuerta sera 1 y la salida de la segunda compuerta sera 0. Por consiguiente se puede observar que si la entrada es R=0 y S=0, las salidas conservan su estado actual. A este caso, se le denomina No Cambio.
Un cuarto caso, es colocando en las entradas R y S 0 logico. Para este caso, las salidas de las compuertas NAND, siempre seran 1. Al ser este circuito un biestable, se indica que la salida ~Q es el complemento de Q, entonces si ambas salidas son 1, no se cumple esta condicion, lo cual indica que este es un caso Invalido.
Entonces la tabla de verdad del latch es la siguiente:
Entradas
Salidas
Estado
~R
~S
Q
~Q
0
0
1
1
No valido
0
1
0
1
Reset
1
0
1
0
Set
1
1
NC
NC
No cambio
Circuito Antirrebote
Cualquier interruptor al ser posicionado en un estado, genera rebotes. Estos rebotes, generalmente no son visibles, dado a que su frecuencia es muy alta. Sin embargo si se conectara un dispositivo a un interruptor, el rebote que genera pequeños pulsos indeseables que un circuito puede detectar. Estos pulsos podrian alterar la respuesta del circuito. Entonces la solucion es construir un circuito que elimine el efecto del rebote en los interruptores. Existen varias opciones de implementar circuitos antirrebotes, la siguiente figura muestra un ejemplo.
Para construir este circuito, se requiere un latch S-R y un interruptor de 3 pines 2 posiciones. Cuando el interruptor coloca un 1 logico en la entrada R, se genera un Reset, debido a que la entrada S estaria en 0 logico por medio de la resistencia a tierra. En el momento de haber un rebote, la entrada R y la entrada S, quedan en 0 logico generando a la salida un estado de no cambio. Una vez finalizado el rebote, vuelve a estar en estado de Reset hasta quedar la entrada en estado estable. Entonces para el rebote generado en el interruptor de entrada, a las salidas Q y ~Q se obtiene una señal sin rebotes.
Latch S-R con Habilitacion
El latch S-R, actua en el mismo instante en que se modifique las entradas. Si se quisiera pasar de Set a Reset, seria necesario pasar por el estado No cambio para no alterar las salidas. Sin embargo en este latch se puede cometer el erro de pasar por el estado invalido, lo que podria generar un error en la salida del circuito.
La solucion al problema planteado es agregarle una linea de habilitacion al latch, de tal manera que solo trabaje cuando esta linea se encuentre activa. Este circuito se muestra en la siguiente figura.
Este circuito trabaja exactamente igual al latch S-R con una funcion adicional. Si la entrada EN es 0, la salida siempre sera No cambio. Este comportamiento describe el almacenamiento de un bit de informacion. La tabla de verdad es la siguiente:
Entradas
Salidas
Estado
EN
~R
~S
Q
~Q
1
0
0
NC
NC
No cambio
1
0
1
1
0
Set
1
1
0
0
1
Reset
1
1
1
0
0
No valido
0
X
X
NC
NC
No cambio
Latch D con Habilitacion
El latch S-R con habilitacion, sigue teniendo el inconveniente de presentar el estado no valido. El latch D, es una implementacion que permite eliminar este estado mejorando el comportamiento del latch. Este circuito se muestra en la siguiente figura.
Este circuito trabaja ahora solo tiene los estados de No cambio, set y reset. La tabla de verdad es la siguiente:
Los Flip-Flops son circuitos biestables sincronos. El termino sincrono indica que la salida del mismo varia unicamente en un instante de tiempo especifico de una entrada denominada reloj. Ese instante de tiempo se denomina flanco y puede haber flanco de subida y de bajada. El flanco de subida hace referencia al instante de tiempo o impulso existente cuando la entrada de reloj varia del estado 0 a 1. El flanco de bajada hace referencia al instante de tiempo o impulso existente cuando la entrada de reloj varia del estado 1 a 0. El tiempo de duracion de un flanco es de aproximadamente 30 nanosegundos.
El Flip-Flop, cambia de estado en la salida solamente cuando se presenta un flanco en su entrada de reloj. Los Flip-Flops pueden ser de flanco de subida o de flanco de bajada. Para generar un flanco es necesario implementar un circuito detector de flancos.
Detector de Flancos
Para implementar un circuito detector de flancos, es necesario hacer uso de una caracteristica de los circuitos TTL. Toda compuerta, tiene un tiempo de propagacion que es aproximadamente 10 ns (este tiempo puede variar segun la tecnologia de la compuerta). Con base en este concepto se puede obtener un flanco con el circuito de la siguiente figura.
Para el circuito anterior, en el instante de tiempo en que la entrada CLK, pasa de 0 a 1, la salida de la compuerta NOT se mantiene en 1 durante 10 ns, permitiendo que la salida de la compuerta AND tenga a sus entradas 1 logico durante 10 ns, dejando en la salida F un 1 logico durante 10 ns, el cual se llamara flanco de subida. En el momento en que la entrada CLK, pasa de 1 a 0, a la salida de la compuerta NOT se mantendra un 0 logico y antes de que pase a 1 logico, la otra entrada de la compuerta AND sera 0 logico, por consiguiente no hara ningun efecto al pasar de 1 a 0 la entrada CLK. Entonces de esta forma se produce un flanco de subida.
El simbolo de un circuito con reloj, puede ser con flanco de subida o flanco de bajada. En otra notacion, el reloj se puede identificar con las letras CP (Clock Pulse).
Flip-Flop D
El Flip-Flop D, es exactamente igual al latch D, reemplazando la entrada de habilitacion por un reloj. Para esto simplemente es necesario agregar al latch D, un circuito detector de flancos. La implementacion es la siguiente.
La tabla de verdad del Flip-Flop D es:
Entradas
Salidas
Estado
CLK
D
Q
~Q
↑
0
0
1
Reset
↑
1
1
0
Set
Flip-Flop J-K
El Flip-Flop J-K, es un circuito secuencial cuyo comportamiento es indentico al latch S-R en las operaciones de Set, Reset y No cambio. La ventaja del Flip-Flop J-K es que es disparado por flanco y ademas no tiene estado no valido. La implementacion es la siguiente
Este Flip-Flop tiene como caracteristica el hecho que en el estado J=1 y K=1, las salidas Q y ~Q basculan, es decir, si esta en 0 pasa a 1 y si esta en 1 pasa a 0.
La tabla de verdad del Flip-Flop J-K es:
Entradas
Salidas
Estado
CLK
J
K
Q
~Q
↑
0
0
Q
~Q
No cambio
↑
0
1
1
0
Set
↑
1
0
0
1
Reset
↑
1
1
~Q
Q
Basculacion
Flip-Flop J-K con entradas asincronas.
Las entradas asincronas son aquellas que no dependen de un pulso de reloj para afectar los estados de las salidas. En un Flip-Flop, puede haber dos entradas asincronas llamadas Clear y Preset. Generalmente estas entradas son activas a nivel bajo. Entonces, cuando se coloca un 0 en la entrada Clear, esta se activa y produce un 0 en la salida Q sin importar los valores de J y K. Igualmente cuando se coloca un 0 en la entrada Preset, esta se activa y produce un 1 en la salida Q sin importar los valores de J y K. La implementacion es la siguiente.
La funcion basica del decodificador es detectar la presencia de una determinada combinacion de bits en las entradas e indicar la presencia de este codigo mediante la activacion de una linea. Entonces un decodificador posee n lineas de entrada y 2n lineas a la salida. De esa forma por cada combinacion de entrada habra siempre una sola linea activa a la salida.
Decodificador 2-4
Un decodificador 2-4 indica que tiene dos entradas y cuatro salidas debido a que 22 = 4. Este decodificador tiene la siguiente tabla de verdad.
Binario
Salidas
B1
B0
S3
S2
S1
S0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
Entonces las expresiones Booleanas son:
La implementacion de este decodificador es la siguiente:
Este decodificador se puede conseguir en el mercado como el CI 74LS139. Este circuito tiene dos decodificadores internamente y sus salidas son activas a nivel bajo. Ademas tiene una entrada denominada G activa a nivel bajo, que permite habilitar o inhabilitar el circuito.
Decodificador 3-8
Un decodificador 3-8 indica que tiene tres entradas y ocho salidas debido a que 23 = 8. Este decodificador tiene la siguiente tabla de verdad.
Binario
Salidas
B2
B1
B0
S7
S6
S5
S4
S3
S2
S1
S0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
Entonces las expresiones Booleanas son:
La implementacion de este decodificador es la siguiente:
Este decodificador se puede conseguir en el mercado como el CI 74LS138. Este circuito tiene un decodificador y sus salidas son activas a nivel bajo. Ademas tiene tres entradas denominadas G1, G2A y G2B que permiten habilitar o inhabilitar el circuito. G1 es activa a nivel alto y G2A y G2B son activas a nivel bajo.
Decodificador Manejador
El decodificador manejador es un circuito combinacional que permite recibir un codigo BCD y generar a sus salidas los niveles logicos necesarios para encender un display presentando el numero decimal determinado por el codigo BCD.
Un display 7 segmentos es un dispositivo basado en diodos LED, el cual esta compuesto por 7 diodos distribuidos de tal forma que al encenderlos se puede formar cualquier digito decimal. Cada uno de los LEDs estan conectados en comun por su anodo o catodo. Para el caso en que esten conectados por el catodo, se le denomina catodo comun. Si estan conectados por el anodo, se le denomina anodo comun.
En un display anodo comun, los anodos de los diodos LED, se encuentran conectados en comun estan conectados a un pin del display denominado pin comun. Los catodos de los 7 LED, estan conectados a un pin exterior del display.
Esto indica que para habilitar un display anodo comun, es necesario colocar su pin comun a Vcc que equivale a uno logico. Si se desea encender un segmento se debe colocar GND en el pin correspondiente a ese segmento. Si se desea apagar un segmento se debe colocar Vcc en el pin de ese segmento.
Cada segmento en un display se le da un nombre, el cual es una letra minuscula que va de la "a" a la "g" y su distribucion es la siguiente:
Entonces para diseñar un decodificador manejador se debe realizar su tabla de verdad. Es importante determinar que tipo de display se usara para el diseño.
La siguiente tabla de verdad hace referencia a un decodificador manejador anodo comun
BCD
Salidas
B3
B2
B1
B0
g
f
e
d
c
b
a
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
La siguiente tabla de verdad hace referencia a un decodificador manejador catodo comun.
BCD
Salidas
B3
B2
B1
B0
g
f
e
d
c
b
a
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
Con base a las tablas de verdad anteriores se puede obtener las expresiones Booleanas para cada una de las salidas. La implementacion permitira controlar un display 7 segmentos anodo o catodo comun respectivamente.
Existe el CI 74LS47, el cual es un decodificador manejador anodo comun y el CI 74LS48, el cual es un decodificador manejador catodo comun
Las entradas A, corresponden al codigo BCD de entrada. Las salidas a-g corresponden a las salidas que van conectadas al display anodo comun. Estas salidas son activas a nivel bajo ya que con un cero logico se activa el segmento. La entrada test, sirve para encender todos los segmentos del display. Las lineas RBI y RBO son para hacer conexion en cascada.
La implementacion de un decodificador manejador es la siguiente: