EJERCICIO 1 (Examen del Plan Antiguo Electrónica II Junio 2000/1 y Junio 2001/2 2ª Prueba Personal 1ª Semana).
Un circuito digital tiene una única entrada por la que llegan impulsos aleatorios de 15ms de duración. Diseñe un circuito en el que al llegar el primer impulso, la salida S1 se ponga a 1, al llegar el segundo impulso, la salida S2 se ponga a 1, y al llegar el tercer impulso, ambas salidas se pongan a cero nuevamente, comenzando otra vez el ciclo.
SOLUCIÓN:
Tenemos una entrada que llamaremos E que valdrá 0 durante intervalos de tiempo indeterminados y 1 durante instantes de 15ms.
Hay dos salidas S1 y S2 que irán tomando los valores que nos indica el enunciado del problema. Podemos verlo en el siguiente diagrama:
Vamos a realizar la tabla de fases del sistema: la tabla de fases se construye disponiendo tantas columnas como combinaciones posibles de las variables de entrada, más una por cada salida. Las columnas de las entradas se encabezan con las combinaciones de dichas variables; y las de las salidas se encabezan con su nombre. Así el encabezamiento de la tabla de fases de este problema será:
ENTRADAS: E | SALIDAS | ||
---|---|---|---|
0 |
1 |
S1 |
S2 |
En las líneas de la tabla se representarán los distintos "estados" que va a adoptar el circuito en función de las diferentes secuencias de entrada. Cada estado está caracterizado por una combinación de entradas, que le dan lugar, y él a su vez da lugar a unos valores de las variables de salida. Cada estado se representa por un número encerrado entre paréntesis, situado en la columna correspondiente a su combinación particular de entradas. Los valores de las salidas a que da lugar se escriben en la misma línea que el estado, y en la columna correspondiente a cada variable de salida.
En este sistema comenzamos con la entrada E = 0 y las salidas S1 = 0 y S2 = 0; a este estado se le asigna el símbolo (1) y da lugar a las salidas S1 = 0 y S2 = 0. A partir de este estado puede cambiar la entrada a E = 1 llevando al sistema a un nuevo estado (2), que se sitúa en una nueva línea debajo de su entrada. El circuito pasará del estado (1) al (2) efectuando lo que se denomina una transición. Las transiciones, o paso de un estado a otro, se representan en la tabla situando en la línea correspondiente al estado origen y en la columna de las combinaciones de entrada correspondiente, el mismo número del estado destino de la transición, pero sin paréntesis. Por tanto, del estado (1) estable con E = 0 cambiamos al (2) al cambiar E = 1 pasando por el estado de transición 2: la evolución del circuito es (1) - 2 - (2). En el estado (2) estable las salidas son S1 = 1 y S2 = 0.
ENTRADAS: E | SALIDAS | ||
---|---|---|---|
0 |
1 |
S1 |
S2 |
(1) |
2 |
0 |
0 |
(2) |
1 |
0 |
Desde el estado (2) podemos ir a otro estado nuevo al hacerse la entrada E = 0 que llamaremos (3), con las salidas iguales que en (2), pasando por el estado de transición 3. El estado (3) es un estado nuevo aunque tenga la misma entrada que el estado (1) E=0, ya que genera salidas diferentes. Así, según va cambiando la entrada E y con las especificaciones del enunciado vamos construyendo la tabla de fases con los nuevos estados que aparecen:
|
|
La tabla de fases se cierra al no aparecer ningún estado nuevo más. En el siguiente diagrama podemos ver la evolución de la entrada y las salidas deseadas en el enunciado del problema, asignándole los estados de la tabla de fases:
Recordamos que la salida de los circuitos secuenciales es función de las entradas y de las variables de estado interno (no confundir con los estados de la tabla de fases). Las variables de estado interno van cambiando también en función de las entradas y el estado interno en el que estaba el circuito.
En la tabla de fases se observa que los estados (1), (3) y (5) tienen la misma entrada E=0, pero diferentes salidas cada uno. Por tanto, las variables de estado interno serán diferentes para diferenciar cada uno de los estados (1), (3) y (5). Lo mismo ocurre con los estados (2), (4) y (6).
Para encontrar el número mínimo necesario de variables internas hay que reducir la tabla de fases. Una vez reducida la tabla, cada línea de la nueva tabla corresponde a una combinación de las variables de estado interno.
RECORDATORIO DE REDUCCIÓN DE LA TABLA DE FASES:
Dos líneas de la tabla de fases son reducibles si en ambas líneas y en las mismas columnas aparecen los mismos números; o bien si en alguna de las dos líneas aparecen guiones.
Al fusionarse dos líneas se escribe en cada posición:
a) el número de la transición (sin paréntesis) si había dos transiciones o una transición y un guión.
b) el número del estado estable (con paréntesis) si había un estado estable y una transición o un estado estable y un guión.
Según estas reglas en nuestra tabla de fases no hay posible fusión de estados. Así, como hay 6 líneas necesitamos 3 variables internas para codificarlas. Para codificar adecuadamente deben evitarse las transiciones entre estados internos no adyacentes (dos estados internos no son adyacentes cuando las variables internas que los codifican varían más de una, por ejemplo: 000 y 011; son adyacentes cuando sólo cambia una variable de la combinación, por ejemplo 000 y 001).
Imaginemos que codificamos aleatoriamente la tabla de fases:
ENTRADA: E | SALIDAS | VARIABLES INTERNAS | ||||
---|---|---|---|---|---|---|
0 |
1 |
S1 |
S2 |
Q1 |
Q2 |
Q3 |
(1) |
2 |
0 |
0 |
0 |
0 |
0 |
3 |
(2) |
1 |
0 |
0 |
1 |
0 |
(3) |
4 |
1 |
0 |
1 |
1 |
0 |
5 |
(4) |
1 |
1 |
0 |
1 |
1 |
(5) |
6 |
1 |
1 |
1 |
1 |
1 |
1 |
(6) |
0 |
0 |
1 |
0 |
0 |
En un sistema real, es virtualmente imposible que dos variables cambien de valor en un mismo instante. En el paso de (3) estable con E=0 a (4) estable con E=1 (líneas en amarillo), las variables internas pasan de 110 a 011 (dos estados internos no adyacentes), como no pueden cambiar Q1 y Q3 a la vez, puede que cambie primero Q1 a 0 y luego Q2 a 1, siguiendo las variables internas la siguiente secuencia 110 - 010 -011. Pero con las variables internas a 010 y entrada E=1 tenemos el estado (2) estable (línea en rojo), con lo que el circuito dará las salidas del estado (2), funcionando incorrectamente.
Para codificar correctamente con tres variables internas construimos un cubo cuyos vértices son las posibles combinaciones de las variables internas. Las aristas del cubo unen estados adyacentes. Asignamos a las líneas de la tabla de fases con transiciones estados adyacentes (vértices unidos por aristas).
Por tanto la codificación de estados será la siguiente:
ENTRADA: E | SALIDAS | VARIABLES INTERNAS | ||||
---|---|---|---|---|---|---|
0 |
1 |
S1 |
S2 |
Q1 |
Q2 |
Q3 |
(1) |
2 |
0 |
0 |
0 |
0 |
0 |
3 |
(2) |
1 |
0 |
1 |
0 |
0 |
(3) |
4 |
1 |
0 |
1 |
0 |
1 |
5 |
(4) |
1 |
1 |
1 |
1 |
1 |
(5) |
6 |
1 |
1 |
1 |
1 |
0 |
1 |
(6) |
0 |
0 |
0 |
1 |
0 |
Realizamos la tabla de verdad para los diferentes estados estables y de transición. Las variables internas de un estado de transición pasan de las que había en el estado estable del que procede a las que hay en el estado estable al que evoluciona el circuito. Las variables internas de un estado estable no cambian (variables internas antes igual a variables internas después).
La tabla de verdad de los biestables JK es:
J | K | Q antes | Q después |
---|---|---|---|
0 |
X |
0 |
0 |
1 |
X |
0 |
1 |
X |
1 |
1 |
0 |
X |
0 |
1 |
1 |
Si utilizamos biestables JK para el circuito, tenemos la siguiente tabla de verdad para las variables internas:
ESTADOS | ENTRADA | VARIABLES INTERNAS (antes) | VARIABLES INTERNAS (después) | BIESTABLES JK | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
E |
Q1 |
Q2 |
Q3 |
Q1 |
Q2 |
Q3 |
J1 |
K1 |
J2 |
K2 |
J3 |
K3 |
|
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
X |
0 |
X |
0 |
X |
3 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
X |
0 |
0 |
X |
1 |
X |
(3) |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
X |
0 |
0 |
X |
X |
0 |
5 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
X |
0 |
X |
0 |
X |
1 |
(5) |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
X |
0 |
X |
0 |
0 |
X |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
X |
X |
1 |
0 |
X |
2 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
X |
0 |
X |
0 |
X |
(2) |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
X |
0 |
0 |
X |
0 |
X |
4 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
X |
0 |
1 |
X |
X |
0 |
(4) |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
X |
0 |
X |
0 |
X |
0 |
6 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
X |
1 |
X |
0 |
0 |
X |
(6) |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
X |
X |
0 |
0 |
X |
Vamos a realizar las simplificaciones de cada variable interna y de las salidas por medio de los mapas de Karnaugh. Las entradas del mapa serán la entrada E y las variables internas Q1, Q2 Y Q3.
De la tabla de verdad se deduce que S1 = Q1 sin necesidad de mapa de Karnaugh. |
Por tanto, las entradas de los biestables JK y las salidas del circuito valen:
;
;
;
S1 = Q1; S2 = Q1Q2
Así, el circuito queda de la siguiente manera: