Está en la página 1de 91

Universidad pontificia de Salamanca en Madrid

Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Problema 1 (Septiembre 1.995, Mañana).

Simplificar al máximo la función F, definida por la siguiente tabla de verdad:

A B C D E F

0 0 0 0 0 1

0 0 0 0 1 1

0 0 0 1 0 0

0 0 0 1 1 1

0 0 1 0 0 1

0 0 1 0 1 1

0 0 1 1 0 1

0 0 1 1 1 0

0 1 0 0 0 1

0 1 0 0 1 1

0 1 0 1 0 1

0 1 0 1 1 1

0 1 1 0 0 0

0 1 1 0 1 0

0 1 1 1 0 X

0 1 1 1 1 1

1 0 0 0 0 1

1 0 0 0 1 1

1 0 0 1 0 X

1 0 0 1 1 1

1 0 1 0 0 1

1 0 1 0 1 1

1 0 1 1 0 0

1 0 1 1 1 1

1 1 0 0 0 0

1 1 0 0 1 0

1 1 0 1 0 1

1 1 0 1 1 1

1 1 1 0 0 X

1 1 1 0 1 X

1 1 1 1 0 X
1
Universidad pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

1 1 1 1 1 1

Problema 1 (Septiembre 1.995, Tarde)

Obtener la expresión más simplificada posible de la función:

Problema 1 (Septiembre 1.998, Mañana).

Sea la función:

1) Obtener su tabla de verdad


2) Utilizando solamente los teoremas y postulados del Álgebra de Boole, obtener la expresión más simplificada
posible de la función.

Problema 1 (Junio 1.995)

Dada la función:

Simplificarla al máximo empleando únicamente los teoremas y postulados del Álgebra de Boole.

Problema 1 (Febrero 1.995, Mañana).

Implementar F con el mínimo número de puertas, teniendo en cuenta que no se dispone de puertas con funciones
negadas.

Problema 1 (Septiembre 1.996)

2
Universidad pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

El esquema de la figura representa un circuito cuya función se representa en la salida:

B F

Utilizando exclusivamente bloques como el mostrado, realizar:


(a) Un inversor, una puerta AND y una puerta OR.
(b) Un circuito semisumador.

Problema 1 (Septiembre 1.997, Tarde).

Se quiere mejorar el diseño de un circuito como el de la figura:

Para ello se pide:

(a) Obtener la función F en su expresión más simplificada.


(b) Desarrollar F con el menor número de puertas posible.
(c) Implementar F con el menor número de puertas NAND de tres entradas posible.
g

Problema 1 (Septiembre 1.997)

Se dispone de un número suficiente de bloques como el que sigue:

F
Utilizando exclusivamente bloques como el dado, y en el menor número posible, impleméntense las siguientes
funciones:

(a) NOT.
(b) AND.
(c) OR.
(d) XOR.
(e) NAND.
(f) NOR.
(g) N-XOR
g

3
Universidad pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Problema 1 (Septiembre 2.002, Mañana)

Dado el circuito de la figura, se pide:

A B C D

(a) Obtener la tabla de verdad y la primera forma canónica (implícita o numérica) de la función F que realiza.
(b) Implementar esta misma función empleando únicamente puertas NOR de tres entradas, optimizando el diseño
para que la cantidad de puertas sea mínima.

Problema 1 (Septiembre 2.002, Tarde)

Sea la función booleana:

(a) Utilizando exclusivamente las propiedades y axiomas del Álgebra de Boole, obtener la expresión más
simplificada de F.
(b) Implementar la función obtenida en el apartado (a) con el menor número de puertas OR, AND, XOR y XNOR de
dos entradas.
(c) Implementar F, obtenida en el apartado Z, con el menor número de puertas NAND de dos entradas.

Problema 2 (Febrero 1.995, Mañana).

Se pretende diseñar un transcodificador de un código BCD 4321 al código BCD Natural. El código BCD 4321 es el
siguiente:

0 0000

4
Universidad pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)


1 0001

2 0010

3 0011

4 0101

5 1001

6 1010

7 1011

8 1101

9 1110

Representará la entrada como E3E2E1E0 y la salida como S3S2S1S0.

Obtener S2 con un multiplexor (no se especifica nada, por lo tanto, intentarlo con un multiplexor de 4, 3, 2, 1
entradas de control)

Problema 3 (Febrero 1.995, Tarde).

Se dispone de una pastilla que contiene un registro de desplazamiento con capacidad de dos bits (Q B, QA). El
esquema de bloques se muestra en la figura. También se dispone de una pastilla que contiene un multiplexor de
cuatro entradas de datos. Con estas pastillas y las puertas lógicas que considere necesarias, diseñar un
circuito convertidor de transmisión paralelo a serie de palabras de cuatro bits.

Problema 1 (Febrero 1.996, Tarde)

El esquema de la figura representa un transcodificador de binario (4 bits) a BCD, con B3 y A4 los bits más
significativos:

B3 A4

B2 A3

B1 A2

B0 A1

A0

5
Universidad pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Implementar A3 con un multiplexor de dos entradas de control y la lógica que se precise.

Problema 1 (Febrero 1.997, Mañana)

Diseñar un circuito que genere un bit de paridad par en palabras de cuatro bits. Esto es, se debe generar un
bit de salida de forma que la suma de los unos de la palabra de entrada más el de salida sea un número par. Se
dispone de dos multiplexores de 4 canales de entrada con entrada de validación y salidas activas a nivel bajo
y un circuito integrado 7400 que contiene 4 puertas NAND de 2 entradas.


Problema 1 (Junio 1.997).

Dada la siguiente tabla de verdad:

XYZW F

0000 1

0001 1

0010 0

0011 0

0100 1

0101 1

0110 0

0111 0

1000 0

1001 0

1010 0

1011 1

1100 0

1101 0

1110 0

1111 1

6
Universidad pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

(a) Diseñar la función F con un demultiplexor con salidas activas a nivel alto del menor tamaño posible y el
menor número de puertas NOR de tres entradas posible.

(b) Modificar el circuito del apartado anterior de forma que tenga una entrada adicional C, tal que si C=0 la
salida se anule y si C=1 la salida sea igual a la del apartado (a).

Problema 1 (Febrero 1.996, Mañana).

Dado el circuito de la figura:

(a) Hallar la tabla de verdad y la función simplificada de F.

(b) Implementar la función F mediante un decodificador con las salidas activas a nivel alto y una puerta NOR.

7
Universidad pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Problema 2 (Febrero 1.995, Mañana).

Se pretende diseñar un transcodificador de un código BCD 4321 al código BCD natural. El código BCD 4321 es el
siguiente:

0 0000

1 0001

2 0010

3 0011

4 0101

5 1001

6 1010

7 1011

8 1101

9 1110

Representará la entrada como E3E2E1E0 y la salida como S3S2S1S0.

Obtener S1 con un decodificador con salidas activas a nivel alto y una única puerta lógica de tamaño mínimo.

Problema 2 (Junio 1.995, Mañana).

El circuito de la figura contiene dos decodificadores octales con entrada de validación E activa a nivel bajo.
Las salidas del decodificador superior son activas a nivel alto y las del inferior activas a nivel bajo.

Obtener la expresión más simplificada de F.

8
Universidad pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

9
Universidad pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Problema 1 (Febrero 1.996, Tarde)

El esquema de la figura representa un transcodificador de binario (4 bits) a BCD, con B3 y A4 los bits más
significativos:

B3 A4

B2 A3

B1 A2

B0 A1

A0

Implementar A1 con puertas OR y decodificadores de tres entradas con entrada de validación activa a nivel bajo.

Problema 2 (Febrero 1.998, Tarde)

Implemente la función:

Para ello utilice un decodificador de dirección lo más pequeño posible, con salidas activas a nivel bajo y
entrada de validación activa a nivel alto, y las puertas básicas necesarias, en el menor número posible, pero
de no más de dos entradas.

Problema 2 (Septiembre 1.998, Mañana)

En un compartimento de un tren hay tres literas. En el techo del compartimento hay una luz cuyo encendido se
maneja según cinco señales de control:

 Señal A: Detector de luz, se pone a 1 cuando hay suficiente luminosidad exterior.


 Señal B: Detector horario, se pone a 1 durante las horas de vigilia y a 0 en las de sueño.
 Señales C, D, E: Interruptores manuales de cada una de las tres literas.
Sea F(A, B, C, D, E) la función que controla el encendido de la luz, de acuerdo con los siguientes criterios:

1. Nunca se encenderá la luz mientras exista suficiente luminosidad exterior.


2. En caso contrario, durante las horas de sueño sólo se debe encender la luz si existe unanimidad
entre los tres viajeros.
3. En las horas de vigilia, se encenderá cuando al menos un viajero lo pida.
Se pide:

(a) Obtener la expresión algebraica de F, que active la luz.


(b) Diseñar el circuito usando un decodificador, con entrada de validación activa a nivel bajo del menor
número de entradas posible y la puerta lógica del menor número de entradas que se considere oportuna.

10
Universidad pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Problema 2(Septiembre 1.998, Tarde)

(a) Escribir la tabla de verdad de un circuito comparador para números de 2 bits.


(c) Diseñar la función de salida G(A>B) del comparador anterior si se dispone de un decodificador de 3 a 8
con entrada de validación activa a nivel alto y cualquier tipo de puertas con cualquier número de
entradas. Se valorará el menor número de puertas con el menor número de entradas.

Problema 2 (Septiembre 1.995, Mañana).

En el circuito de la figura obtener:

(a) La expresión más simplificada de la función F.


(b) Implementar la función anterior empleando EXCLUSIVAMENTE puertas NAND de tres entradas.

Problema 2 (Septiembre 1.997, Mañana)

Utilizando comparadores de magnitud de un bit, y el menor número de puertas lógicas de dos entradas, se pide:

(a) Diseñar un circuito capaz de comparar palabras de dos bits.


(b) Diseñar un circuito capaz de generar un bit de paridad par, para palabras de seis bits.

Problema 2 (Febrero 1.998, Mañana)

Dado el circuito de la figura:

11
Universidad pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

(a) Calcular la tabla de verdad de F y su expresión más simplificada posible.


(b) Implementar F utilizando un decodificador con salidas activas a nivel alto y la lógica adicional
necesaria.

