13-Bloques Básicos Secuenciales - Inicio · Departamento ...lsb/elo211/clases/13-Bloques...

25
13: Bloques Básicos 1 13-Bloques Básicos Secuenciales 13.1 Bloques básicos 13.2 Ejemplos de diseños

Transcript of 13-Bloques Básicos Secuenciales - Inicio · Departamento ...lsb/elo211/clases/13-Bloques...

Page 1: 13-Bloques Básicos Secuenciales - Inicio · Departamento ...lsb/elo211/clases/13-Bloques Basicos.pdf · • hay que esperar para que la lógica calcule nuevo valor ... RCO: ripple-carry

13: Bloques Básicos 1

13-Bloques Básicos Secuenciales

13.1 Bloques básicos13.2 Ejemplos de diseños

Page 2: 13-Bloques Básicos Secuenciales - Inicio · Departamento ...lsb/elo211/clases/13-Bloques Basicos.pdf · • hay que esperar para que la lógica calcule nuevo valor ... RCO: ripple-carry

13: Bloques Básicos 2

Bloques Básicos Secuenciales

Bloques básicos secuenciales Contadores Registros de desplazamiento (o corrimiento) Registros de almacenamiento

Page 3: 13-Bloques Básicos Secuenciales - Inicio · Departamento ...lsb/elo211/clases/13-Bloques Basicos.pdf · • hay que esperar para que la lógica calcule nuevo valor ... RCO: ripple-carry

13: Bloques Básicos 3

Bloques Básicos Secuenciales

Contadores Componente muy común, en sus diagramas no suelen

anotarse las entradas ya que el cambio de estados se produce con el canto del reloj.

Asignación de estados se elige de forma que el estado determine la cuenta; debido a esto son máquinas de Moore.

Se puede implementar con JK o D FFs. Hay contadores binarios (000, 001, 010,...), BCD (0000-

1001), Gray (distancia uno). También pueden ser de subida o de bajada. Pueden ser sincrónicos (todos los FFs cambian

simultáneamente con el reloj) o no sincrónicos.

Page 4: 13-Bloques Básicos Secuenciales - Inicio · Departamento ...lsb/elo211/clases/13-Bloques Basicos.pdf · • hay que esperar para que la lógica calcule nuevo valor ... RCO: ripple-carry

13: Bloques Básicos 4

010

100

110

011001

000

101111

3-bit up-counter

Ejemplo: Diseño de contador de subida

Contadores Proceden a través de secuencia de estados bien

definida en respuesta a enable. Contador de subida de 3 bits: 000, 001, 010, 011,

100, 101, 110, 111, 000, ...

Diagrama de estados

Page 5: 13-Bloques Básicos Secuenciales - Inicio · Departamento ...lsb/elo211/clases/13-Bloques Basicos.pdf · • hay que esperar para que la lógica calcule nuevo valor ... RCO: ripple-carry

13: Bloques Básicos 5

010

100

110

011001

000

101111

3-bit up-counter

present state next state0 000 001 11 001 010 22 010 011 33 011 100 44 100 101 55 101 110 66 110 111 77 111 000 0

Ejemplo: Contador de subida (cont)

Diagrama de estados a tabla de transiciones

Page 6: 13-Bloques Básicos Secuenciales - Inicio · Departamento ...lsb/elo211/clases/13-Bloques Basicos.pdf · • hay que esperar para que la lógica calcule nuevo valor ... RCO: ripple-carry

13: Bloques Básicos 6

C3 C2 C1 C3+C2+C1+0 0 0 0 0 10 0 1 0 1 00 1 0 0 1 10 1 1 1 0 01 0 0 1 0 11 0 1 1 1 01 1 0 1 1 11 1 1 0 0 0

N1 <= C1’N2 <= C1C2’ + C1’C2

<= C1 xor C2N3 <= C1C2C3’ + C1’C3 + C2’C3

<= (C1C2)C3’ + (C1’ + C2’)C3<= (C1C2)C3’ + (C1C2)’C3<= (C1C2) xor C3

código en Verilog paramostrar que la funciónes un input a un D-FF

Ejemplo: Contador de subida (cont)

Un flip-flop para cada bit de estado Lógica combinacional basada en codificación

Como es D-FF: N1=C1+, N2=C2+, N3=C3+

0 0

0 1

1 1

0 1C1

C2

C3N3

0 1

1 0

1 0

0 1C1

C2

C3N2

1 1

0 0

1 1

0 0C1

C2

C3N1

