Você está na página 1de 22

Aplicações de Flip-Flops:

Contadores Digitais e
Registradores
Prof. Leonardo
Sumário
 Contadores Assíncronos
 Contadores Síncronos
 Registrador Simples
 Registrador de Deslocamento à Direita
 Registrador de Deslocamento à Esquerda
Classificações

 Assíncronos: o sinal de clock é aplicado apenas ao primeiro estágio. Os


estágios seguintes utilizam como sinal de sincronismo a saída de cada
estágio anterior (Ripple Counters)
 Síncronos: Existe um sinal de clock único externo aplicado a todos os
estágios ao mesmo tempo
 Os contadores podem ser crescentes (UP Counters) ou decrescentes
(DOWN Counters)
Contador Assíncrono
Análise Temporal
Contador Assíncrono

 Quantos flip-flops seriam necessários para contar de 0 a 15?


 Resposta: 4
 E de 0 a 255?
 Resposta: 8
 Como construir um contador assíncrono decrescente?
 Resposta: Basta utilizar as saídas Q’ ao invés das normais
Contador Assíncrono

 Pode haver problemas caso o número de flip-flops interligados seja grande


 A mudança de estado requer um certo tempo
 Para chegar ao estado final desejado, deve-se aguardar a mudança
individual de cada flip-flop
 Se um novo pulso for aplicado à entrada antes que o estado final seja
alcançado, teremos problemas na contagem
 Conclusão: a frequência máxima de operação de um contador depende
do tempo necessário para cada estágio mudar de estado multiplicado
pelo número de estágios usados no contador
Contador Assíncrono Módulo 6
Contador Assíncrono UP/DOWN
Contador Síncrono

 Sincronismo realizado por um clock único


 Desempenho independe do número de flip-flops
 Duas formas de implementação:
 Parallel Carry
 Ripple Carry
Lógica dos Contadores Síncronos
Parallel Carry
Parallel Carry
Parallel Carry

 Problema: quanto mais etapas temos, mais entradas nas portas AND são
necessárias
 Possível solução: reaproveitar os AND’s (Ripple Carry)
Ripple Carry
Ripple Carry

 Problema: Queda na velocidade de operação, pois há um atraso a cada


porta AND atravessada
Registradores
 Um flip-flop armazena um bit (célula de memória)
 8 flip-flop’s lado a lado armazenam um byte
Operação de Deslocamento
int a = 14;
int b = a >> 1;
int c = a << 1;
System.out.println(“Deslocamento a direita: ”+b);
System.out.println(“Deslocamento a esquerda : ”+c);

 Deslocamento a direita: 7
 Deslocamento a esquerda: 28
Operação de Deslocamento
int a = 11;
int b = a >> 2;
int c = a << 2;
System.out.println(“Deslocamento a direita: ”+b);
System.out.println(“Deslocamento a esquerda: ”+c);

 Deslocamento a direita: 2
 Deslocamento a esquerda: 44
Operação de Deslocamento

 Conclusão:
 Deslocamento à direita: divisão por 2
 Deslocamento à esquerda: multiplicação por 2
 Como implementar um registrador de deslocamento? Usando flip-flops!
Registrador de Deslocamento à Direita
Registrador de Deslocamento à
Esquerda

Você também pode gostar