Problema 1 (Febrero 1.995, Tarde).

Utilizando los teoremas y postulados del álgebra de Boole, demostrar que los dos circuitos de la figura son
equivalentes:

Problema 1 (Extraordinaria, Junio 1.996).

En la figura se representa un transcodificador de código abcd definido en la tabla adjunta a BCD natural.

12
Universidad pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)


1 0001

2 0110

3 1010

4 0100

5 1000

6 1001

7 1110

8 1111

9 1100

abcd
0 0000

(1) Calcular los pesos del código abcd.

(2) Diseñar el bloque combinacional utilizando solamente un DECODIFICADOR de dos


entradas y dos puertas OR de dos entradas.

Problema 1 (Febrero 1.998, Tarde).

Diseñe un transcodificador del código BCD al código X que se muestra en la tabla.


Para su implementación se dispone de un sumador completo (F.A., Full Adder) de 4
bits

“0”

Y bloques como el de la figura

13
Universidad pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

CÓDIGO X

ABCD
0 0000

1 0010

2 1001

3 1010

4 0101

5 0110

6 1101

7 1110

8 1111

9 1100

Problema 2 (Septiembre 1.999, Tarde).

Usando dos sumadores completos de 3 bits y el mínimo número de puertas necesario,


implementar un circuito que sume dos números de 4 bits,

=3 2 1 0

=3 2 1 0

representados en código de AIKEN (2421) y BCD natural (8421) respectivamente.


El resultado debe quedar expresado en binario natural con 5 bits.

Problema 2 (Febrero 1.999, Mañana).

Se pretende diseñar un circuito combinacional que, dependiendo del valor que tomen
las entradas de control K2, K1, K0 realice diferentes transcodificadores a un código
de entrada de BCD natural (A3A2A1A0), tal y como indica la siguiente tabla:

K2K1K0 3210

0 0 0 BCD exceso a 2

14
Universidad pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

0 0 1 No lo modifica

0 1 0 BCD exceso a 4

0 1 1 BCD exceso a 5

1 0 0 AIKEN

El diseño se realizará usando un cuádruple sumador total, según el diagrama de


bloques de la figura:

Observe que, como indica el diagrama de

Bloques, un estudio de los


transcodificaciones a realizar deberá
darle como resultado que el circuito
combinacional II puede realizarse a
partir de sólo cuatro variables (Y, K2,
K1, K0).

(En un caso general, las funciones X 3,


X2, X1, X0 dependerían de las siete
variables K2, K1, K0, A3, A2, A1, A0).

Notas:

- Se valorará la consecución de los


siguientes objetivos, en orden de
prioridad:
1. El uso del menor nº de
puertas.
2. El menor tamaño de las ■
puertas.
- BCD exceso n se calcula como sigue:
al valor que se quiera representar en
BCD exceso “n”, se le suma el exceso y
luego se pasa a binario natural (4
bits).

15
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

TABLAS DE EXCITACIÓN DE LOS BIESTABLES

Q(t) Q(t+1 SR Q(t) Q(t+1 JK


) )

0 0 0X 0 0 0 X

0 1 1 0 0 1 1 X

1 0 0 1 1 0 X 1

1 1 X 0 1 1 X 0

Q(t) Q(t+1 T Q(t) Q(t+1 D


) )

0 0 0 0 0 0

0 1 1 0 1 1

1 0 1 1 0 0

1 1 0 1 1 1

Problema 3 (Febrero 1.995, Mañana).

Utilizando puertas lógicas de dos entradas y biestables JK activos en el flanco de


subida del reloj, diseñar un contador síncrono que muestre en su salida, en binario y
secuencialmente, los siguientes valores:

28, 19, 7, 20, 11, 30, 9, 16, 28, 19, 7, ...

NOTA: Considere los biestables y las puertas lógicas bienes escasos.

Problema 3 (Septiembre 1.995, Mañana).

Empleando biestables JK y el menor número de puertas lógicas, diseñar un contador síncrono que cuente
0, 3, 1, 0, 2, 2, 3, 1, 0, 3, ...

16
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Problema 3 (Septiembre 1.995, Tarde).

Diseñar un contador síncrono que siga la secuencia 111, 100, 110, 001, 101, 010, 111, 100, ...

Utilizar un biestable JK para el elemento de mayor peso, uno de tipo D para el de menor peso y uno de
tipo T para el restante, todos activos por flanco de bajada del reloj, además de las puertas necesarias.

Representar el cronograma de los diez primeros ciclos del contador, suponiendo que en el instante
inicial se encuentra en el estado 111.

CK

QC

t
QB

Problema 2 (Septiembre 1.996).

Diseñar un contador síncrono módulo 8 que genere la secuencia:

0, 8, 10, 14, 15, 7, 5, 1

empleando:

(a) Un registro de desplazamiento a la derecha de 4 bits y las puertas lógicas necesarias.


(b) Tres biestables T activos por flanco de bajada y las puertas lógicas necesarias.

TABLAS DE EXCITACIÓN DE LOS BIESTABLES

Q(t) Q(t+1 SR Q(t) Q(t+1 JK


) )

0 0 0X 0 0 0 X

0 1 1 0 0 1 1 X

1 0 0 1 1 0 X 1

1 1 X 0 1 1 X 0

17
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Q(t) Q(t+1 T Q(t) Q(t+1 D


) )

0 0 0 0 0 0

0 1 1 0 1 1

1 0 1 1 0 0

1 1 0 1 1 1

Problema 4 (Junio 1.995).

Diseñar un autómata de Mealy detector de la secuencia “110”. Utilice biestables JK y


puertas, y suponga todo tipo de solapamiento.

Problema 4 (Febrero 1.995, Mañana).

Diseñar un autómata capaz de detectar, poniendo su única salida a uno, la llegada de los
cuatro últimos bits recibidos de una de las secuencias siguientes: “1100” y “1001”.

El circuito deberá ser un autómata de Mealy. Estará dotado de una única entrada por la
que recibirá un tren aleatorio de bits. Deberá diseñarse empleando biestables D y una
memoria ROM.

Indique claramente el circuito y el tamaño y contenido de la ROM.

Problema 4 (Septiembre 1.995, Tarde).

Utilizando biestables D y multiplexores, diseñar un autómata de Mealy detector de la


secuencia, en la única línea de entrada, “11011”. Suponga permitido cualquier tipo de
solapamiento.

Problema 4 (Septiembre 1.995, Mañana).

Dada la tabla de estados siguiente, obtener:

(a) El diagrama de flujo.


(b) Indicar qué hace el circuito.

Estado inicial Entrada

18
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

0 1

q0 q1/0 q4/0

q1 q7/0 q2/0

q2 q8/0 q3/0

q3 q0/0 q0/1

q4 q2/0 q5/0

q5 q3/0 q6/0

q6 q0/1 q0/0

q7 q8/0 q8/0

q8 q0/0 q0/0

Problema 3 (Febrero 1.996, Tarde).

Dada la siguiente tabla de transiciones:

Estado Entradas
inicial 00 01 10 11

00 00/00 01/00 10/00 11/00

01 01/01 10/01 11/01 00/01

10 10/10 11/10 00/10 01/10

11 11/11 00/11 01/11 10/11

(a) ¿Qué tipo de máquina se está planteando? Razonar la respuesta.


(b) Diseñar el autómata que la realice utilizando exclusivamente biestables D y bloques de memoria de
dimensión 82 (8 palabras de dos bits cada una).

19
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Problema 3 (Septiembre 1.996).

Utilizando biestables JK, más la lógica combinacional que se precise, diseñar un


circuito secuencial síncrono capaz de almacenar dos bits de información y que bajo la
acción de dos entradas de control E0E1 pueda realizar las siguientes operaciones:

E0E1
Operaciones
No se altera el contenido aunque reciba
00 impulsos de reloj.

Desplazamiento del contenido una


01 posición a la izquierda por cada impulso

Desplazamiento del contenido una


10 posición a la derecha por cada impulso

Puesta a cero del contenido, con el


11 siguiente impulso de reloj.

En el diseño debe indicarse explícitamente:

 Entrada de impulsos de reloj (CK)


 Entrada de datos por la izquierda (Izda)
 Entrada de datos por la derecha (Dcha)
 Tabla de verdad del circuito
 Función simplificada de cada entrada de los biestables JK
 Implementación del circuito, utilizando multiplexores e inversores.

20
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Problema 3 (Septiembre 1.998).

El circuito de la figura forma parte de un sistema de recepción de trama de dos líneas.

E0 Z0

DETECTOR

Su función es detectar las tramas 1000 y 1111 en ambas líneas, que indican
respectivamente el comienzo y el final de la transmisión. Para ello, cuando las dos
entradas E0 y E1 se detecte a la vez la trama “1000”, activará la salida Z0 (indicador
de comienzo de transmisión). Y cuando en ambas entradas se reciba simultáneamente la
secuencia “1111”, deberá activar la salida Z 1 (indicador de fin de transmisión). En el
resto de los casos, ambas salidas deben estar desactivadas.
Es importante tener en cuenta que, si las tramas no se detectan al mismo tiempo en ambas
líneas no se consideran tramas de control, y, por tanto, continúa el proceso de
detección.
Cuando se detecta trama de control, se pasará al estado de comienzo de búsqueda de una
nueva secuencia de control. Es decir, no se considera el solapamiento en la detección
de trama.

Se pretende diseñar un autómata finito de Mealy que realice la función indicada, para
ello se pide:

 Definir y codificar las entradas, salidas y estados del autómata.


 Representar el diagrama de flujo.
 Obtener la tabla de estados.
 Hallar las funciones de salida Z0 y Z1.

No es imprescindible realizar los apartados anteriores en el orden indicado, pero


sí que aparezcan claramente los resultados que se consideren correctos.

Problema 4 (Septiembre 1.999).

21
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Una cerradura electrónica se controla a través de un teclado de cuatro cifras: 0, 1, 2, 3. La cerradura


se abrirá únicamente cuando se reciba consecutivamente la secuencia 3012. En cualquier otra situación la
cerradura permanecerá cerrada.

Se trata de diseñar un autómata que active la apertura de la cerradura cuando se reciba la secuencia
correcta.

Sólo cuando se haya recibido la cuarta cifra se activará (si procede) la apertura de la cerradura.

