1.- CIRCUITOS SECUENCIALES
1.1.- Definición, características y constitución de los circuitos secuenciales
Los circuitos secuénciales, de la misma forma que los combinacionales, están constituidos por puertas lógicas, y como en estos últimos, la escala de integración de la mayoría de los circuitos disponibles en catalogo es la MSI. Sin embargo, presentan unas características muy singulares que describiremos a continuación.
A diferencia de los circuitos combinacionales, en los secuenciales, los valores de las salidas en un momento dado no dependen exclusivamente de los valores aplicados en las entradas en ese instante, sino también de los que estuviesen presentes con anterioridad.
Puede ocurrir, por lo tanto, que para iguales valores en las entradas se puedan obtener estados distintos en las salidas en momentos diferentes.
La respuesta de un circuito de estas características, frente a una secuencia de valores aplicada a las entradas, depende de su constitución física.
Los circuitos secuenciales tienen capacidad para recordar o memorizar los valores de las variables de entrada. Esta operación es imprescindible en los sistemas automáticos construidos con circuitos digitales, sobre todo en los programables, de los cuales nos ocuparemos mas adelante.
El almacenamiento o memorización de la información presente en la puerta del circuito se realiza gracias a la existencia de unas variables denominadas de estado interno, cuyo valor se vera afectado por los cambios producidos en la combinación binaria aplicada a la entrada.
Existen dos grandes tipos de circuitos secuenciales:
a) Maquina de Mealy. En este tipo de circuitos, las salidas dependen, en cada instante de los valores de los elementos de memoria y de las entradas presentes en ese instante.
Aquí, para cada estado, podemos tener tantas salidas como combinaciones tengarnos en las entradas.
b) Maquina de Moore. Aquí las salidas en cada instante dependen exclusivamente de los estados de los elementos de memoria, y no dependen directamente de las entradas en ese instante. Los valores de las entradas, sirven para modificar las diversas transiciones entre estados.
Otra importante división de los circuitos secuenciales es entre sincronos y asíncronos
Los síncronos, requieren una señal de control procedente de un generador externo al propio circuito, que funciona como llave, de modo que si no se aplica dicha señal no se hacen efectivos los valores presentes en las entradas. Este método se emplea cuando el sistema electrónico es complejo y los tiempos de conmutación de los diversos dispositivos que lo constituyen son distintos. La señal de control, también denominada reloj (Clock, o Clock Pulse en ingles), se aplica a las entradas del mismo nombre de cada bloque integrado para sincronizar la transmisión de datos 0 información a través del sistema. La frecuencia de la señal eléctrica debe adaptarse a la velocidad de conmutación del dispositivo mas lento del circuito.
En cambio, los sistemas secuenciales asíncronos no poseen entrada de reloj, y los cambios en las variables de estado interno y en los valores de salida se producen, sencillamente, al variar los valores de las entradas del circuito
Aquí nos vamos a centrar especialmente en el estudio de los biestables (loo circuitos secuenciales más elementales, capaces de almacenar, si no existe orden exterior de cambio, la información en ellos contenida), junto con los contadores y registros de desplazan1iento, que, como observaremos, son también circuitos secuenciales fonl1ados por una cadena de biestables. Todos estos dispositivos son de aplicación general, y de importancia fundamental en cualquier sistema digital
1.2.-Biestables
Los biestables basculas o flip-flops, son circuitos secuenciales constituidos por puertas lógicas capaces de almacenar un bit, que es la información binaria más elemental.
AI igual que los circuitos secuenciales en general, los biestables tambien se pueden clasificar en sincronos y asincronos, como se muestra en la siguiente figura:
1.2.1.-Basculas asincronas
Son aquellas basculas que carecen de impulso de reloj y, por lo tanto, la salida basculara en la medida en que cambien las entradas.
1.2.1.1.- La bascula RS (asincrona)
Es una de las basculas asincronas. Como ejemplo, vamos a realizar una RS con operadores logicos.
En la figura anterior, se muestran dos implementaciones de dicha bascula, una a
base de puertas NAND, y la otra a base de puertas NOR.
La denominacion "RS" proviene de "Reset-Set", de forma que la entrada "s" sirve para poner a "1" la salida, y la "R" para ponerla a "0".
La tabla de la verdad para cada uno do los circuitos es la siguiente.
-Puertas NAND.
-Puertas NOR.
informacion y validarlas mediante el reloj (estado anterior).
entradas(estado siguiente).
esta determinado.
Y las ecuaciones correspondientes de la salida son:
-Puertas NAND: _
Q t+
-Puertas NOR. _ _ _
Q t+
Ya vemos en las ecuaciones que el estado anterior de la salida inifluye en el nuevo estado de la salida (existe memoria).
1.2.1.2.- La bascula "T” (asincrona)
Este es otro tipo de bascula que solo tiene una entrada. La forma de operar vamos.. a verla en el siguiente "timing", o diagrama de tiempos (representacion grafica de las entradas y salidas en funcion del tiempo).
Comparando los diagramas, vemos que la señal es de frecuencia mitad que la de entrada.
Este tipo de bascula la emplearemos, colocando en cascada una serie de ellas, en los circuitos divisores de frecuencia (cada biestable dividira la frecuencia por 2).
Se puede obtener a partir de la bascula “T” sincrona (como veremos al ver esta). Por otra parte, su funcionamiento es muy similar al de la bascula binaria (sincrona).
1.2.2.- Basculas síncronas
Dentro de los sistemas sincronos tenemos dos tipos:
Sincronas sencillas, o por nivel
En ellas, las entradas solo tienen actuacion sobre la bascula (se validan) cuando el nivel logico en la entrada de reloj esta alto o bajo (segun el sistema). Esta caracteristica obliga a que las salidas solo puedan variar cuando la entrada de reloj este a nivel de paso (de atlivacion).
Slncronizadas (Edge-Triggered), o por flanco
En las basculas que adoptan este sistema de sincronismo, la informacion presente en las entradas solo se tiene en cuenta cuando la señal de reloj cambia de nivel, es decir, durante el tiempo de subida o de bajada, dependiendo del caso.
Todos los tipos de basculas que vamos a exponer pueden adoptar ambos tipos de sincronizacion, y esto lo reflejamos en la simbologia ulilizada Asi:
Sincronas sencillas Sincronizadas sencillas ( Edge-Triggered )
La entrada CP ("Clock Pulse"), es la correspondiente a los pulsos del reloj.
1,2,2,1.- Bascula "RS" (sincrona)
Esta bascula tiene el siguiente diagrama de tiempos (la vamos a realizar con activacion por nivel "1" de CP).
La denominacion "D" viene de "Datos" (sirve para realizar una transferencia de datos cuando la señal de cotrol indique, que es la funcion del "cerrojo"),
La tabla de la verdad:
Y la ecuacion resultante es:
__
Q t+D t= D•CP+CP•Q t
1.2.2.3,- Bascula "T" (sincrona)
Es una bascula bastante empleada, y posee una arquitectura bastante similar a la del flip-flop tipo "D", Se mantiene o niega el valor de Ia salida en funcion del valor de Ia entrada .”T” (si es un "0" lo mantiene, y si es un "1" lo niega), La tabla de la verdad de un biestable “T" activado por flanco de subida, es la siguienle'
EI simbolo "indica que solo se utilizara el valor de la salida al llegar un flanco
de subida al reloj, manteniendose el valor anterior hasta ese momento,
Para oblener la bascula "T” asincrona a partir de esta bascula con poner a "1" la entrada "T” (cada vez que hay un flanco de subida se invierte Ia salida con lo que se obliene una salida de frecuencia mitad que la de la entrada de reloj),
1.2.2.4.- Bascula "JK"
Tambien denominada "Masler-Slave", es quiza la mas difundida, en sus distintas versiones de activacion (por nivel y por flanco), Esta difusion esla jusliticada por su versatilidad, ya que Iapartir de una "}K" se pueden obtener los otros tipos de basculas.
veamos las tablas de verdad de una "JK" activada por nivel "0" y de una "JK"
activada por flanco descendente:
Y la ecuacion resultante para ambos casos es:
_ _
Obtencion de las bisculas "D" y "T" a partIr de la "JK"
Para obtener estas basculas a partir de la "JK", basta con realizar las siguientes operaciones:
_
a) Para obtener la "D", basta con hacer K = j , y meter los dalos correspondientes
a la entrada "D" por la "J" Para comprobar esto, basta con mirar las tablas de la verdad de ambos flip-flops, Vemos que para los dos casos en que K =J, al validarse las entradas, la salida pasa a tomar el valor que tenia la J (como en un flip-flop tipo D)
b). Para otener la "T". solo hay que hacer J=K, y poner en cualquiera de esas dos entradas los datos correspondientes a la entrada “T”. Asi, si J=K="0", no se invierte la salida al validar las entradas, y si J=K=1, se invertira la salida (como en un flip-flop tipo T).
2.2.2.5.- Bascula binaria
Es una bascula con un mando unico, de tal forma, que la salida evoluciona cambiando de estado, dependiendo del tipo de acltivacion. Asi tenemos, a nivel "1", a nivel "0", a flanco ascendente, a flanco descendente.
Este flip-flop tiene un funcionamiento similar al del biestable "T" asíncrono (divide por dos la frecuencia del reloj)
Como ejemplo, vamos a ver la simbologia y comportamiento de una bascula binaria por flanco descendenle.
La "bascula binaria" se puede construir a base de basculas "D", y "JK". Veamos unos ejemplos.
-Si queremos obtener una bascula binaria activada por flanco de bajada, lo podemos hacer a partir de una bascula "D" tambien por flanco descendente. Asl, cada vez que lIegue un flanco de bajada, pasa a la salida el valor de la entrada (que es el de la salida anterior, pero negado). Por lo tanto, se obtiene una salida con una frecuencia la mitad de la del reloj del sistema.
-Para hacer lo mismo a partir de una bascula "JK" de frente descendente:
En la figura se recogen dos posibilidades: la de la izquierda, consiste en emplear el fip-flop JK como uno de tipo T (J=K), Y poniendo en ambas entradas 1, con lo que cada vez que lIegue un flanco descendente de reloj se producira una inversion de la salida; en el caso de la izquierda, se emplea el flip-flop JK como uno tipo D (K = 1), siendo el montaje identico al explicado para dicho flip-flop
1.2.2.6.- Entradas asincronas
Pese al caracter sincrono de los flip-flops enunciados en este apartado, estos circuitos tambien posceo entradas de caracter ,sincrono. Dicha denominacion proviene del hecho de que actúan independienteme del valor que tenga la señal de reloj.
Normalmente, suele haber dos entradas asincronas
Estas entradas se suelen utilizar para inicializar el sistema, dando a los biestables el valor deseado, para que luego evolucionen.
1.3.- Contadores
Un contador es un circuito secuencial de aplicacion general, cuyas salidas representan en un determinado codigo el numero de pulsos que se meten a la entrada
Estan constituidos por una serie de biestables conectados entre si de modo que las salidas de estos cambian de estado cuando se aplican impulso. a la entrada.
La capacidad de un contador es el numero mas elevado, expresado en cualquiera de los codigos binarios, que puede ser representado en sus salidas.
El modulo, o número de estados totales que puede representar el contador, es igual al numero máximo de impulsos que se puede representar más uno (el cero). Si "n" es el número de flip-flops empleado para hacer el contador, y "M" el módulo del contador, se debe verificar:
M " 2”
Cuando el contador llega al valor máximo de su capacidad, comienza a contar de nuevo desde cero al aplicarle el siguiente impulso.
Dependiendo del modo d e operación, lo s cont adores pueden ser ascendetes ( si su contenido se incrementa con cada impulso), descende ntes (si su contenido disminuye), o bien una combinacion de ambos (up/down counters).
Por otro lado, los contadores se dividen en sincronos y asincronos. Los primeros, son aquellos en los que los impulsos de reloj se aplican simultameamente a todos los biestables, y por tanto, todas las salidas cambian al mismo tiempo.
En los asincronos, por contra, la señal de reloj se aplica a la entrada del primer biestable, la salida de éste a la entrada de reloj del siguiente, y asi sucesivamente el tiempo de propagacion de estos dispositivos, es superior al de los sincronos (la señal tiene que pasar por todos los bits menos significativos hasta llegar a un deteminado bit).
Otra clasificacion es según la naturaleza de los números que cuenta el dispositivo. Existen contadores binarios (el número de estados es múltiplo de 2), decimales (el numero de estados es múltiplo de 10), y de modulo M (un numero M cualquiera de estados).
Además, en todos los casos anteriores, la cuenta no tiene por qué empezar e terminar en 0. Por ejemplo se puede diseñar un contador de módulo 3 gue cuente 5-6-7.
El diseño de contadores sincronos, se hace de igual forma que para cualquier circuito secuencial. Como caso particular, vamos a ver el diseño de contares binarios asincronos.
1.3.1.- Contador asíncrono binario
Un caso particulanmente sencillo, lo constituyen los contadores asincronos binarios. Como emplo, vamos a diseñar y realizar un contador binario ascendente de 4 bits (cuenta de O a 15).
Si estudiamos la evolucion de los números en la cuenta, vemos que cada uno de los bits cambia de valor cuamdo el de su derecha pasa de 1 a 0. Por ejemplo, con dos bits vemos que: 00-0l-10..., y a su vez 10-11-00... Por lo tanto, cada bit cambia cuando en el bit de la derecha se produce un flanco descendete.
Recordando el funcionamiento del flip-flop tipo T. vemos que este, al llegarle el conespondiente flanco de reloj, invertía la salida si tenía un 0 a la entrada, y mantenía su valor si a la entrada habia un 1.
Visto lo anterior, una sencilla forma de realizar el contador seria:
Empleamos flip-flops tipo T activos a flanco descendente. Introducimos los pulsos a contar en el flip-flop conespondiente al bit menos sigmificativo, y la salida de éste al reloj del bit de su izquierda. Igualmente, la salida de ¿este va al reloj del flip-flop de su izquierda y asi sucesivamente...
Otra posibilidad, seria emplear flip-flops tipo JK como los de tipo T (haciendo
J=K=I)
Si los flip-flops son a flanco ascendente, conectaremos al reloj las salidas negadas.
Para hacer un contador descendente, el procedimiento es bastante similar. Tomando como ejemplo el caso de dos bits, seria: ll-10-01.., y 01-00-11. En este caso vemos que cada bit cambia cuando el de su derecha pasa de 0 a 1 (flanco asecendente).
Por lo tanto, nos valdria el diseño anterior, cambiamdo los biestables de flanco descendente por unos de flanco ascendente.
De igual forma, si tuviéramos que emplear flip-flops por flanco descendente, llevartamos a los relojes conrespondientes la salida negada.
Para los circuitos vistos en este apartado, se aprecia con facilidad que el flip-flop menos signiftcativo es un divisor de frecuencia por 2, el siguiente por 4...
1.4.- Registros
.
Son dispositivos para cl al macenamiento, o manipulacion de información binaria
Existen divensos tipos de registros, dependiendo de la funcion que desarrollen:
- Registros de almacenamiento simple. Su funcion es basicamente la de almacenar una infommacion.
- Registros de conversion serie-paralelo. Son registros que realizan la conversión de la infonmacion que accede a ellos en serie, a un formato en paralelo.
- Registros conversion paralelo-serie. Son registros que realizan la función inversa a los anteriores, es decir, a la infommacion que accede a ellos en paralelo, le dan formato serie.
- Registros de desplazamiento. Son registros que penmiten ei desplazamiento de la información que almacenan. También suelen servir para las funciones anteriores.
De este tipo de registros vamos a reatizar un estudio en profundidad, ya que es una de las funciones que pueden realizar los acumnladores,que son parte integrante de tos microprocesadores, y que veremos en profundidad al tratar los Sistemas Digitales.
7,4.1.- Registros de desplazamiento
Los registros de desplazamiento realizan fundamentalmente dos funciones : rotaciones, y daplazamientos propiarnente dichos.
- ROTACIONES. Pueden ser a la derecha o la izquierda. Se realizan en bucle cerrado y se pueden utilizar para analizar el estado de un bit que forma parte de una infonmación, y cuyo acceso solo es posible en una posicion determinada. Los registros que realizan esta operación se denominan registros en anillo (un caso particular es el de los contadores en anillo, cuando aprovechamos el desplazamiento para realizar una cuenta).
Vamos a ver los diversos tipos de rotacion.
Rotacion a la lzquierda (ROL). Veamos aplicandolo a un acumulador del microprocesador 6800 (tiene registros de 8 bits, y los testea a través de un biestable C).
Después de ocho desplazamientos, todos los bits, que conforman el contenido del AccA, pueden ser testeados cuando pasan por "C" (acarreo).
Rotación a la derecha (ROR). En este caso la rotación se hace a derechas. Siguiendo con cl ejemplo anterior, tenemos:
Nuevamente, despues de ocho desplazamientos todos los bits, que conformam el contenido del AccA, pueden ser testeados cuando pasan por "C".
- DESPLAZAMIENTOS. Tenemos dos tipos de desplazamientos: el logico y el aritmético, según se vean o no implicados elementos ajenos al propio registro.
Vamos a ver algunos tipos de desplazemientos:
Desplazamiento aritmetico a la izquierda (ASL). Basicamente realiza la siguicnte funcion:
Un desplazamiento a la izquierda equivale a una multiplicacion por 2 en el sistema binario.
Desplazemiento aritmetico a la derecha (ASR). Basicamente realiza la funcion siguiente:
Desplazamiento logico a la derecha (LSR). Equivale a una division por 2 en binario.
Aquí, vemos que entra un "O" exterior al registro.
7.4.2.- Realización de Un registro de desplazemiento
La forma más elemental de realizar un registro de desplazamiento, es la que se muestra en la figura siguiente:
Como puede verse, cl circuito consta de 4 flip-flops tipo D puestos en serie, de tal forma que la salida Q de uno es la entrada D del siguiente bit La entrada de reloj es común a todos, por lo que cl circuiito es sincrono.
Los datos van entrando y se van desplazando hacia la derecha conforme llega los pulsos de reloj
Vemos que hay dos salidas, serie y paTalelo. La salida serie muestra los mismos datos que hay a la enuada pero eon ml retaTdo igual al periodo de reloj multiplicado por cl número de flip-flops que componen cl registro (los datos se retaTdaD UD periodo en cada flip-flop).
La salida paralelo muestra los cuatro últimos datos introducidos, cada uno de ellos con un retardo respecto a la entrada defnido por su distancia respecto a ésta