21
1 PUC-Rio Flip-Flops, Registros e Contadores 2 PUC-Rio D latch

Flip-Flops, Registros e Contadoresmauro.roisenberg/ine5377/Cursos-ICA/SD1-03-Register... · 9 17 PUC-Rio TP2 TP1 CP1 CP2 Q1 Q2 74LS90 MS1 MS2 MR1 MR2 CP0 CP1 Q3 Q2 Q1 Q0 TP2 TP1 160

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Flip-Flops, Registros e Contadoresmauro.roisenberg/ine5377/Cursos-ICA/SD1-03-Register... · 9 17 PUC-Rio TP2 TP1 CP1 CP2 Q1 Q2 74LS90 MS1 MS2 MR1 MR2 CP0 CP1 Q3 Q2 Q1 Q0 TP2 TP1 160

1

1

PUC-Rio

Flip-Flops, Registros e Contadores

2

PUC-Rio

D latch

Page 2: Flip-Flops, Registros e Contadoresmauro.roisenberg/ine5377/Cursos-ICA/SD1-03-Register... · 9 17 PUC-Rio TP2 TP1 CP1 CP2 Q1 Q2 74LS90 MS1 MS2 MR1 MR2 CP0 CP1 Q3 Q2 Q1 Q0 TP2 TP1 160

2

3

PUC-Rio

Operação do D-latch

• se C=1 a saída acompanha a entrada• se C=0 a saída mantém estado anterior• não pode ser usado em circuitos síncronos:

leitura e escrita no mesmo ciclo de relógio. Ex: inadequado para shift-register

4

PUC-Rio

D-latch: Parâmetros de Tempo• Propagation delay (de C ou D para Q)• Setup time (preparação de D antes da descida de C)

• Hold time (manutenção de D após a descida de C)

-manutenção de D

-preparação de D

Page 3: Flip-Flops, Registros e Contadoresmauro.roisenberg/ine5377/Cursos-ICA/SD1-03-Register... · 9 17 PUC-Rio TP2 TP1 CP1 CP2 Q1 Q2 74LS90 MS1 MS2 MR1 MR2 CP0 CP1 Q3 Q2 Q1 Q0 TP2 TP1 160

3

5

PUC-Rio

Edge-triggered D: comportamento

6

PUC-Rio

D flip-flop: Parâmetros de Tempo• Propagation delay (de CLK)• Setup time (D antes CLK)• Hold time (D após CLK)

Page 4: Flip-Flops, Registros e Contadoresmauro.roisenberg/ine5377/Cursos-ICA/SD1-03-Register... · 9 17 PUC-Rio TP2 TP1 CP1 CP2 Q1 Q2 74LS90 MS1 MS2 MR1 MR2 CP0 CP1 Q3 Q2 Q1 Q0 TP2 TP1 160

4

7

PUC-Rio

T flip-flops

• Importante para contadores

8

PUC-Rio

Oscilações em Chaves (Bounce)

Page 5: Flip-Flops, Registros e Contadoresmauro.roisenberg/ine5377/Cursos-ICA/SD1-03-Register... · 9 17 PUC-Rio TP2 TP1 CP1 CP2 Q1 Q2 74LS90 MS1 MS2 MR1 MR2 CP0 CP1 Q3 Q2 Q1 Q0 TP2 TP1 160

5

9

PUC-Rio

Circuito Anti-Bounce 1

10

PUC-Rio

Circuito Anti-Bounce 2

Possui níveis estáveis na saída (VOL, VOH)

Page 6: Flip-Flops, Registros e Contadoresmauro.roisenberg/ine5377/Cursos-ICA/SD1-03-Register... · 9 17 PUC-Rio TP2 TP1 CP1 CP2 Q1 Q2 74LS90 MS1 MS2 MR1 MR2 CP0 CP1 Q3 Q2 Q1 Q0 TP2 TP1 160

6

11

PUC-Rio

Contadores• Circuito sequencial cujo diagrama de estado é

um ciclo simples.

RESET EN

EN

ENEN EN

EN

EN

EN′EN′ EN′

EN′EN′EN′

12

PUC-Rio

Tipos de Contadores• Assíncrono

– saída de um FF é o sinal de clock para FF seguinte (ripple counter)

• Síncrono– mesmo sinal de relógio para todos os FFs– Tipos: enable serial ou paralelo

Page 7: Flip-Flops, Registros e Contadoresmauro.roisenberg/ine5377/Cursos-ICA/SD1-03-Register... · 9 17 PUC-Rio TP2 TP1 CP1 CP2 Q1 Q2 74LS90 MS1 MS2 MR1 MR2 CP0 CP1 Q3 Q2 Q1 Q0 TP2 TP1 160