El autómata se adaptará al modelo de Moore.

Se pide:

 Asignación de estados.
 Codificación de estados, entradas y salidas.
 Diagrama de flujo simplificado del autómata y tabla de estados.
 Contenido de la memoria, en caso de realizarlo como autómata programable.

Tema 11. Autómatas construidos con memorias.

§ 11.1. Introducción.

Se puede sacar mucha ventaja de las particularidades de los biestables D a la


hora de implementar autómatas. Recuérdese que en este tipo de biestables, el valor de
la entrada síncrona pasa a ser el estado del biestable cuando el reloj lo permita.

Una idea interesante consiste en construir los bloques combinacionales para


calcular el estado siguiente y la/s salida/s del autómata no de forma cableada
(empleando puertas lógicas y módulos MSI) sino de forma programada (empleando
memorias de tipo ROM). Puesto que, hoy en día, existen memorias ROM que pueden
reprogramarse (memorias EEPROM), es fácil cambiar la funcionalidad del autómata sin
necesidad de cambiar el hardware, sino simplemente volviendo a programar la memoria.

§ 11.2. Memorias ROM. Definición, principio de funcionamiento y tipos.

22
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Las memorias ROM (acrónimo de la denominación sajona “Read Only Memories”) son
memorias de acceso individual aleatorio a los datos (tipo RAM, de la denominación
sajona “Random Access Memories”), esto es, memorias construidas de forma que, cuando
se intenta acceder al dato, éste queda disponible siempre en un tiempo determinado,
que es el mismo para todos los datos de la memoria, independientemente de su
posición.

Existen diferentes modalidades de este tipo de memorias. Fundamentalmente, son:

 ROM. Se graban durante su proceso de fabricación, y no es posible modificar


el contenido de la memoria. Su estructura física se muestra en la siguiente
figura.

Matriz de la memoria

0 ...
1 1

. .
.
. . ... .
. .
.
. . . ... .

...

...

Decodificador

direcciones
Dm-1 Dm-2... D1 D0

Fig. 11.2.1. Esquema de una memoria ROM, mostrando

tanto el decodificador de direcciones

como la matriz de bits.

23
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Obsérvese que entre las filas y las columnas de la ROM existen pequeños
diodos que hacen que cuando se seleccione el dato deseado, aparezca una
corriente a través de las columnas que tienen conectado algún cátodo de
diodo. En general, se suelen emplear transistores de forma que no disminuya
la corriente de salida para aquellas filas de la matriz grabadas con muchos
unos (ello supondría tener que repartir la corriente de salida del
decodificador entre un elevado número de columnas). Estos transistores toman
una alimentación ajena normalmente al decodificador. Además, puede
implementarse internamente la electrónica necesaria para la adaptación de
niveles lógicos para otros dispositivos.

Existe una representación esquemática de los contenidos de la memoria en


forma de tabla. Para la ROM anterior,

Direcciones de memoria Contenidos


010) 10...0

110) 10...1

... .....

2n-210) 11...1

2n-110) 00...1

Tabla 11.2.2. Mapa de bits de la memoria

El principal inconveniente de las ROM es que debe grabarse en su fabricación,


es decir, encargarse, y este no es un procedimiento económico para pequeñas
series. Una alternativa son las memorias

 PROM (Programmable ROM). Conceptualmente hablando, son idénticas a las


anteriores, con una sóla diferencia, que las hace más económicas, en general,
para pequeñas series. Esta diferencia es que se pueden grabar una sóla vez.
La PROM sale de fábrica con todas las conexiones fila-columna establecidas
con finas uniones PN (la matriz original es de unos). Aplicando corrientes
eléctricas elevadas, se pueden fundir algunas de estas uniones, en un proceso
irreversible que graba los ceros en la matriz.

Además de estas dos, se tienen:

24
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

 EPROM (Erasable-Programmable ROM). Soportan varios ciclos de borrado (que se


hace con luz ultravioleta a través de una ventana en su parte superior) y
escritura (que se hace aplicando tensiones adecuadas, una vez hecho el
borrado).

 EEROM (Electrically-Erasable ROM). Iguales que las anteriores, pero en las


que los ciclos de borrado y grabación sólo se efectúan aplicando tensiones
especiales.

 EAROM (Electrically-Alterable ROM). Son memorias que, a diferencia de las


EPROM y EEROM, no necesitan un borrado previo

antes del ciclo de grabación. Un ejemplo de ellas, que se está implantando


cada vez con mayor fuerza, son las memorias Flash.

§ 11.3. Diseño de autómatas con memorias ROM.

El procedimiento para diseñar autómatas con memorias ROM sigue los pasos vistos
en el capítulo anterior, a excepción de que normalmente, en el paso  se eligen
biestables de tipo D para minimizar el ancho de palabra de la ROM y que no es
necesario el paso  (lógica programada).

 Identificar, del enunciado del problema, las posibles entradas al autómata y las
posibles salidas que éste puede producir. Codificar estas entradas y salidas, con
el número de bits adecuados. Así, por ejemplo, si se tienen N posibles entradas
distintas, necesitaremos bits, En-1...E0 . En cambio, si se tienen L
salidas distintas, necesitaremos bits, Zl-1...Z0.

 Dibujar el diagrama de flujo (flujograma) del autómata. En este flujograma debe


recogerse la evolución de los estados y salidas del autómata en función del estado
actual y sus entradas binarias. Recuérdese que en un autómata de tipo Mealy el
diagrama de flujo es considerablemente distinto del de un autómata de tipo Moore.
Por conveniencia, repetimos aquí ambos tipos de diagrama de flujo:

q(t)
q(t)

e’/z’ e’’/z’’ 25 e’ e’’