Page 7: 13-Bloques Básicos Secuenciales - Inicio · Departamento ...lsb/elo211/clases/13-Bloques Basicos.pdf · • hay que esperar para que la lógica calcule nuevo valor ... RCO: ripple-carry

13: Bloques Básicos 7

Ejemplo: Contador de subida (cont)

Implementación usando 3 D flip-flops para tener estado lógica para calcular próximo estado reloj controla cuando la memoria de los flip-flops

cambia• hay que esperar para que la lógica calcule nuevo valor• no hay que esperar mucho para no tener velocidad muy

lenta

D Q D Q D Q

OUT1 OUT2 OUT3

CLK

"1"

Page 8: 13-Bloques Básicos Secuenciales - Inicio · Departamento ...lsb/elo211/clases/13-Bloques Basicos.pdf · • hay que esperar para que la lógica calcule nuevo valor ... RCO: ripple-carry

13: Bloques Básicos 8

Actividad Implementar un contador de subida de 3 bits (000,

001, 010, ..., 111,000) usando FFs J-K y método analítico.

Q1+ = Q1’Q2+ = Q1Q2’ + Q1’Q2Q3+ = Q1Q2Q3’ + Q1’Q3 + Q2’Q3

Q3 Q2 Q1 Q3+ Q2+ Q1+

0 0 0 0 0 1

0 0 1 0 1 0

0 1 0 0 1 1

0 1 1 1 0 0

1 0 0 1 0 1

1 0 1 1 1 0

1 1 0 1 1 1

1 1 1 0 0 0

Usando mapasde Karnaugh

Para FFs J-K:Qn+= JnQn’ + Kn’Qn

Poniendo en formato paraJ-K FFs

Q1+ = (1)Q1’ + (1)’Q1Q2+ = (Q1)Q2’ + (Q1)’Q2Q3+ = (Q1Q2)Q3’ + (Q1’ + Q2’)Q3

J1 = 1 K1 = 1J2 = Q1 K2 = Q1J3 = (Q1Q2) K3 = (Q1’ + Q2’)

Comparando coeficientes se obtiene finalmente

Page 9: 13-Bloques Básicos Secuenciales - Inicio · Departamento ...lsb/elo211/clases/13-Bloques Basicos.pdf · • hay que esperar para que la lógica calcule nuevo valor ... RCO: ripple-carry

13: Bloques Básicos 9

Ejemplo: Contador más complejo

Contador Complejo repite 5 estados en secuencia secuencia no es una representación numérica binaria

Paso 1: hacer diagrama de transición de estados contar secuencia: 000, 010, 011, 101, 110

Paso 2: hacer tabla de transición de estados

Present State Next StateC B A C+ B+ A+0 0 0 0 1 00 0 1 – – –0 1 0 0 1 10 1 1 1 0 11 0 0 – – –1 0 1 1 1 01 1 0 0 0 01 1 1 – – –

notar condiciones don't care por los estados no usados

010

000 110

101

011

Page 10: 13-Bloques Básicos Secuenciales - Inicio · Departamento ...lsb/elo211/clases/13-Bloques Basicos.pdf · • hay que esperar para que la lógica calcule nuevo valor ... RCO: ripple-carry

13: Bloques Básicos 10

C+ <= A

B+ <= B’ + A’C’

A+ <= BC’

Ejemplo: Contador más complejo (cont)

Paso 3: mapas Karnaugh para próximas funciones

0 0

X 1

0 X

X 1A

B

CC+

1 1

X 0

0 X

X 1A

B

CB+

0 1

X 1

0 X

X 0A

B

CA+

Page 11: 13-Bloques Básicos Secuenciales - Inicio · Departamento ...lsb/elo211/clases/13-Bloques Basicos.pdf · • hay que esperar para que la lógica calcule nuevo valor ... RCO: ripple-carry

13: Bloques Básicos 11

Bloques Básicos Secuenciales

Registros de Desplazamiento (o Corrimiento) Una serie de FFs agrupados con reloj y señales de control

común. Desplaza la información de una celda (FF) hacia la

adyacente dentro del registro en respuesta al reloj. Puede ser un corrimiento a la izquierda o derecha. Si el contenido representa números con signo debe

considerar la extensión de este. Típicamente se utilizan en

• operaciones aritméticas • operaciones lógicas• conversión serie paralelo• generador de secuencias• líneas de retardo• reconocedor de secuencias• generadores de códigos de chequeo (CRC)• generadores pseudo aleatorios

Page 12: 13-Bloques Básicos Secuenciales - Inicio · Departamento ...lsb/elo211/clases/13-Bloques Basicos.pdf · • hay que esperar para que la lógica calcule nuevo valor ... RCO: ripple-carry

