Вы находитесь на странице: 1из 26

ELO211: Sistemas Digitales Toms Arredondo Vidal 1er 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 Silva material en el sitio http://es.wikipedia.org
13: Bloques Bsicos

13-Bloques Bsicos Secuenciales


13.1 Bloques bsicos 13.2 Ejemplos de diseos

13: Bloques Bsicos

Bloques Bsicos Secuenciales

Bloques bsicos secuenciales


Contadores Registros de desplazamiento (o corrimiento) Registros de almacenamiento

13: Bloques Bsicos

Bloques Bsicos Secuenciales


Contadores
componente muy comn, en sus diagramas no sueles anotarse las entradas ya que el cambio de estados se produce con el canto del reloj asignacin de estados se elige de forma que el estado determine la cuenta; debido a esto son maquinas de Moore se puede implementar con JK o D FFs hay contadores binarios (000, 001, 010,...), BCD (0000-1001), Gray (distancia uno) tambin pueden ser de subida o de bajada pueden ser sincrnicos (todos los FFs cambian simultneamente con el reloj) o no sincrnicos

13: Bloques Bsicos

Ejemplo: Diseo de contador de subida


Contadores
proceden a travs 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, ...

001

010

011

000

3-bit up-counter

100

111

110 Diagrama de estados

101
13: Bloques Bsicos

Ejemplo: Contador de subida (cont)


Diagrama de estados a tabla de transiciones
present state 0 000 1 001 2 010 3 011 4 100 5 101 6 110 7 111 next state 001 1 010 2 011 3 100 4 101 5 110 6 111 7 000 0

001

010

011

000

3-bit up-counter 110 101

100

111

13: Bloques Bsicos

Ejemplo: Contador de subida (cont)


Un flip-flop para cada bit de estado Lgica combinacional basada en codificacin Como es D-FF: N1=C1+, N2=C2+, N3=C3+
C3 0 0 0 0 1 1 1 1 N3
0 0 1 1 0

C2 0 0 1 1 0 0 1 1

C1 0 1 0 1 0 1 0 1 C3
1 1

C3+ 0 0 0 1 1 1 1 0

C2+ 0 1 1 0 0 1 1 0

C1+ 1 0 1 0 1 0 1 0

cdigo en Verilog para mostrar que la funcin es un input a un D-FF N1 <= C1 N2 <= C1C2 + C1C2 <= C1 xor C2 N3 <= C1C2C3 + C1C3 + C2C3 <= (C1C2)C3 + (C1 + C2)C3 <= (C1C2)C3 + (C1C2)C3 <= (C1C2) xor C3 C3 N1
1 1 0 1 0

N2
0 1 0 1 0

C3
1 0 7

0 1

C1 0

C1 1

C1 0

C2

C2

13: Bloques Bsicos

C2

Ejemplo: Contador de subida (cont)

Implementacin
usando 3 D flip-flops para tener estado lgica para calcular prximo estado reloj controla cuando la memoria de los flip-flops cambia
hay que esperar para que la lgica calcule nuevo valor no hay que esperar mucho para no tener velocidad muy lenta
OUT1 D Q CLK D Q OUT2 D Q OUT3

"1"
13: Bloques Bsicos 8

Actividad

Implementar un contador de subida de 3 bits (000, 001, 010, ..., 111,000) usando FFs J-K y mtodo analtico.
Q2 0 0 1 1 0 0 1 1 Q1 0 1 0 1 0 1 0 1 Q3+ Q2+ Q1+ 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 0 0 Para FFs J-K: Qn+= JnQn + KnQn Usando mapas de Karnaugh Q1+ = Q1 Q2+ = Q1Q2 + Q1Q2 Q3+ = Q1Q2Q3 + Q1Q3 + Q2Q3 Poniendo en formato para J-K FFs Q1+ = (1)Q1 + (1)Q1 Q2+ = (Q1)Q2 + (Q1)Q2 Q3+ = (Q1Q2)Q3 + (Q1 + Q2)Q3 J1 = 1 J2 = Q1 J3 = (Q1Q2) K1 = 1 K2 = Q1 K3 = (Q1 + Q2) Comparando coeficientes se obtiene finalmente
13: Bloques Bsicos 9

Q3 0 0 0 0 1 1 1 1

Ejemplo: Contador mas complejo


Contador Complejo
repite 5 estados en secuencia secuencia no es una representacin numrica binaria

Paso 1: hacer diagrama de transicin de estados


contar secuencia: 000, 010, 011, 101, 110

Paso 2: hacer tabla de transicin de estados


000 110 Present State Next State C B A C+ B+ A+ 0 0 0 0 1 0 0 0 1 0 1 0 0 1 1 0 1 1 1 0 1 1 0 0 1 0 1 1 1 0 1 1 0 0 0 0 1 1 1
13: Bloques Bsicos 10

010 011

101

notar condiciones don't care por los estados no usados

Ejemplo: Contador mas complejo (cont)


Paso 3: mapas Karnaugh para prximas funciones
C+
0 0 1 0 X

C
X 1

B+
1 1 0 0 X

C
X 1

A+
0 1 1 0 X

C
X 0

C+ <= A B+ <= B + AC A+ <= BC

13: Bloques Bsicos

11

Bloques Bsicos Secuenciales