q’(t+1 q’’(t+1)
q’(t+1 q’’(t+1)
)
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

(a) (b)

Fig. 11.3.1. Comparación de los diagramas de flujo de un autómata de tipo Mealy (a), y

de un autómata de tipo Moore (b).

 Efectuar la tabla de transiciones. Esta tabla recoge la información del flujograma en un


formato distinto, que facilita su paso a tabla de verdad. A continuación se ofrece el
aspecto que presenta esta tabla para un autómata de tipo Mealy y un autómata de tipo Moore.

Estado Estado
Entradas Entradas
inicial inicial Salida

E’s E’s

26
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Estado
Estado
siguiente/Sali
siguiente
da

Q’s(t) Q’s(t) Z’s


Q’s(t+1)
Q’s(t+1)/Z’s

(a) (b)

Tabla 11.3.2. Comparación de las tablas de transición de estado de un autómata de tipo Mealy (a), y

de un autómata de tipo Moore (b).

 Efectuar la minimización de estados, en su caso. Esto es, intentar reducir el número de


estados al mínimo, sin que el autómata deje por ello de cumplir la misma función. Cuanto
mayor sea la reducción en el número de estados, menor será el tamaño de la ROM en número de
palabras.

 Una vez llevado a cabo el proceso de minimización, deducir el número de estados


distinguibles en los que se puede encontrar el autómata. Codificar estos estados,
eligiendo un número de bits adecuado. En general, si se tienen M estados distintos,
se necesitarán bits, Qm-1...Q0.

 Realizar la tabla de verdad del autómata, tal y como se muestra a continuación,


eligiendo el tipo de biestables que se van a emplear para su construcción (tipo JK,
tipo T, tipo D).

Entradas
Estado síncronas a
Estado
Entrada/s los Salidas
Inicial Siguiente biestables D
E’s (ó T) Z’s
Q’s(t) Q’s(t+1)

27
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Tabla 11.3.3. Tabla de verdad.

 Grabar la memoria ROM con los contenidos de las columnas 4ª (entradas síncronas) y
5ª (salida/s), y realimentar el circuito de memoria (biestables) con las salidas de
la ROM que implementan el cambio de estado.

En el capítulo anterior se abordaba el problema de construir un autómata de tipo


Mealy reconocedor de la secuencia “101” a través de su única línea de entrada,
empleando biestables JK y puertas. Si en lugar de tomar este tipo de biestables se
tomasen biestables de tipo D, la tabla de verdad de dicho autómata serí:

Estado Entradas
Entrada/s Estado síncronas a
Siguiente Salida
Inicial los
biestables Z
Q1(t) Q0(t) Q1(t+1)Q0(t+1
E
) D1 D0

0 0 0 0 0 0 0 0

0 0 1 1 0 1 0 0

0 1 0 0 0 0 0 0

0 1 1 x x x x x

1 0 0 0 1 0 1 0

1 0 1 0 1 0 1 0

1 1 0 0 1 0 1 1

1 1 1 x x x x x

Tabla 11.3.4. Tabla de verdad del autómata anterior.

El autómata programado necesitaría como recurso adicional una memoria ROM de 8*3 (8
palabras de 3 bits cada una), que habría que grabar como se indica en la figura:
E

ROM

8*3 28
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

0
0 0 0
0
MEMORIA 1
1 0 0
Master 2
CK 0 0 0
3
x x x

D Q

z
D Q

Fig. 11.3.5. Diseño final del autómata con memoria ROM.

29
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

BIBLIOGRAFÍA

[1] “Diseño Lógico”, Antonio Lloris, Alberto Prieto. Ed. McGraw-Hill, 1.996.

[2] “Circuitos Lógicos”, Gustavo López Rubio. Segunda edición, 2000.

[3] “Introducción a las computadoras. Estructura y programación”, Alfonso


Alejandre, Luis Azorín Tobías, Gustavo López Rubio.

Tema 10. Autómatas secuenciales finitos.

§ 10.1. Introducción.

Un autómata es una máquina secuencial síncrona, que se puede encontrar en uno de


entre un número posible de estados; recibe una serie de entradas binarias, y, en
general, en función de estas entradas y del estado particular en el que se encuentra,
genera unas salidas binarias.

Cuando el número de estados en que puede encontrarse el autómata secuencial es


finito, se habla de autómata secuencial finito.

Los elementos que componen un autómata son, en general, por una parte, una
memoria que permite almacenar el estado actual del autómata, y, por otra, dos redes

30
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

combinacionales, una para calcular el estado siguiente y otra que permite calcular la
salida.

Se distinguen dos tipos de autómatas:

 Autómatas de Mealy:

Son aquellos en los cuales, tanto la salida del autómata como su estado
siguiente, en un instante determinado, depende tanto del estado en el que se
encuentra el autómata en ese instante como de la/s entrada/s binaria/s
introducidas.

Esto implica que un autómata de Mealy, estando en un determinado estado,


puede evolucionar hacia estados siguientes distintos y producir salidas
distintas si se introducen entrada/s binaria/s distinta/s.

La idea se recoge en el siguiente diagrama de flujo, donde q(t) representa


el estado inicial, e’ y e’’ son las entradas a las que se puede someter el
autómata en ese estado, z’ y z’’ son las salidas que puede generar el
autómata y q’(t+1) y q’’(t+1) son los posibles estados siguientes:

q(t)

e’/z’ e’’/z’’

q’(t+1 q’’(t+1)
)

31
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Fig. 10.1.1. Posibles transiciones de estado y salidas en un

autómata de Mealy.

El diagrama anterior debe leerse de la forma siguiente: desde el estado


q(t), con entrada e’, se pasa al estado q’(t+1) y se da salida z’; desde el
estado q(t), con entrada e’’ se pasa al estado siguiente q’’(t+1), y se da
salida z’’.

El diagrama de bloques de un autómata de Mealy se muestra a continuación:

Master CK
Memoria

(permite almacenar el
estado actual)

q(t)

q(t)
Bloque combinacional

(permite calcular la/s


salida/s)

Z
z=f’[q(t), e]

Bloque combinacional

(permite calcular
estado siguiente)

q(t+1)=f[q(t), e]

32
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Fig. 10.1.2. Diagrama de bloques de un autómata de Mealy.

 Autómatas de Moore:

Son aquellos en los cuales, su estado siguiente, en un instante


determinado, depende tanto del estado en el que se encuentra el autómata como
de la/s entrada/s binaria/s introducidas, pero la salida en ese mismo
instante sólo depende del estado en el que se encuentra el autómata.

Esto implica que un autómata de Moore, estando en un determinado estado,


produce siempre la misma salida, independientemente de cuál/es sea/n la/s
entrada/s de datos en ese estado.

La idea se recoge en el siguiente diagrama de flujo, donde q(t) representa


el estado inicial, e’ y e’’ son las entradas a las que se puede someter el
autómata en ese estado, z y z’, z’’ son las salidas que puede generar el
autómata y q’(t+1) y q’’(t+1) son los posibles estados siguientes:

q(t)

e’ e’’

q’(t+1 q’’(t+1)
)

33
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Fig. 10.1.3. Posibles transiciones de estado y salidas en un

autómata de Moore.

El diagrama anterior debe leerse de la forma siguiente: desde el estado


q(t) (en el cual siempre se da salida z), con entrada e’ se pasa al estado
q’(t+1) (en el que siempre se da salida z’) y con entrada e’’ se pasa al estado
siguiente q’’(t+1) (en el que siempre se da salida z’’).

El diagrama de bloques de un autómata de Moore se muestra a continuación:

Master CK Bloque combinacional

Memoria
(permite calcular la/s
salida/s)
(permite almacenar el
estado actual)

z=f’[q(t)] Z
q(t)
q(t)

Bloque combinacional

(permite calcular
estado siguiente)

q(t+1)=f[q(t), e]

34
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Fig. 10.1.4. Diagrama de bloques de un autómata de Moore.

§ 10.2. Diseño lógico de autómatas de tipo Mealy y de tipo Moore.

En esta sección aprenderemos dos cosas. En primer lugar, aprenderemos a diseñar


de forma lógica autómatas de tipo Mealy y autómatas de tipo Moore. En segundo lugar,
veremos que ambos tipos de autómatas son equivalentes, en el sentido de que cualquier
tarea realizada por un autómata de tipo Mealy puede ser efectuada por un autómata de
tipo Moore ligeramente distinto. Es decir, que todo autómata de Mealy tiene su
equivalente autómata de Moore. Estudiaremos de qué forma se puede pasar de uno a
otro.

§ 10.2.1. Principios de diseño lógico de autómatas de tipo Mealy y de tipo Moore.

El procedimiento para diseñar ambos tipos de autómatas se resume en una serie de


pasos sencillos, que son los siguientes:

 Identificar, del enunciado del problema, las posibles entradas al autómata y las
posibles salidas que éste puede producir. Codificar estas entradas y salidas, con
el número de bits adecuados. Así, por ejemplo, si se tienen N posibles entradas
distintas, necesitaremos bits, En-1...E0 . En cambio, si se tienen L
salidas distintas, necesitaremos bits, Zl-1...Z0.

 Dibujar el diagrama de flujo (flujograma) del autómata. En este flujograma debe


recogerse la evolución de los estados y salidas del autómata en función del estado
actual y sus entradas binarias. Recuérdese que en un autómata de tipo Mealy el

35
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

diagrama de flujo es considerablemente distinto del de un autómata de tipo Moore.


Por conveniencia, repetimos aquí ambos tipos de diagrama de flujo:

q(t)
q(t)

e’/z’ e’’/z’’ e’ e’’

q’(t+1 q’’(t+1)
q’(t+1 q’’(t+1)
)
)

(a) (b)

Fig. 10.2.1.1. Comparación de los diagramas de flujo de un autómata de tipo Mealy (a), y

de un autómata de tipo Moore (b).

 Efectuar la tabla de transiciones. Esta tabla recoge la información del flujograma en un


formato distinto, que facilita su paso a tabla de verdad. A continuación se ofrece el
aspecto que presenta esta tabla para un autómata de tipo Mealy y un autómata de tipo Moore.

Estado Estado
Entradas Entradas
inicial inicial Salida

E’s E’s

Estado Estado
36
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

siguiente/Sali
siguiente
da

Q’s(t) Q’s(t) Z’s


Q’s(t+1)
Q’s(t+1)/Z’s

(a) (b)

Tabla 10.2.1.2. Comparación de las tablas de transición de estado de un autómata de tipo Mealy (a), y

de un autómata de tipo Moore (b).

 Efectuar la minimización de estados, en su caso. Esto es, intentar reducir el número de


estados al mínimo, sin que el autómata deje por ello de cumplir la misma función.

 Una vez llevado a cabo el proceso de minimización, deducir el número de estados


distinguibles en los que se puede encontrar el autómata. Codificar estos estados,
eligiendo un número de bits adecuado. En general, si se tienen M estados distintos,
se necesitarán bits, Qm-1...Q0.

 Realizar la tabla de verdad del autómata, tal y como se muestra a continuación,


eligiendo el tipo de biestables que se van a emplear para su construcción (tipo JK,
tipo T, tipo D).

Entradas
Estado síncronas a
Estado
Entrada/s los Salidas
Inicial Siguiente biestables
E’s Z’s
Q’s(t) Q’s(t+1) (J’s, K’s,
T’s, D’s)

Tabla 10.2.1.3. Tabla de verdad.

37
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

 Diseñar la red combinacional de paso al estado siguiente y de salida (ver diagramas


de bloques 10.1.2 y 10.1.4) empleando los recursos disponibles (puertas lógicas,
módulos MSI, memorias ROM).

Como ejemplo, vamos a realizar el diseño de un autómata de Mealy que reciba como entrada
un dato binario a través de una única línea, y sea capaz de detectar la entrada, a través de
esa línea, de la secuencia “101”. Cuando la secuencia se haya producido, el autómata activará
su única salida, poniéndola a nivel alto. En caso contrario, la salida permanecerá a nivel
bajo. Se deben emplear biestables de tipo JK y puertas lógicas, en el menor número posible.

Este circuito encaja dentro de lo que se denominan autómatas reconocedores de


secuencias. El autómata debe dar salida “1” cuando los tres últimos bits introducidos
por su entrada sean “101”.

Vamos a seguir la secuencia de pasos necesaria para construirlo:

 Identificar, del enunciado del problema, las posibles entradas al autómata y las
posibles salidas que éste puede producir. Codificar estas entradas y salidas, con
el número de bits adecuados. En este caso, se tiene una única entrada (que podemos
llamar E) y una única salida (que podemos llamar Z), por lo que se asocia a cada
una de estas líneas una variable de conmutación (1 único bit).

 Dibujar el diagrama de flujo (flujograma) del autómata.

0/0

q0 (No se ha reconocido
nada)
38
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

0/0 1/0

0/0
1/0
q2 q1
1/1

(Se han reconocido (Se ha reconocido


“10”) “1”)

Fig. 10.2.1.4. Flujograma para el reconocedor de la secuencia “101”

de tipo Mealy.

 Efectuar la tabla de transiciones. Como se trata de un autómata de tipo Mealy, tomamos el


formato de representación de la tabla 10.2.2.(a), esto es:

Estado
39
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Entradas
inicial
E

0 1

q0 q0/0 q1/0

q1 q2/0 q1/0

q2 Q0/0 q1/1

Tabla 10.2.1.5. Tabla de transición de estados del autómata anterior.

 Efectuar la minimización de estados, en su caso. En nuestro caso, el número de estados es


tan reducido que no se justifica el esfuerzo necesario para el procedimiento de
minimización.

 Deducción del número de estados distinguibles en los que se puede encontrar el


autómata. Evidentemente hay tres {q0, q1, q2}, por lo que se necesitarán 2 bits para
codificar dichos estados. Sean Q1Q0 estos bits. Hacemos la codificación:

Q1 Q0 Estado

00 q0

01 q1

10 q2

11 -

40
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

 Realizar la tabla de verdad del autómata. Tendremos en cuenta que se van a emplear
biestables de tipo JK.

Estado Entradas
Entrada/s Estado síncronas a
Siguiente Salida
Inicial los
biestables Z
Q1(t) Q0(t) Q1(t+1)Q0(t+1
E
) J1 K1 J0 K0

0 0 0 0 0 0 x 0 x 0

0 0 1 1 0 1 x x 1 0

0 1 0 0 0 x 1 0 x 0

0 1 1 x x x x x x x

1 0 0 0 1 0 x 1 x 0
41
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

1 0 1 0 1 0 x x 0 0

1 1 0 0 1 x 1 1 x 1

1 1 1 x x x x x x x

Tabla 10.2.1.6. Tabla de verdad del autómata anterior.

 Diseñar la red combinacional de paso al estado siguiente y de salida (ver diagrama


de bloques 10.1.2, en este caso) empleando los recursos disponibles (puertas
lógicas, en este caso).

De la tabla de verdad anterior se desprenden las siguientes formas implícitas para


las funciones de conmutación J1, K1, J0, K0 y Z.

La simplificación de estos 5 mapas de Karnaugh de 23= 8 casillas cada uno ofrece los
siguientes resultados:

42
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Por lo tanto, el autómata finalmente puede dibujarse de la siguiente forma


(obsérvese que el reloj principal, MASTER CK, se conecta a todos los biestables
simultáneamente, puesto que el autómata es un dispositivo síncrono):

MEMORIA

J Q J Q
Master
CK

CK CK

RED
“1”
COMBINACIONAL

(ESTADO

SIGUIENTE)

43
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Fig. 10.2.1.7. Diseño final. Identificación de los bloques constituyentes.

§ 10.2.2. Equivalencia entre los autómatas de tipo Mealy y los autómatas de tipo
Moore.

Aunque de forma cronológica los autómatas de tipo Mealy se describieron


formalmente antes que los autómatas de tipo Moore (1.955 y 1.956 respectivamente),
un aspecto atractivo de ambos es su equivalencia. Esto es, cualquier labor
implementada mediante un autómata de tipo Mealy se puede realizar con un autómata de
tipo Moore, y viceversa.

Si nos fijamos bien, veremos que la única diferencia conceptual entre ambos es
que, mientras que en el autómata de tipo Mealy la/s salida/s en un instante de tiempo
determinado depende/n tanto del estado del autómata en ese instante como de la/s
entrada/s combinacionales, en el autómata de tipo Moore la/s salida/s en un instante
dado solamente dependen del estado en el que se encuentra el autómata en dicho
instante.

El procedimiento para diseñar un autómata de Moore equivalente a un autómata de


Mealy es, pues, sencillo. Simplemente, habrá que detectar hacia qué estados del
autómata de Mealy se llega produciendo salidas distintas. Una vez identificados estos
estados, cada uno de ellos se dividirá en tantos subestados distintos como salidas
distintas se puedan generar al llegar a él.

Realizando este proceso, garantizamos que cualquier transición lleva a un estado


en el que la salida está unívocamente determinada.

Veamos, por ejemplo, el autómata de la sección § 10.2.1. Según se desprende de


su diagrama de flujo, que se vuelve a reproducir debajo, existe un estado, q 1, al que
se puede llegar dando como salida el autómata 0 (si se llega desde el estado q 0 o q1
con entrada “1”) ó 1 (si se llega desde el estado q2 con entrada “1”).
44
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

0/0

(No se ha reconocido
q0 nada)

0/0 1/0

0/0
1/0
q2 1/1 q1

(Se han reconocido (Se ha reconocido


“10”) “1”)

Fig. 10.2.2.1. Diagrama de flujo del autómata de Mealy reconocedor

de la secuencia “101”. Al estado q1 se llega dándose lugar

a salidas distintas.

De acuerdo con el procedimiento que acabamos de describir, puesto que al estado


q1 se llega dándose lugar a dos salidas distintas, será necesario dividir este estado
en dos subestados, uno en el que se produzca salida “0” (q 10) y otro en el que se
produzca salida “1” (q11). Obsérvese que, siempre que se llega al estado q0, se
producirá salida “0”; de la misma forma, siempre que se llegue al estado q 2 se
producirá salida “0”, por lo que se puede convertir el diagrama de flujo anterior:

45
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

(No se ha reconocido
nada)

q0 / 0
(Se han reconocido 0 (Se ha reconocido
“10”) 0 1
q2 / 0 q10 / 0 “1”)

1 1

q11 / 1
(Se han reconocido
“101”)

Fig. 10.2.2.2. Diagrama de flujo del autómata de tipo Moore equivalente

al anterior de tipo Mealy.

Vamos a implementar este autómata. Para ello, igual que antes, seguimos la
secuencia de pasos de la sección § 10.2.1.

 Como antes, se tiene una única entrada (que podemos llamar E) y una única salida
(que podemos llamar Z), por lo que se asocia a cada una de estas líneas una
variable de conmutación (1 único bit).

46
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

 Dibujar el diagrama de flujo (flujograma) del autómata.


0

(No se ha reconocido
nada)
q0 / 0

0 1

(Se han reconocido 0 (Se ha reconocido


“10”) q2 / 0 q 0
/ 0
1 “1”)
1

0
1 1

(Se han reconocido


“101”) q11 / 1

Fig. 10.2.2.3. Flujograma para el reconocedor de la secuencia “101”

de tipo Moore.

 Efectuar la tabla de transiciones. Como se trata de un autómata de tipo Moore, tomamos el


formato de representación de la tabla 10.2.2.(b), esto es:

Estado Entradas Salida


inicial
E Z

47
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

0 1

q0 q0 q10 0

q10 q2 q10
0

q2 q10
q11
1

q0 q11
q2 0

Tabla 10.2.2.4. Tabla de transición de estados del autómata anterior.

 Efectuar la minimización de estados, en su caso. De nuevo, en nuestro caso, el número de


estados es tan reducido que no se justifica el esfuerzo necesario para el procedimiento de
minimización.

 Deducción del número de estados distinguibles en los que se puede encontrar el


autómata. Evidentemente hay cuatro {q0, q10, q11, q2}, por lo que se necesitarán 2
bits para codificar dichos estados. Sean Q1Q0 estos bits. Hacemos la codificación:

Q1 Q0 Estado

00 q0

01 q10

10 q11

11 q2

48
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Realizar la tabla de verdad del autómata. Tendremos en cuenta que se van a emplear
biestables de tipo JK.

Estado Entradas
Entrada/s Estado síncronas a
Siguiente Salida
Inicial los
biestables Z
Q1(t) Q0(t) Q1(t+1)Q0(t+1
E
) J1 K1 J0 K0

0 0 0 0 0 0 x 0 x 0

0 0 1 1 1 1 x x 0 0

0 1 0 1 1 x 0 1 x 1

0 1 1 0 0 x 1 x 1 0

1 0 0 0 1 0 x 1 x 0

1 0 1 0 1 0 x x 0 0

1 1 0 0 1 x 1 1 x 1

1 1 1 1 0 x 0 x 1 0

Tabla 10.2.2.5. Tabla de verdad del autómata anterior.

 Diseñar la red combinacional de paso al estado siguiente y de salida (ver diagrama


de bloques 10.1.2, en este caso) empleando los recursos disponibles (puertas
lógicas, en este caso).

Se desprenden las siguientes formas implícitas para las funciones de conmutación J1,
K1, J0, K0 y Z.

49
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

La simplificación de estos 5 mapas de Karnaugh, de 23= 8 casillas los cuatro


primeros y de 22=4 casillas el último (obsérvese que la salida Z solamente depende
del estado del autómata) ofrece como resultados:

50
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Por lo tanto, el autómata finalmente puede dibujarse de la siguiente forma (obsérvese


que el reloj principal, MASTER CK, se conecta a todos los biestables simultáneamente,
puesto que el autómata es un dispositivo síncrono):

MEMORIA

J Q J Q
Master
CK

CK CK

RED
“1”
COMBINACIONAL

(ESTADO

SIGUIENTE)

51
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Fig. 10.2.2.6. Diseño final. Identificación de los bloques constituyentes.

52
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

§ 10.3. Álgebra de los autómatas secuenciales finitos. Equivalencia y minimización de


estados.

A la vista de las definiciones del apartado § 10.1. todo autómata se puede


entender como un módulo digital secuencial que recibe una serie de entradas binarias,
tiene un estado determinado, y en función de estas entradas y su estado, calcula su
estado siguiente y genera las salidas binarias (que dependerán del estado y las
entradas binarias, si se trata de un autómata de Mealy, o sólo del estado, si el
autómata es de Moore).

Sea, pues, E = {e0,…, eN-1} el conjunto de las N entradas binarias distintas que
puede recibir el autómata. Sea, además, Q = {q0,…, qM-1} el conjunto de los M posibles
estados distintos en los que puede encontrarse el autómata, M  N, M < . Finalmente,
sea Z = {z0,…, zL-1} el conjunto de las L salidas distintas que puede generar a su
salida dicho autómata. Sean  y  funciones de conmutación que permiten calcular el
estado siguiente y la salida, respectivamente:

: Q  E  Q

(qi,ej)  (qi,ej):= qk

i,k {0,…,M-1} j{0,…,N-1}

: Q  E  Z

(qi,ej)  (qi,ej):=zk

i {0,…,M-1} j{0,…,N-1} k{0,…,L-1}

53
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

La evolución en los estados y salidas del autómata para cualquier secuencia de


entrada se define por inducción, esto es, si el estado inicial del autómata es qi
(i{0,…, M-1}) y se introducen las entradas ei y ej, (i,j{0,…, N-1}):

2(qi¸eiej) = ((qi,ei),ej)

2(qi¸eiej) = ((qi,ei),ej)

Se define la siguiente relación de equivalencia entre los estados del autómata.

Definición. (Estados equivalentes). Se dice que los estados qi y qj, i,j{0,…, M-1}
son equivalentes por la relación de equivalencia R, y se escribirá qi~Rqj, si, para
cualquier secuencia de entradas de cualquier longitud n, e1…en,

n(qi, e1…en)= n(qj, e1…en)

Se demuestra que es una relación de equivalencia de forma muy sencilla.

1. ¿~R reflexiva?

Dado qi  Q, está claro que qi~Rqi, puesto que, dada cualquier secuencia de entradas de
longitud n, e1…en
n(qi, e1…en)= n(qj, e1…en)

2. ¿~R simétrica?

Dados qi y qj  Q, si qi~Rqj, ¿qj~Rqi?

Dada cualquier secuencia de entradas de longitud n, e1…en. Si


54
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

n(qi, e1…en)= n(qj, e1…en)

Evidentemente

n(qj, e1…en)= n(qi, e1…en)


3. ¿~R transitiva?

Dados qi, qj y qk, si qi~Rqj y qj~Rqk, ¿qi~Rqk?

Dada cualquier secuencia de entradas de longitud n, e1…en, como qi~Rqj

n(qi, e1…en)= n(qj, e1…en)

y, además, puesto que qj~Rqk, entonces:

n(qj, e1…en)= n(qk, e1…en)

por lo que

n(qi, e1…en)= n(qk, e1…en)

Esta definición, desde el punto de vista matemático, está muy bien. Ahora bien,
carece totalmente de practicidad, por cuanto, para demostrar que dos estados de Q son
equivalentes, habría que calcular las salidas que se producen cuando, desde esos
estados, se evoluciona siguiendo una secuencia arbitraria de entradas, de cualquier
longitud, ¡y hay infinitas secuencias de este tipo!

Puede sernos útil el siguiente teorema.

55
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Teorema. Los estados qi y qj, i,j{0,…,M-1} son equivalentes por la relación de


equivalencia R, y se escribirá qi~Rqj, si, y sólo si, para cualquier entrada ek
(k{0,...,N-1}) de E,

(qi, ek)= (qj, ek)

(qi, ek)= (qj, ek)

Demostración.

)