13: Bloques Básicos 12

Ejemplo: Registro de corrimiento (shift register) Shift register de 3 bits

input mostrado enarcos de transiciones

valores de outputmostrado en nodo

de estado

100 110

111

011

101010000

001

1

1

1

1

0

0

00

1

1

1

0

0

1

00

D Q D Q D QIN

OUT1 OUT2 OUT3

CLK

Page 13: 13-Bloques Básicos Secuenciales - Inicio · Departamento ...lsb/elo211/clases/13-Bloques Basicos.pdf · • hay que esperar para que la lógica calcule nuevo valor ... RCO: ripple-carry

13: Bloques Básicos 13

In C1 C2 C3 N1 N2 N30 0 0 0 0 0 00 0 0 1 0 0 00 0 1 0 0 0 10 0 1 1 0 0 10 1 0 0 0 1 00 1 0 1 0 1 00 1 1 0 0 1 10 1 1 1 0 1 11 0 0 0 1 0 01 0 0 1 1 0 01 0 1 0 1 0 11 0 1 1 1 0 11 1 0 0 1 1 01 1 0 1 1 1 01 1 1 0 1 1 11 1 1 1 1 1 1

N1 <= InN2 <= C1N3 <= C2

Ejemplo: Registro de corrimiento (cont)

Input determina próximo estado

100 110

111

011

101010000

001

0

1

1 1

11

1

1

0

0

0

0 0

1

00

D Q D Q D QIN

OUT1 OUT2 OUT3

CLK

Page 14: 13-Bloques Básicos Secuenciales - Inicio · Departamento ...lsb/elo211/clases/13-Bloques Basicos.pdf · • hay que esperar para que la lógica calcule nuevo valor ... RCO: ripple-carry

13: Bloques Básicos 14

Bloques Básicos Secuenciales

Registros de Almacenamiento Una serie de FFs agrupados con reloj y señales

de control común. El registro captura los inputs en las líneas de

entrada en el canto del reloj y los mantiene en las salidas hasta el próximo canto.

Puede tener una habilitación de la escritura (write enable)

Page 15: 13-Bloques Básicos Secuenciales - Inicio · Departamento ...lsb/elo211/clases/13-Bloques Basicos.pdf · • hay que esperar para que la lógica calcule nuevo valor ... RCO: ripple-carry

13: Bloques Básicos 15

R S R S R S

D Q D Q D Q D Q

OUT1 OUT2 OUT3 OUT4

CLK

IN1 IN2 IN3 IN4

R S

"0"

Registro de almacenamiento Colección de flip-flops con control y lógica similar

valores almacenados de alguna forma están relacionados (ej: forman un valor binario de cuatro bits – un nibble)

comparten reloj, reset y set lógica similar en cada etapa

Ejemplo: registro de cuatro bits con D-FF y líneas de Set/Reset

Page 16: 13-Bloques Básicos Secuenciales - Inicio · Departamento ...lsb/elo211/clases/13-Bloques Basicos.pdf · • hay que esperar para que la lógica calcule nuevo valor ... RCO: ripple-carry

13: Bloques Básicos 16

13-Bloques Básicos Secuenciales

13.1 Bloques básicos13.2 Ejemplos de diseños

Page 17: 13-Bloques Básicos Secuenciales - Inicio · Departamento ...lsb/elo211/clases/13-Bloques Basicos.pdf · • hay que esperar para que la lógica calcule nuevo valor ... RCO: ripple-carry

13: Bloques Básicos 17

D Q D Q D Q D QIN

OUT1 OUT2 OUT3 OUT4

CLK

Ejemplo: Contador de 4 bits

Secuencia fija de patrones en este caso: 1000, 0100, 0010, 0001 uno de los patrones es estado inicial (al cargarlo o usando

set/reset)

Page 18: 13-Bloques Básicos Secuenciales - Inicio · Departamento ...lsb/elo211/clases/13-Bloques Basicos.pdf · • hay que esperar para que la lógica calcule nuevo valor ... RCO: ripple-carry

13: Bloques Básicos 18

D Q D Q D Q D Q

OUT1 OUT2 OUT3 OUT4

CLK

"1"

Contador Binario

Lógica entre registros XOR deciden cuando el bit debería cambiar siempre para primer bit, solo cuando primer bit es

verdad para el segundo etc... output : 0000, 0001, 0010, 0011, 0100, 0101,

0111, ...

Page 19: 13-Bloques Básicos Secuenciales - Inicio · Departamento ...lsb/elo211/clases/13-Bloques Basicos.pdf · • hay que esperar para que la lógica calcule nuevo valor ... RCO: ripple-carry

