Ejercicio: Detector de secuencia (1) Ejercicio: Detector de secuencia

Anuncio
Ejercicio: Detector de
secuencia (1)
Se necesita un circuito detector de secuencias que active su
salida Z1 cuando se reciba la secuencia 10101, y su salida Z2
cuando se reciba la secuencia 10110. Se considera que las
secuencias pueden venir superpuestas. Utilizar flip-flops
tipo T.
0 / 00
A “...0”
Circuitos Digitales EC1723
A
1 / 00
B
E
1 / 10
1 / 00
0 / 00
C “10”
0 / 00
C
0 / 00
1 / 00
D “101”
D
1 / 00
E “1010”
0 / 00
0 / 01
X / Z1Z2
Universidad Simón Bolívar
Departamento de Electrónica y Circuitos
Prof. Juan. C. Regidor
B
0 / 00
C
1 / 00
Edo. actual
Codificado
E
1 / 10
1 / 00
0 / 00
D
1 / 00
0 / 00
0 / 01
X / Z1Z2
Edo. actual
Codificado
Edo. Futuro, Z1 Z2
X=0
X=1
Transiciones
X=0 X=1
A
000
000, 00
001, 00
000
B
001
010, 00
001, 00
0!"
001
C
010
000, 00
011, 00
0"0
01!
D
011
100, 00
101, 00
!""
!"1
E
100
000, 00
011, 10
"00
"!!
F
101
010, 01
001, 00
"!"
"01
Prof. Juan Claudio Regidor
3
Ejercicio: Detector de
secuencia (3)
0 / 00
A
F “1011”
1 / 00
Ejercicio: Detector de
secuencia (2)
1 / 00
F
Universidad Simón Bolívar
Prof. Juan Claudio Regidor
0 / 00
B “1”
Edo. Futuro, Z1 Z2
X=0
X=1
Transiciones
X=0 X=1
A
000
000, 00
001, 00
000
B
001
010, 00
001, 00
0!"
00!
001
C
010
000, 00
011, 00
0"0
01!
D
011
100, 00
101, 00
!""
!"1
E
100
000, 00
011, 10
"00
"!!
F
101
010, 01
001, 00
"!"
"01
F
1 / 00
00!
Universidad Simón Bolívar
T2 = Q1·Q0 + Q2
4
Prof. Juan Claudio Regidor
T1 = X'·Q0 + X·Q2·Q0' + X'·Q1 + Q1·Q0 T0 = X·Q0' + X'·Q0 = X#Q0
Universidad Simón Bolívar
5
Ejercicio: Detector de
secuencia (4)
Edo. actual
Codificado
Edo. Futuro, Z1 Z2
X=0
X=1
Inicio
Transiciones
X=0 X=1
A
000
000, 00
001, 00
000
B
001
010, 00
001, 00
0!"
001
C
010
000, 00
011, 00
0"0
01!
D
011
100, 00
101, 00
!""
!"1
E
100
000, 00
011, 10
"00
"!!
F
101
010, 01
001, 00
"!"
"01
El estado inicial suele asignarse de tal modo que
todos los flip-flops estén en cero o en uno, y se usan
las entradas de Clear o Preset para iniciar el circuito.
00!
Vcc
Vcc
Pr
D
Pr
Q
D
Q
Vcc
C
Q'
C
Clr
Q'
Clr
INICIO
Z1 = X·Q2·Q0'
Z2 = X'·Q2·Q0
Universidad Simón Bolívar
Prof. Juan Claudio Regidor
Universidad Simón Bolívar
Prof. Juan Claudio Regidor
Diseño con un flip-flop
por estado (one-hot)
7
Diseño con un flip-flop
por estado
La idea es usar un flip-flop tipo D para representar
cada estado de la máquina. El flip-flop que esté en
uno corresponde al estado actual.
El diseño del circuito es una copia directa del
diagrama de estados:
X=0, S=0
X=1, S=0
X=0, S=0
X'
Bifurcación:
X=0
Ei
Di
Qi
A
Qi'
X
Di
DA
Qi
QA
D
X=1, S=1
X'
DB
X'
C
C
Universidad Simón Bolívar
X=0, S=0
C
X=1, S=0
Confluencia:
Ei
X=1, S=0
B
X
X=1
C
Prof. Juan Claudio Regidor
X=0, S=0
QB
X
C
X
X'
DC
QC
DD
X'
X
C
QD
C
Qi'
8
Prof. Juan Claudio Regidor
Universidad Simón Bolívar
9
Diseño con un flip-flop
por estado
Diseño con un flip-flop
por estado: Inicio
Las ecuaciones de excitación de cada flip-flop pueden
leerse de las “flechas” que llegan a cada estado:
X=0, S=0
X=1, S=0
A
X=0, S=0
X=0, S=0
X=1, S=0
B
C
X=0, S=0
La inicialización puede hacerse asíncronamente
mediante las entradas de preset y clear, o de manera
síncrona con compuertas adicionales a la entrada de
los flip-flops.
D
X=1, S=1
X=1, S=0
DA = X·QA + X·QC!
!
!
DB = Xʼ·QA + Xʼ·QB + Xʼ·QD
DC = X·QB + X·QD!
!
!
DD = Xʼ·QC ! !
Prof. Juan Claudio Regidor
El flip-flop que represente al estado inicial debe
cargarse con un “uno” y todos los demás deben
ponerse en “cero”.
!
S = X·QD
Universidad Simón Bolívar
10
Diseño con un flip-flop
por estado
Universidad Simón Bolívar
Prof. Juan Claudio Regidor
11
Diseño con un flip-flop
por estado: Ejemplo
0 / 00
Ventajas:
Simplicidad y rapidez del diseño.
A
1 / 00
B
0 / 00
C
0 / 00
D
0 / 00
0 / 01
X / Z1Z2
Especialmente útil cuando hay muchas entradas que
no están activas todo el tiempo.
F
1 / 00
Desventajas:
Cantidad excesiva de flip-flops.
DA = Xʼ·QA + Xʼ·QC + Xʼ·QE
DE = X´·QD
DB = X·QA + X·QB + X·QF
DF = X·QD
DC = Xʼ·QB + Xʼ·QF!
Z1 = X·QE
DD = X·QC + X·QE
Prof. Juan Claudio Regidor
1 / 00
1 / 00
Es más fácil depurar el circuito.
Universidad Simón Bolívar
E
1 / 10
1 / 00
0 / 00
12
Prof. Juan Claudio Regidor
Z2 = Xʼ·QF
Universidad Simón Bolívar
13
Ejercicio con un flip-flop
por estado (1)
Ejercicio con un flip-flop
por estado (2)
Y' / 00
Implementar el diagrama de estados de la figura
mediante el método de un flip-flop por estado.
Escribir las ecuaciones de entrada de los flip-flops
tipo D y las expresiones para las salidas Z1 y Z2.
Entradas / Z1 Z2
Y / 10
S' / 00
X.Y / 00
A
S / 00
B
Y' / 00
Y / 10
X.Y / 00
A
S / 00
B
Y' / 00
C
X / 00
X'.Y' / 00
D
X.Z' / 00
Prof. Juan Claudio Regidor
G
Z / 00
X.Z' / 00
F
X'.Y / 10
Z' / 00
Z' / 01
Z / 01
H
14
X.Y' / 00
F
X'.Y / 10
Z' / 00
H
Z / 01
Z / 00
DE = QF·Z + QD·X·Y
Z1 = QE·Y + QD·X'·Y
DB = QH·Z + QG·X'·Z' + QB·Y + QA·S
DF = QD·X·Y'
Z2 = QH·Z' + QG·Z
DC = QH·Z' + QB·Y'
DG = QC·X'
Prof. Juan Claudio Regidor
DH = QG·Z + QF·Z' + QD·X'·Y
Universidad Simón Bolívar
15
Control de Semáforo (2)
La figura muestra el esquema de una intersección de
dos calles, una principal y otra secundaria. Hay dos
detectores de vehículos, Dp y Ds, los cuales indican la
presencia de un automóvil esperando en la vía principal
o en la secundaria, respectivamente.
Hay también pulsadores que pueden ser
operados por un peatón que desee cruzar
la calle principal (los pulsadores Pp) o la
secundaria (los Ps); los pulsadores
correspondientes se conectan a compuertas OR, de modo que cada grupo se
puede tratar como una señal única.
Universidad Simón Bolívar
G
Z / 00
DA = QG·X·Z' + QE·Y' + QA·S'
DD = QE·Y + QD·X'·Y' + QC·X
Z / 00
Universidad Simón Bolívar
Control de Semáforo (1)
Prof. Juan Claudio Regidor
D
Z' / 01
X'.Z' / 00
X.Y' / 00
X' / 00
X'.Z' / 00
X / 00
X' / 00
E
Y / 00
S' / 00
C
X'.Y' / 00
Y' / 00
Entradas / Z1 Z2
E
Y / 00
Especificaciones:
La luz verde principal Vp se debe mantener encendida
por un mínimo de 30 segundos y continuar encendida
hasta que el detector Ds señale la presencia de un
automóvil en la vía secundaria o hasta que un peatón
accione el pulsador Pp. Se enciende simultáneamente
la luz roja secundaria, Rs.
La luz amarilla principal Ap se enciende durante 5
segundos, manteniéndose encendida Rs.
16
Prof. Juan Claudio Regidor
Universidad Simón Bolívar
17
Control de Semáforo (3)
Control de Semáforo (4)
Especificaciones (cont.):
Se dispone de dos temporizadores (monoestables no
redisparables, activados por frente de subida), uno de
5 segundos (entrada I5, salida T5) y otro de 15
segundos (entrada I15, salida T15)
La luz verde secundaria Vs se debe mantener
encendida por un mínimo de 15 segundos y continuar
encendida hasta que el detector Dp señale la presencia
de un automóvil en la vía principal o hasta que un
peatón accione el pulsador Ps. Se enciende
simultáneamente la luz roja principal, Rp.
La luz amarilla secundaria As se enciende durante 5
segundos, manteniéndose encendida Rp.
Se repite el ciclo indefinidamente.
Universidad Simón Bolívar
Prof. Juan Claudio Regidor
18
Control de Semáforo (5)
T15
A
T15
T15' / I15
B
T15'
C
Ds + Pp / I5
T15
D
A
T15
T15' / I15
B
T5
(Ds + Pp)'
T15'
C
Ds + Pp / I5
T5' / I15
DA = QA·T15 + QG·T5ʼ
D
T5' / I15
T5' / I15
G
T5' / I15
Dp + Ps / I5
F
T15'
19
Control de Semáforo (6)
T5
(Ds + Pp)'
Universidad Simón Bolívar
Prof. Juan Claudio Regidor
E
G
DB = QA·T15ʼ + QB·T15
DC = QB·T15ʼ + QC·(Ds + Pp)ʼ
DD = QD·T5 + QC·(Ds + Pp)
Dp + Ps / I5
F
T15'
E
DE = QE·T15 + QD·T5ʼ
DF = QE·T15ʼ + QF·(Dp + Ps)ʼ
T5
(Dp + Ps)'
T15
T5
Estado
A
B
C
D
E
F
G
Salidas Vp, Rs Vp, Rs Vp, Rs Ap, Rs Vs, Rp Vs, Rp As, Rp
Prof. Juan Claudio Regidor
Universidad Simón Bolívar
(Dp + Ps)'
T15
DG = QG·T5 + QF·(Dp+ Ps)
Estado
A
B
C
D
E
F
G
Salidas Vp, Rs Vp, Rs Vp, Rs Ap, Rs Vs, Rp Vs, Rp As, Rp
21
Prof. Juan Claudio Regidor
Universidad Simón Bolívar
22
wloop:
if( suma < numero ) {
impar += DOS;
suma += impar;
raiz ++;
Control de Semáforo (7)
if( suma < 0 )
return raiz ;
goto wloop;
T15
T15
T5
(Ds + Pp)'
Camino de
Datos
(Data Path)
// Puede ser un 'Halt'
}
Vp = QA return
+ QB +raiz
QC
;
// Puede ser un 'Halt'
}
A
T15' / I15
B
T15'
Ds + Pp / I5
C
Ap = QD
D
T5' / I15
T5' / I15
G
Rp = QE + QF + QG
Vs = QE + QF
Control de la ULA
S2S1S0 Operación
0 0 0
A+B
0 0 1
A–B
0 1 0
A+1
0 1 1
A–1
1 0 0 A AND B
1 0 1
A OR B
1 1 0
NOT A
1 1 1
A
As = QG
Dp + Ps / I5
F
T15'
E
Rs = QA + QB + QC + QD
I5=QC·(Ds+Pp)+QF·(Dp+ Ps)
T5
(Dp + Ps)'
T15
I15=QA·T15ʼ+QD·T5ʼ+QG·T5ʼ
Estado
A
B
C
D
E
F
G
Salidas Vp, Rs Vp, Rs Vp, Rs Ap, Rs Vs, Rp Vs, Rp As, Rp
Prof. Juan Claudio Regidor
Banco de
registros
Universidad Simón Bolívar
Z: Salida, vale 1 si el resultado de la
operación es 0
N: Salida, vale 1 si el resultado es negativo
23
wloop:
Camino de
Datos
(Data Path)
Los registros (Banco,
Salida, Flags) se cargan
con el frente de subida
del reloj. El período de
éste debe ser lo bastante
largo como para permitir que se completen
todas las operaciones.
if( del
suma
< numero
) {
Control
Banco
de Registros
impar += DOS;
Señal
sumaEnable
+= impar;
REA
Read
A
raiz ++;
REB
Read Enable B
WE
Write
Enable< 0 )
if( suma
DirA[2..0] Dirección
lectura
A (3;bits)// Puede ser un 'Halt'
return
raiz
goto wloop;
DirB[2..0] Dirección
lectura B (3 bits)
}
DirW[2..0]
Dirección escritura (3 bits)
Camino de Datos
Banco de
registros
return raiz ;
// Puede ser un 'Halt'
}
Figura 2
JCR/MPO/LGU
Edo.
Adw(2:0) AdA(2:0) AdB(2:0) WE Sm S(2:0) LF OE
0
000XXXXXX1011100
1
0010010011100100
2
001001XXX1101000
3
010001XXX1101000
4
0110010101100000
5
1000110101100000
6
1111001001100000
7
XXX0001110100110
8
1100000001100000
9
110110XXX1101001
Prof. Juan Claudio
10 Regidor
1 1 0 1 1 0 X X XUniversidad
1 1 0 1 1Simón
0 1 Bolívar
Control de la ULA
S2S1S0 Operación
0 0 0
A+B
0 0 1
A–B
0 1 0
A+1
0 1 1
A–1
1 0 0 A AND B
1 0 1
A OR B
1 1 0
NOT A
1 1 1
A
Z: Salida, vale 1 si el resultado de la
26
operación es 0
N: Salida, vale 1 si el resultado es negativo
Control del Banco de Registros
Camino de
Datos
Camino de Datos: Ejercicio
// Puede ser un 'Halt'
Banco de
registros
Dibujar un diagrama
de estados para
ejecutar la operación:
// Puede ser un 'Halt'
El siguiente algoritmo, escrito en lenguaje “C”,
produce la parte entera de la raíz cuadrada de un
número. Hacer un diagrama de estados que lo
materialice, de la manera más fiel posible, sobre el
“camino de datos” mostrado antes. El “NUMERO” se
supone cargado previamente en el registro R7.
Salida = Entrada*R4+R3;
Control de la ULA
S2S1S0 Operación
0 0 0
A+B
0 0 1
A–B
0 1 0
A+1
0 1 1
A–1
1 0 0 A AND B
1 0 1
A OR B
1 1 0
NOT A
1 1 1
A
Z: Salida, vale 1 si el resultado de la
operación es 0
N: Salida, vale 1 si el resultado es negativo
Prof. Juan Claudio Regidor
Control del Banco de Registros
Señal
REA
Read Enable A
REB
Read Enable B
WE
Write Enable
DirA[2..0] Dirección lectura A (3 bits)
DirB[2..0] Dirección lectura B (3 bits)
DirW[2..0] Dirección escritura (3 bits)
Camino de Datos: Ejercicio
#define
NUMERO 38
// Número está cargado en el registro R7
En cierta fábrica, una banda trasportadora que corre a 1
m/s lleva dos tipos de cajas: las tipo "A" de 50 cm. de
longitud, y las tipo "B", de 80 cm. Usando el camino de
datos anterior, se desea diseñar un sistema que realice las
siguientes operaciones:
suma = raiz = 0;
impar = suma + 1;
DOS
= impar + 1;
wloop:
if( suma < numero ) {
impar += DOS;
suma += impar;
raiz ++;
if( suma < 0 )
return raiz ;
goto wloop;
}
return raiz ;
}
Prof. Juan Claudio Regidor
28
Camino de Datos: Ejercicio
int Sqrt( int numero )
{
int suma, raiz, impar, DOS;
Figura 2
Universidad Simón Bolívar
Cada vez que haya pasado una caja se debe activar la
salida del camino de datos, con el valor 0 si pasó una caja
"A" y 1 si fue una tipo "B".
// Puede ser un 'Halt'
Se desea llevar la cuenta del número total de cajas (en R5),
número de cajas tipo "A" (en R6) y número de cajas
tipo "B" (en R7).
// Puede ser un 'Halt'
Universidad Simón Bolívar
29
Prof. Juan Claudio Regidor
Universidad Simón Bolívar
30
Camino de Datos: Ejercicio
ROM
Memoria de sólo lectura (Read Only Memory)
ROM: programable en la fabricación
La cinta tiene un sensor óptico que detecta la
interrupción de un rayo de luz al paso de una caja. La
salida de este sensor se lleva a la entrada del camino de
datos (bit 0). El reloj del controlador tiene un período de
0,01 s. Escriba un diagrama de estados que cumpla con
las condiciones pedidas.
PROM: programable una vez por el usuario
EPROM: borrable con luz ultravioleta
EEPROM o E2PROM: borrable eléctricamente; el ciclo
de borrado es mucho más lento que el de escritura
Flash memory: E2PROM borrable y programable por
bloques
Universidad Simón Bolívar
Prof. Juan Claudio Regidor
31
Control microprogramado
Universidad Simón Bolívar
Prof. Juan Claudio Regidor
Control microprogramado 2
Y
S'
Clk
Clr
Contador
Programable
Lectura
ROM
Clr
Control
Disponible
ROM
Condición
verdadera
Registro
Edo.
Act.
Condición
Prof. Juan Claudio Regidor
Inc.
Señales
de control
Universidad Simón Bolívar
Condición
falsa
1
S
X
Y'
Z
D0
0
D7
Y'
1
2
X
3
X'
Z'
CE Load
MUX
Salto
S
Clk
CE Load
Clk
0
Contador
Programable
Clk
...
.
32
Z
4
MUX
8:1
Condición
3
Salto
3
Salto
33
Prof. Juan Claudio Regidor
Universidad Simón Bolívar
34
Control microprogramado 2
Y
S'
Clr
0
Contador
Programable
Y'
S
1
0
D7
5
3
3
Salto
Prof. Juan Claudio Regidor
Z
4
Edo. Actual Condición
MUX
8:1
Condición
3
X'
CE Load
D0
X
Z'
Clk
1
S
X
Y'
Z
2
Salto
0 0 0
0 0 1
0 0 0
0 0 1
0 1 1
0 0 1
0 1 0
0 1 0
1 0 0
0 1 1
0 0 0
x x x
1 0 0
1 0 0
0 0 1
1 0 1
1 1 1
0 0 0
Universidad Simón Bolívar
34
Descargar