13-Bloques Básicos Secuenciales - Inicio · Departamento ...lsb/elo211/clases/13-Bloques...
Transcript of 13-Bloques Básicos Secuenciales - Inicio · Departamento ...lsb/elo211/clases/13-Bloques...
13: Bloques Básicos 1
13-Bloques Básicos Secuenciales
13.1 Bloques básicos13.2 Ejemplos de diseños
13: Bloques Básicos 2
Bloques Básicos Secuenciales
Bloques básicos secuenciales Contadores Registros de desplazamiento (o corrimiento) Registros de almacenamiento
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.
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
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
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
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"
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
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
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+
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
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
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
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)
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
13: Bloques Básicos 16
13-Bloques Básicos Secuenciales
13.1 Bloques básicos13.2 Ejemplos de diseños
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)
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, ...
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
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)
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
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
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
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
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