13: Bloques Básicos 19

EN

DCBA

LOAD

CLK

CLR

RCO

QDQCQBQA

(1) Low order 4-bits = 1111

(2) RCO goes high

(3) High order 4-bits are incremented

Contador binario de cuatro bits sincrónico Componente estandard en muchas aplicaciones FF con activación en canto de subida, con carga y

clear sincrónicos con el reloj carga de datos paralelo desde D, C, B, A enable: tiene que estar alta para contar RCO: ripple-carry se usa para cascadear contadores

• alto cuando contador en estado mas alto (1111)• implementa usando una compuerta AND

Page 20: 13-Bloques Básicos Secuenciales - Inicio · Departamento ...lsb/elo211/clases/13-Bloques Basicos.pdf · • hay que esperar para que la lógica calcule nuevo valor ... RCO: ripple-carry

13: Bloques Básicos 20

EN

DCBA

LOAD

CLK

CLR

RCO

QDQCQBQA

"1"

"0""0""0""0"

"0"

EN

DCBA

LOAD

CLK

CLR

RCO

QDQCQBQA

"1"

"0""1""1""0"

Contadores con offset (punto de partida)

Carga de offset counters – sincrónico e.g., 0110, 0111, 1000, 1001,

1010, 1011, 1100, 1101, 1111, 0110, . . .

Término – comparador para valor de término e.g., 0000, 0001, 0010, ..., 1100, 1101, 0000

Combinaciones (valor de comienzo y término)

Page 21: 13-Bloques Básicos Secuenciales - Inicio · Departamento ...lsb/elo211/clases/13-Bloques Basicos.pdf · • hay que esperar para que la lógica calcule nuevo valor ... RCO: ripple-carry

13: Bloques Básicos 21

D Q D Q D Q D QIN

OUT1 OUT2 OUT3 OUT4

CLK

Registros de corrimiento (shift register)

Mantienen muestreo del input almacena valor de los últimos 4 inputs en

secuencia Ejemplo: 4-bit shift register

Page 22: 13-Bloques Básicos Secuenciales - Inicio · Departamento ...lsb/elo211/clases/13-Bloques Basicos.pdf · • hay que esperar para que la lógica calcule nuevo valor ... RCO: ripple-carry

13: Bloques Básicos 22

si clear = 1, contenidos y outputs del registro = 0

s1 y s0 determinan la función: s0 s1 función0 0 hold state0 1 shift right1 0 shift left1 1 load new input

left_inleft_out

right_out

clearright_in

output

input

s0s1

clock

Registro de corrimiento universal

Tiene varias funciones: inputs paralelo o serial outputs paralelo o serial permite corrimiento a la izquierda o derecha nuevos valores para el corrimiento entran de

izquierda a derecha

Page 23: 13-Bloques Básicos Secuenciales - Inicio · Departamento ...lsb/elo211/clases/13-Bloques Basicos.pdf · • hay que esperar para que la lógica calcule nuevo valor ... RCO: ripple-carry

13: Bloques Básicos 23

celda de un FF

D

Q

CLK

Q[N-1](left)

Q[N+1](right)Input[N]

to N-1th cell

to N+1th cell

clears0 s1 new value1 – – 00 0 0 output0 0 1 output value of FF to left (shift right)0 1 0 output value of FF to right (shift left)0 1 1 input

Diseño del registro de corrimiento universal Considerando uno de los cuatro FFs:

valor nuevo en nuevo ciclo del reloj:

s0 and s1control mux0 1 2 3

CLEAR

Page 24: 13-Bloques Básicos Secuenciales - Inicio · Departamento ...lsb/elo211/clases/13-Bloques Basicos.pdf · • hay que esperar para que la lógica calcule nuevo valor ... RCO: ripple-carry

13: Bloques Básicos 24

parallel inputs (8 bits)

parallel outputs (8 bits)

serial transmission (1 bit)

Aplicación de registro de corrimiento

Conversión paralela a serial para transmisión serial

Page 25: 13-Bloques Básicos Secuenciales - Inicio · Departamento ...lsb/elo211/clases/13-Bloques Basicos.pdf · • hay que esperar para que la lógica calcule nuevo valor ... RCO: ripple-carry

13: Bloques Básicos 25

D Q D Q D Q D QIN

OUT1 OUT2 OUT3 OUT4

CLK

OUT

Reconocedor de patrones

Función combinacional de muestreo de inputs en este caso, reconocer el patrón 1001 en la señal de

input IN