Mostremos, en primer lugar que, si dos estados son equivalentes, entonces debe
cumplirse lo anterior.

Sean qi y qj equivalentes, esto significa que, dada cualquier secuencia de


entradas de longitud n, e1…en

n(qi, e1…en)= n(qj, e1…en)

Por lo tanto, tomando n=1 (una secuencia de entradas de longitud 1),

(qi, e1)= (qj, e1)

donde e1 puede ser un elemento cualquiera de E.

Por otra parte

n(qi, e1…en)= (n-1(qi, e1…en-1), en)

n(qj, e1…en)= (n-1(qj, e1…en-1), en)

56
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

de donde deducimos que

n-1(qi, e1…en-1)= n-1(qj, e1…en-1)

Procediendo de forma análoga:

n-1(qi, e1…en-1)=(n-2(qi, e1…en-2), en-1)

y, por otra parte,

n-1(qj, e1…en-1)=(n-2(qj, e1…en-2), en-1)

y así sucesivamente, por lo que finalmente llegamos a:

(qj, e1)=(qj, e1)

donde e1 puede ser un elemento cualquiera de E.

)

Supongamos que, para cualquier ek  {0,...,N-1} de E, se cumple

(qi, ek)= (qj, ek)

(qi, ek)= (qj, ek)

57
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Tomemos una secuencia cualquiera e1...en de elementos de E, de longitud n.

