Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Circuitos Secuenciales
Circuitos Secuenciales
Tema 5:
Circuitos secuenciales
Circuitos secuenciales Son aquellos en los cuales las salidas en un instante de tiempo determinado dependen de las entradas en ese instante y en instantes anteriores de tiempo.
Como consecuencia de la definicin anterior podemos llegar a la conclusin de que este tipo de circuitos son capaces de memorizar informacin y que esta informacin en un momento dado depende de las entradas ocurridas en el circuito hasta ese momento. El circuito no es capaz de memorizar todas las entradas ocurridas hasta un instante de tiempo determinado, sino solo una cierta parte. A la informacin almacenada se le denomina estado del sistema, y el nmero mximo de informaciones almacenables es el nmero de estados posibles del sistema. El diagrama de bloques de un circuito secuencial es: E Q(t) Circuito combinacional Q(t+1) S
Elementos de almacenamiento
El circuito secuencial recibe informacin binaria de su ambiente a travs de las entradas E, las cuales, en combinacin con el estado actual Q(t) (almacenado en los elementos de almacenamiento), determinan el valor binario de las salidas S y el siguiente estado Q(t+1). Las salidas de un circuito secuencial son las salidas del circuito combinacional.
Estructura de computadores
5.1.2 Cronogramas
Hemos visto que los circuitos secuenciales tienen una estructura tal que las salidas dependen del tiempo, ya que el estado depende de las entradas y stas son funcin del tiempo. Aunque las tablas de transicin permiten definir un circuito secuencial, cuando ste es complejo, es ms cmodo manejar una representacin grfica de las variables en funcin del tiempo. A esta representacin se le llama cronograma. Ms adelante veremos los cronogramas de los distintos biestables. 2
Estructura de computadores
5.2 Biestables
Los biestables son circuitos lgicos capaces de permanecer en uno de entre dos estados estables, an despus de desaparecer la causa que provoc el paso al estado alcanzado. Son, pues, capaces de almacenar una informacin binaria (1 bit).
Estructura de computadores
5.2.1.1 Biestables asncronos (latches) Asncronos quiere decir que funcionan sin seal de reloj; cualquier cambio en las entradas produce un cambio en las salidas, en cualquier momento. En el caso de tener varios biestables asncronos en un circuito, cada uno actuara de forma independiente a los otros.
5.2.1.2 Biestables sncronos (flip-flops) Son los que funcionan en sincronismo con una seal de reloj. A estos tambin se les llama circuitos secuenciales sincronizados, y son el tipo de circuito ms utilizados en la prctica, ya que son relativamente sencillos de disear. Un circuito secuencial sncrono emplea seales que afectan los elementos de almacenamiento slo a instantes discretos de tiempo. La sincronizacin se logra por medio de un dispositivo de sincrona, llamado generador de reloj, que produce un tren peridico de pulsos de reloj, a intervalos fijos. Esto significa que en los biestables sncronos, la tabla de transicin solo se cumple cuando se activa la seal de reloj. Si la seal de reloj no se activa, no se produce ninguna transicin. Por tanto, aunque en las entradas haya una combinacin de seales que conduzcan a una transicin de estado, sta no se producir hasta que se active la seal de reloj, y no volver a producirse una nueva transicin hasta que se active de nuevo la seal de reloj.
La seal de reloj puede activarse de dos formas: por nivel o por flanco. 5.2.1.2.1 Biestables activados por nivel (de tensin): Un biestable activado por nivel podr cambiar de estado cuando la seal de reloj est a un determinado nivel de tensin: "1" (nivel alto) o "0" (nivel bajo).
Nivel alto
Nivel bajo
5.2.1.2.2 Biestables activados por flanco: Un biestable activado por flanco ignora el pulso de reloj mientras est en un nivel constante y se dispara slo durante una transicin de la seal de reloj, de "0" a "1" (flanco de subida) o de "1" a "0" (flanco de bajada).
Reloj
Reloj
t
Flanco de subida Flanco de bajada
Estructura de computadores
El diseo de circuitos asncronos complejos es ms difcil que el de circuitos sncronos, puesto que su comportamiento depende en gran medida de los retardos de propagacin de las puertas lgicas y de la sincrona de los cambios de las entradas. De todas formas, siempre se necesita algo de diseo asncrono, ya que: 1. los latches (elementos de almacenamiento en circuitos asncronos) se utilizan como bloques de construccin de los flip-flops (elementos de almacenamiento en circuitos sncronos). 2. Los biestables (flip-flops) que vamos a estudiar decimos que tienen entradas sncronas, ya que los datos se transfieren sincronizados con la seal de reloj, slo durante el flanco de disparo del pulso de reloj. Pero la mayora de los IC disponibles en el mercado presentan tambin entradas asncronas, las cuales pueden cambiar el estado del flip-flop independientemente del reloj. Estas entradas pueden ser por nivel alto ("1") o por nivel bajo ("0") y son prioritaras sobre las otras seales de entrada. Podemos tener las siguientes: Inicializacin o Preset (PRE): pone al biestable en estado SET ("1"). Borrado o Clear (CLR): pone al biestable en estado RESET ("0").
En su forma ms elemental, un biestable consiste en dos inversores interacoplados (realimentados), la salida de uno conectada a la entrada del otro y viceversa, como se ve en la figura: 1 0 0 1
Este circuito es capaz de estar en dos estados estables, pero para cambiar de estado, hay que actuar sobre las salidas, por lo que no es til. Se requiere un circuito de entrada, separado del de salida. Adems, se necesita que el biestable responda a una lgica de disparo, es decir, cambie de estado segn un criterio preestablecido fijo.
Ahora vamos a estudiar los 4 tipos bsicos de biestables: R-S, J-K, D y T, estudiando su tabla de de transicin, circuito y cronograma, tanto para el caso de que funcionen asncronamente (sin seal de reloj) como sncronamente (con seal de reloj). Veremos los casos en que la seal de reloj se activa por nivel (alto/bajo) o por flanco (subida/bajada).
Estructura de computadores
ND = No definido
En el ltimo caso, el hecho de que el nuevo estado no est definido no quiere decir que el biestable se deteriore si R=S=1. Lo que significa es que no podemos predecir en qu estado quedar. El smbolo como bloque del biestable R-S es el siguiente: R S Q Q' R' S' Q Q'
y el circuito puede ser implementado con slo dos puertas NOR con acoplamiento cruzado y con entrada activa a nivel alto o con dos puertas NAND con entrada activa a nivel bajo: R Q Q' R' Q Q'
S'
En el caso de utilizar puertas NAND, las rdenes Reset y Set suceden para entradas a nivel bajo (0); en este caso, el biestable se llama biestable R'S', y su tabla de verdad es todo invertido (R=S=0 no permitido, etc.)
Estructura de computadores
Vamos a explicar el funcionamiento del biestable R-S (latch) con el primer circuito (con puertas NOR). Lo que hacemos es cambiar los valores de las dos entradas R y S y observaremos las seales de salida Q y Q'. R
1
Q Q'
Suponemos que R=S=Q=0 (nivel bajo). Dado que la salida Q se realimenta a una entrada de la puerta 2 y su otra entrada es S=0, la salida de la puerta 2 tiene que ser Q'=1. Pero esta salida est acoplada de nuevo a una entrada de la puerta 1, asegurando as que su salida sea Q=0, es decir, el biestable no cambia de estado. Cuando la salida Q est a nivel bajo (Q=0), el latch se encuentra en estado RESET ("0") y permanecer indefinidamente en l hasta que se le aplique un nivel alto en la entrada S (S=1). Al tener S=1, la salida de la puerta 2 se pone a nivel bajo (Q'=0). Como tenemos que R=0 y Q'=0, la salida de la puerta 1 se pone a nivel alto (Q=1). Este nivel alto en la salida Q se realimenta a una de las entradas de la puerta 2, asegurando que su salida Q' permanece a nivel bajo (Q'=0) incluso cuando se elimine el nivel alto de la entrada S (S=0). Cuando la salida Q est a nivel alto (Q=1), el latch se encuentra en estado SET ("1"), y permanecer indefinidamente en l hasta que se le aplique un nivel alto en la entrada R (R=1). Si estando en este estado SET (Q=1), eliminamos simultnemente los niveles altos de las dos entradas (R=S=0), como la salida Q se realimenta en una entrada de la puerta 2, y la otra entrada es S=0, su salida estar a nivel bajo (Q'=0). Como esta salida est acoplada de nuevo a una entrada de la puerta 1, y la otra entrada es R=0, su salida estar a nivel alto (Q=1). Vemos que el biestable no cambia de estado. En operacin normal, las salidas de un latch (Q y Q') son siempre complementarias una de la otra. Sin embargo, se produce una condicin de funcionamiento no vlida en un biestable R-S cuando se aplican simultneamente niveles altos a las dos entradas R y S ( R=S=1). En esta situacin, las dos salidas deberan estar forzsamente a nivel bajo (Q=Q'=0), lo que viola la condicin de complementariedad de las salidas. Adems, si se eliminan simultnemente los niveles altos de las dos entradas ( R=S=0), las dos salidas van a tender al nivel alto y, dado que siempre va a existir un cierto retraso de propagacin de la seal elctrica a travs de las puertas, una de las puertas dominar en la transicin a nivel alto (una de las puertas siempre ser ms lenta que la otra). Esto har que la salida de la puerta ms lenta permanezca a nivel bajo. Cuando se produce esta situacin, no se puede predecir el siguiente estado del latch. Si los tiempos de propagacin de las dos puertas fueran exactamente iguales se produciran oscilaciones 0,1,0,1,... 7
Estructura de computadores
Los cronogramas correspondientes a un biestable R-S con puertas NOR y NAND son los siguientes. Como estamos analizando el biestable como asncrono, no depender de una seal de reloj, sino de cmo cambiemos las entradas R y S y del estado anterior. Igual que hemos hecho antes, lo que hacemos ahora es cambiar los valores de las dos entradas R y S y observaremos las seales de salida Q y Q'. Los estados de las entradas R y S los hemos elegido arbitrariamente para realizar los cronogramas, partiendo en ambos casos de que Q se encuentra a nivel bajo (Q=0).
R S Q Q' t
Cronograma biestable R-S (puertas NOR)
Estados no definidos
NOTA: La condicin R=S=1 origina un modo de funcionamiento no vlido del biestable, lo que es un gran inconveniente en cualquier latch de tipo RESET-SET. NOTA: Mientras no se diga lo contrario, de ahora en adelante supondremos que los tiempos de propagacin de las puertas lgicas que componen los biestables son nulos, con lo cual la respuesta del biestable ser inmediata.
NOTA: en este caso, la condicin R=S=0 tiene el mismo problema que antes. 8
Estructura de computadores
Este tipo de biestable, y todos los que vamos a ver, pueden tener una entrada adicional de habilitacin (STROBE o ENABLE), que puede activarse en estado alto ("1") o bajo ("0"). Cuando esta seal est activa, el biestable funciona (puede cambiar de estado); cuando est inactiva, no funciona. En el caso del biestable R-S, debemos aadir la siguiente lgica al circuito para tener dicha entrada de habilitacin. El smbolo lgico o de bloques es el mismo que antes pero aadimos esta entrada de habilitacin. R Q EN S Q'
El biestable R-S puede funcionar de forma asncrona (tal como hemos visto hasta ahora), pero tambin de forma sncrona, es decir, utilizando una seal de reloj como entrada de habilitacin. Cuando enumeramos los distintos tipos de biestables, dentro de los sncronos (flip-flops) vimos que la seal de reloj se poda activar por "nivel" o por "flanco". Los smbolos lgicos o de bloques de los biestables R-S sncronos son los siguientes. Todos tienen una entrada adicional de reloj (Clock). En el caso de los flip-flops disparados por flanco colocamos un tringulo dentro del bloque en la entrada del reloj. Este tringulo se denomina "indicador de entrada dinmica". Para distinguir si se activa por flanco de subida o por flanco de bajada, colocamos un crculo (como los de negacin) en la entrada del reloj. Activados por nivel: R
Clock
R
Clock
Q'
Q'
R
Clock
Q'
Q'
Estructura de computadores
Vamos a analizar ahora los cronogramas correspondientes a estos cuatro casos. Al tratarse de biestables sncronos, ahora dependern de una seal de reloj. Igual que antes, cambiamos las entradas R y S y comprobamos las seales de salida Q y Q'. Podemos poner los cuatro casos en un slo cronograma.
Donde: Qna = Salida biestable activado por nivel alto ("1") Qnb = Salida biestable activado por nivel bajo ("0") Qfs = Salida biestable activado por flanco de subida Qfb = Salida biestable activado por flanco de bajada Nota: Las salidas Q' las ignoramos, puesto que su seal simplemente es la inversa de Q. Recuerda:
q
Un flip-flop activado por nivel slo puede cambiar mientras la seal de reloj est en un determinado nivel: nivel alto ("1") o nivel bajo ("0"). Un flip-flop activado por flanco no puede cambiar de estado excepto en el flanco de disparo de un pulso de reloj. Las entradas R y S se pueden cambiar en cualquier momento sin que vare la salida, salvo en esos instantes. Para detectar los flancos, se utiliza un circuito "detector de transicin de impulsos", que se conecta a la entrada ENABLE.
10
Estructura de computadores
ND = No definido
J
Clock
Q'
Q'
Ejemplo de IC : el 74HC112 tiene 2 flip-flops J-K (flanco de bajada), con entradas asncronas de inicializacin y borrado.
11
Estructura de computadores
Ejemplo de cronograma: se aplican las siguientes formas de onda a las entradas J, K y de reloj. Determinar la salida Q para un biestable activado por flanco de subida y para otro activado por flanco de bajada, suponiendo que se encuentran inicialmente en estado RESET ("0").
Donde: Qfs = Salida biestable activado por flanco de subida Qfb = Salida biestable activado por flanco de bajada El biestable J-K no tiene sentido como asncrono: Supongamos que el estado inicial es Q(0)=0 y que J=K=1. Mirando la tabla de transicin vemos que, para las entradas indicadas, el estado cambia al estado Q(1)=1. Ahora bien, apenas ha cambiado, como las seales de entrada siguen indicando que cambie, volver a cambiar a un estado Q(2)=0, y as sucesivamente. Vemos que el funcionamiento es inestable, pues el estado estara cambiando continuamente. Si por el contrario, dotamos al biestable J-K de una entrada de reloj que sincronice las transiciones, el problema puede solucionarse. Para que efectivamente se solucione, es necesario que la seal de reloj se active durante un periodo de tiempo muy breve, de tal modo que en este periodo no pueda haber ms que una transicin. Es conveniente pues, que la seal de reloj acte por flanco, reduciendo as al mnimo el perodo de tiempo en el cual est activa. Para que las seales de entrada puedan ser tenidas en cuenta cuando se producen flancos de la seal de reloj, debern estar en unos niveles claramente definidos. Por tanto, las restantes seales de entrada deben actuar siempre por nivel.
12
Estructura de computadores
Finalmente, como ya hemos comentado, hay biestables sncronos con entradas asncronas. El ms utilizado es el J-K sncrono, con dos entradas asncronas adicionales, llamadas Preset (puesta a "1") y Clear (puesta a "0"), anlogas a las Set y Reset de un biestable R-S. Estas entradas PRE' y CLR' (asncronas) son prioritarias sobre las entradas sncronas, y se activan por nivel bajo (las complementamos), por lo que deben mantenerse en estado alto para el funcionamiento sncrono. El smbolo de este biestable es:
Preset Set (Biestable R-S)
PRE' J
Clock
Q Q' CLR'
Clear Reset (Biestable R-S)
Ejemplo de cronograma para el biestable anterior, teniendo en cuenta que Q est inicialmente a nivel bajo:
Debera seguir a "1" hasta el siguiente flanco de subida pero la entrada CLR' se ha activado.
Debera cambiar a "0", pero la entrada PRE' se ha activado; ya no podr cambiar hasta el prximo flanco.
Donde: PRE' = Entrada asncrona PRESET (se ignora cuando es "1") CLR' = Entrada asncrona CLEAR (se ignora cuando es "1") Qfs = Salida biestable activado por flanco de subida Qfb = Salida biestable activado por flanco de bajada
13
Estructura de computadores
Puede observarse que el nuevo estado coincide siempre con la entrada D. Si lo definimos as, esto no es un biestable, ya que no almacena ninguna informacin. Lo que ocurre es que este biestable no tiene sentido como asncrono. El biestable D sncrono es un elemento tpico de almacenamiento gobernado por la seal de reloj. La seal lgica que haya en la entrada D, no modificar el estado Q hasta que se active la seal de reloj. Esto constituye una memoria elemental de 1 bit, ya que el valor presente en la entrada D, queda almacenado al llegar la seal de reloj. Para cambiar el contenido de esta celdilla de memoria, no hay ms que colocar el nuevo valor en la entrada D y activar la seal de reloj, momento en el cual el nuevo valor queda almacenado en el biestable. Su smbolo como bloque es: D
Clock
D
Clock
Q'
Activado por flanco de subida
Q'
Activado por flanco de bajada
Puede obtenerse tambin a partir de un biestable J-K y un inversor, segn podemos observar en el esquema siguiente:
J
Clock
Q'
J 0 0 1 1
K 0 1 0 1
14
Estructura de computadores
Ejemplo de IC : el 74AHC74 tiene 2 flip-flops D (flanco de subida), con entradas asncronas de inicializacin y borrado. Vamos a analizar ahora los cronogramas.
Donde: Qna = Salida biestable activado por nivel alto ("1") Qnb = Salida biestable activado por nivel bajo ("0") Qfs = Salida biestable activado por flanco de subida Qfb = Salida biestable activado por flanco de bajada Nota: Las salidas Q' las ignoramos, puesto que su seal simplemente es la inversa de Q.
Recuerda:
q
Un flip-flop activado por nivel slo puede cambiar mientras la seal de reloj est en un determinado nivel: nivel alto ("1") o nivel bajo ("0"). Un flip-flop activado por flanco no puede cambiar de estado excepto en el flanco de disparo de un pulso de reloj. Las entradas R y S se pueden cambiar en cualquier momento sin que vare la salida, salvo en esos instantes.
15
Estructura de computadores
5.2.5 Biestable T
Tiene una nica entrada T. Si esta entrada est inactiva ("0"), el estado no cambia. Si T est activa ("1"), el estado cambia. Su tabla de transicin es: T 0 0 1 1 Q(t) Q(t+1) 0 0 1 1 0 1 1 0 T 0 1 Q(t+1) Q(t) Q(t)' Comentario No cambia el estado Invierte el estado
T
Clock
Q'
Activado por flanco de subida
Q'
Activado por flanco de bajada
Puede comprobarse que un biestable J-K con las dos entradas unidas acta como un biestable T, razn por la cual ste no existe comercialmente, slo existe a nivel terico. T J
Clock
Q'
J 0 0 1 1
K 0 1 0 1
Por tanto, todo lo dicho para el biestable J-K es aplicable para el biestable T. Reloj T Qfs Qfb
Cronograma biestables T (flanco de subida y bajada)
NOTA: Si lo hacemos por nivel (alto o bajo), el biestable estar oscilando continuamente entre 0 y 1, cuando T=1 en el nivel correspondiente, y despus no sabremos en que estado se ha quedado.
16
Estructura de computadores
S
Clock
S
Clock
Q'
Q'
Q'
La tabla de verdad es la misma que la estudiada para biestables R-S. J 0 0 1 1 K 0 1 0 1 Q(t+1) Comentario Q(t) No cambia 0 Reset 1 Set Q(t)' Invierte Q(t) R 0 0 1 1 S 0 1 0 1 Q(t+1) Q(t) 1 0 ND Comentario No cambia Set Reset No Definido
Reloj S = Sm R = Rm Qm = S e Q = Qe
Cronograma biestable J-K Maestro-Esclavo
17
Estructura de computadores
J Reloj K
S
Clock
S
Clock
Q'
Q'
Q'
La tabla de verdad es la misma que la estudiada para biestables J-K. J 0 0 1 1 K 0 1 0 1 Q(t+1) Comentario Q(t) No cambia 0 Reset 1 Set Q(t)' Invierte Q(t) R 0 0 1 1 S 0 1 0 1 Q(t+1) Q(t) 1 0 ND Comentario No cambia Set Reset No Definido
18
Estructura de computadores
5.3.1 Registros
Un registro no es ms que una agrupacin de biestables del mismo tipo. Puesto que un biestable es capaz de almacenar 1 bit de informacin, si tenemos "n" biestables, el registro ser capaz de almacenar "n" bits de informacin binaria (de forma temporal). El registro ms sencillo consta tan slo de flip-flops sin puertas lgicas externas. Estas puertas son las que determinan los nuevos datos a almacenar.
5.3.1.1 Registros de almacenamiento (tipo D) El registro tipo D es un conjunto de biestables D y es el ms utilizado como almacn temporal de informacin. Cada entrada D se conecta a una lnea de entrada de informacin y cada salida Q se conecta a una lnea de salida de informacin. Por otro lado, todas las seales de reloj van unidas entre s, activando todos los flip-flops por flanco (de subida o bajada) o por nivel para que la informacin se almacene en todos los biestables al mismo tiempo. El esquema es el de la figura (para n=4 bits): Q3 Q2 Q1 Q0
Q
Clock
Q
Clock
Q
Clock
Q
Clock
R Reloj Clear
D3
D2
D1
D0
19
Estructura de computadores
En este caso, la seal de reloj es con flanco de subida. Adems, podemos observar como estos flip-flops tienen una entrada asncrona de Reset activada por 0 (Clear') para la inicializacin del registro con ceros antes de su operacin, aunque esto es opcional (depende del uso que vayamos a darle al registro en el sistema). Lo que haremos ser tener la entrada Clear' a un valor de "1" durante la operacin normal sincronizada, haremos que sea "0" slo cuando queramos inicializar el registro. La transferencia de informacin nueva a un registro se conoce como carga del registro. Como estamos utilizando una seal de reloj por flanco para la sincronizacin de todos los flip-flops, todos los bits del registro se cargan de manera simultnea. Por ello decimos que la carga se hace en paralelo. La entrada de reloj en los biestables tipo D puede ser por flanco o por nivel. La actuacin por flanco requiere un circuito mucho ms caro que por nivel y no presenta ventajas salvo en casos muy particulares. Por esta razn, en los computadores se utilizan casi siempre registros D activados por nivel, pero con una seal de reloj, realmente se trata de actuacin por nivel con seal de reloj de corta duracin.
5.3.1.2 Registros de desplazamiento Son registros en los cuales la informacin contenida en un biestable puede ser transferida al biestable adyacente. La transferencia se realiza en todos los biestables simultneamente, es decir, la informacin contenida en el biestable 1 pasa al 2, al mismo tiempo que la informacin que haba antes en el 2 pasa al 3, y as sucesivamente. Estn conectados en cascada. La nueva informacin en el primer biestable se toma de una entrada, y la informacin del ltimo biestable se pierde. Hay varios tipos de registros de desplazamiento : 1. Atendiendo a la entrada de informacin en el registro: 1.1. Entrada paralelo : se puede modificar el valor de todos los biestables a la vez (igual que en un registro tipo D). 1.2. Entrada serie : slo hay una entrada conectada a un biestable (como hemos descrito anteriormente). 2. Atendiendo a la salida de informacin: 2.1. Salida paralelo : todos los biestables son accesibles (sus salidas). 2.2. Salida serie : slo el ltimo biestable (su salida) es accesible. Los datos van saliendo uno detrs de otro, mediante desplazamientos sucesivos. 3. Atendiendo al sentido del desplazamiento : 3.1. Desplazamiento slo hacia la derecha / izquierda. 3.2. Desplazamiento en ambos sentidos, no simultneo. 3.3. Rotacin hacia la izquierda / derecha.
20
Estructura de computadores
Para caracterizar o designar un registro de desplazamiento hay que indicar todas sus caractersticas: tipo de entrada, tipo de salida y sentido del desplazamiento. Por ejemplo, la designacin: "SRG8" indica que es un registro de desplazamiento (SRG, Shift Register) con una capacidad de 8 bits. Suponiendo registros de 4 bits, los posibles movimientos de datos en los registros de desplazamiento son:
Caso 1 Entrada: Serie Salida : Serie Desplazamiento: Hacia la derecha Caso 2 Entrada: Serie Salida : Serie Desplazamiento: Hacia la izquierda
Entrada
Salida
Salida
Entrada
Salida
Entrada
Salidas
Salidas
Sus aplicaciones son muy numerosas. Entre ellas podemos citar: Conversin paralelo-serie y viceversa Rotaciones de los datos (multiplicar y dividir por 2 n ) Registros de memoria transitorios (buffers) Sistemas para unidades aritmticas (+,,/) Como retardo de lnea digital Como generadores de secuencias
21
Estructura de computadores
El circuito puede implementarse con biestables R-S, J-K o D sncronos, con seal de reloj activa por flanco. Veamos unos ejemplos de circuitos (esquemas). Caso 1: Un registro de desplazamiento de 4 bits con entrada y salida serie, desplazamiento a derecha. Biestables R-S:
Entrada
S1 Q1
Clock
S2 Q2
Clock
S3 Q3
Clock
S4 Q4
Clock
Salida
R1 Q1'
Reloj
R2 Q2'
R3 Q3'
R4 Q'
Vamos a construir un cronograma para comprobar el funcionamiento del registro. Suponemos que el registro se activa por flanco de subida.
Reloj E' = R1 E = S1 Q1 Q2 Q3 S = Q4 t
Cronograma del registro con biestables R-S (sncronos con flanco de subida)
22
Estructura de computadores
Biestables D:
Entrada
D1 Q1
Clock
D2 Q2
Clock
D3 Q3
Clock
D4 Q4
Clock
Salida
Q1'
Reloj
Q2'
Q3'
Q4'
Vamos a ver dos ejemplos de cronogramas, para comprobar el funcionamiento, uno con flanco de subida y otro con flanco de bajada.
Reloj E = D1 Q1 Q2 Q3 S = Q4 t
Cronograma del registro con biestables D (sncronos con flanco de subida)
Reloj E = D1 Q1 Q2 Q3 S = Q4 t
Cronograma del registro con biestables D (sncronos con flanco de bajada)
23
Estructura de computadores
Caso 4: Un registro de desplazamiento de 4 bits con entrada serie y salida paralelo. Biestables D:
Entrada
D1 Q1
Clock
D2 Q2
Clock
D3 Q3
Clock
D4 Q4
Clock
Q1'
Reloj
Q2'
Q3'
Q4'
S1
S2
S3
S4
Caso 5: Un registro de desplazamiento de 4 bits con entrada paralelo y salida paralelo. Biestables D:
Entradas de datos en paralelo
E1
E2
E3
E4
D1 Q1
Clock
D2 Q2
Clock
D3 Q3
Clock
D4 Q4
Clock
Q1'
Reloj
Q2'
Q3'
Q4'
S1
S2
S3
S4
Como podemos observar, en este tipo de registros no se realiza ningn desplazamiento, por lo que no se puede considerar como registro de desplazamiento.
24
Estructura de computadores
5.3.2 Contadores
Un contador es un registro que pasa por una secuencia predeterminada de estados al aplicrsele pulsos de reloj. Bsicamente, son circuitos capaces de contar los impulsos que llegan por una lnea. El valor de la cuenta se expresa mediante un cdigo, que en la mayora de los casos es binario natural, y a veces, BCD. Los impulsos de entrada que son capaces de detectar son los flancos de la seal de entrada. Dado que el estado del contador debe cambiar cuando llega un flanco de la seal de entrada, se utilizan biestables T para construir los contadores, conectando la lnea con los impulsos a contar a la entrada de reloj. Tambin podemos utilizar biestables J-K. 5.3.2.1 Tipos de contadores 1. Atendiendo al cdigo que cuentan 1.1. Binario (natural) 1.2. BCD 1.3. En anillo 1.4. En Gray 1.5. Johnson 2. Atendiendo al sentido de conteo 2.1. Contador hacia arriba (ascendentes) 2.2. Contador hacia abajo (descenentes) 2.3. Contador en ambos sentidos, no simultneos 3. Atendiendo a la posibilidad de preseleccin 3.1. Contador con carga en paralelo 3.2. Contador con puesta a cero inicial solamente 4. Atendiendo a la forma de propagarse la seal de reloj internamente 4.1. Contador asncrono (contadores con propagacin) 4.2. Contador sncrono con acarreo serie 4.3. Contador sncrono con acarreo paralelo Para caracterizar un contador se indican todas las posibilidades. Por ejemplo, un contador BCD Aiken ascendente asncrono.
Un contador es asncrono cuando la salida del biestable es la entrada de reloj del biestable siguiente. Estos contadores llevan una secuencia (ascendente o descencente) que se repite indefinidamente. Un contador es sncrono cuando la seal de reloj se conecta a la entrada de reloj de cada uno de los biestables. Se utiliza cuando los estados por los que pasa (secuencia) no son correlativos. Por ejemplo: 1,8,7,4, etc.
25
Estructura de computadores
5.3.2.2 Diseo de contadores asncronos Supongamos un contador de mdulo N, siendo (N-1) el mayor nmero representable que contamos. Seguiremos los siguientes pasos: 1. Calcular el nmero de biestables (flip-flops) necesarios: n. Deberemos cumplir que: 2n-1 < N 2n Donde: N = Nmero de estados (0..N-1) n = Nmero de biestables (T o J-K). 2. Conectar las entradas de reloj de todos los biestables. Activacin del reloj Flanco de bajada Flanco de subida Tipo contador Ascendente Descendente Ascendente Descendente Salida a conectar a la entrada de reloj del siguiente biestable Q Q' Q' Q
3. Conectar las entradas de todos los biestables a "1" lgico. Biestables T: conectando T="1" Biestables J-K: conectando J=K="1" Ambos tipos podrn tener o no entradas asncronas de PRESET Y CLEAR. Slo si nuestros biestables tienen una entrada asncrona PRESET seguimos con los siguientes pasos: 4. Escribir el nmero N-1 en binario. 5. Para todos los biestables que tienen un 1 en dicho valor binario, conectar su salida Q junto con la seal de reloj en una puerta NAND. 6. Conectar la salida de la puerta NAND a las entradas PRESET del resto de biestables, los que su valor binario era 0 en el valor N-1. Por otro lado, slo si nuestros biestables tienen una entrada asncrona CLEAR seguimos con los siguientes pasos: 4. Escribir el nmero N-1 en binario. 5. Para todos los biestables que tienen un 0 en dicho valor binario, conectar su salida Q junto con la seal de reloj en una puerta NAND. 6. Conectar la salida de la puerta NAND a las entradas CLEAR del resto de biestables, los que su valor binario era 1 en el valor N-1. Lgicamente, si tenemos biestables con las dos entradas asncronas PRESET y CLEAR podemos utilizar cualquiera de los dos mtodos descritos. Si estas entradas se activan a nivel bajo lo hacemos como hemos descrito; si se activan por nivel alto, utilizaremos una puerta AND en lugar de la NAND.
26
Estructura de computadores
Un contador asncrono es de mdulo N cuando cuenta todos los estados desde el 0 hasta el N-1 correlativamente. Si nos piden disear un contador asncrono mdulo 5, ste contar 0,1,2,3,4. Lo que hacemos utilizar biestables con entrada CLEAR, detectamos la ltima combinacin (N-1) y procedemos como hemos explicado para biestables CLEAR, para que se reinicie la cuenta al llegar a N-1. Esto no es necesario si fuera mdulo potencia de 2, ya que se reinicia slo. Por ejemplo, mdulo 8.
Ejemplo Vamos a ver como ejemplo , el circuito y cronograma de un contador asncrono de 3 bits, binario, con cuenta hacia arriba, sin preseleccin (PRESET) ni puesta a cero (CLR). Utilizamos biestables T para realizar el circuito. Recordemos la tabla de transicin del biestable T : T 0 0 1 1 Q(t) Q(t+1) 0 0 1 1 0 1 1 0 T 0 1 Q(t+1) Q(t) Q(t)' Comentario No cambia el estado Invierte el estado
Necesitaremos "n" biestables. Tenemos que N = 8 estados. Se debe cumplir: 2n-1 < N 2n 2n-1 < 8 2n n 3
Q2 T2 Q2
Clock
Q3 (MSB) "1" T3 Q3
Clock
T1 Q1
Clock
"1"
Q1'
Q2'
Q3'
Reloj
Q1 Q2 Q3
0 1 0 1 0 1 0 1 0 1
27
Estructura de computadores
Con cuenta hacia abajo: Lo nico que tenemos que cambiar en el circuito anterior es la seal de reloj, para que se active por flanco de subida. Q1 (LSB) "1"
Pulsos de reloj
Q2 T2 Q2
Clock
Q3 (MSB) "1" T3 Q3
Clock
T1 Q1
Clock
"1"
Q1'
Q2'
Q3'
Reloj
Q1 Q2 Q3
1 0 1 0 1 0 1 0 1
Otra posibilidad hubiera sido conectar la salida Q' de cada biestable a la entrada de reloj del siguiente, en vez de Q, manteniendo el flanco de bajada. Q1 (LSB) "1"
Pulsos de reloj
Q2 T2 Q2
Clock
Q3 (MSB) "1" T3 Q3
Clock
T1 Q1
Clock
"1"
Q1'
Q2'
Q3'
La mayor parte de los contadores asncronos no funciona bien para frecuencias elevadas, sobre todo cuando implementamos contadores con mdulo que no son potencia de 2. Cuando utilizamos contadores que si son potencia de 2 (2,4,8,...), estos funcionan bastante bien, tanto en modo ascendente como en modo descendente. Sin embargo, en los otros casos conviene utilizar contadores sncronos.
28
Estructura de computadores
5.3.2.3 Diseo de contadores sncronos Para los contadores sncronos podemos utilizar cualquier tipo de biestables: R-S, J-K, D y T. El procedimiento de diseo de contadores sncronos es: 1. Calcular el nmero de biestables (flip-flops) necesarios: n. Deberemos cumplir que: Donde: 2n-1 < N 2n N = Nmero de estados n = Nmero de biestables (R-S, J-K, D T).
2. Escribimos la tabla de funcionamiento del biestable . 3. Construimos una tabla de transiciones y excitaciones correspondientes a las entradas del biestable utilizado. En esta tabla, averiguamos el valor que deben de tener las entradas del biestable para que en la salida se produzca cualquier transicin (0-0, 0-1, 1-0, 1-1). 4. Utilizando esta ltima tabla, construimos la tabla de transiciones y excitaciones del contador. En esta tabla averiguamos el valor que debemos tener en las entradas para producir la secuencia de estados pedida. Lo que conocemos son las salidas Q de los biestables, puesto que son las combinaciones que queremos que cuente. Por tanto, ponemos como posibles combinaciones de entrada los distintos valores que va a contar en binario, y se trata de calcular las funciones lgicas correspondientes a cada una de las entradas de los biestables en funcin de las salidas. 5. Simplificar por Karnaugh las funciones lgicas obtenidas. Las tablas de Karnaugh se pueden obtener directamente de la tabla anterior. 6. Realizacin del circuito a partir de las funciones simplificadas. 7. Comprobar el funcionamiento realizando un cronograma.
29
Estructura de computadores
Ejemplo Vamos a disear un contador que siga la siguiente secuencia con biestables J-K: 0, 4, 6, 1, 14, 7 y vuelvan a repetirse. Utilizamos biestables J-K, sin preseleccin (PRESET) ni puesta a cero (CLR). 1. Nmero de biestables: Tenemos 6 posibles estados (N=6), por tanto: 2n-1 < N 2n 2n-1 < 16 2n En este ejemplo vamos a utilizar n=4. 2. Tabla de funcionamiento del biestable: J 0 0 1 1 K 0 1 0 1 Q(t+1) Q(t) 0 1 Q(t)' Comentario No cambia Reset Set Invierte Q(t) n 3
3. Tabla de transiciones y excitaciones de las entradas del biestable: Transicin Q(t) Q(t+1) 00 01 10 11 J 0 1 X X K X X 1 0 Qu valores pueden tomar las entradas J-K para conseguir dicha transicin en la salida?
Para cada biestable x, rellenamos las columnas de Jx y Kx con los valores que deben tomar las entradas para que en el siguiente estado cambie su correspondiente Qx al valor del siguiente valor de la secuencia; si fuese el ltimo, entonces consideramos de nuevo el primero para que comience de nuevo el ciclo.
30
Estructura de computadores
J1 = Q2' 00 0 0 X X 01 1 X X X 11 X 0 X X 10 X 0 X X
J3 = Q2+Q4 00 0 1 X X 01 1 X X X 11 X X X X 10 X X X X
Q3 Q4 Q1Q2 00 01 11 10
Q3 Q4 Q1Q2 00 01 11 10
K1 = 1
K3 = Q1' 00 X X X X 01 X X X X 11 X 1 X X 10 X 1 0 X
No es necesario construir un mapa de Karnaugh pues todas las casillas sern X menos un "1". Como podremos hacer un grupo de 16 casillas (todas), la funcin lgica ser "1".
Q3 Q4 Q1Q2 00 01 11 10
q q q
J4 = Q3 00 0 0 X X 01 X X X X 11 X X X X 10 X 1 1 X
J2 = 1 K2 = Q1' 00 X X X X 01 X X X X 11 X 1 X X 10 01 X 1 0 X
q
Q3 Q4 Q1Q2 00 01 11 10
Q3 Q4 Q1Q2 00
11 10
K4 = 1
31
Estructura de computadores
J1
CLK1
Q1 Q1'
J2
CLK2
Q2 Q2'
J3
CLK3
Q3 Q3'
J4
CLK3
Q4 Q4'
K1
K2
K3
K4
Reloj
"1"
7. Cronograma:
Reloj
0 0 0 0 1 0 0 0 0 1
(MSB) Q1
0 1 1 0 1 1 0 1 1 0
Q2
0 0 1 0 1 1 0 0 1 0
Q3
0 0 0 1 0 1 0 0 0 1
(LSB) Q4 0 4 6 1 14 7 0 4 6 1
NOTA: Para construir el cronograma, como ahora cambian todos los biestables al mismo tiempo, tendremos que mirar la entrada de cada uno en el estado anterior.
Ejemplos de IC:
q q q q
74LS93: Asncrono binario 4 bits 74LS163: Sncrono binario de 4 bits 74LS160: Dcadas BCD sncrono 74LS190: Dcadas ascendente / descendente
32