7

13

PUC-Rio

Contador Assíncrono-Ripple Counter• Cada FF troca de estado quando o FF anterior

vai de 1 → 0• o MSB só troca quandotodos trocam de 1 → 0: onda de propagaçãoq3 q2 q1 q00 0 0 00 0 0 10 0 1 00 0 1 10 1 0 0-----------0 1 1 11 0 0 0

14

PUC-RioDelay de Propagaçãoprovoca estados espúrios nos

contadores

0 1 2 3 4 5 6 7 8

2 2 44Estados espúrios →

TP5

TP4

TP3

TP2

TP1

8070605040302010

Page 8: Flip-Flops, Registros e Contadoresmauro.roisenberg/ine5377/Cursos-ICA/SD1-03-Register... · 9 17 PUC-Rio TP2 TP1 CP1 CP2 Q1 Q2 74LS90 MS1 MS2 MR1 MR2 CP0 CP1 Q3 Q2 Q1 Q0 TP2 TP1 160

8

15

PUC-Rio

Contadores Assíncronos TTL• Série 749x• Dividem por 2 e por n/2

– 7490: ÷ 2 , ÷ 5, ÷ 10– 7492: ÷ 2 , ÷ 6, ÷ 12– 7493: ÷ 2 , ÷ 8, ÷ 16

• Q0 ÷ 2 sinal em CP0• Q3 ÷ n/2 sinal em CP1• Ligando Q0 a CP1→ ÷n

MS1MS2MR1MR2

CP0CP1

Q3

Q2

Q1

Q0 ÷ 2

÷ n

16

PUC-Rio

7493 OutputCountQD QC QB QA

0 L L L L1 L L L H2 L L H L3 L L H H4 L H L L5 L H L H6 L H H L7 L H H H8 H L L L9 H L L H

10 H L H L11 H L H H12 H H L L13 H H L H14 H H H L15 H H H H

7490 OutputCountQD QC QB QA

0 L L L L1 L L L H2 L L H L3 L L H H4 L H L L5 L H L H6 L H H L7 L H H H8 H L L L9 H L L H

7492 OutputCountQD QC QB QA

0 L L L L1 L L L H2 L L H L3 L L H H4 L H L L5 L H L H6 H L H L7 H L H H8 H L L L9 H L L H

10 H H H L11 H H H H

7490 Reset e Set OutputMR01 MR02 MS1 MS2 QD QC QB QA

H H L X L L L LH H X L L L L LX X H H H L L HX L X LL X L XL X X LX L L X

CountCountCountCount

7492/3 Reset OutputMR01 MR02 QD QC QB QA

H H L L L LL XX L

CountCount

Binários fora de sequência

Saída não simétrica

Page 9: Flip-Flops, Registros e Contadoresmauro.roisenberg/ine5377/Cursos-ICA/SD1-03-Register... · 9 17 PUC-Rio TP2 TP1 CP1 CP2 Q1 Q2 74LS90 MS1 MS2 MR1 MR2 CP0 CP1 Q3 Q2 Q1 Q0 TP2 TP1 160

9

17

PUC-Rio

TP2

TP1

CP1CP2

Q1Q2

74LS90MS1MS2MR1MR2

CP0CP1

Q3

Q2

Q1

Q0

TP2

TP1

380360340320300280260240220200180160

Exemplo de Divisor por 9• Reset a 0 quando Qi = 9

18

PUC-RioImplementação de DivisoresFatorando N

N= N1 x N2 x ...x Nk

CP1CP2

Q1Q2

74LS90MS1MS2MR1MR2

CP0CP1

Q3

Q2

Q1

Q0

74LS90MS1MS2MR1MR2

CP0CP1

Q3

Q2

Q1

Q0

74LS90MS1MS2MR1MR2

CP0CP1

Q3

Q2

Q1

Q0

÷ 10 ÷ 10 ÷ 5

÷ 500

Page 10: Flip-Flops, Registros e Contadoresmauro.roisenberg/ine5377/Cursos-ICA/SD1-03-Register... · 9 17 PUC-Rio TP2 TP1 CP1 CP2 Q1 Q2 74LS90 MS1 MS2 MR1 MR2 CP0 CP1 Q3 Q2 Q1 Q0 TP2 TP1 160

10

19

PUC-Rio

Implementação de DivisoresN representado em base qualquerN= N1 x B0 + N2 x B1...x Nk x Bk-1

