1. Fundamentos de Computadores
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 1
TEMA 5
CIRCUITOS ELECTRONICOS SECUENCIALES.
5.1.- CONTADORES.
Un contador es un circuito secuencial que responde a la estructura de un autómata de
Moore (las salidas del sistema son las salidas de los biestables que lo componen), con la
salvedad de que en dicho circuito el cambio de un estado a otro depende sólo y
exclusivamente de los pulsos de la señal de sincronismo (reloj).
Este circuito permitirá contar impulsos de reloj con la particularidad de que el número
de impulsos que cuenta dependerá del número de biestables de que esté constituido el
circuito. Así, si el contador está dotado de “p” biestables y el número de pulsos que
cuenta es “n”, de forma que se cumple la condición:
n = 2p
, diremos que se trata de un contador de capacidad máxima.
Si por el contrario la relación entre el número de estados ó número de impulsos, n, y el
número de biestables, p, viene expresada por la desigualdad 2p-1
< n < 2p
, diremos que
se trata de un contador de capacidad inferior a la máxima y en este casdo habrá que
hacer un estudio de los estados no definidos, comprobando que el contador es de un solo
ciclo y que dichos estados se incorporan al bucle principal del diagrama de flujo.
En términos generales, se puede decir que el diseño de un contador es un caso particular
del diseño de un sistema secuencial.
Los contadores se usan principalmente para las siguientes funciones:
• Convertir el número de pulsos de entrada en un código determinado.
• Generación de códigos de secuencias especiales.
• Elementos de retardo.
• Divisores de frecuencia.
5.1.1.- Clasificación de los contadores.
Se pueden clasificar atendiendo a diversas características, de las cuales las más
importantes son las siguientes:
a) Número de estados.
El número de estados depende del número de biestables del contador, cumpliéndose
la relación:
2. Sistemas Digitales
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 2
2p-1
n 2p
, siendo p el número de biestables y n el número de estados.
El número de estados del contador también se conoce como módulo del contador.
b) Código de cuenta.
Pueden estar diseñados para contar en código binario natural ó en cualquier otro
código binario, en cuyo caso habrá que indicarlo.
c) Sincronismo de las transiciones.
Contadores síncronos: la señal externa de reloj se aplica a todos los biestables y las
transiciones se realizan en el mismo instante.
Contadores asíncronos: la señal externa de reloj se aplica a uno de los biestables,
siendo la señal de reloj del resto de los biestables distintas. Hay retardos en las
transiciones de los biestables.
d) Sentido de cuenta.
Pueden trabajar en sentido ascendente (UP), descendente (DOWN) ó en ambos (UP-
DOWN).
En el caso de contadores UP-DOWN habrá una entrada de control que permita
3. Fundamentos de Computadores
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 3
1DU
0DU
=
=
/
/
seleccionar el modo de cuenta:
Cuenta ascendente
Cuenta descendente
e) Con o sin borrado.
Un contador tiene borrado cuando está dotado de una entrada B que al activarse hace
que el contador pase a un estado predeterminado (habitualmente el cero)
independientemente del estado en que se encuentre.
En este caso B es activa a nivel bajo y el
estado
de borrado es cero.
La entrada de borrado puede ser:
• Síncrona: actua en sincronismo con la señal de reloj.
• Asíncrona: independiente de la señal de reloj.
•
f) Con o sin preselección.
Con preselección significa que el contador podrá inicializarse en cualquier estado.
Deberá tener unas entradas que permitan almacenar el estado deseado y una entrada
que permita dar la orden de carga (LOAD).
La entrada LOAD puede ser síncrona o asíncrona.
g) Uno o varios bucles.
Si tiene varios bucles, puede dar lugar a un funcionamiento incorrecto. Se debe
rediseñar para conseguir un solo bucle.
4. Sistemas Digitales
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 4
DIVISORES DE FRECUENCIA.
Un divisor de frecuencia es un circuito que divide por un número entero n la
frecuencia de una señal externa de reloj.
Los divisores de frecuencia se diseñan utilizando contadores. Para obtener un divisor
de frecuencia por “n” será necesario diseñar un contador de “n” estados. Con un
contador de “n” estados podemos obtener tantos divisores de frecuencia diferentes
como divisores tenga el número “n”.
Como ejemplo vamos a obtener el cronograma del contador de la figura adjunta.
En el cronograma adjunto se puede observar los períodos de la señal externa de
reloj, Q1, Q2 y Q3.
5. Fundamentos de Computadores
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 5
A partir de estos valores se puede determinar el valor de la frecuencia de las
respectivas señales.
Sabiendo que f = 1/T, la frecuencia de Q1 será la frecuencia de la señal externa de
reloj dividida por 2 (f1/2). La frecuencia de la señal Q2 será la de la señal externa de
reloj dividida por 4 (f1/4) y finalmente la de Q3 será f1/8.
En definitiva, este contador tomado como ejemplo, nos proporciona tres señales
divisoras de la frecuencia de la señal externa que se corresponden con las salidas de
los tres biestables.
6. Sistemas Digitales
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 6
5.2 REGISTROS.-
Un registro es un circuito digital capaz de almacenar información. En los capítulos
anteriores se ha visto la posibilidad de almacenar un bit haciendo uso de un biestable, pero
también se ha vislumbrado la necesidad de almacenar una cadena de bits ( palabra). Ante
esta necesidad se define lo que se conoce como Registro, el cual es una ARRAY de
Biestables en el que se puede leer o escribir una palabra.
La pregunta que se puede hacer el lector que tenga conocimientos básicos sobre el
tema, es ¿qué necesidad se tiene de que existan Registros, capaces de almacenar una
palabra cada uno, existiendo las memorias las cuales son capaces de almacenar una gran
cantidad de estas.
Para contestar esta pregunta es necesario descender a nivel de máquina, para ver
que parte de las instrucciones que realiza una computadora son meras transferencias de
palabras de un lugar a otro,que para realizar operaciones la Unidad Central de Proceso ha
de capturar los operandos de donde estén almacenados de forma masiva y reservarlos en
lugares accesibles a ella, etc.
Continuando con la filosofía que se desprende de la definición anterior de lo que es
un registro, se plantea ¿qué tipo de biestables se han de usar para diseñarlo?. La célula
elemental para diseñarlos es el biestable tipo D, el cual, como es sabido, no modifica la
información que se pone en su entrada mientras no cambien las condiciones de esta,
entendiéndose por tanto que para conseguir un registro de n bits se necesitarán n
biestables de este tipo.
Una vez definido el número de biestables,se van a hacer una serie de
consideraciones previas:
- Todos los biestables que se usen tendrán un entrada de reloj que será común a
todos ellos. Ya que los registros son circuitos síncronos.
- Tendrán una entrada o entradas síncronas de datos, por las cuales se
introducirán los datos que se quieran almacenar en el registro.
- Tendrán una entrada o entradas asíncronas de datos,cuya misión será la
misma que las anteriores, pero para poder hacer cargas asíncronas.
- Tendrán una o varias salidas, que permitan suministrar al exterior la
información almacenada en el registro.
7. Fundamentos de Computadores
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 7
5.2 CLASIFICACION DE LOS REGISTROS.
Para clasificar los registros se pueden hacer, como para todo clase de circuitos,
varios tipos de clasificaciones atendiendo a multitud de características.
Para lo que es objeto de este libro se considera que la más acertada es la que se
corresponde atendiendo a los diversos tipos de entradas y salidas que se pueden
encontrar.
Atendiendo a las entradas y a las salidas se pueden definir cuatro posibilidades:
-Registros con entrada serie:
En este tipo de registros la información se carga bit a bit por el primer biestable.
-Registros con entrada paralelo:
En estos se carga la información en todos los biestables al mismo tiempo,
pudiendo realizarse esta carga de forma síncrona o asíncrona.
-Registros con salida serie:
En estos la información almacenada se recupera de un en un bit por la salida del
último biestable.
-Registros con salida paralelo:
En estos la información almacenada se recupera toda al mismo tiempo.
Una vez vistas estas cuatro alternativas la clasificación de los registros se hará en
función de las combinaciones que se pueden establecer entre los dos tipos de entradas y
los dos tipos de salidas:
-Registros con ENTRADA SERIE/SALIDA SERIE.
-Registros con ENTRADA SERIE/SALIDA PARALELO.
-Registros con ENTRADA PARALELO/SALIDA SERIE.
-Registros con ENTRADA PARALELO/SALIDA PARALELO.
8. Sistemas Digitales
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 8
5.3 REGISTROS CON ENTRADA SERIE/SALIDA SERIE.
Un registro con entrada serie es aquel en el cual la información se introduce en él
por la entrada síncrona del primer biestable,lógicamente bit a bit, siendo desplazada de un
biestable al siguiente en sincronía con la señal de reloj hasta que se ha cargado toda la
información en el mismo. De lo anterior se deduce que para poder almacenar palabras de n
bits se ha de utilizar un registro de n biestables conectados en cascada uno detrás del otro.
Este tipo de registro sólo tiene una entrada de datos y una salida. Como ejemplo se
puede observar el diseño de un registro de 4 bits , en la figura 5.1, el cual va acompañado
de un cronograma:
9. Fundamentos de Computadores
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 9
Para diseñar este tipo de registros se utilizan biestables tipo D u otro tipo de
biestables, siempre que se les haga funcionar como si fueran tipo D, los cuales se les
conecta en cascada ( la salida de uno hace de entrada del siguiente) hasta conseguir el
número necesario de ellos en función de la longitud de las palabras que se quieran
almacenar. Por supuesto la señal de reloj será común a todos ellos ya que se está tratando,
como se adelantó, de circuitos síncronos.
Como se puede apreciar en el cronograma, según se van presentando a la entrada
los bit a almacenar, a cada impulso de reloj se introducen en el primer biestable siendo
desplazados los que ya están almacenados al siguiente biestable, por tanto al cabo de
cuatro flancos activos de la señal de reloj el registro ha sido cargado con dicha
información. Si siguen apareciendo bit en la entrada y a cada impulso de reloj, la
información que se tenía almacenada empieza a salir bit a bit por el último biestable
siendo cargada por el mismo proceso la nueva.
Este tipo de registros se representan simbólicamente por el siguiente Diagrama de
Bloque, figura 5.2:
Una operación muy usada en computación es el desplazamiento de información
dentro de un registro, y esto se realiza mediante la utilización de los llamados registros de
desplazamiento, los cuales son registros con la configuración de los anteriormente
estudiados en este apartado.
5.4 REGISTROS CON ENTRADA SERIE/SALIDA PARALELO.-
10. Sistemas Digitales
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 10
En este tipo de registros la filosofía de la carga de información es la misma que en
el caso anterior, variando la forma de obtener la información
almacenada. Ahora dicha información cuando sea requerido su volcado al exterior, se
hace de manera simultanea para todos los bits almacenados.
La metodología de diseño de este tipo de registros sigue siendo la conexión en
cascada, pero ahora la salida de cada biestable a parte de actuar como entrada del siguiente
se saca al exterior para que actúe como salida del circuito. Como ejemplo, en la figura 5.3
se puede observar como sería la configuración de un registro con entrada serie y salida
paralelo para palabras de cuatro bits:
Para poder cargar este registro, la información deberá ser suministrada bit a bit por
la entrada serie sincronizada con la señal de reloj, de manera que al cabo de cuatro
impulsos de esta el registro estará cargado. Si a este se le deja inactivo ( no se le
suministran más impulsos de la señal de reloj) la información que tiene cargada
permanecerá en el. Cuando sea necesario volcar su información al exterior ( leer su
contenido ) lo único que habrá que hacer es tomar esta información de las cuatro salidas
que tiene ( la lectura de esta información no es un proceso destructivo de la misma ).
Todos los registros con entrada serie/salida paralela disponen también de salida
serie, la cual es la salida del último biestable.
Este tipo de registro se representa a efectos funcionales por el siguiente Diagrama
de Bloque, figura 5.4:
11. Fundamentos de Computadores
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 11
5.5 REGISTRO CON ENTRADA PARALELO SALIDA SERIE.
Un registro con entrada paralelo es aquel en el cual la información se carga de una
sola vez en este ( todos los bits se almacenan al mismo tiempo en el mismo).Lógicamente
cada bit se almacenará en un biestable, por lo que para trabajar con palabras de n bits
habrá que disponer de un circuito con n biestables.
Cuando se trata de entrada paralelo se plantea una doble alternativa a la hora de
cargar los biestables:
- Que la carga se haga de forma asíncrona.
- Que la carga se haga de forma síncrona.
Carga paralelo asíncrona:
Para poder realizar la carga de forma asíncrona de los biestables se tendrán en
consideración dos conceptos fundamentales:
1º.- Que se deberá actuar sobre las entradas asíncronas de cada
de los biestables. Entradas Preset y Clear.
2ª.- Que sobre cada una de dichas entradas se aplicarán dos tipos
de entradas diferentes: Una que se llamará L (Load) que una vez
activada es la que determina que el biestable esté preparado para
ser cargado y otra D ( Dato) por la cual se introduce el dato que
quier ser cargado.
12. Sistemas Digitales
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 12
Atendiendo a las consideraciones anteriores, se va a proceder al diseño de las
entradas paralelo asíncronas de un biestable de un registro cualquiera.
Para ello se van a definir las características del mismo:
Será un registro entrada paralelo asíncrona de n bits, cuya señal de carga
Load (L) será activa a nivel alto ( esto querrá decir que cuando L = 1 el registro cargará
los datos presentes en sus entradas y que cuando L = 0 no cargará la información presente
y funcionará como un registro de los vistos hasta el momento.
Para el diseño de las entradas se planteará en primer lugar una tabla de verdad en la
cual las entradas serán la señal L y la señal Datn , la cual representa el dato que se quiere
almacenar en ese biestable n, y las salidas serán la Preset (Pn) y Clear (Cn) del biestable n.
L Datn Pn Cn
0 0 1 1 (1)
0 1 1 1 (1)
1 0 1 0 (2)
1 1 0 1 (3)
(1) Al ser L = 0 , el circuito no tiene la orden de carga, con lo cual no se activan las
entradas Preset y Clear.
(2) Al L = 1, el circuito recibe la orden de carga, siendo además un 0 lo que tiene
que cargar ( ya que Datn = 0). Para conseguir esto se coloca un 1 en el Preset y un 0 en el
Clear.
(3) Al L = 1, el circuito recibe la orden de carga, siendo además un 1 lo que tiene
que cargar ( ya que Datn = 1). Para conseguir esto se coloca un 0 en el Preset y un 1 en el
Clear.
13. Fundamentos de Computadores
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 13
De la tabla de verdad se extraen las funciones de salida, quedando :
nn DatLP ⋅=
nnnnn PLDatLLDatLLLDatLC ⋅=⋅⋅=⋅+⋅=⋅=
La implementación haciendo uso de biestables cualesquiera será la de la figura 5.5:
Una vez vista la implementación de un biestable genérico, se procede a
continuación a la de un registro de 3 bits. El procedimiento consiste en la conexión en
cascada de los circuitos anteriores ( los de la figura 5.5), ya que la salida de este registro
será en serie, figura 5.6.
14. Sistemas Digitales
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 14
Como se puede observar, al ser conexión en cascada, la entrada síncrona de cada
biestable, en la figura DB y DC , se conectan a la salida del anterior, pero se plantea un
problema a la hora de diseñar ¿ qué se hace con la entrada del primer biestable?, en la
figura DA.
La solución que se le da es la de considerar a esa entrada como una entrada serie(
E.S.),la cual se forzará a que sea un 1 fijo o un 0 fijo, de manera que cuando el registro
reciba la señal de carga esta entrada no actúe, pero cuando al registro se le pretenda sacar
la información que tenga almacenada, al ser un registro con salida serie, se necesitará
suministrar impulsos de reloj para que la información se desplace por él hasta llegar a la
salida serie (S.S.), desplazando este 0 o 1 fijo en esta tarea.
El funcionamiento de este registro será el siguiente:
Si se quiere cargar:
1º.- Se colocarán los bits correspondientes en las entradas A,B y C siendo
L=1
2º.- Acto seguido se hace que L = 0, con lo cual los bits quedan
15. Fundamentos de Computadores
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 15
almacenados en el registro.
Si se quiere sacar la información almacenada:
Lo único que hay que hacer es con L = 0 ir dando impulsos de reloj ( en este caso
con cada flanco de bajada) y la información se desplazará un lugar hacia la S.S con cada
flanco que le llegue.
Carga paralelo síncrona:
Para realizar la carga del registro de forma síncrona habrá que tener en cuenta que
esta manera de cargar se fundamenta en la idea de que la carga será gobernada ahora por
tres señales :
1ª.- La orden de carga, L (Load).
2ª.- El dato a cargar , Datn ( Dato n).
3ª.- La señal de reloj, CK .
La primera y la segunda ya están ampliamente explicadas en el apartado anterior,
la tercera, CK determina con la presencia de su flanco activo que la orden de carga se
materialice.
Dada las características anteriores, es de sentido común que para realizar el diseño
de un registro de este tipo habrá que actuar sobre las entradas síncronas de los biestables
que vayan a ser usados.
Suponiendo que el tipo de biestables sea el D, la implementación de la entrada tipo
para uno de ellos será la siguiente:
L Dn
0 Qn-1
1 Dat
La anterior tabla se ha hecho en función al siguiente razonamiento:
Cuando L = 0, el registro no debe cargar la información de sus entradas, por tanto
se encuentra en dos situaciones diferentes, permanecer inactivo con la información que
tiene almacenada siempre que no le lleguen flancos activos de la señal de reloj, o bien si le
llegan estos flancos desplazar la información para que esta salga por la salida serie.Para
16. Sistemas Digitales
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 16
que esto ocurra en la entrada Dn lo que tiene que haber conectado es la salida del biestable
anterior( Qn-1).
Cuando L = 1, el registro debe cargar la información disponible en sus entradas
exteriores, por tanto en las entradas de los biestables tendrán que estar presentes estas, Dn
= Datn.
Quedando la entrada genérica LDatLQD nnn ⋅+⋅= −1
La implementación de las entradas del biestable genérico se ve en la figura 5.7.
En este tipo de registro que se ha implementado, se daba por hecho que la
información una vez cargada en paralelo, en el momento que se necesitase obtener en el
exterior, el desplazamiento se produciría de izquierda a derecha, o lo que es lo mismo
desde el biestable A hacia el C. Puede darse el caso de que lo que se necesite sea que una
vez cargado, el desplazamiento que se quiera hacer sea desde la derecha hacia la
izquierda.
Ante esta nueva situación de que se pueda determinar el sentido del
desplazamiento, es de lógica pensar que habrá de haber una señal de control que
llamaremos CD la cual en función de su valor informará al circuito hacia donde ha de
desplazar:
CD = 0 Que desplace hacia la izquierda.
CD = 1 Que desplace hacia la derecha.
17. Fundamentos de Computadores
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 17
Ante esta nueva perspectiva se van a desarrollar dos casos :
1º.- Que la carga de datos sea asíncrona.
2º.- Que la carga datos sea síncrona.
DISEÑO DE UN REGISTRO CON ENTRADA PARALELO ASINCRONA
Y SALIDA SERIE POR LA IZQUIERDA (desplazamiento hacia la
izquierda) o SALIDA SERIE POR LA DERECHA (desplazamiento hacia
la derecha).
Como se ha visto anteriormente si CD = 0 el desplazamiento es hacia la izquierda,
por lo cual en la entrada Dn habrá que conectar ahora la salida del biestable que se
encuentra a su derecha Qn+1. Si CD = 1 el desplazamiento es hacia la derecha, por lo cual
en la entrada Dn habrá que conectar ahora la salida del biestable que tiene a su izquierda
Qn-1.
Por tanto la entrada Dn queda de la siguiente manera:
11 −+ ⋅+⋅= nnn QCDQCDD
A la hora de realizar el diseño se va a plantear un pequeño problema, ¿ cómo se va
a resolver el caso de los biestables de los extremos?.
ESICDQCDD ⋅+⋅= 10
ESI es la entrada serie que tiene el registro por su parte izquierda.
1−⋅+⋅= ultult QCDESDCDD
ESD es la entrada serie que tiene el registro por su parte derecha.
El significado de que existan estas entradas series ya se explicó anteriormente ( ver
carga asíncrona).
18. Sistemas Digitales
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 18
Esto queda reflejado en la figura 5.8:
DISEÑO DE UN REGISTRO CON ENTRADA PARALELO SINCRONA
Y SALIDA SERIE POR LA IZQUIERDA (desplazamiento hacia la
izquierda) o SALIDA SERIE POR LA DERECHA (desplazamiento hacia
la derecha).
En este caso al ser la entrada de carga síncrona el circuito que se ha desarrollado en
el apartado anterior para el desplazamiento en cada uno de los biestables sigue siendo
igual, pero ahora ha de actuar conjuntamente sobre las entradas síncronas con los circuitos
diseñados para la carga, quedando el circuito final como se ve en la figura 5.9.
19. Fundamentos de Computadores
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 19
Como diagrama de bloque este tipo de circuito, independientemente de que sea
con carga síncrona o asíncrona, se representará según indica la figura 5.10.
5.6 ENTRADA PARALELO SALIDA PARALELO.-
20. Sistemas Digitales
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 20
Este tipo de circuito puede tener como en el anterior dos tipos de cargas o entradas,
síncronas o asíncronas.La salida sin embargo será en paralelo, lo que quiere decir que
todas las salidas Qn de los biestables estarán disponibles en el exterior. Su diseño es el
mismo que el del apartado anterior a efectos de carga, pero no a efectos de desplazamiento
ya que este tipo no desplaza.
Su diagrama de bloque es el de la figura 5.11.
5.7 REGISTRO UNIVERSAL.-
Se entiende por registro universal aquel que es capaz de tener, mediante señales de
control, todos los modos de funcionamiento que se han presentado hasta el momento.
El problema que se plantea es el siguiente:
Diseñar un registro de palabras de n bits el cual en función de unas señales de
control tenga el modo de funcionamiento que se observa en la tabla adjunta.
21. Fundamentos de Computadores
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 21
S/P CD DN Función que realiza
0 X Datn Realiza la carga en paralelo síncrona
1 0 Qn+1 Desplaza en serie hacia la izquierda, evidentemente en
este caso habrá una entrada serie por la derecha del
circuito.
1 1 Qn-1 Desplaza en serie hacia la derecha, evidentemente en este
caso habrá una entrada serie por la izquierda del circuito.
De donde podemos obtener las funciones de entrada de cada biestable, siendo
interesante obtener las de uno genérico y las del primero ( empezando siempre por la
izquierda y la del último).
11 −+ ⋅+⋅+⋅= nnnn QCDQCDPSDatPSD (//
ESICDQCDPSDatPSD ⋅+⋅+⋅= 100 (//
1−⋅+⋅+⋅= ultultult QCDQESDCDPSDatPSD (//
Para no complicar en exceso el diseño, hemos supuesto que la carga si la realiza en
paralelo será síncrona, dejando para el lector el estudio y la implementación de un registro
que también tuviera la posibilidad de realizar cargas paralelo asíncronas.
Hasta este momento se han considerado como elementos fundamentales de diseño
de registros los biestables tipo D. No se puede olvidar que los biestables tipo D se pueden
conseguir a partir de otros tipos de biestables , como J-K o T, quedando por tanto el diseño
de los registros condicionado a las necesidades o gustos del diseñador en lo que al tipo de
biestables se refiere.
REGISTRO IZQUIERDA-DERECHA DE 4 BITS (7495)
22. Sistemas Digitales
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 22
Este registro, comercial, permite la carga de datos en serie o en paralelo y
desplazamiento de izquierda-derecha de los datos, y mediante conexiones exteriores se
puede conseguir el desplazamiento derecha-izquierda.
Su diagrama de bloque es el de la figura 5.12.
La entrada MC es la de control del modo de funcionamiento
Si MC = 0 Funciona como un registro con entrada serie por ES (entrada
serie por la Izquierda) y por tanto desplazamiento hacia la derecha. El reloj
que controla estos desplazamientos es CK1.
Si MC = 1 Funciona como un registro con entrada paralelo síncrona,
siendo la señal de reloj que entra por CK2 la que controla esta carga de
datos.
Si se le obliga a trabajar en modo paralelo ( MC = 1) y se realizan las conexiones
de la figura 5.13, se consigue un registro con entrada serie por la derecha y
desplazamiento a la izquierda, pudiéndose obtener las salidas bien en paralelo, o bien
en serie por la salida serie de la izquierda ( la QA) del primer biestable.
23. Fundamentos de Computadores
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 23
5.8 APLICACIONES DE LOS REGISTROS.
Como se apuntó en la introducción del capítulo, la misión fundamental que tiene
un registro es la de almacenar una cadena de bits ( palabra ). Aprovechando esta cualidad
se les ha encontrado otro tipo de utilidades partiendo de este almacenamiento.
1.-MEMORIAS AUXILIARES.
Como en este momento puede resultar complicado hacer un estudio de la utilidad
de un registro como elemento de apoyo a una ALU o a una Unidad de Control, parece
adecuado , ver la utilidad de estos circuitos para resolver un problema que básicamente
sigue los mismos pasos que seguiría un computador para resolverlo. Así se van a encontrar
24. Sistemas Digitales
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 24
con la necesidad de tener un registro de entrada donde se almacenará la información que
va a ser tratada, y un registro de salida donde se almacenará el resultado de la
información una vez tratada.
El problema consiste en el diseño de un conversor de números codificados en
GRAY de 4 bits a Binario natural, en serie.
Como el funcionamiento del circuito ha de ser en serie, la primera necesidad que
se plantea es la de almacenar el número que se va a convertir, esto se realizará con un
registro cuya salida sea serie, de los ya estudiados.
En segundo lugar se buscará el algoritmo de conversión partiendo de las tablas de
conversión de Gray a Binario, la expresión es la siguiente:
1+⊕= iii bgb
Para poder realizar la conversión en serie es necesario empezar esta por el bit de
mayor peso del Gray.
033 ⊕= gb
322 bgb ⊕=
211 bgb ⊕=
100 bgb ⊕=
Para obtener la conversión final, los resultados parciales que se vayan obteniendo
se han de almacenar en otro registro con entrada serie , como se puede ver en la figura
5.14.
25. Fundamentos de Computadores
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 25
Tanto los registros como el biestable que se ha colocado para realimentar el
resultado parcial han de estar sincronizados.
En el instante inicial el biestable D que se ha introducido en el circuito habrá de
estar con su salida Q a cero , como se ha visto en las expresiones anteriores, lo cual se
consigue mediante una señal de inicialización que atacará directamente a la entrada Clear
de este.
Como ejemplo, en la figura 5.15 se muestra como se realiza la conversión del
número 1011 escrito en Gray ( 13 en decimal ) a su equivalente en Binario.
2.- CONVERSORES SERIE/PARALELO Y PARALELO/SERIE.
A) Conversores Serie/Paralelo.
Los conversores Serie/Paralelo tienen como misión la recepción de palabras en
serie y suministrarlas en paralelo. Se usan como interfaz entre sistemas que trabajan en
serie y sistemas que trabajan en paralelo.
Para la realización de estos conversores el elemento fundamental es un registro
con entrada serie y salida paralelo, de manera que la información le vaya llegando a este
por la entrada serie, bit a bit, y una vez cargada se pueda suministrar al exterior toda de
una vez, por las salidas paralelo.
26. Sistemas Digitales
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 26
Una manera intuitiva de hacerlo será como indica la figura 5.16.
27. Fundamentos de Computadores
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 27
Donde C = 0 durante los n-1 primeros impulsos de reloj y cuando llega el impulso
n se pasa C con lo cual descarga el contenido del registro al exterior.
Esta señal de control C es maneja por la unidad de control del sistema donde se
esté realizando la conversión.
Otra manera de hacerlo es mediante la utilización de puertas triestado a la salida
del registro, controladas igualmente por la unidad de control.( las puertas triestado se
estudian en el capítulo dedicado a memorias).
B) Conversores Paralelo/Serie.
Tienen como misión la recepción de información en paralelo y suministrarla en
serie. Su misión es la de interfaz entre sistemas que trabajan en paralelo con los que
trabajan en serie.
El elemento fundamental de estos conversores es un registro con carga en
paralelo y salida serie, ver figura 5.17.
La señal de control C se encarga de determinar cuando ha de ser cargado en
paralelo el registro o cuando está en disposición de sacar su información en serie. Al igual
28. Sistemas Digitales
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 28
que en el caso anterior es la unidad de control quien se encargará de manejar esta señal.
3.- CONTADORES BASADOS EN REGISTROS.
A) Contador en Anillo.
Para realizar un contador en anillo se parte de la estructura de un registro de
desplazamiento cualquiera hecho a partir de biestables J-K. Para la construcción de un
contador en anillo de 4 bits el diseño se muestra en la figura 5.18.
Para que empiece a trabajar hay que inicializarlo con la señal INI ( poniéndola a 0)
con lo cual se le obliga al registro a inicializar su proceso en el estado QA=QB=QC=QD=
1000 , puesto que de no hacerlo así y suponiendo que empezara el circuito a trabajar en el
estado 0000, se bloquearía en ese estado y no saldría de él.
Este tipo de contadores no realizan la cuenta en un código de los conocidos hasta
ahora, su funcionamiento se basa en recorrer una serie de estados, tantos como el número
de cuenta. Así un contador en anillo de 4 bits realiza una cuenta de 4 estados, uno de 5 bits
la realiza de 5 estados, etc.
En la tabla adjunta se pueden observar los estados por los que pasa el circuito de la
figura 5.18
29. Fundamentos de Computadores
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 29
QD QC QB QA
0 0 0 1
0 0 1 0
0 1 0 0
1 0 0 0
0 0 0 1
B) Contador en anillo invertido o contador JOHNSON.
Este tipo de contador realiza la cuenta en código Johnson,, por tanto el número de
biestable que habrá que utilizar para realizar una cuenta por N será n de manera que N = 2
x n. El diseño se puede apreciar en la figura 5.19.
Este registro habrá de ser inicializado mediante una señal INI en el estado 000,
para el caso de la figura, quedando su tabla de funcionamiento como sigue:
QC QB QA
0 0 0
0 0 1
30. Sistemas Digitales
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 30
0 1 1
1 1 1
1 1 0
1 0 0
4.- GENERADORES DE SECUENCIAS.
Un circuito generador de una secuencia es aquel que cada vez que se activa es
capaz de generar una secuencia de bits en serie predeterminada.
Para proceder a su diseño es necesario determinar :
1º.- El número mínimo de etapas ( estados) por los que deberá pasar el registro.
2º.- El circuito de realimentación que hay que llevar a la entrada serie del registro.
Como diagrama de bloque del circuito que hay que generar se muestra la figura
5.20.
Para el diseño de un generador centraremos el estudio en un caso particular. Se
realizará un circuito que genere ciclicamente los números 6,4 y 2 codificados en
binario empezando por el bits más significativo del primer número.
... / 1 1 0 1 0 0 0 1 0 / ...
Lo primero que hay que estudiar es el número de etapas que deberá tener el
circuito. Como se ve la secuencia es de 9 bits, lo que determinará que el número de etapas
será 9.
La justificación de lo anterior se debe a que como cada bits de la secuencia aparece
en el último biestable del circuito en ese momento los demás biestables del mismo se
encontrarán con un valor determinado, formando lo que conceptualmente se conoce como
estado del mismo.
31. Fundamentos de Computadores
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 31
Una vez que se conoce el número de estados del circuito, se procede a determinar el
número de biestables que formarán el mismo. Al ser en este caso los estados a recorrer 9,
se intuye que como mínimo habrá de implementarse con 4 biestables, teniendo en cuenta
que si en el proceso de diseño se repitieran estados habrá que aumentar el número de
biestables, sin aumentar lógicamente el número de estados.
Con las dos consideraciones anteriores , el proceso siguiente consistirá en hacer
una tabla de transiciones de manera que el circuito a cada impulso de reloj sea capaz de
dar en su salida serie la secuencia predeterminada. Para hacer esta tabla el procedimiento
consiste en poner la secuencia de bits tal y como se desea que salga al exterior en la salida
del biestable por donde se va a obtener. Como ya se ha apuntado al principio esto es una
aplicación de los registros, por tanto no se puede perder de vista que el circuito de
partida es un registro de desplazamiento, que en este caso será de partida de 4 biestables.
QA QB QC QD
1 0 1 1
0 1 0 1
0 0 1 0
0 0 0 1
1 0 0 0
0 1 0 0
1 0 1 0
1 1 0 1
32. Sistemas Digitales
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 32
0 1 1
Por QD va a salir la secuencia, por tanto es la primera columna que se va a escribir.
Como el circuito base es un registro de desplazamiento, se sabe que lo que haya
en un instante en el biestable D es lo que había en el instante anterior en el C, y así
sucesivamente en los anteriores. Por tanto como ya se ha escrito la columna de la QD se va
desplazando cada bits al instante anterior para la creación de la columna QC, este mismo
proceso a partir de QC para crear QB , el mismo a partir de QB para crear QA.
Esto ha quedado reflejado mediante las flechas que se han representado en la tabla.
Codificando en binario los estados por los que pasará el circuito a cada impulso de
la señal de reloj, se pude observar que el diagrama de flujo del mismo será:
11 5 2 1 8
6 13 10 4
Al no repetirse ningún estado no se necesitará aumentar el número de biestables
para el diseño.
El siguiente paso será el diseño del circuito combinacional de realimentación a la
entrada serie del biestable A, el cual se encargará de suministrar al registro la información
necesaria para que evolucione según el diagrama de flujo anterior.
- t - - t + 1 -
QA QB QC QD QA QB QC QD DA = QA(t+1)
1 0 1 1 0 1 0 1 0
0 1 0 1 0 0 1 0 0
0 0 1 0 0 0 0 1 0
0 0 0 1 1 0 0 0 1
1 0 0 0 0 1 0 0 0
0 1 0 0 1 0 1 0 1
1 0 1 0 1 1 0 1 1
1 1 0 1 0 1 1 0 0
0 1 1 0 1 0 1 1 1
33. Fundamentos de Computadores
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 33
Obteniéndose que la función de entrada:
De donde simplificando se obtiene:
ACDABCBDACDABCBDA QQQQQQQQQQQQQQQQD ••=++=
En la figura 5.21 se puede observar la implementación del circuito generador de
secuencia propuesto:
2,14,15)(0,3,7,9,1+(1,4,6,10)=DA
4
∑∑ ∫
34. Sistemas Digitales
V. A. García Alcántara; M. Gascón de Toro; A. Leal Hernández Pág. - 34
Para terminar, y como se hace con todos los circuitos secuenciales es conveniente
hacer un estudio de los estados indeterminados, lo cual se deja al lector.
La única consideración que hay que tener en cuenta a la hora de la simplificación
hecha es :
Que al estado 0 nunca genere a la entrada un valor 0. Y que al estado máximo (
todos los biestables a 1) nunca genere a la entrada el valor 1.
Esto es debido a que si las entradas tomasen esos valores, en cada caso, el circuito
se bloquearía en él y no saldría nunca del mismo.