n(qi, e1…en)= ((qi, e1), e2…en)= ((qj, e1), e2…en)= n(qj, e1…en)

Como se quería demostrar.

Si dos estados qi y qj son equivalentes, sea cual sea la entrada que le llegue
al autómata estando en estos estados, producirá la misma salida, independientemente
de cuál sea su estado inicial, qi o qj. Por lo tanto, externamente estos estados son
indistinguibles.

El proceso de minimización consiste en intentar reducir el total de estados del


autómata a los realmente indistinguibles. Esto es, se pretende encontrar el conjunto
cociente de Q por la relación de equivalencia ~R, esto es, Q/~R, o, lo que es lo
mismo, agrupar los elementos de Q en clases de equivalencia (que, obviamente, deben
ser disjuntas).

Este proceso es sencillo de seguir:

 Se agrupan aquellos elementos de Q que, en las transiciones, produzcan las mismas


salidas. Esto es, se agrupan aquellos estados que son indistinguibles para
secuencias de entrada de longitud 1.

Algebraicamente, esto equivale a agrupar aquellos estados qi, qj, qk, ..., tales
que:

(qi,e) = (qj,e) = (qk,e)

58
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

 Iterativamente, para aquellos grupos no unitarios, se analizan las transiciones de


cada uno de los estados del grupo. Hay división del grupo cuando sus estados no
evolucionan hacia los mismos grupos de la iteración anterior en las transiciones.
Esto es, en el paso n-simo se intentan encontrar los estados indistinguibles para
secuencias de longitud n+1. El proceso finaliza cuando, en una iteración, no se
produce ninguna subdivisión de grupos.

Ejemplo. Autómata de tipo Mealy.

Vamos a simplificar el autómata de tipo Mealy cuya tabla de transición de


estados está dada por:

Estado Entrada
inicial 0 1

q0 q0/0 q1/0

q1 q2/0 q3/0

q2 q0/0 q4/0

q3 q5/0 q3/0

q4 q6/1 q3/0

q5 q7/1 q4/0

q6 q0/0 q4/0

q7 q0/0 q1/0

Tabla 10.3.1 Tabla de transiciones del autómata de

tipo Mealy.

 Se agrupan aquellos elementos de Q = {q0,...,q7} que, en las transiciones,


produzcan las mismas salidas. Esto conduce a:

59
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

C1={q0, q1, q2, q3, q6, q7}

C2={q4, q5}

 Iteración Nº1.

Grupo C1:

Por lo tanto, hay división de grupos:

C11={q0, q1, q7}

C12={q2, q6}

C13={q3}

Grupo C2:

60
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Por lo tanto, hay división de grupos:

C21={q4}

C22={q5}

Iteración Nº2.

Grupo C11:

Por lo tanto, hay división de grupos.

Grupo C12:

Por lo tanto, no hay división de grupos.

Finalmente, los grupos C13, C21 y C22 son unitarios, y no se procesan.

Resumiendo:

C111={q0, q7}

C112={q1}

C12={q2, q6}

61
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

C13={q3}

C21={q4}

C22={q5}

Iteración Nº3.

Grupo C111:

Por lo tanto, no hay división de grupos.

Grupo C12:

Por lo tanto, no hay división de grupos.

Finalmente, los grupos C112, C13, C21 y C22 son unitarios, y no se procesan.

Resumiendo:

C111={q0, q7}

C112={q1}

62
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

C12={q2, q6}

C13={q3}

C21={q4}

C22={q5}

Como en esta iteración no ha habido división de grupos, el proceso


concluye. Solamente faltaría escoger un representante de cada clase de
equivalencia, por ejemplo, q0 de C111, q1 de C112, q2 de C12, q3 de C13, q4 de C21 y q5
de C22, con lo cual la tabla de estados reducida quedaría:

Estado Entrada
inicial 0 1

q0 q0/0 q1/0

q1 q2/0 q3/0

q2 q0/0 q4/0

q3 q5/0 q3/0

q4 q2/1 q3/0

q5 q0/1 q4/0

Tabla 10.3.2. Tabla reducida de transiciones del autómata de

tipo Mealy.

Ejemplo. Autómata de tipo Moore.

Vamos a simplificar el autómata de tipo Moore cuya tabla de transición de


estados está dada por:

63
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Estado Entrada Salida


inicial 0 1 z

A F E 0

B A 1
B
D B 0
C
C I 1
D
E C D 1

K J 0
F
B F 1
G
D G 0
H
H E 1
I
M E 1
J
K E 0
K
G K 1
L
I L 0
M

Tabla 10.3.3 Tabla de transiciones del autómata de

tipo Moore. Obsérvese la notación

empleada para los estados.

 Se agrupan aquellos elementos de Q = {A,...,M} que, en las transiciones, produzcan


las mismas salidas. Esto conduce a:

C1={A, C, F, H, K, M}

C2={B, D, E, G, I, J, L}

 Iteración Nº1.

64
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Grupo C1:

Por lo tanto, hay división de grupos:

C11={A, F, K}

C12={C, H, M}

Grupo C2:

Por lo tanto, hay división de grupos:

C21={B, G, L}

C22={D, E, Ï, J}

Iteración Nº2.

Grupo C11:

65
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Por lo tanto, hay división de grupos.

Grupo C12:

Por lo tanto, no hay división de grupos.

Grupo C21:

Por lo tanto, no hay división de grupos.

Grupo C22:

Por lo tanto, no hay división de grupos.

Resumiendo:

C11={A, F, K}

66
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

C12={C, H, M}

C21={B, G, L}

C22={D, E, Ï, J}

Como en esta iteración no ha habido división de grupos, el proceso concluye.


Solamente faltaría escoger un representante de cada clase de equivalencia, por
ejemplo, A de C11, C de C12, B de C21 y D de C22, con lo cual la tabla de estados reducida
quedaría:

Estado Entrada Salida


inicial 0 1 z

A A D 0

B A 1
B
C D B 0

C D 1
D

Tabla 10.3.4. Tabla reducida de transiciones del autómata de

tipo Moore.

67
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

BIBLIOGRAFÍA

[1] “Diseño Lógico”, Antonio Lloris, Alberto Prieto. Ed. McGraw-Hill, 1.996.

[2] “Circuitos Lógicos”, Gustavo López Rubio. Segunda edición, 2000.

Tema 9. Contadores síncronos

§ 9.1. Introducción.

Problemas de los contadores asíncronos.

La motivación que nos lleva al estudio de este tipo de contadores síncronos se


debe fundamentalmente a los problemas que presentan el otro tipo de contadores que
hemos visto hasta el momento, esto es, los contadores asíncronos.

68
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Hagamos primeramente un breve repaso de estos problemas:

1. El hecho de que el reloj principal (MASTER CK, cuyos impulsos


hay que contar) se conecte solamente al primer biestable (el menos
significativo), implica que los biestables que componen el contador pueden
cambiar sus estados en instantes de tiempo distintos. Esto tiene una
consecuencia muy importante que se ilustra a través del siguiente ejemplo, y
que no es más que la lentitud con que se producen ciertos tránsitos de
estado.

Así, por ejemplo, en un contador asíncrono ascendente módulo-8, como el que


se muestra en la figura, la transición desde el estado 111 al estado 000, se
produce de la forma siguiente: en primer lugar, al llegar el flanco de bajada
del MASTER CK al biestable 0, éste invierte su estado, pasando desde “1” a
“0”. En este momento, el biestable 1 recibe por su entrada de reloj el flanco
de bajada en el estado Q0, e invierte su estado, pasando desde “1” a “0”.
Finalmente, cuando ha ocurrido esto, el biestable 2 recibe por su entrada de
reloj el flanco de bajada de Q1, e invierte su estado pasando también desde
“1” a “0”. Si nos fijamos bien, el paso desde “111” hasta “000” se realiza de
forma secuencial. Primero es Q0 el que cambia de estado, luego de hacerlo Q0
lo hace Q1, y finalmente, una vez que lo ha hecho Q 1 lo hace Q2. Si suponemos
que cada puerta tarda TR unidades temporales en cambiar desde “1” a “0”, el
tiempo que tarda el biestable Q2 en cambiar de estado será 3·TR, y este
cálculo coincide con el tiempo que tarda el contador en pasar desde “111”
hasta “000”.