Registros de Desplazamiento (o Corrimiento)
una serie de FFs agrupados con reloj y seales de control comn desplaza la informacin 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 nmeros con signo debe considerar la extensin de este tpicamente se utilizan en
operaciones aritmticas operaciones lgicas conversin serie paralelo generador de secuencias lneas de retardo reconocedor de secuencias generadores de cdigos de chequeo (CRC) generadores pseudo aleatorios

13: Bloques Bsicos

12

Ejemplo: Registro de corrimiento (shift register)


Shift register de 3 bits
input mostrado en arcos de transiciones valores de output mostrado en nodo de estado
IN CLK D Q OUT1 D Q OUT2 D Q OUT3

100 1 0 000 0 001 1 0 0 010

1 1 101 0 0 1 1

110 1 0 0 011 111 1

13: Bloques Bsicos

13

Ejemplo: Registro de corrimiento (cont)


Input determina prximo estado
1 0 1 0 001 0 010 0 0 1 101 1 011 1 0 0

100 1 0 000

110 1 111 1

N1 <= In N2 <= C1 N3 <= C2 IN CLK D Q

In 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 OUT1

C1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

C2 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

C3 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

N1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

N2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

N3 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

OUT2 D Q

OUT3

D Q

13: Bloques Bsicos

14

Bloques Bsicos Secuenciales


Registros de Almacenamiento una serie de FFs agrupados con reloj y seales de control comn el registro captura los inputs en las lneas de entrada en el canto del reloj y los mantiene en las salidas hasta el prximo canto puede tener una habilitacin de la escritura (write enable)

13: Bloques Bsicos

15

Registro de almacenamiento
Coleccin de flip-flops con control y lgica similar valores almacenados de alguna forma estn relacionados (ej: forman un valor binario de cuatro bits un nibble) comparten reloj, reset y set lgica similar en cada etapa Ejemplo: registro de cuatro bits
OUT1 "0" R S D Q CLK IN1 IN2 IN3 IN4 R S D Q R S D Q R S D Q OUT2 OUT3 OUT4

13: Bloques Bsicos

16

13-Bloques Bsicos Secuenciales


13.1 Bloques bsicos 13.2 Ejemplos de diseos

13: Bloques Bsicos

17

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)

OUT1 IN CLK D Q D Q

OUT2 D Q

OUT3 D Q

OUT4

13: Bloques Bsicos

18

Contador Binario
Lgica entre registros XOR deciden cuando el bit debera cambiar siempre para primer bit, solo cuando primer bit es verdad para el segundo etc... output : 0000, 0001, 0010, 0011, 0100, 0101, 0111, ...
OUT1 D Q CLK D Q OUT2 D Q OUT3 D Q OUT4

"1"

13: Bloques Bsicos

19

Componente estandard en muchas aplicaciones


FF con activacin en canto de subida, con carga y clear sincrnicos 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
(2) RCO goes high

Contador binario de cuatro bits sincrnico

EN D C RCO B QD A QC LOAD QB QA CLK CLR

(3) High order 4-bits are incremented

(1) Low order 4-bits = 1111 13: Bloques Bsicos

20

Contadores con offset (punto de partida)


Carga de offset counters sincrnico e.g., 0110, 0111, 1000, 1001, 1010, 1011, 1100, 1101, 1111, 0110, . . .

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

EN RCO QD D QC C QB B QA A LOAD CLK CLR

"0"

Termino comparator para valor de termino e.g., 0000, 0001, 0010, ..., 1100, 1101, 0000

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

EN D C B A LOAD CLK CLR RCO QD QC QB QA

Combinaciones (valor de comienzo y termino)

13: Bloques Bsicos

21

Registros de corrimiento (shift register)


Mantienen muestreo del input almacena valor de los ltimos 4 inputs en secuencia Ejemplo: 4-bit shift register

OUT1 IN CLK D Q D Q

OUT2 D Q

OUT3 D Q

OUT4

13: Bloques Bsicos

22

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
output si clear = 1, contenidos y outputs del registro = 0 s1 y s0 determinan la funcin: s0 s1 funcin 0 0 hold state 0 1 shift right 1 0 shift left 1 1 load new input

left_in left_out clear s0 s1

right_out right_in clock

input

13: Bloques Bsicos

23

Diseo del registro de corrimiento universal


Considerando uno de los cuatro FFs: valor nuevo en nuevo ciclo del reloj:
clear 1 0 0 0 0 s0 0 0 1 1 s1 0 1 0 1 new value 0 output output value of FF to left (shift right) output value of FF to right (shift left) input

celda de un FF

to N-1th cell

Q D

to N+1th cell CLK

CLEAR 0 1 2 3 Q[N-1] (left) s0 and s1 control mux Q[N+1] (right)


24

13: Bloques Bsicos

Input[N]

Aplicacin de registro de corrimiento


Conversin paralela a serial para transmisin serial

parallel outputs (8 bits)

parallel inputs (8 bits)

serial transmission (1 bit)

13: Bloques Bsicos

25

Reconocedor de patrones
Funcin combinacional de muestreo de inputs en este caso, reconocer el patrn 1001 en la seal de input IN

OUT

OUT1 IN CLK D Q D Q

OUT2 D Q

OUT3 D Q

OUT4

13: Bloques Bsicos

26

Вам также может понравиться