Upload
dobao
View
218
Download
0
Embed Size (px)
Citation preview
ELO211: Sistemas Digitales
Tomás Arredondo Vidal1er Semestre – 2008
Este material está basado en:
textos y material de apoyo: Contemporary Logic Design 1st / 2nd edition. Gaetano Borriello and Randy Katz. Prentice Hall, 1994, 2005
material del curso ELO211 del Prof. Leopoldo Silvamaterial en el sitio http://es.wikipedia.org
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 secuencialesContadoresRegistros de desplazamiento (o corrimiento)Registros de almacenamiento
13: Bloques Básicos 3
Bloques Básicos SecuencialesContadores
componente muy común, en sus diagramas no sueles anotarse las entradas ya que el cambio de estados se produce con el canto del relojasignación de estados se elige de forma que el estado determine la cuenta; debido a esto son maquinas de Moorese puede implementar con JK o D FFshay contadores binarios (000, 001, 010,...), BCD (0000-1001), Gray (distancia uno)también pueden ser de subida o de bajadapueden ser sincrónicos (todos los FFs cambian simultáneamente con el reloj) o no sincrónicos
13: Bloques Básicos 4
Ejemplo: Diseño de contador de subidaContadores
proceden a través de secuencia de estados bien definida en respuesta a enablecontador de subida de 3 bits: 000, 001, 010, 011, 100, 101, 110, 111, 000, ...
010
100
110
011001
000
101111
3-bit up-counter
Diagrama de estados 13: Bloques Básicos 5
Ejemplo: Contador de subida (cont)Diagrama de estados a tabla de transiciones
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
010
100
110
011001
000
101111
3-bit up-counter
13: Bloques Básicos 6
Ejemplo: Contador de subida (cont)
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
13: Bloques Básicos 7
Un flip-flop para cada bit de estadoLó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
Ejemplo: Contador de subida (cont)
Implementaciónusando 3 D flip-flops para tener estadológica para calcular próximo estadoreloj 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
13: Bloques Básicos 8
D Q D Q D Q
OUT1 OUT2 OUT3
CLK
"1"
13: Bloques Básicos 9
ActividadImplementar 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 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
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
Ejemplo: Contador mas complejoContador Complejo
repite 5 estados en secuenciasecuencia no es una representación numérica binaria
Paso 1: hacer diagrama de transición de estadoscontar 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 – – –
010
000 110
101
011
notar condiciones don't care por los estados no usados 13: Bloques Básicos 10
Ejemplo: Contador mas 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+
C+ <= A
B+ <= B’ + A’C’
A+ <= BC’
13: Bloques Básicos 11
Bloques Básicos SecuencialesRegistros de Desplazamiento (o Corrimiento)
una serie de FFs agrupados con reloj y señales de control comúndesplaza la información de una celda (FF) hacia la adyacente dentro del registro en respuesta al relojpuede ser un corrimiento a la izquierda o derechasi el contenido representa números con signo debe considerar la extensión de estetí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 transicionesvalores de outputmostrado en nodode 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
Ejemplo: Registro de corrimiento (cont)
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
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
CLK13: Bloques Básicos 14
Bloques Básicos SecuencialesRegistros de Almacenamiento
una serie de FFs agrupados con reloj y señales de control comúnel 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 cantopuede tener una habilitación de la escritura (writeenable)
13: Bloques Básicos 15
Registro de almacenamientoColecció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 setlógica similar en cada etapa
Ejemplo: registro de cuatro bits
R S R S R SD Q D Q D Q D Q
OUT1 OUT2 OUT3 OUT4
CLK
IN1 IN2 IN3 IN4
R S
"0"
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
Ejemplo: Contador de 4 bits
Secuencia fija de patronesen este caso: 1000, 0100, 0010, 0001uno de los patrones es estado inicial (al cargarlo o usando set/reset)
D Q D Q D Q D QIN
OUT1 OUT2 OUT3 OUT4
CLK
13: Bloques Básicos 18
Contador BinarioLógica entre registros
XOR deciden cuando el bit debería cambiarsiempre para primer bit, solo cuando primer bit es verdad para el segundo etc...output : 0000, 0001, 0010, 0011, 0100, 0101, 0111, ...
D Q D Q D Q D Q
OUT1 OUT2 OUT3 OUT4
CLK
"1"
13: Bloques Básicos 19
Contador binario de cuatro bits sincrónico
13: Bloques Básicos 20
EN
DCBALOADCLKCLR
RCOQDQCQBQA
(1) Low order 4-bits = 1111
(2) RCO goes high
(3) High order 4-bits are incremented
Componente estandard en muchas aplicacionesFF con activación en canto de subida, con carga y clearsincrónicos con el relojcarga de datos paralelo desde D, C, B, Aenable: tiene que estar alta para contarRCO: ripple-carry se usa para cascadear contadores• alto cuando contador en estado mas alto (1111)• implementa usando una compuerta AND
Contadores con offset (punto de partida)
EN
DCBALOADCLKCLR
RCOQDQCQBQA
"1"
"0""0""0""0"
"0"
EN
DCBALOADCLKCLR
RCOQDQCQBQA
"1"
"0""1""1""0"
Carga de offset counters – sincrónicoe.g., 0110, 0111, 1000, 1001,1010, 1011, 1100, 1101, 1111, 0110, . . .
Termino – comparator para valor de terminoe.g., 0000, 0001, 0010, ..., 1100, 1101, 0000
Combinaciones (valor de comienzo y termino)
13: Bloques Básicos 21
Registros de corrimiento (shift register)Mantienen muestreo del input
almacena valor de los últimos 4 inputs en secuenciaEjemplo: 4-bit shift register
D Q D Q D Q D QIN
OUT1 OUT2 OUT3 OUT4
CLK
13: Bloques Básicos 22
Registro de corrimiento universalTiene varias funciones:
inputs paralelo o serialoutputs paralelo o serialpermite corrimiento a la izquierda o derechanuevos valores para el corrimiento entran de izquierda a derecha
left_inleft_out
right_out
clearright_in
output
input
s0s1
clock
si clear = 1, contenidos y outputsdel 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
13: Bloques Básicos 23
Diseño del registro de corrimiento universal
13: Bloques Básicos 24
celda de un FF
DQ
CLK
Q[N-1](left)
Q[N+1](right)
Input[N]
to N-1th cell
to N+1th cell
clear s0 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
Considerando uno de los cuatro FFs:valor nuevo en nuevo ciclo del reloj:
s0 and s1control mux0 1 2 3
CLEAR
Aplicación de registro de corrimiento
Conversión paralela a serial para transmisión serial
parallel inputs (8 bits)
parallel outputs (8 bits)
serial transmission (1 bit)
13: Bloques Básicos 25
Reconocedor de patrones
Función combinacional de muestreo de inputsen este caso, reconocer el patrón 1001 en la señal de input IN
D Q D Q D Q D QIN
OUT1 OUT2 OUT3 OUT4
CLK
OUT
13: Bloques Básicos 26