elo211: sistemas digitales tomás arredondo vidal 1er...

26
ELO211: Sistemas Digitales Tomás Arredondo Vidal 1er Semestre – 2008 Este material está basado en: textos y material de apoyo: Contemporary Logic Design 1 st / 2 nd edition. Gaetano Borriello and Randy Katz. Prentice Hall, 1994, 2005 material del curso ELO211 del Prof. Leopoldo Silva material en el sitio http://es.wikipedia.org 13: Bloques Básicos 1

Upload: dobao

Post on 10-Nov-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ELO211: Sistemas Digitales Tomás Arredondo Vidal 1er ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/13-Bloques... · • hay que esperar para que la lógica calcule

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

Page 2: ELO211: Sistemas Digitales Tomás Arredondo Vidal 1er ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/13-Bloques... · • hay que esperar para que la lógica calcule

13-Bloques Básicos Secuenciales

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

13: Bloques Básicos 2

Page 3: ELO211: Sistemas Digitales Tomás Arredondo Vidal 1er ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/13-Bloques... · • hay que esperar para que la lógica calcule

Bloques Básicos Secuenciales

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

13: Bloques Básicos 3

Page 4: ELO211: Sistemas Digitales Tomás Arredondo Vidal 1er ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/13-Bloques... · • hay que esperar para que la lógica calcule

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

Page 5: ELO211: Sistemas Digitales Tomás Arredondo Vidal 1er ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/13-Bloques... · • hay que esperar para que la lógica calcule

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

Page 6: ELO211: Sistemas Digitales Tomás Arredondo Vidal 1er ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/13-Bloques... · • hay que esperar para que la lógica calcule

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

Page 7: ELO211: Sistemas Digitales Tomás Arredondo Vidal 1er ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/13-Bloques... · • hay que esperar para que la lógica calcule

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

Page 8: ELO211: Sistemas Digitales Tomás Arredondo Vidal 1er ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/13-Bloques... · • hay que esperar para que la lógica calcule

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"

Page 9: ELO211: Sistemas Digitales Tomás Arredondo Vidal 1er ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/13-Bloques... · • hay que esperar para que la lógica calcule

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

Page 10: ELO211: Sistemas Digitales Tomás Arredondo Vidal 1er ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/13-Bloques... · • hay que esperar para que la lógica calcule

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

Page 11: ELO211: Sistemas Digitales Tomás Arredondo Vidal 1er ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/13-Bloques... · • hay que esperar para que la lógica calcule

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

Page 12: ELO211: Sistemas Digitales Tomás Arredondo Vidal 1er ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/13-Bloques... · • hay que esperar para que la lógica calcule

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

Page 13: ELO211: Sistemas Digitales Tomás Arredondo Vidal 1er ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/13-Bloques... · • hay que esperar para que la lógica calcule

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

Page 14: ELO211: Sistemas Digitales Tomás Arredondo Vidal 1er ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/13-Bloques... · • hay que esperar para que la lógica calcule

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

Page 15: ELO211: Sistemas Digitales Tomás Arredondo Vidal 1er ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/13-Bloques... · • hay que esperar para que la lógica calcule

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

Page 16: ELO211: Sistemas Digitales Tomás Arredondo Vidal 1er ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/13-Bloques... · • hay que esperar para que la lógica calcule

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

Page 17: ELO211: Sistemas Digitales Tomás Arredondo Vidal 1er ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/13-Bloques... · • hay que esperar para que la lógica calcule

13-Bloques Básicos Secuenciales

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

13: Bloques Básicos 17

Page 18: ELO211: Sistemas Digitales Tomás Arredondo Vidal 1er ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/13-Bloques... · • hay que esperar para que la lógica calcule

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

Page 19: ELO211: Sistemas Digitales Tomás Arredondo Vidal 1er ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/13-Bloques... · • hay que esperar para que la lógica calcule

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

Page 20: ELO211: Sistemas Digitales Tomás Arredondo Vidal 1er ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/13-Bloques... · • hay que esperar para que la lógica calcule

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

Page 21: ELO211: Sistemas Digitales Tomás Arredondo Vidal 1er ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/13-Bloques... · • hay que esperar para que la lógica calcule

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

Page 22: ELO211: Sistemas Digitales Tomás Arredondo Vidal 1er ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/13-Bloques... · • hay que esperar para que la lógica calcule

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

Page 23: ELO211: Sistemas Digitales Tomás Arredondo Vidal 1er ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/13-Bloques... · • hay que esperar para que la lógica calcule

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

Page 24: ELO211: Sistemas Digitales Tomás Arredondo Vidal 1er ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/13-Bloques... · • hay que esperar para que la lógica calcule

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

Page 25: ELO211: Sistemas Digitales Tomás Arredondo Vidal 1er ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/13-Bloques... · • hay que esperar para que la lógica calcule

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

Page 26: ELO211: Sistemas Digitales Tomás Arredondo Vidal 1er ...profesores.elo.utfsm.cl/~tarredondo/info/digital-systems/13-Bloques... · • hay que esperar para que la lógica calcule

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