• Útil para divisor por números primos: 97, 53, 17, etc

• Contadores contam livremente até o valor da base

• Reset depende das saídas de todos os contadores

20

PUC-Rio

Divisor por 97, base 10

TP2

TP1

CP1CP2

Q1Q2

74LS90MS1MS2MR1MR2

CP0CP1

Q3

Q2

Q1

Q0

74LS90MS1MS2MR1MR2

CP0CP1

Q3

Q2

Q1

Q0

N= 7 x 100 + 9 x 101

TP2

TP1

10401000960920880840800760720680640600560520480440

Page 11: Flip-Flops, Registros e Contadoresmauro.roisenberg/ine5377/Cursos-ICA/SD1-03-Register... · 9 17 PUC-Rio TP2 TP1 CP1 CP2 Q1 Q2 74LS90 MS1 MS2 MR1 MR2 CP0 CP1 Q3 Q2 Q1 Q0 TP2 TP1 160

11

21

PUC-Rio

Divisor por 125, base 16

TP3TP2

CP1CP2

Q1Q2

5V

74LS93MR1MR2CP0CP1

Q3Q2Q1Q0

74LS93MR1MR2CP0CP1

Q3Q2Q1Q0

TP3

TP2

12801240120011601120108010401000960920880840800760720680640

N= 13 x 160 + 7 x 161

22

PUC-Rio

LSB

MSB

ContadorSíncrono

lógica de enableserial

Page 12: Flip-Flops, Registros e Contadoresmauro.roisenberg/ine5377/Cursos-ICA/SD1-03-Register... · 9 17 PUC-Rio TP2 TP1 CP1 CP2 Q1 Q2 74LS90 MS1 MS2 MR1 MR2 CP0 CP1 Q3 Q2 Q1 Q0 TP2 TP1 160

12

23

PUC-Rio

LSB

MSB

ContadorSíncrono

Lógica de enableparalela:mais rápido

24

PUC-Rio

74x163 MSI 4-bit counter

Page 13: Flip-Flops, Registros e Contadoresmauro.roisenberg/ine5377/Cursos-ICA/SD1-03-Register... · 9 17 PUC-Rio TP2 TP1 CP1 CP2 Q1 Q2 74LS90 MS1 MS2 MR1 MR2 CP0 CP1 Q3 Q2 Q1 Q0 TP2 TP1 160

13

25

PUC-Rio

74x163 diagrama

lógicointerno

• Portas XOR fazem função “Toggle” se EN=1

• Estrutura de Mux para load

• Todas as operações sinronizadas com CK

26

PUC-Rio

Operação do Contador

• Divide por ÷16• Conta se ENP e ENT ativos.• Load prevalece sobre contagem• Clear prevalece sobre contagem e Load• Todas operações ocorrem na subida de CLK.• RCO=1 quando ENT = ‘1’ e Count = 15; é

usada para cascatear contadores.

Page 14: Flip-Flops, Registros e Contadoresmauro.roisenberg/ine5377/Cursos-ICA/SD1-03-Register... · 9 17 PUC-Rio TP2 TP1 CP1 CP2 Q1 Q2 74LS90 MS1 MS2 MR1 MR2 CP0 CP1 Q3 Q2 Q1 Q0 TP2 TP1 160

14

27

PUC-RioContador 74163 (4 bits)Contagem Livre

• “divide-by-16” counter

28

PUC-Rio

Sequência de Contagem Modificada

• Load 0101 (5) após Count = 15• 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 5, 6, …• “divide-by-11” counter

Page 15: Flip-Flops, Registros e Contadoresmauro.roisenberg/ine5377/Cursos-ICA/SD1-03-Register... · 9 17 PUC-Rio TP2 TP1 CP1 CP2 Q1 Q2 74LS90 MS1 MS2 MR1 MR2 CP0 CP1 Q3 Q2 Q1 Q0 TP2 TP1 160

15

29

PUC-RioOutro Modo

• Clear após Count = 1010 (10)• 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 1, 2, 3, …• “módulo-11” ou “divide-by-11” counter

30

PUC-Rio

Contagemde 3 a 12

Page 16: Flip-Flops, Registros e Contadoresmauro.roisenberg/ine5377/Cursos-ICA/SD1-03-Register... · 9 17 PUC-Rio TP2 TP1 CP1 CP2 Q1 Q2 74LS90 MS1 MS2 MR1 MR2 CP0 CP1 Q3 Q2 Q1 Q0 TP2 TP1 160

16

31

PUC-Rio

