Professional Documents
Culture Documents
Al igual que suceda con los circuitos combinacionales, existen macrofunciones secuenciales que son implementadas en un solo integrado. Por lo tanto, estos circuitos, junto con los
MSI combinacionales, permiten la realizacin del diseo de circuitos digitales con elementos
MSI.
78
Q0
D0
D
clk
Q1
D1
D
Q2
D2
D
D0
Q0
D1
Q1
D2
Q2
D3
Q3
Q3
D3
D
clk
Q0
D0
D
Q1
D
Q2
D
Q3
D
clk
Q0
Q1
Q2
1 dato
2 dato
1 dato
3 dato
4 dato
2 dato
3 dato
1 dato
2 dato
clk
D0
SR
Q0
Q1
Q2
Q3
1 dato
Q3
clk
79
SH/LD
D1
D0
D2
D3
SER
D
Q0
Q1
Q2
Q3
clk
SH/LD
M1
M2
clk
D0
SER
D1
Q1
D2
Q2
D3
Q3
Q0
Figura 6.3.- Registro de desplazamiento con carga paralela de cuatro bits, junto a su smbolo.
En cambio, cuando la seal de control SH/LD se encuentre a nivel alto, estaremos
seleccionando el desplazamiento hacia la derecha a partir de la seal SER.
Hasta ahora slo hemos considerado el desplazamiento en un solo sentido. No obstante
tambin es interesante obtener un desplazamiento en los dos posibles sentidos. Debido a esta
reflexin surgi el denominado registro de desplazamiento universal. Este registro muestra
las siguientes operaciones:
Carga paralela,
desplazamiento hacia la izquierda,
desplazamiento hacia la derecha y
no operacin.
En la figura 6.4 mostramos un posible esquema lgico de este ltimo registro que engloba a
todos los dems. En ste se encuentran dos seales de control, S1 y S0, necesarias para poder
controlar las cuatro operaciones de las que dispone. En la tabla 6.1 se muestra la codificacin
de las seales de control que corresponde a cada una de las operaciones que realiza este tipo de
registro.
Este registro es utilizado para generar una arquitectura LIFO (Last In First Out, el
ltimo dato que entra es el primero que sale). Esta arquitectura, tambin denominada pila, es
como un pozo o pila en el que slo podemos acceder al elemento superior, ya sea para colocar
otro encima o para sacarlo, como mostramos en la figura 6.5. Por lo tanto, cuando queremos
escribir en la memoria LIFO, debemos realizar un desplazamiento hacia la derecha; mientras
que si queremos realizar una lectura, debemos realizar un desplazamiento hacia la izquierda
80
S1
S0
D0
D1
3
2
SR SER
D2
1
0
SL SER 2
1
D
D3
1
D
clk
Q0
Q1
Q2
Q3
Operacin
No operacin, la salida del biestable permanece constante al tenerla conectada a la entrada.
Desplazamiento hacia la derecha, la salida del biestable anterior est
conectado a la entrada del actual.
Desplazamiento hacia la izquierda, la salida del biestable posterior est
conectado a la entrada del actual.
Carga paralela, la entrada del biestable est conectado a la entrada paralela.
Tabla 6.1. Codificacin de las operaciones del registro de desplazamiento universal.
para que el biestable accesible (el primero) tenga un dato vlido. Un posible esquema lgico de
esta arquitectura es mostrado en la figura 6.5. En esta arquitectura es necesario aadir una unidad de control para detectar posibles situaciones no deseadas, como puede ser el desbordamiento (intentar escribir ms informacin de la que se puede almacenar) o intentar leer cuando
no existe ningn dato almacenado.
1.2. Contadores.
Un contador se puede definir de la siguiente forma:
un contador es un circuito secuencial que realiza una o varias de las siguientes funciones:
- cuenta el nmero de pulsos recibidos y almacena un
nmero que representa dicha cuenta,
- proporcionan un tren de pulsos obtenidos a partir de
la entrada, pero a una frecuencia menor, y
- proporciona una secuencia de patrones binarios para
aplicaciones tales como direccionamiento de memoria.
81
Desplazamiento
hacia la derecha
Desplazamiento
hacia la izquierda
R/W
0
1
0
D
0
D
Unidad
de
Control
Q
clk
Estado
Entrada
cuenta
Si queremos ampliar el contador a un nmero mayor de bits podemos conectar el contador anterior en cascada. Para ello, debemos tener en cuenta que la siguiente cuenta slo se debe
producir cuando la primera haya finalizado, es decir, haya vuelto a cero. Por lo tanto, el
siguiente biestable debe ser disparado por el flanco de bajada. Por homogeneidad del diseo, se
disparan todos los biestables por el flanco de bajada, contado realmente los flancos negativos.
Un contador de cuatro bits se muestra en la figura 6.7, formado por una conexin en serie
de varios biestables T disparados por flancos. Las ecuaciones lgicas correspondientes al comportamiento de dicho circuito sern las siguientes:
Q0 = D q0
82
Q1
T
Q2
T
Q0
Q1
Q2
Figura 6.7.- Contador asncrono o de rizado ascendente, junto a sus formas de onda.
Las seales de salida, Q2 Q1 Q0, coinciden con la codificacin binaria del nmero de pulsos de la seal de entrada (en su flanco de bajada), por lo que se produce la cuenta del nmero
de pulsos, adems de su almacenamiento. Si nos fijamos en las seales de salida de forma individual, podemos comprobar que Ti = 2i TD, o lo que es lo mismo, Fi = 2-i FD, por lo que obtenemos seales que dividen la frecuencia de la seal de entrada. Por lo tanto, este circuito
cumple la definicin de contador, de hecho estamos ante un contador asncrono (ya que no
existe una seal global de reloj) o de rizado ascendente. El hecho de denominarse contador de
rizado es debido a que las transiciones de los diferentes biestables no son simultneas (ya que
sus seales de control son diferentes); por lo tanto, para llegar al dato estable es necesario pasar
por un pequeo rizado correspondiente a las diferentes transiciones de los biestables.
Consideremos ahora una versin del anterior contador de rizado, mostrado en la figura
6.8. Las ecuaciones lgicas correspondientes al comportamiento de dicho circuito sern las
siguientes:
Q0 = D q0
Q1 = q0 q1
Q2 = q1 q2
83
Q0
Q2
T
Q1
Q0
Q1
Q2
Figura 6.8.- Contador asncrono o de rizado descendente, junto a sus formas de onda.
por lo que nos encontramos ante un contador descendente. En esta versin, se sigue manteniendo la funcin de dividir la frecuencia de la seal de entrada.
Tambin podemos encontrar contadores bidireccionales, es decir, contadores ascendentes y descendentes, integrados en un solo dispositivo. Un ejemplo de estos contadores es mostrado en la figura 6.9. Cuando la seal U/D se encuentre a nivel alto, estaremos configurando la
cuenta como ascendente. En cambio, Cuando la seal U/D se encuentre a nivel bajo, estaremos
configurando la cuenta como descendente.
U/D
Q0
Q1
0
T
1
Q2
0
84
Estado presente
Cuenta (= clk)
000
001
001
010
010
011
011
100
100
101
101
110
110
111
111
000
1
T
Q0
Q1
Q2
clk
clk
Q0
Q1
Q2
85
T
R
T
R
Q0
Q1
Q0
Q1
Figura 6.11.- Contador asncrono ascendente de mdulo 3, junto a sus formas de onda.
carga paralela, si dicha seal est a nivel bajo al configurar el biestable como tipo D. Otra
forma ser utilizando los terminales de set (puesta a 1) o reset (puesta a cero) del biestable.
Con esta ltima forma hay que tener cuidado de que ambos terminales sean sncronos para que
el cambio de estado siga a la seal de reloj, que coincide con la de cuenta.
D
clk
C/L
Figura 6.12.- Modificacin del biestable tipo T para producir la carga paralela.
Consideremos ahora el circuito de la figura 6.13. En l podemos ver tres biestables tipo
D realimentados a travs de un multiplexor que permite introducir un dato externo al sistema.
Este circuito genera una serie de patrones binarios, por lo que entra dentro de la categora de
contadores, y al estar basado en los registros de desplazamientos reciben el nombre de contadores de desplazamientos. Tambin son conocidos como contadores anulares o en anillo
debido a la realimentacin anteriormente mencionada.
Q1 Q2 Q3
0
1
C/L
clk
Q0
Q1
Q2
86
tes:
Necesitan ms biestables que los estrictamente necesarios, en estos contadores necesitamos N biestables para un contador de mdulo N. Esta caracterstica provoca que la
salida no sea la codificacin binaria del nmero de la cuenta.
Son muy sensibles ante la posibilidad de fallos, por lo que se suele introducir circuitera de autocorreccin, como podemos ver en la figura 6.14. Podemos comprobar que
se corrigen los fallos en un mximo de N-1 pulsos de la seal de cuenta, donde N es el
mdulo.
Q1 Q2 Q3
Q1 Q2 Q3
C/L
clk
0
1
Q0
Q1
Q2
Q0
Q1
Q2
Q3
Q4
clk
87
D Q0 D Q1 D Q2
D Q3
D Q4
clk
Q0
Q1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
Q2
0
0
0
1
1
1
1
1
0
0
Q3
0
0
0
0
1
1
1
1
1
0
Q4
0
0
0
0
0
1
1
1
1
1
Decodificacin
q4q0
q0q1
q1q2
q2q3
q3q4
q4q0
q0q1
q1q2
q2q3
q3q4
Q1
clk
Q2
Q3
Q1
Q2
Q3
Q1
Q2
Q3
Q4
Q5
Q6
Figura 6.17.- Conexin asncrona de dos contadores de mdulo 8 para formar uno de 64.
Otra forma similar a la anterior consiste en utilizar dos seales que suelen tener todos los
contadores:
fin de cuenta, que nos indica cuando ha finalizado la cuenta y va a empezar de nuevo,
y
habilitacin de cuenta, que inhibe o desinhibe la cuenta manteniendo el valor anterior
almacenado cuando se inhibe la cuenta.
En este caso, la conexin sera como se muestra en la figura 6.18.
88
Q1
Q1
Q1
Q2
clk
Q2
clk
Q2
Q3
Q3
1
fin
Q3
G
Q4
Q5
Q6
fin
Figura 6.18.- Conexin sncrona de dos contadores de mdulo 8 para formar uno de 64.
89
3. Diseo RTL
Ya hemos visto que una de las formas de describir un sistema secuencial, y a partir de ah
realizar el diseo digital que muestra dicho comportamiento, es el diagrama de estados. No
obstante su utilidad est limitada a un nmero relativamente pequeo de estados, o lo que es lo
mismo, de requerimientos de memoria.
Si tomamos el ejemplo sencillo de la mquina de refresco, su diagrama (figura 6.19)
muestra un considerable nmero de estados con la limitacin impuesta de un nico refresco y
sin la posibilidad de devolver cambio. Al aadir la funcionalidad de diversificar el nmero de
refrescos y devolver cambio, el diagrama de estado aumentara de tal forma que ya no sera tratable.
B
B
50 c.
Refresco
10 c.
0 c.
B
20 c.
50 c.
10 c.
20 c.
50 c.
10 c.
20 c.
50 c.
10 c.
10 c.
20 c.
50 c.
50 c.
60 c.
20 c.
20 c.
10 c.
10 c.
20 c.
50 c.
20 c.
50 c.
30 c.
50 c.
20 c.
B
10 c.
40 c.
10 c.
B
90
Por lo tanto, debe existir otro medio de descripcin para estos problemas con una descripcin
sencilla, cuya diagrama de estado sea demasiado complejo para manejarlo. Si recapacitamos
sobre la descripcin verbal anterior, podemos observar que existen operaciones, como la suma
de las diferentes monedas insertadas y la diferencia entre la cantidad almacenada y el precio
del refresco seleccionado, que no intervienen en la secuenciacin de las operaciones operaciones.
Una forma til de describir estos sistemas ms complejos ser la descripcin de la
secuenciacin y la manipulacin de los datos de manera bien diferenciada, de tal forma que
permita un tratamiento separado, as podremos realizar el autmata de control independientemente de los bloques de procesado utilizados. Esta descripcin es un algoritmo, cuya definicin podra ser la siguiente:
Un algoritmo es el conjunto ordenado y finito de operaciones que permite
hallar la solucin de un problema.
Esta nueva forma de descripcin se encuentra en un nivel de abstraccin diferente ya que
utiliza como componentes los dispositivos MSI (tanto combinacionales como secuenciales) y
no se limita a puertas lgicas y biestables. Este nuevo nivel se denomina transferencia de registros o ms comnmente RT (Register Transference). En este caso, la funcionalidad es descrita
mediante una secuencia de transferencias de registros, la cual se puede definir de la siguiente
forma:
Una transferencia de registros es una transformacin realizada sobre un
dato mientras es transferido de un registro a otro.
Esta transferencia necesita la existencia de un secuenciamiento para garantizar la operacin
correcta. Por lo tanto, un sistema descrito en el nivel RTL se dividir en dos grandes bloques,
como se muestra en la figura 6.20:
Procesador. Es el bloque encargado de realizar las transformaciones (procesados) de
los datos.
Controlador. Es el bloque encargado de gobernar la secuencia de las operaciones, para
la operacin correcta.
A pesar de posibilitar el diseo de ambos bloques por separado, no podemos olvidar que los
dos forman un mismo circuito por lo que estarn conectados por las seales de estado, que
determinarn la situacin en la que se encuentra la operacin, y las seales de control, que
habilitarn la operacin necesaria en cada instante.
3.1. Procesador
Como ya se ha comentado, el procesador (que algunos autores tambin denominan ruta
de datos) es el bloque encargado de realizar las diferentes operaciones con los datos. Para ello
necesitaremos cuatro tipos de seales:
91
entradas
de control
entradas
de datos
seales de control
CONTROLADOR
PROCESADOR
seales de estado
salidas
de control
salidas
de datos
entradas de datos
salidas de datos
seales de estado, las cuales indicarn la situacin o estado de la operacin entre los
datos que se est realizando en cada momento
seales de control, las cuales activarn la operacin que se debe realizar en cada
momento.
En este bloque podemos encontrar unidades de almacenamiento (para datos y condiciones), unidades de procesado (para las operaciones de los datos) y unidades de camino de datos
(para la direccin correcta de los datos a lo largo del algoritmo). Segn estas unidades, podemos clasificar los sistemas RTL en:
Sistemas con recursos no compartidos. Cada unidad funcional realiza nica y exclusivamente una operacin.
Sistemas con recursos compartidos. Cada unidad funcional puede realizar varias operaciones, con la nica limitacin de que deben ejecutarse en diferentes ciclos de operacin. Esta situacin se lleva al extremo en los sistemas unimdulos, en los que
existe un nico mdulo que lleva a cabo todas las operaciones.
3.2. Controlador
El controlador es el bloque encargado de gobernar la secuencia correcta de operaciones
del sistema. Por lo tanto, podremos tener cuatro tipos de seales:
entradas de control
salidas de control
seales de estado, las cuales indicarn la situacin o estado de la operacin entre los
datos que se est realizando en cada momento
seales de control, las cuales activarn la operacin que se debe realizar en cada
momento.
Las entradas y salidas de control por excelencia son las seales de inicio y fin de operacin, las
cuales pueden ser seales especficas, o depender de las entradas de datos (como sucede en la
mquina de refrescos en la que la inicializacin comienza con la insercin de la primera
92
moneda). Por ltimo, la seales de comunicacin con el procesador deben estar presentes en
ambos bloques, es decir, las seales de estado y de control.
Con respecto al gobierno de la secuencia de operaciones, se llevar a cabo con un autmata finito, como situacin ms habitual. Este gobierno o control puede ser realizado como:
Control centralizado. Este tipo se da cuando existe un nico controlador que gobierna
todas las operaciones del sistema.
Control descentralizado. Este tipo se da cuando cada unidad funcional tiene su propio
controlador. La coordinacin entre todos ellos se realiza a travs del cableado.
Control semicentralizado. Este tipo es similar al control descentralizado. La diferencia entre ambos radica en que la coordinacin es realizada por un controlador central
que gobierna al resto de controladores.
3.3. Diagramas ASM (Algorithmic State Machine)
Un diagrama ASM es un medio de representacin grfico/textual de un algoritmo, tal que
permite describir ciclo a ciclo el funcionamiento con temporizacin sncrona y control centralizado. En el caso de optar por un control descentralizado o semicentralizado, se debera realizar el particionado del sistema segn la descentralizacin requerida con los subsiguientes
diagramas ASM. Un ejemplo de diagrama algortmico se muestra en la figura 6.21.
El algoritmo descrito por el diagrama anterior realiza las siguientes operaciones:
Mientras que no se seleccione ningn refresco, se deben ir acumulando las monedas.
Cuando se seleccione un refresco, se obtiene la diferencia entre la cantidad de dinero
almacenada y el precio del refresco seleccionado.
Si dicha diferencia es negativa, se deben seguir acumulando monedas.
Si la diferencia no es negativa, se expulsar el refresco, devolver dicha diferencia e
inicializar la cantidad almacenada a cero.
En el diagrama anterior podemos ver dos componentes fundamentales de los diagramas
ASM: cajas de estado y de seleccin; a los que habra que aadir un tercer componente: cajas
de condicin o condicionales. Los tres componentes, cuya apariencia se muestra en la figura
6.22, tienen las siguientes funciones:
Cajas de estado. Este componente especifica las transferencias que se deben realizar
en un nuevo ciclo de operacin. Esta transferencia puede ser un simple almacenamiento o un procesado con almacenamiento.
Caja de seleccin. Este componente especifica una determinada condicin que determinar la siguiente accin a realizar. Por lo general, esta condicin ser el resultado
de una comparacin, aunque puede ser una seleccin entre ms de dos valores.
Cajas de condicin. Este componente especifica la transferencia que se realizar en
funcin de una determinada condicin, por lo que siempre estarn despus de una caja
de seleccin. La diferencia con las cajas de estado radica en que las cajas de condicin
sern evaluadas en el mismo ciclo de operacin, mientras que en las cajas de estado la
asignacin se realizar en el siguiente ciclo.
93
Seleccin
de refresco
no
si
A = cantidad - precio
no
A >= 0
si
expulsar refresco
devolver A
cantidad = 0
Operacin o
salida del registro
Condicin
Caja de estados
Caja de seleccin
Operacin o
salida del registro
Caja de condicin
Bloques ASM. Todos los elementos anteriores se agruparn segn el ciclo de operacin donde sean realizados. Estas agrupaciones son los denominados bloques ASM.
Todos estos componentes se agruparn en diferentes bloques ASM, los cuales especifican
94
todas las acciones realizadas en un mismo ciclo de operacin, por lo que irn de una caja de
estado a otra. Estos bloques se identifican con los estados de los autmatas finitos. Las propiedades que muestran dichos bloques son las siguientes:
En su interior tiene que haber una nica caja de estado, y puede que mltiples cajas de
seleccin y/o condicionales. Esta necesidad es debida a que cada caja de estado realizar su operacin en un nuevo ciclo, es decir, en ciclos diferentes. Esta caja de estados
puede estar vaca, como veremos posteriormente.
Hay un solo punto de entrada (la caja de estado) y mltiples puntos de salida.
Cada seal slo puede ser asignada una vez por bloque, con el fin de evitar conflictos.
Esto no quiere decir que no puedan aparecer ms de una vez, ya que podemos encontrar dos asignaciones tras una caja de seleccin puesto que se realizar nicamente
uno de los dos.
Una vez que conocemos los diferentes componentes de un diagrama ASM y las propiedades que cumplen, ya estamos en disposicin de generar uno de ellos. No obstante, de forma
previa, debemos tener en cuenta una serie de pautas, entre las que podemos destacar:
Los estados y transiciones del controlador se especifican grficamente.
Las transferencias se especifican mediante objetos y operadores.
Las transferencias realizadas en un mismo ciclo no pueden tener conflictos en el uso
de recursos, es decir, una misma unidad no puede estar realizando dos operaciones
diferentes en el mismo ciclo de operacin.
El periodo de reloj viene determinado por el camino combinacional con mayor
retraso.
El diagrama est formado por uno o ms bloques ASM y una tarjeta declarativa, la
cual especifica:
Nombre, anchura y codificacin de seales y puertos
Estado inicial del sistema y valor inicial de las seales y puertos
Direccin de los puertos
No tiene puntos de entrada ni de salida
Toda salida de un bloque ASM debe estar conectado a la entrada de otro.
Veamos como ejemplo de diagrama ASM, el algoritmo de multiplicacin utilizando
sumas sucesivas con el nmero mnimo de ciclos. La operacin comenzar con un pulso de la
seal inicio y se indicar la finalizacin cuando se active la seal acabado. Los operandos se
introducirn por los puertos A y B y el resultado se leer por el puerto total. El diagrama se
muestra en la figura 6.23.
En primer lugar vamos a identificar el tipo de seales segn el esquema genrico de un
sistema RTL mostrado en la figura 6.20. Podemos identificar las siguientes seales:
Entradas de control, son seales de entrada sobre las que no se realiza ningn procesado sino que intervienen para un cambio de estado. En este caso tenemos la seal inicio.
Salidas de control, son seales de salida que identificarn un determinado estado, el
95
E0
Seales --> max = 0
min = 0
total <= 0
acabado <= 0
y <= B
NO
inicio = 1
SI
E1
SI
NO
A>B
max <= A
min <= B
max <= B
min <= A
E2
NO
min = 0
SI
E3
acabado <= 1
Figura 6.23.- Diagrama ASM correspondiente al algoritmo de multiplicacin de sumas sucesivas, con el
nmero mnimo de ciclos.
96
97
ESPECIFICACIN
INFORMAL
DIAGRAMA ASM
ESPECIFICACIN Y
CONEXIONADO
DE LOS MDULOS
DEL PROCESADOR
OBTENCIN DEL
DIAGRAMA DE ESTADOS
Y DISEO LGICO
DEL CONTROLADOR
UNIN DE PROCESADOR
Y CONTROLADOR
98
99
E5
A C
R <= A + B
E5 E6 E7 E5 E6 E7
E6
D <= C+D
suma en E5 y E6
+/-
resta en E7
max
E7
J <= R - D
E5 E6 E7
D
E8
E5
E8
H <= max(D, J)
R
posible si no existe solapamiento temporal de los datos. Por lo tanto, si suponemos que los
datos no se van a utilizados en el resto del diagrama (excepto las entradas A, B y C), podemos
observar que la vida de los siguientes datos coincide con la mostrada en la tabla 6.2. La seal R
debe tener un tiempo de vida correspondiente a los estados E5, E6 y E7 (aunque no se necesite
en E6, se debe mantener almacenada ya que es necesaria en E7), la seal D lo tendr correspondiente a E6, E7 y E8, la seal J lo tendr correspondiente a E7 y E8, y la seal H lo tendr
correspondiente a E8. Luego es necesario un total de tres registros para almacenar D, J y otro
ms que ser utilizado por R y H, ya que son las nicas seales que no estn solapadas en el
tiempo. Para introducir el dato correcto en el registro se acta igual que con los mdulos del
procesador, es decir, utilizando multiplexores cuya seleccin ser controlada por el controlador.
E5
R
D
J
H
E6
E7
E8
X
X
Tabla 6.2. Ciclos de operacin donde son vlidos cada seales del diagrama de la figura 6.25.
100
0 0 --> No operacin
0 1 --> Vaciado
1 0 --> Llenado
1 1 --> Nivel = R
salida
La operacin deber empezar por un pulso de la seal de inicio. Tras lo cual, comenzar
la operacin determinada por las seales de control de operacin. Esta operacin se deber
mantener hasta que cambien las seales de control de operacin, o bien si se pulsa la seal
parada. En el caso de que se pulse la seal parada, el sistema deber ir a un estado inicial de
espera, del cual saldr con un pulso de la seal inicio. En el caso de que hayan cambiado las
seales de control de operacin, el sistema, despus de realizar la operacin previa, deber realizar la nueva operacin.
Consideraciones:
Tanto el detector de nivel como el nivel de llenado preciso debern estar codificados
en binario natural.
Las seales de entrada y salida son tales que tomarn el valor 1 cuando dejen pasar
el lquido (llave abierta) y 0 cuando no dejen pasar el lquido (llave cerrada).
3.5.2. Diagrama ASM
El sistema de control descrito con las especificaciones anteriores puede ser descrito con
el diagrama ASM de la figura 6.27. En este diagrama podemos distinguir seis bloques ASM,
que vamos a analizar a continuacin.
entrada <= 0
salida <= 0
NO
E1
inicio = 1
SI
E4
00
01
C1C0
11
10
E3
NO
parada = 1
E0
SI
SI
SI
E2
entrada <= 0
salida <= 1
SI
parada = 1
parada = 1
NO
NO
nivel > 0
NO
NO
SI
entrada <= 0
salida <= 1
SI
parada = 1
entrada <= 1
salida <= 0
NO
SI
nivel > R
NO
entrada <= 1
salida <= 0
SI
nivel < R
NO
E5
entrada <= 0
salida <= 0
101
102
El estado E0 ser el estado de inicio, de tal forma que mientras no exista un pulso en la
seal inicio, el sistema permanecer en dicho estado abriendo ambas llaves de paso para mantener el mismo nivel de lquido.
El estado E1 decidir qu operacin se deber realizar en funcin de los valores de las
seales de control de operacin, C1 y C0. El sistema permanecer en este mismo estado mientras la codificacin de control de operacin es 00.
El estado E2 es el estado de operacin de vaciado. Slo se podr sacar al sistema de este
estado en dos situaciones: activar la seal parada, en cuyo caso deber ir al estado inicial; o
cambiar el cdigo de las seales de control de operacin, en cuyo caso deber ir al estado
correspondiente a la nueva operacin.
El estado E3 es el estado de operacin de llenado. Slo se podr sacar al sistema de este
estado en dos situaciones: activar la seal parada, en cuyo caso deber ir al estado inicial; o
cambiar el cdigo de las seales de control de operacin, en cuyo caso deber ir al estado
correspondiente a la nueva operacin.
El estado E4 es el estado de operacin de llenado preciso, por lo que el nivel del tanque
debe tender a un nivel fijado por el puerto R. Slo se podr sacar al sistema de este estado en
dos situaciones: activar la seal parada, en cuyo caso deber ir al estado inicial; o cambiar el
cdigo de las seales de control de operacin, en cuyo caso deber ir al estado correspondiente
a la nueva operacin.
Finalmente, el estado E5 es el estado al que se llega desde cualquier estado de operacin
(E2, E3 o E4) si ya se ha cumplido la operacin correspondiente. De esta manera, no se podr
alterar el nivel del tanque.
3.5.3. Mdulos y conexionado del procesador
El sistema que queremos disear se trata de un controlador, por lo que su mayor parte
estar formado por el controlador. Luego el procesador estar formado por los bloques necesarios para las diferentes tomas de decisin, y no para el procesado de las seales.
En nuestro caso particular, el procesador estar formado por comparadores, necesarios
para tomar las decisiones oportunas. En el diagrama observamos tres comparaciones:
Nivel del tanque con el nivel 0, en el caso de la operacin de vaciado.
Nivel del tanque con el nivel mximo, en el caso de la operacin de llenado.
Nivel del tanque con el nivel de llenado preciso, en el caso de la operacin de llenado
preciso.
Luego, una posible opcin sera utilizar tres comparadores con sus correspondientes entradas.
No obstante, esta eleccin no sera ptima en cuestin de recursos ya que ninguna comparacin coincide en el tiempo con las otras. As que consideraremos un nico comparador con las
entradas multiplexadas segn la operacin en curso. El esquema del procesador sera el mostrado en la figura 6.28.
La opcin elegida ser til a nuestro sistema en el caso de que los requerimientos de
103
nivel
n
0 n E2
max n E3
R n E4
B
a>b
a=b
a<b
0
1
0
A>B
A=B
A<B
E2
>, 01, 0
not >
inicio
E0
entrada = 0
salida = 0
C1 C0
E1
C1C0
inicio
E3
<,10, max
C1C0
parada
E5
entrada = 0
salida = 0
<,10, R
>,01, R
not <
E4
104
Una vez que disponemos del diagrama de estados, pasamos a la implementacin del controlador. Para ello, seguimos los pasos del flujo de diseo mostrado en el tema 4: minimizacin
del diagrama de estados, asignacin de estados, tabla de transicin, tabla de excitacin e implementacin lgica.
Minimizacin del diagrama de estados.
Este paso no se llevar a cabo para que la coincidencia con el diagrama ASM de partida, y por tanto del procesador, sea total.
Asignacin de estados.
En este tipo de diseos, en los que hay un elevado nmero de estados, una codificacin muy utilizada es la conocida como one-hot. Esta codificacin se basa en utilizar
una seal por cada estado. De esta forma, podemos obtener una expresin relativamente sencilla a partir del diagrama. Esta solucin no es problemtica ya que al tratarse de un circuito sncrono (y generalmente) con flip-flops, los problemas de las
carreras no tendrn efecto. Siguiendo esta codificacin, la seal de estado del estado
inicial sera:
E0 = inicioe0 + parada(e2+e3+e4)
Tabla o ecuaciones de transicin.
Al partir directamente desde el diagrama de estado, daremos directamente las ecuaciones de transicin. Estas ecuaciones no sern necesariamente mnimas ya que no
sern aprovechadas las condiciones de inespecificacin. No obstante, al considerar la
relacin tiempo de diseo / optimizacin, observamos que esta solucin es aceptable.
Luego, las ecuaciones de transicin obtenidas se muestran a continuacin:
E0 = inicioe0 + parada(e2+e3+e4)
E1 = inicioe0 + C1C0e1 + parada(mayore2 + menore3 + iguale4) + e5
105
106
Seleccin
0
max
R
--
S1 S0
00
01
10
11
S1 = sel_R = e4
S0 = sel_max = e3
e2
inicio
mayor
e0
D Q
e0
e3
parada
e2
e3
e4
D Q
menor
e4
e5
igual
inicio
e0
C1
C0
e1
e2
mayor
e3
menor
igual
e5
D Q
e1
C1
C0
e1
D Q
C0
C1
e1
D Q
C0
C1
e1
D Q
e2
e3
parada
e4
e4
e3
e2
menor
mayor
e4
D Q
mayor
e1
salida
e4
menor
e1
D Q
entrada
entrada
salida
107
PROCESADOR
nivel
n
0 n 01
max n 10
R n 11
01
A
B
A>B
A=B
A<B
a>b
a=b
a<b
0
1
0
mayor
igual
menor
e2 e3
CONTROLADOR
inicio
e0
e2
e3
e4
D Q
e2
e0
mayor
e3
parada
D Q
menor
e4
e5
igual
inicio
C1
C0
e1
D Q
C0
C1
e1
D Q
C0
C1
e1
D Q
e2
e0
C1
C0
e1
e2
mayor
e3
menor
igual
e5
D Q
parada
e4
e4
menor
mayor
e4
salida
e3
e3
e2
mayor
e1
e1
D Q
salida
e4
menor
e1
entrada
D Q
entrada
108
En el caso de las comparaciones slo se ha identificado los valores en aquellos estados en los
que se utiliza su valor; en el resto de los estados, al no tener ninguna relevancia, no se han indicado ni el valor de la entrada ni el del resultado de la comparacin.
Podemos apreciar que se han incluido la mayora de las situaciones en las que se puede
encontrar el sistema: inicio, parada y cualquiera de las operaciones, finalizadas o sin finalizar.
Segn el diagrama podemos ver que la operacin de parada slo se realizar cuando est chequeando las seales de control de operacin, y no cuando est realizando un paso de la operacin, luego puede que se debiera dejar activa esta seal hasta que se llegue al estado E0. En el
caso de que quisiramos activar la parada desde cualquier estado deberamos modificar el
diagrama ASM, tal que en cada bloque ASM se incluya la caja de seleccin de parada.
Con respecto a las especificaciones de caracterizacin, no se ha indicado ninguna. A
modo de ejemplo vamos a analizar una especificacin de retraso. Para garantizar la operacin
correcta se debe verificar que el tiempo necesario para el cambio de valor en el detector de
nivel sea superior al retraso del sistema para que no exista efecto rebote. En el caso de no verificarse esta especificacin, deberamos ir a implementaciones con retraso menor, pero a costa
de incrementar los recursos; o la utilizacin de una llave con un caudal menor (por lo que el
cambio de los sentidos de las comparaciones requerirn un tiempo mayor).
4. Temporizadores.
Dentro de la mayora de los circuitos secuenciales, hacemos uso de seales de reloj, o en
su defecto, de seales peridicas. Estas seales han sido tratadas hasta el momento como seales externas a nuestro sistema, y por tanto, no hemos considerado su generacin. No obstante,
su generacin es funcin de sistemas secuenciales (que no entraran dentro de la definicin
dada en esta asignatura) denominados genricamente temporizadores. Una definicin ms formal de stos puede ser la siguiente:
Un temporizador es aquel sistema capaz de volver a un estado inicial despus de un determinado espacio temporal, segn se cumpla una determinada situacin particular.
Consideremos el comportamiento del circuito mostrado en la figura 6.33. Cuando la
seal A se encuentra a nivel bajo, la salida est a nivel alto. En cambio, cuando la seal A se
encuentra a nivel alto, la salida cambia de estado cada vez que transcurre el retraso del inversor
y de la puerta AND. Por lo tanto, encontramos una situacin en la que se vuelve al estado anterior despus de que transcurra un determinado tiempo (valor analgico, por lo que el circuito
cae fuera de la definicin de circuito secuencial) aunque no se produzca ningn cambio en las
seales de entrada. Cuando estos circuitos carecen de seales de entrada, reciben el nombre de
inicio
parada
C1
C0
nivel
estado
E0
ent_comp
comparacin
E1
E3E1E3E1E3E5E1E3E5E1 E3
max max max
<
<
E0
E1E4E1E4E1E4E5E1E2E1E2E5 E1
max
max
>
<
>
entrada
salida
reloj
Figura 6.32.- Comportamiento funcional del circuito obtenido a travs del diagrama ASM.
109
110
Los temporizadores pueden clasificar en dos grandes grupos: temporizadores no realimentados y temporizadores realimentados. En los temporizadores no realimentados, la dependencia temporal viene determinada por un elemento de retraso, como se puede apreciar en la
figura 6.34. Cuando la seal de entrada A toma el valor lgico alto, existe un espacio temporal,
determinado por , en el que las dos entradas de la puerta AND tienen el valor lgico alto, apareciendo en la salida un pulso de nivel bajo cuya duracin es aproximadamente el tiempo introducido por el elemento de retraso. Bsicamente podemos decir que este tipo de circuitos
aprovechan las situaciones tpicas de los azares de la lgica combinacional. Los elementos de
retraso pueden ser formados de muy diversa forma, como pueden ser redes analgicas RC o un
nmero par de inversores conectados en cascada.
A
Q
Q
En el caso de temporizadores realimentados, estamos ante circuitos secuenciales asncronos que operan en el modo fundamental, por lo que el almacenamiento de la informacin se
realiza por realimentacin directa. En este caso, el tiempo de los pulsos estar condicionado
por elementos de retraso explcitos y/o los retrasos de la lgica del circuito en cuestin. Un
ejemplo de este tipo de temporizadores es el mostrado en la figura 6.33. Si nos centramos en
los generadores de impulsos, la caracterstica fundamental es que carecen de estados estables,
por lo que tambin reciben el nombre de circuitos astables. La idea consiste en lograr un circuito cuya funcin lgica sea de la forma:
Q=q
el cual no tendr ningn estado estable. La forma ms directa de obtener dicha funcin lgica
ser la conexin en cascada de un nmero impar de inversores, como se muestra en la figura
6.35. El problema de este generador de impulsos consiste en el poco control existente en el
periodo de la seal obtenida. Este periodo ser ntinv, donde n es el nmero de inversores
conectados en cascada y tinv es el retraso de un inversor. El retraso de cada inversor va a depender de multitud de factores, entre los que se encuentra la tecnologa de fabricacin. Adems, el
retraso es diferente para cada transicin, por lo que la seal tender a ser asimtrica.
111
112