Ejercicio: Detector de secuencia (1) Ejercicio: Detector de secuencia (3) Ejercicio: Detector de secuencia (2) Circuitos Digitales EC1723

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 ...
47 downloads 1 Views 2MB Size
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