Contadores em cascata• RCO (ripple carry out) vai a ‘1’ no estato 15,

se ENT = ‘1’

32

PUC-RioDecodificando estados da contagem binária

• não há glitches devido ao contador (síncrono)

Page 17: Flip-Flops, Registros e Contadoresmauro.roisenberg/ine5377/Cursos-ICA/SD1-03-Register... · 9 17 PUC-Rio TP2 TP1 CP1 CP2 Q1 Q2 74LS90 MS1 MS2 MR1 MR2 CP0 CP1 Q3 Q2 Q1 Q0 TP2 TP1 160

17

33

PUC-Rio

Formas de onda da decodificação

• Há glitches devido às saídas do decodificador (5,6,7) que têm diferentes delays

• Glitches podem ou não ser um problema.

34

PUC-Rio

Saídas livres de Glitches

• Saídas atrasadas (armazenadas) de um pulso de clock.

• Outra solução: enable decoder =clock => saída do decodificador só no segundo semi-ciclo do relógio

Page 18: Flip-Flops, Registros e Contadoresmauro.roisenberg/ine5377/Cursos-ICA/SD1-03-Register... · 9 17 PUC-Rio TP2 TP1 CP1 CP2 Q1 Q2 74LS90 MS1 MS2 MR1 MR2 CP0 CP1 Q3 Q2 Q1 Q0 TP2 TP1 160

18

35

PUC-RioDecodificação de Estado do Contador Assíncrono : com e sem glitches

Estados sem GlitchesEN=CLOCK_HIGH

Estados com glitchesEN=1

TP9

+V

V25V

TP8TP7TP6TP5

TP4TP3TP2TP1

74LS138

A2A1A0

E3E2E1

Q7Q6Q5Q4Q3Q2Q1Q0

U374F138

74LS138

A2A1A0

E3E2E1

Q7Q6Q5Q4Q3Q2Q1Q0

U274F138

CP1CP2

Q1Q2

V1

74LS93MR1MR2CP0CP1

Q3Q2Q1Q0

U1

36

PUC-RioDecodificação de Estado do Contador: com e sem glitches

Formas de Onda

TP9

TP8

TP7

TP6

TP5

TP4

TP3

TP2

TP1

400390380370360350

de 01 para 10 ocorre 00

de 11 para 00 ocorre 10

Page 19: Flip-Flops, Registros e Contadoresmauro.roisenberg/ine5377/Cursos-ICA/SD1-03-Register... · 9 17 PUC-Rio TP2 TP1 CP1 CP2 Q1 Q2 74LS90 MS1 MS2 MR1 MR2 CP0 CP1 Q3 Q2 Q1 Q0 TP2 TP1 160

19

37

PUC-Rio

Outros Contadores Síncronos• Série 7419X - Contadores UP/DOWN• clock e select(Up/Down)

– 74190 BCD, ÷ 10– 74191 binário, ÷ 16

• 2 sinais de relógio: clock_up e clock_down– 74192 BCD, ÷ 10– 74193 binário, ÷ 16

38

PUC-Rio

Sincronizando Sinal Assíncrono

SYNCIN é sincronizado com o sistema síncrono, garantindo que qualquer alteração só ocorrerá na transição positiva do relógio

Page 20: Flip-Flops, Registros e Contadoresmauro.roisenberg/ine5377/Cursos-ICA/SD1-03-Register... · 9 17 PUC-Rio TP2 TP1 CP1 CP2 Q1 Q2 74LS90 MS1 MS2 MR1 MR2 CP0 CP1 Q3 Q2 Q1 Q0 TP2 TP1 160

20

39

PUC-Rio

Registros de Múltiplos bits

• 74x175

40

PUC-Rio

8-bit (octal)

• 74x374– 3-state output

Page 21: Flip-Flops, Registros e Contadoresmauro.roisenberg/ine5377/Cursos-ICA/SD1-03-Register... · 9 17 PUC-Rio TP2 TP1 CP1 CP2 Q1 Q2 74LS90 MS1 MS2 MR1 MR2 CP0 CP1 Q3 Q2 Q1 Q0 TP2 TP1 160

21

41

PUC-Rio

Registros de 8 bits

• 74x273– clear síncrono

• 74x377– clock enable

42

PUC-Rio

Latch de 8 bits• 74x373

– Output enable– Latch-enable input “C” ou “G”

• Registro X Latch, qual a diferença?– Registro: comportamento edge-triggered– Latch: saída segue entrada quando G=enable– Latch não pode ser usado em circuitos síncronos!!!