Q0 “1 Q1 Q2

“1 “1 “1
P ” P P
” ”
Master
J Q J Q J Q
CK

CK CK CK

K Q K Q K Q
“1
C ”C C

69
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Fig. 9.1.1. Contador asíncrono sscendente módulo-8.

En general, si se tiene un contador asíncrono implementado con n


biestables, en el caso más desfavorable existe una transición de estados que
puede prolongarse durante n·TR unidades de tiempo, hecho que ralentiza el
funcionamiento del dispositivo digital.

2. Si se construye un contador asíncrono de módulo inferior al máximo con una


red de puesta a cero por defecto, entonces, como sabemos, durante el último
ciclo de reloj existe un estado no deseado que tiene una duración temporal
de medio ciclo.

Supongamos que se dispone, por ejemplo, del contador módulo-5 que se muestra
a continuación, en el que la red de puesta es por defecto. Esto es, se ha
tomado N (módulo del contador, en nuestro caso, 5), se le ha restado 1, se
ha codificado N-1 en binario (5-1=410)=1002)) , y se han llevado las salidas
de los biestables que están a “1” (en este caso, el último, Q 2) a las
entradas de una puerta nand, cuya salida se ha conectado a las de PRESET de
los biestables cuyas salidas, para el estado (N-1)2), están a “0”, esto es,
Q0 y Q1, como se muestra en la figura.

Q0 Q1

“1 “1 “1 Q2
“1
” ” P ” P
Master ”
CK J Q J Q

P CK CK

J Q

K Q K Q

CK C C

K Q 70

C
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

“1

Fig. 9.1.2. Contador asíncrono sscendente módulo-5.

El cronograma de lo que ocurre con el contador se muestra a continuación.


CK t
 Hasta este instante la
evolución del contador es
la normal, se producen las
transiciones:
000001010011100

Q0 t

 En este instante el Master


CK=”1” y Q2=”1”, por lo que
71 la salida de la nand se
pone a “0”, y se fuerza la
puesta a “1” de Q1 y Q0.
Q1 t Aparece un estado no
deseado (el “111”) que
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

 

Fig. 9.1.3. Cronograma del contador asíncrono módulo-8.

3. El último inconveniente que presentan los contadores asíncronos es el siguiente: a


pesar de que se pueden generar secuencias ascendentes o descendentes, en ellas los
estados se suceden de forma ordenada. Pero, ¿y si se desea construir un contador
cuya cuenta de estados no sea ordenada? (por ejemplo, con 3 bits, un contador que
genere la secuencia de salida 000010101111001011110100000...).

Con objeto de subsanar estas deficiencias, surgen los contadores síncronos. De


la misma forma que los asíncronos, se definen como módulos secuenciales capaces de
contar los impulsos de reloj que le llegan a su entrada, y de generar secuencias
diferentes de salida, pero que en este caso podrán estar ordenadas o no.

Básicamente existen dos técnicas de construcción de contadores síncronos: a


partir de registros, o mediante diseño lógico.

§ 9.2. Diseño de contadores síncronos a partir de registros.

§ 9.2.1. Contadores en anillo.

Ya hemos estudiado en el capítulo anterior que los registros son módulos


secuenciales síncronos. Existe una primera forma sencilla de efectuar un contador
síncrono, que es a partir de un registro de desplazamiento con entrada paralelo y
72
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

salida paralelo con desplazamiento, como el que se muestra en la figura de la página


siguiente.

I0 Q0 I1 Q1 I2 Q2 I3 Q3

Grabar

P P P P

D Q D Q D Q D Q

CK Q CK Q CK Q CK Q

C C C C

SHIFTER

73
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Fig. 9.2.1.1. Registro de desplazamiento con entrada paralelo y salida serie conectado como contador síncrono módulo-4.

Si se inicializa este registro de desplazamiento con un valor distinto de cero,


y a partir de ahí se comienzan a introducir pulsos del Master CK, el contenido del
registro se irá desplazando hacia la derecha, de forma que, el estado del último
biestable D, esto es, Q3, sirve como entrada síncrona para el biestable Q 0. Se
establece así un ciclo formado por un cierto número de estados, que vamos a
determinar.

Supongamos, por ejemplo, que se carga 10002) en el registro. Para ello, es


necesario seguir una secuencia de pasos, que es la siguiente:

 Activar la línea BORRAR, poniéndola a “0” (activa a nivel bajo). Esto hará que
el estado de los cuatro biestables se ponga a “0”.

 Desactivar la línea BORRAR, poniéndola a “1”. Activar la línea GRABAR,


poniéndola a “1” (activa a nivel alto), y colocar en I 0, I1, I2 e I3 los valores
binarios que se desean grabar, esto es, “1”, “0”, “0”, “0” respectivamente.

 Desactivar la línea GRABAR. Ahora el estado del registro es “1000”.

 Introducir los pulsos de reloj por el Master CK.

Pulso de CK Estado
Q0Q1Q2Q3

0 (Estado 1000
inicial)

1 0100

2 0010

3 0001

4 1000

Tabla 9.2.3.1. Tabla de transiciones del registro de desplazamiento

74
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Obsérvese que en el cuarto pulso del Master CK, el estado del registro vuelve a
coincidir con el estado inicial, por lo que habrá entrado en un ciclo en el que
pasa por los cuatro estados 1000010000100001.

1000

0001 0100

0010

Fig. 9.2.1.4. Diagrama de flujo del registro.

Este contador efectúa las transiciones de forma síncrona, puesto que, al estar
internamente los relojes de los biestables conectados entre sí en el registro,
las transiciones se producen simultáneamente, en los mismos instantes de tiempo,
que son los flancos de bajada del Master CK en este caso.

Ahora bien, es indudable que este contador, que sí puede generar secuencias de salida no
consecutivas (véase el flujograma anterior), adolece de dos desventajas de mayor índole.
¿Cuáles son esas desventajas?

75
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

1. Pues, en primer lugar, que desperdicia los recursos. Ya se sabe que con
un número de n biestables se pueden implementar contadores (asíncronos)
de cuyo módulo sea de hasta 2n. En cambio, con un registro de n bits y
siguiendo esta técnica, sólo se podrán implementar contadores
(síncronos) de módulo n, por lo que se “desperdician” 2n-n estados (y
esta cifra puede llegar a ser muy alta; en efecto, tómese n=5 y se verá
que se desperdician un total
de 25-5 = 27 estados).

2. En segundo lugar, este contador síncrono implementado a partir de


registro necesita de inicialización. Esto es, para que funcione debe
cargarse en el paso 2 una secuencia distinta de “0000”, porque de lo
contrario el diagrama de flujo del contador será:

0000

Fig. 9.2.1.5. Diagrama de flujo del registro, con secuencia

de inicialización no válida (“0000”).

Esto es, sólo tendrá un estado, el inicial.

§ 9.2.2. Contadores en anillo de Johnson.

Ambos problemas se pueden remediar construyendo los denominados contadores en


anillo de Johnson. Estos contadores se pueden implementar sencillamente con registros
de desplazamiento con entrada serie y salida paralelo. Un contador en anillo de
Johnson con cuatro bits se muestra en la siguiente figura:

Q0 Q1 Q2
Q3
“1”
76
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

P P P P

D Q D Q D Q D Q

CK Q CK Q CK Q CK Q

C C C C

“1”
Master CK
SHIFTER

Fig. 9.2.2.1. Registro de desplazamiento con entrada paralelo y salida serie conectado como contador síncrono módulo-4.

Como se puede apreciar, la única diferencia con respecto al anterior es que


se ha sustituido el registro de desplazamiento con entrada paralelo y salida serie
por un registro con entrada serie y salida serie (más sencillo) y que en la
realimentación desde Q3 hasta D0 se ha introducido una puerta lógica inversora.
¿Por qué? Para evitar tener que inicializar el registro con un valor distinto de
“0000”. Supongamos que el registro arranca con “0000”. Esto es lo que sucederá en
los sucesivos pulsos de reloj.

Pulso de CK Estado
Q0Q1Q2Q3

0 (Estado 0000
inicial)

1 1000

77
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

2 1100

3 1110

4 1111

5 0111

6 0011

7 0001

8 0000

Tabla 9.2.3.1. Tabla de transiciones del registro de desplazamiento

Obsérvese, en primer lugar, que en el pulso de reloj 1, como Q 3 realimenta a D0 a


través de un inversor y en el estado inicial Q3=”0”, ocurrirá que D0 tendrá un “1” (el
complemento de Q3) antes de que llegue el pulso 1 de reloj, de forma que cuando este
pulso se produzca, Q0 pasará a valer “1”. En segundo lugar, obsérvese que, después de
8 pulsos de reloj, se llega de nuevo al estado inicial.

Respecto del anterior, este contador presenta dos ventajas, la primera, que no
requiere inicialización, y la segunda, que con n biestables puede implementar
contadores de módulo 2·n. Sigue desaprovechando, pues, 2n-2·n estados, pero
desaprovecha menos estados que el contador en anillo normal de la sección § 9.2.1.

§ 9.3. Diseño lógico de contadores síncronos.

Esta técnica, es, sin duda, la mejor forma de aprovechar los recursos (los
biestables) para construir un contador síncrono. En cambio, tiene el inconveniente de
tener que calcular la lógica combinacional que permita cambiar de estado al contador.

El principio de diseño es el siguiente.

 Del enunciado del problema, averiguar el módulo del contador que se desea construir
(N).

78
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

 Calcular el número de biestables (n) que se necesitan para ello, como el


número entero más cercano, por arriba, a log2(N).

 Elegir el tipo de biestables que se van a utilizar (la mayor parte de las veces vendrá
impuesto por el enunciado del problema), y conectar todas las entradas de reloj de
esos n biestables al Master CK. Desactivar las entradas asíncronas.

 Codificar los estados del contador y elaborar la llamada tabla de transición de


estados, en la cual se especifican, por una parte, el estado actual del contador, por
otra, el estado siguiente, y, finalmente, el valor de las entradas síncronas para que
esa transición sea posible.

