Problemas Dig
Problemas Dig
x1 x
x2
x3 y
F
x4 F
(c)
(d)
X
x
b2
y (f)
a2 (e)
z F
b1
a1 Y
x x
F y
z F
y
z (h)
(g)
Los materiales con los que se trabaja en dicha planta son tales que son inflamables y sólo
toleran unos niveles mínimos de presión y humedad de forma conjunta (estos niveles se
encuentran programados en los sensores correspondientes). El circuito a diseñar debe ser tal
que active una señal de alarma cuando exista riesgo para los operarios de la planta.
S1
S2
P
M1 M2
Cuando la máquina se encuentra llena del todo, tienen que entrar en funcionamiento ambos
trituradores; cuando se encuentra medio lleno, sólo tiene que funcionar uno de ellos; mien-
tras que si no se detecta ningún elemento a triturar, ambos motores se han de parar. Dicha
máquina tiene un mecanismo de emergencia a través de un conmutador de trituración, de tal
forma que cuando está conectado la máquina opera según su contenido, mientras que si está
desconectado, la máquina ha de pararse independientemente de su contenido.
minuto el sonido está presente o ausente. El estado de cada sonido depende del sigu-
iente comportamiento:
• El canto conservará su estado (presente o ausente) salvo si durante el minuto
actual no se oye la risa y toco el órgano, en cuyo caso el canto tomará el estado
opuesto.
• En cuanto a la risa, si no quemo incienso, se oirá o no según el canto esté pre-
sente o ausente (de modo que la risa imita al canto con un minuto de retardo).
Pero si quemo incienso, la risa hará lo contrario que hacía el canto.”
• En el caso anterior, ¿cuál será la secuencia de hechos para que no se escuche ni el
canto ni la risa, si inicialmente se escuchaban los dos?, ¿cuánto tiempo pasará hasta
que la casa se quede en silencio?
• Sistema de control de una escalera mecánica bidireccional. Para ello disponemos de
dos sensores de presión, P1 y P2, como se muestra en la figura adjunta. Cuando se
activa un sensor, la escalera empezará a andar en dirección al sensor restante y no
parará hasta que se active el otro sensor. La máquina deberá mostrar el comporami-
ento de la dirección de los motores, así como su estado (encendido o apagado).
P1
P2
Figura 1.3.- Esquema de la escalera mecánica.
• Sistema generador de paridad para bits que van llegando de forma secuencial (uno
detrás de otro). El sistema deberá tener un estado de inicialización para separar una
generación de otra.
• Sistema de alarma de una planta industrial. En la planta hay elementos inflamables
según las siguientes condiciones (existen sensores que nos indican cuando la presión,
densidad y la exposición al sol han superado su límite):
• Si la presión del contenedor es igual o superior a 4 unidades, después de haber
estado expuesto al sol
• Si la densidad del contenedor es igual o superior a 5 unidades, después de estar
sometido a una presión mayor o igual a 4 unidades.
• En el departamento de logística de una fabrica de pelotas de tenis, éstas ruedan por
una cinta hasta caer en una caja que está sobre una cinta transportadora. La cinta
transportadora debe dar un paso cuando una caja esté llena (con un total de tres
pelotas), para colocar debajo una nueva caja. Se desea diseñar el sistema de control de
la cinta transporadora, sabiendo que cuando cae una pelota en la caja activa un sensor
de movimiento colocado encima de la entrada a la caja, como se muestra en la sigu-
iente figura. Las pelotas caen con el suficiente espacio temporal para que no se sola-
pen los pulsos del sensor.
Sensor
S
No pasa nada
• Se tratará de un sistema síncrono, por lo que existirá una señal de reloj llamada clk.
E0
si
moneda_ins = 1
E1 no
Puertos de entrada
cantidad = cantidad + moneda moneda (bus)
moneda_ins
Puertos de salida
Selección no A (bus)
de refresco refresco
Señales internas
E2 si cantidad (bus)
A = cantidad - precio
no
A >= 0
E3 si
expulsar refresco
devolver A
cantidad = 0
El primer bloque, el cual contiene el estado E0, está formado por una caja de estados
vacía y dos cajas de selección. La función de este bloque será la de decidir que operación
hay que realizar: acumular la cantidad almacenada, o selección del refresco. Estas opera-
ciones están priorizadas de tal forma que la más prioritaria es la acumulación. La caja de
estado debe estar vacía porque si no se selecciona ningún refresco o no se inserte nin-
guna moneda, el sistema no debe hacer nada.
El segundo bloque, formado por el estado E1, está formado únicamente por una caja de
estados. En dicho bloque se producirá la acumulación de dinero para poder obtener el
refresco deseado.
El tercer bloque, el cual contiene el estado E2, está formado por una caja de estados y una
caja de selección. Tiene la finalidad de chequear la cantidad de dinero almacenada.
El cuarto bloque, el cual contiene el estado E3, está fromado por una única caja de estado.
La finalidad de este bloque es devolver elrefresco y el posible cambio.
Una vez que hemos obtenido el diagrama ASM, pasamos a obtener los elementos que
contendrá el procesador, es decir, las diferentes operaciones que deben ser realizadas.
Para obtener de forma clara el número de componentes necesarios para el procesador,
vamos a mostrar una visión según el ciclo de operación. Dicha visión es mostrada en la
Departamento de Ingeniería Electrónica de Sistemas Informáticos y Automática 6
figura 1.6. Únicamente se han indicado las operaciones que requieren un bloque digital
para llevarlas a cabo, por lo que las comparaciones con un bit (moneda_ins y selección de
refresco) y las operaciones de expulsión y devolución no han sido incluidos en el dia-
grama.
E0
si E0
moneda_ins = 1
E1 no
cantidad = cantidad + moneda E1
Almacenar cantidad
sumar cantidad y moneda
Selección no E2
de refresco
Restar cantidad y precio
E2 si comparar cantidad y precio
A = cantidad - precio E3
Iniciar cantidad a 0
no
A >= 0
E3 si
expulsar refresco
devolver A
cantidad = 0
Por lo tanto, el procesador quedaría tal como se muestra en la figura 1.7. Podemos apre-
ciar, que tanto al registro como al bloque sumador/restador, le deben llegar entradas difer-
entes dependiendo del ciclo de operación en el que nos encontremos. No obstante, del
conexionado nos encargaremos en último lugar.
Una vez que hemos obtenido el procesador, el siguiente paso es encontrar el controlador
que gobierne la operación del sistema. Para ello obtenemos el diagrama de estados
directamente del diagrama ASM, el cual se muestra en la figura 1.8.
n A
G
n precio n
clk B
C
n S1
+/- ‘0’ a<b A<B
n n a=b A=B
precio ‘1’
n S/R a>b A>B
‘0’
“0”
moneda G
clk
C
n n
E3
co
E3
mp
S1
moneda_ins & selección
ara
comparación
n
S1
E2
E2
E0
selección E0
_i
ns selección
ns
a
ed E1
a _i
on
E1
ed
m
on
comparación = S1
m
El siguiente paso será la obtención del controlador, para lo cual utilizaremos la codificación
one-hot. Por lo tanto, las ecuaciones del controlador quedarán de la siguiente forma:
E0 = e0 · (moneda_ins · seleccion) + e1 + e2·S1 + e3
E1 = e0·moneda_ins
E2 = e0 ·seleccion
E3 = e2·S1
S/R = e2
Gcantidad = e1 + e3
Gcambio = e2
refresco = e3
Departamento de Ingeniería Electrónica de Sistemas Informáticos y Automática 8
moneda_ins
seleccion
‘1’
G
e0
S1 D0 Q0 Greg
e1
D1 Q1
S/R = Gcambio
e2
D2 Q2
e3 refresco
D3 Q3
Antes de la unión del procesador y controaldor, debemos tener en cuenta la conexión del
procesador. Si nos decantamos por la conexión a través de multiplexores, debemos
obtener la matriz de interconexión. Dicha matriz se muestra en la figura 1.10. Según dicha
matriz, se necesitanlos siguientes multiplexores y demultiplexores:
• un multplexor en la entrada de minuendo del bloque sumador/restador de 2:1
• un multiplexor en la entrada del registro de cantidad de 2:1
• un demultiplexor a la salida del bloque sumador/restador. No obstante, este bloque
no es necesario ya que estaría conectado a registros, los cuales únicamente estarán
habilitados cuando su conexión debe estar habilitada.
• un demultiplexor a la salida del registro de cantidad. No obstante, este bloque no es
necesario ya que estaría conectado a bloques combinacionales, cuyas operaciones
no están solapadas en el tiempo.
De esta forma, el controlador completo estaría formado por la unión del procesador y con-
trolador. Dicho esquema se muestra en la figura 1.12.
Departamento de Ingeniería Electrónica de Sistemas Informáticos y Automática 9
sumador/restador X X
comparador
cantidad X X
precio X X
moneda X
Gcantidad G n A
clk
n C precio n
B
n S1
+/- 0 n n ‘0’ a<b A<B
precio 1 ‘1’ a=b A=B
1 S/R “0”
n ‘0’ a>b A>B
0 1
moneda
1 e2
e2 e3 G
e2 clk
C
n n
Gcantidad G n A
clk
n C precio n
B
n S1
+/- 0 n n ‘0’ a<b A<B
precio 1 ‘1’ a=b A=B
1 S/R “0”
n ‘0’ a>b A>B
0 1
moneda
1 Gcambio
S/R e3 G
e2 clk
C
n n
moneda_ins
seleccion
‘1’
G
e0
S1 D0 Q0 Gcantidad
e1
D1 Q1
S/R = Gcambio
e2
D2 Q2
e3 refresco
D3 Q3
E0 E1 E2 E3
comparador
Asignación de buses
E0 E1 E2 E3
moneda precio
e1 e2
n n 3 A
3
B
‘0’ a<b A<B S1
S/R ‘1’ a=b A=B
e2 ‘0’ a>b A>B
n
e1
e2
Gcantidad G Gcambio
G
clk C clk C
n n n n
“0”
e3
moneda_ins
seleccion
‘1’
G
e0
S1 D0 Q0 Gcantidad
e1
D1 Q1
S/R = Gcambio
e2
D2 Q2
e3 refresco
D3 Q3
Problema 9. El sistema sobre el que se realizará el diseño se muestra en la figura 1.15, de tal
forma que se controlará el nivel de un tanque de líquido. En ella podemos distinguir el
esquema del tanque y sus operaciones. Por lo tanto, tenemos dos señales de control, C1 y
C0, que determinarán la operación que hay que realizar y el detector de nivel del tanque, N,
que nos indicará la capacidad de llenado en cualquier instante de tiempo. Así mismo, ten-
dremos una entrada más, denominada R, para un llenado preciso, y dos señales de control
adicionales, inicio y parada, para el comienzo de la operación y una parada de emergencia.
entrada
0 0 --> No operación
0 1 --> Vaciado
1 0 --> Llenado
salida 1 1 --> Nivel = R
La operación deberá empezar por un pulso de la señal de inicio. Tras lo cual, comenzará la
operación determinada por las señales de control de operación. Esta operación se deberá
mantener hasta que cambien las señales de control de operación, o bien si se pulsa la señal
parada. En el caso de que se pulse la señal parada, el sistema deberá ir a un estado inicial
de espera, del cual saldrá con un pulso de la señal inicio. En el caso de que hayan cambiado
las señales de control de operación, el sistema, después de realizar la operación previa,
deberá realizar la nueva operación.
Consideraciones:
• Tanto el detector de nivel como el nivel de llenado preciso deberán estar codificados
en binario natural.
• Las señales de entrada y salida son tales que tomarán el valor ‘1’ cuando dejen pasar
el líquido (llave abierta) y ‘0’ cuando no dejen pasar el líquido (llave cerrada).
Diagrama ASM
El sistema de control descrito con las especificaciones anteriores puede ser descrito con el
diagrama ASM de la figura 1.16. En este diagrama podemos distinguir seis bloques ASM,
que vamos a analizar a continuación.
E0
E4
00 11
C1 C0
01 10
E3
NO SI
parada = 1
SI
parada = 1
SI SI NO
E2 parada = 1 parada = 1
entrada <= ‘0’ SI
NO NO nivel > R
salida <= ‘1’
SI SI NO
entrada <= ‘0’ nivel > 0 nivel < max entrada <= ‘1’
salida <= ‘1’ salida <= ‘0’ SI
entrada <= ‘1’ nivel < R
NO NO salida <= ‘0’
NO
E5
entrada <= ‘0’
salida <= ‘0’
14
Departamento de Ingeniería Electrónica de Sistemas Informáticos y Automática 15
El estado E0 será el estado de inicio, de tal forma que mientras no exista un pulso en la
señal inicio, el sistema permanecerá en dicho estado abriendo ambas llaves de paso para
mantener el mismo nivel de líquido.
El estado E1 decidirá qué operación se deberá realizar en función de los valores de las
señales de control de operación, C1 y C0. El sistema permanecerá en este mismo estado
mientras la codificación de control de operación es “00”.
El estado E4 es el estado de operación de llenado preciso, por lo que el nivel del tanque
debe tender a un nivel fijado por el puerto R. Sólo se podrá sacar al sistema de este
estado en dos situaciones: activar la señal parada, en cuyo caso deberá ir al estado inicial;
o cambiar el código de las señales de control de operación, en cuyo caso deberá ir al
estado correspondiente a la nueva operación.
El sistema que queremos diseñar 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 decisión, y no para el procesado de las señales.
Luego, una posible opción sería utilizar tres comparadores con sus correspondientes
entradas. No obstante, esta elección no sería óptima en cuestión de recursos ya que nin-
guna comparación coincide en el tiempo con las otras. Así que consideraremos un único
comparador con las entradas multiplexadas según la operación en curso. El esquema del
procesador sería el mostrado en la figura 1.17.
La opción elegida será útil a nuestro sistema en el caso de que los requerimientos de
velocidad nos permita mantener el retraso correspondiente a la conexión anterior, es decir,
un multiplexor con un comparador. En caso contrario deberemos volver a este punto y
continuar con otra opción más recomendada para las especificaciones.
Departamento de Ingeniería Electrónica de Sistemas Informáticos y Automática 16
nivel
n
‘0’ n E2 A
max n E3 n
B
R n E4
‘0’ a>b A>B
‘1’ a=b A=B
‘0’ a<b A<B
Controlador
Para realizar el diseño del controlador, debemos obtener en primer lugar el diagrama de
estado correspondiente. Para ello, basándonos en el diagrama ASM, utilizamos los difer-
entes bloques ASM como estados del controlador. Las entradas del controlador serán las
entradas de control (inicio, parada, C1 y C0), y las señales de estado del procesador (las
salidas del comparador); en cambio las salidas del controlador serán las salidas de control
(entrada y salida) y las salidas de control del procesador (las señales de selección para el
multiplexor que determinará las entradas del comparador). El diagrama de estados es
mostrado en la figura 1.18.
parada
C1C0 E2
parada not >
>, 01, ‘0’
inicio
E0 E5
entrada = 0 C1 C0 entrada = 0
salida = 0 E1 C1C0 E3 salida = 0
inicio <,10, max not <
C1C0 =
<,10, R
parada >,01, R
E4
Una vez que disponemos del diagrama de estados, pasamos a la implementación del con-
trolador. Para ello, seguimos los pasos del flujo de diseño mostrado en el tema 4: mini-
mización del diagrama de estados, asignación de estados, tabla de transición, tabla de
excitación e implementación lógica.
• Minimización 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.
• Asignación de estados.
En este tipo de diseños, en los que hay un elevado número de estados, una codifi-
cación muy utilizada es la conocida como one-hot. Esta codificación se basa en utili-
zar una señal por cada estado. De esta forma, podemos obtener una expresión
relativamente sencilla a partir del diagrama. Esta solución no es problemática ya que
al tratarse de un circuito síncrono (y generalmente) con flip-flops, los problemas de
las carreras no tendrán efecto. Siguiendo esta codificación, la señal de estado del
estado inicial sería:
E0 = inicio·e0 + parada(e2+e3+e4)
• Tabla o ecuaciones de transición.
Al partir directamente desde el diagrama de estado, daremos directamente las ecua-
ciones de transición. Estas ecuaciones no serán necesariamente mínimas ya que no
serán aprovechadas las condiciones de inespecificación. No obstante, al considerar
la relación tiempo de diseño / optimización, observamos que esta solución es acept-
able. Luego, las ecuaciones de transición obtenidas se muestran a continuación:
E0 = inicio·e0 + parada(e2+e3+e4)
E1 = inicio·e0 + C1·C0·e1 + parada(mayor·e2 + menor·e3 + igual·e4) + e5
E2 = C1·C0·e1
E3 = C1·C0·e1
E4 = C1·C0·e1
E5 = mayor·e2 + menor·e3 + igual·e4
entrada = e3·menor + e4·menor + e1·entrada
salida = e2·mayor + e4·mayor + e1·salida
sel_0 = e2
Departamento de Ingeniería Electrónica de Sistemas Informáticos y Automática 18
sel_max = e3
sel_R = e4
Implementación lógica.
Una vez que se ha separado el comportamiento secuencial del combinacional, pasamos a
obtener el circuito lógico según los métodos de la lógica combinacional vistos en la asig-
natura del cuatrimestre anterior. Como ya tenemos expresadas las funciones como fórmu-
las lógicas, pasamos a obtener directamente el circuito lógico. No obstante, previo a este
paso debemos obtener la codificación correcta de las selecciones del multiplexor. Todo ello
se muestra en la figura 1.19.
Conexionado global
Por último, se debe unir el procesador y controlador en un único circuito utilizando las
señales de estado y de control del circuito correspondiente. Por lo tanto, el circuito global
se muestra en la figura 1.20, donde las señales externas se han marcado en negrita para
diferenciarlas de las conexiones internas (las cuales no se han puesto para clarificar el
esquema).
S1 S0 Selección
00 ‘0’ S1 = sel_R = e4
01 max S0 = sel_max = e3
10 R
11 --
e2
inicio mayor
e0 e3
e0 D Q e5
D Q
menor
parada e4
e2
igual
e3
e4
inicio C1
C0 e2
D Q
e0 e1
C1
C0 e5 C0
e1 C1 e3
e1 D Q
e2 D Q e1
mayor parada
e3 C0
C1 e4
menor D Q
igual e1
e4
e2 e3
mayor menor
e4 e4 entrada
salida D Q
D Q menor
mayor
e1 e1
salida entrada
PROCESADOR
nivel
n
‘0’ n 01 A
max n 10 n
B
R n 11
‘0’ a>b A>B mayor
01 ‘1’ a=b A=B igual
‘0’ a<b A<B menor
e2 e3
CONTROLADOR
inicio
e2
e0
e0 D Q mayor
e3 e5
parada D Q
e2 menor
e3 e4
e4 igual
C1
C0 e2
D Q
inicio e1
e0
C1
C0 e5
e1
e2 e1
D Q C0
mayor C1 e3
parada D Q
e3 e1
menor
igual
C0
e4 C1 e4
D Q
e1
e2 e3
mayor menor
e4 e4 entrada
salida D Q
D Q menor
mayor
e1 e1
salida entrada
Problema 11. Implementar un divisor siguiendo un algoritmo similar al del problema anterior,
es decir, únicamente se permiten restas de uno en uno. Las señales serán las típicas de
cualquier circuito divisor.
Problema 12. Implementar un circuito que calcule la parte entera de la raiz cuadrada de un
número binario de 8 bits sin signo. Para ello, utilizaremos el algoritmo de la resta de enteros
impares. Para ello, vamos restando el dato de entrada (y sus restas sucesivas) con los
enteros impares en orden creciente; de tal forma que la parte entera de la raíz cuadrada es el
número de restas que se puedan realizar sin obtener un valor negativo.
Ej.: La parte entera de la raiz cuadrada de 11 será igual a 3
11 - 1 = 10 - 3 = 7 - 4 = 3 - 5 = -2 => tres restas sin obtener valores negativos
Problema 13. Implemente el sistema de control de un ascensor para un edificio de dos plantas.
Obviamente, la operación de llamada del ascensor será menos prioritaria. Cuando no se
deba realizar ningún moviemiento (no hay ninguna llamaday no hay nadie en el interior), el
ascensor debe permanecer parado. Este sistema tendrá las siguientes señales:
• IR1 e IR2, que corresponderán a los botones en el interior del ascensor para ir a la 1ª y
2ª planta respectivamente
• LL1 y LL2, que corresponderán a los botones de cada planta para llamar al ascensor
• ES1 y ES2, que corresponderán con las señales que indican la posición actual del
ascensor, ya sea en la 1ª o en la 2ª planta.
• SU, será la salida que se debe activar para que el ascensor suba.
• BA, será la salida que se deberá activar para que el ascensor baje.
• RE, será una entrada de reset de tal forma que cuando se pulse, el ascensor debe ir a la
1ª planta con la mayor prioridad (incluso aunque se encuentre en movimiento).