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