Estado actual Estado siguiente Entradas síncronas

Q(t) Q(t+1)

 Simplificar las funciones de conmutación que forman las entradas síncronas, de


acuerdo con los recursos (puertas lógicas, módulos combinacionales MSI como
multiplexores, etc.) de que se disponga.

 Dibujar esta red combinacional.

Como ejemplo, supongamos que se desea construir un contador que genere la


secuencia de los números pares comprendidos entre 0 y 9, con biestables de tipo JK y
puertas lógicas.

Esto es, el contador deberá generar la secuencia 024680...

 Del enunciado del problema, deducimos que el módulo del contador es 5, puesto que el
ciclo del mismo se compone de 5 estados (0, 2, 4, 6 y 8). Por lo tanto, N=5.

 Calcular el número de biestables (n) que se necesitan para ello, como el


número entero más cercano, por arriba, a log2(N)=log2(5).

79
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)


De aquí deducimos n=3. Ahora bien, las salidas que debe dar el contador son
000000100100011010000000, etc. Esto significa que se puede abordar el
problema de dos formas distintas:

 Emplear 4 biestables para poder codificar estas 5 salidas.


 Emplear 3 biestables, con los cuales se pueden conseguir 8 estados distintos,
y construir un contador módulo-5 ascendente, y luego un transcodificador que
convierta de la siguiente forma:

Salidas del Salidas


contador módulo-5 definitivas
ascendente Q3Q2Q1Q0

Q2Q1Q0

000 0000

001 0010

010 0100

011 0110

100 1000

Tabla 9.3.1. Tabla de verdad del transcodificador.

Con la estrategia primera, necesitamos 4 biestables para codificar los 5


estados de salida:

 Elegir el tipo de biestables que se van a utilizar (JK, de acuerdo con el enunciado
del problema), y conectar todas las entradas de reloj de esos n=4 biestables al Master
CK. Desactivación de entradas asíncronas (PRESET y CLEAR)

“1

P P P P

J Q J Q J Q J Q
80

CK CK CK CK
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

“1
Master

CK
Fig. 9.3.2. Conexión del Master CK a los n biestables del contador
Síncrono.

 Codificar los estados del contador. Lo haremos en binario natural, esto es 010)=00002),
210)=00102), 410)=01002) y 810)=10002).

Estado actual Estado siguiente Entradas síncronas

Q(t) Q(t+1)

0000 0010

0001 Xxxx

0010 0100

0011 Xxxx

0100 0110

0101 Xxxx

0110 1000

0111 Xxxx

1000 0000

1001 Xxxx

1010 Xxxx

1011 Xxxx

1100 Xxxx

1101 Xxxx

1110 Xxxx

1111 Xxxx

Tabla 9.3.3. Tabla de estados.

81
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

En la columna Estado actual Q(t) están todos los posibles estados actuales,
por algunos de los cuales el contador jamás pasará. Véanse, por ejemplo, el
estado 0001 ó el 0011. Por supuesto, no importa cuál sea el estado siguiente a
estos estados, porque, de hecho, el contador jamás pasará por ellos.

Una vez rellenada la segunda columna, es necesario ver el valor de las


entradas síncronas a los biestables. Tenemos cuatro biestables JK, por lo que
se tendrán un total de ocho entradas síncronas J 3, K3, J2, K2, J1, K1, J0 y K0
(dos por biestable)

Recordando que la tabla de excitaciones de un biestable JK está dada por:

Q(t) Q(t+1) J K
0 0 0 x

0 1 1 x

1 0 x 1

1 1 x 0

hay que rellenar la tabla preguntándose, ¿cuánto deben valer J3, K3 para que
Q3(t) pase a Q3(t+1)? ¿cuánto deben valer J2, K2 para que Q2(t) pase a Q2(t+1)?
¿y cuánto deben valer J1, K1 para que Q1(t) pase a Q1(t+1)? ¿y cuánto deben
valer J0, K0 para que Q0(t) pase a Q0(t+1)?

Estado actual Estado siguiente Entradas síncronas

Q(t) Q(t+1)
Q3(t)Q2(t)Q1(t)Q0(t) Q3(t+1)Q2(t+1)Q1(t+1)Q0(t+1) J3 K3 J2 K2 J1 K1 J0
K0

0000 0010 0 x 0 x 1 x 0 x

0001 xxxx x x x x x x x x

0010 0100 0 x 1 x x 1 0 x

0011 xxxx x x x x x x x x

0100 0110 0 x x 1 1 x 0 x

0101 xxxx x x x x x x x x
82
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

0110 1000 1 x x 1 x 1 0 x

0111 xxxx x x x x x x x x

1000 0000 x 1 0 x 0 x 0 x

1001 xxxx x x x x x x x x

1010 xxxx x x x x x x x x

1011 xxxx x x x x x x x x

1100 xxxx x x x x x x x x

1101 xxxx x x x x x x x x

1110 xxxx x x x x x x x x

1111 xxxx x x x x x x x x

Tabla 9.3.4. Tabla de transiciones del contador.

 Ahora se tienen 8 funciones de conmutación que es necesario simplificar.


Fácilmente se puede ver que K3 = K2 = K1 = “1”, K0 = “0” (sustituyendo los don’t
cares en K3, K2 y K1 por “1”,y en K0 por “0”). Además, J0 = “0”, J1=Q3(t),
J2=Q1(t), J3=Q2(t)·Q1(t).

83
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

 Dibujar esta red combinacional.

Q3 Q2 Q1
Q0

“1

P P P “0 P

J Q J Q J Q
” J Q

CK CK CK CK

K Q K Q K Q K Q

C C C C

“1

Master
CK

Fig. 9.3.5. Aspecto final del contador.

84
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Con la segunda estrategia, elegiríamos 3 biestables para construir un


contador módulo-5 ascendente.

 (Bis) Elegir el tipo de biestables que se van a utilizar (JK, de acuerdo con el
enunciado del problema), y conectar todas las entradas de reloj de esos n=3 biestables
al Master CK. Desactivación de entradas asíncronas (PRESET y CLEAR)

“1

P P P

J Q J Q J Q

CK CK CK

K Q K Q K Q
“1
Master C ”C C
CK
Fig. 9.3.6. Conexión del Master CK a los n biestables del contador
Síncrono.

 (Bis) Codificar los estados del contador. Lo haremos en binario natural, esto es
010)=00002), 210)=00102), 410)=01002) y 810)=10002).

Estado actual Estado siguiente Entradas síncronas

Q(t) Q(t+1)

000 001

001 010

010 011

011 100

100 000

101 xxx

110 xxx

111 xxx

Tabla 9.3.7. Tabla de estados.

En la columna Estado actual Q(t) están todos los posibles estados actuales,
por algunos de los cuales el contador jamás pasará. Véanse, por ejemplo, el
85
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)


estado 101 ó el 111. Por supuesto, no importa cuál sea el estado siguiente a
estos estados, porque, de hecho, el contador jamás pasará por ellos.

Una vez rellenada la segunda columna, es necesario ver el valor de las


entradas síncronas a los biestables. Tenemos ahora tres biestables JK, por lo
que se tendrán un total de seis entradas síncronas J 2, K2, J1, K1, J0 y K0 (dos
por biestable)

Recordando que la tabla de excitaciones de un biestable JK está dada por:

Q(t) Q(t+1) J K
0 0 0 x

0 1 1 x

1 0 x 1

1 1 x 0

hay que rellenar la tabla preguntándose, ¿cuánto deben valer J2, K2 para que
Q2(t) pase a Q2(t+1)? ¿y cuánto deben valer J1, K1 para que Q1(t) pase a Q1(t+1)?
¿y cuánto deben valer J0, K0 para que Q0(t) pase a Q0(t+1)?

Estado actual Estado siguiente Entradas síncronas

Q(t) Q(t+1)
Q2(t)Q1(t)Q0(t) Q2(t+1)Q1(t+1)Q0(t+1) J2 K2 J1 K1 J0 K0

000 001 0 x 0 x 1 x

001 010 0 x 1 x x 1

010 011 0 x x 0 1 x

011 100 1 x x 1 x 1

100 000 x 1 0 x 0 x

101 xxx x x x x x x

110 xxx x x x x x x

111 xxx x x x x x x

Tabla 9.3.8. Tabla de transiciones del contador.

86
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

 (Bis) Ahora se tienen 6 funciones de conmutación que es necesario simplificar.


Fácilmente se puede ver que J2=Q1(t)·Q0(t), K2=1, J1 = Q0(t), K1 = Q0(t), J0 =
Q2(t), K0 = “1”.

 (Bis) Dibujar esta red combinacional.

Q’2 Q’1 Q’0

“1

P P P

J Q J Q J Q

CK CK CK

K Q K Q K Q

C C C

“1

Master
CK

87
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)


Fig. 9.3.9. Aspecto del contador módulo-5 ascendente.

 Finalmente, es necesario implementar un transcodificador que haga la conversión de


estados. Esto es:

Salidas del Salidas


contador módulo-5 definitivas
ascendente Q3Q2Q1Q0

Q’2Q’1Q’0

000 000 0

001 001 0

010 010 0

011 011 0

100 100 0

Tabla 9.3.1. (Bis) Tabla de verdad del transcodificador.

Se observa que únicamente es necesario, para obtener las salidas deseadas, añadir un
“0” como bit menos significativo, tal y como se indica en la tabla 9.3.1, que hemos
repetido aquí por comodidad.

Por lo tanto, el contador definitivo es:

Q3 Q2 Q1 Q0

TRANSCODIFICADOR

“1

“0”
P P P

J Q J Q J Q

88

Master CK CK CK
“1
CK
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

Fig. 9.3.10. Aspecto del contador ascendente construido con un


Número mínimo de biestables y transcodificador.

89
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

90
Universidad Pontificia de Salamanca en Madrid
Facultad / Escuela Universitaria de Informática

Circuitos y Sistemas Digitales (Teoría)

BIBLIOGRAFÍA

[1] “Circuitos Lógicos”, Gustavo López Rubio. Segunda edición, 2000.

[3] “Diseño Lógico”, Antonio Lloris, Alberto Prieto, Ed. McGraw-Hill.

91

También podría gustarte