CONTADORES Setembro de 0
CONTADORES - 2 SUMÁRIO: CONTADORES SÍNCRONOS CONTADORES DE MÓDULO 2 N PROJECTO DE CONTADORES FREQUÊNCIA MÁXIMA DE FUNCIONAMENTO SITUAÇÃO DE LOCKOUT SIMBOLOGIA CONTADOR EM ANEL CONTADOR JOHNSON LINEAR FEEDBACK SHIFT-REGISTER CONTADORES ASSÍNCRONOS CONTADORES POR PULSAÇÃO CONTADORES ASSÍNCRONOS VS. SÍNCRONOS Setembro de 0
CONTADORES - 3 CONTADOR BINÁRIO Um contador binário é um registo que, por aplicação sucessiva de impulsos de relógio, segue uma sequência de estados correspondente à numeração binária. Utilizando FFs Toggle (p.ex. JK com J = K), o projecto do circuito aproveita o facto de, na contagem binária, o Q 0 estar sempre a variar, o Q variar quando Q 0 =, o Q 2 variar quando Q 0 = Q =, etc. 0 2 3 4 5 6 7 8 CLK Q 0 Q Q 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Q 3 0 0 0 0 0 0 0 0 & & J K Q 0 J Q J Q 2 J Q 3 K K K CLK Setembro de 0
CONTADORES - 4 CONTADOR BINÁRIO (cont.) A estrutura do contador é facilmente generalizável para contadores módulo 2 N. No entanto, esta estrutura está limitada pelo facto de o fanin das portas AND ir aumentando sucessivamente até à última porta, que tem N entradas. & & & J K Q 0 J Q J Q 2 J Q 3 K K K J K Q 7 CLK A frequência máxima de relógio a que este contador pode funcionar é: f max = T min = t pff + t pand + t suff Setembro de 0
CONTADORES - 5 CONTADOR BINÁRIO (cont.) Aproveitando os produtos parciais já realizados, é possível modificar a estrutura do contador para usar apenas portas AND de 2 entradas, mantendo a funcionalidade. & & & J Q 0 J Q J Q 2 J Q 3 K K K K J K Q 7 CLK No entanto o caminho crítico entre FFs aumenta substancialmente, limitando a frequência máxima a que o contador pode funcionar. f max = T min = t pff + ( n 2) t pand + t suff Setembro de 0
CONTADORES - 6 CONTADOR BINÁRIO COM FF D O mesmo contador pode ser realizado definindo um FF Toggle a partir de FF D e aproveitando directamente a mesma estrutura. T J K Q 0 T = D Q 0 & & Q 0 Q = D = D = D = D Q 2 Q 3 CLK Setembro de 0
CONTADORES - 7 Exemplos de Componentes 5CT=0 CTR DIV 6 M[Load] M2[Count] G3 3CT=5 G4 C5/2,3,4+, 2D,5D [] [2] [4] [8] Contador binário, módulo 6, com carregamento paralelo e clear síncrono Contador binário, módulo 6, com carregamento paralelo e clear assíncrono Contador binário bidireccional, módulo 6, com carregamento paralelo e clear assíncrono Setembro de 0
CONTADORES - 8 CONTADOR DECIMAL Um contador decimal pode ser realizado directamente de um contador módulo 6, forçando a reinicialização do contador após o estado 9. O sinal DETECTA_NOVE pode ser utilizado como indicador de fim de contagem. 5 0 4 3 2 2 3 4 0 5 9 6 8 7 Setembro de 0
CONTADORES - 9 CONTADOR com 2 saltos na contagem Este contador conta de 0 a 9, passa para o estado, conta de a 3, e volta ao estado 0. Setembro de 0
CONTADORES - 0 LIGAÇÃO EM SÉRIE DE CONTADORES () Um contador módulo 256 pode ser realizado ligando em série 2 contadores módulo 6. O 2º contador só é habilitado quando o º chega ao fim de contagem (o sinal de fim de contagem do º contador está ligado ao enable do 2º contador) CTR DIV 6 CTR DIV 6 RESET_L 5CT=0 5CT=0 COUNT_H M[Load] M2[Count] 3CT=5 M[Load] M2[Count] 3CT=5 ENABLE_H G3 G4 G3 G4 CLK C5/2,3,4+ C5/2,3,4+ D 0,5D [] Q 0 D 4,5D [] Q 4 D [2] Q D 5 [2] Q 5 D 2 [4] Q 2 D 6 [4] Q 6 D 3 [8] Q 3 D 7 [8] Q 7 Setembro de 0
CONTADORES - LIGAÇÃO EM SÉRIE DE CONTADORES (2) Este contador faz uma sequência de contagem de 33 a 6. Setembro de 0
CONTADORES - 2 CONTADOR EM ANEL Ring Counter A ligação de N flip-flops em cascata, como registo de deslocamento, pode também ser usada como um contador simples, usando o mínimo de hardware. D D D D CLK O contador evolui segundo a sequência de 4 estados, ao lado, e depois repete. 000 000 000 000 O contador é muito rápido (não existem portas lógicas no caminho entre FFs), f max = T min = t pff + t suff mas é ineficiente em termos do número total de estados de contagem disponíveis (só usa N estados, dos 2 N estados disponíveis). Setembro de 0
CONTADORES - 3 CONTADORES: LOCK-OUT Estados de LOCKOUT: no caso de não serem utilizados todos os estados disponíveis, pode ocorrer a situação do contador se encontrar num estado não desejado (fora da sequência de contagem) devido a ruído no circuito ou à não imposição de estado inicial. Nessa situação ou o contador entra na sequência de contagem pretendida ou fica indefinidamente no exterior (Lockout). Exemplos de Lock-Out: Exemplo em que não existiria Lock-Out: o contador acabaria sempre por entrar na sequência pretendida 000 000 000 000 Setembro de 0
CONTADORES - 4 CONTADOR EM LOCKOUT Solução : impôr a transição de qualquer estado externo para um estado da sequência de contagem Solução 2: considerar uma entrada extra, de inicialização, que coloque o sistema num dos estados de contagem pretendido. Alternativas de Inicialização no Estado 000 : CLK INIT D D D D S R R R INIT CLK D & D & D & D Setembro de 0
CONTADORES - 5 CONTADOR JOHNSON O contador Johnson usa 2N dos 2 N estados disponíveis, mantendo a rapidez do contador em anel. D D D D CLK INIT S R R R 000 00 0 0000 000 00 0 Setembro de 0
CONTADORES - 6 LINEAR FEEDBACK SHIFT-REGISTER O LFSR usa 2 N - dos 2 N estados disponíveis, usando apenas uma porta lógica adicional. D D D D = CLK INIT S R R R 000 000 000 00 00 00 0 00 0000 000 00 0 0 0 00 Setembro de 0
CONTADORES - 7 CONTADORES POR PULSAÇÃO Ripple Counters Os contadores por pulsação são extremamente simples de realizar. No entanto, o facto de serem assíncronos (os FF não estão em sincronismo) torna-os pouco fiáveis, por dependentes dos atrasos de propagação do sinal. J Q 0 Q J J Q 2 J Q 3 K K K K CLK CLK Q 0 0 0 0 0 0 Q 0 0 0 0 0 0 Q 2 0 0 0 0 0 0 Q 3 0 0 0 0 0 0 0 0 0 2 3 4 5 6 7 8 9 Setembro de 0
CONTADORES - 8 CONTADORES ASSÍNCRONOS VS. SÍNCRONOS No contador assíncrono, as mudanças de estado não ocorrem todas na transição de relógio! De facto e por exemplo, na transição de 7 para 8, o contador passa sucessivamente por vários estados intermédios. Quanto mais FFs existirem, mais o bit de maior peso demora a transitar, o que torna os contadores por pulsação de grande dimensão muito lentos (o que limita, neste caso, o período de relógio?). As realizações assíncronas são, portanto e genericamente, de evitar. CLK Q 0 Q Q 2 Q 3 Contagem CLK Q 0 Q Q 2 0 t P t P 4t P 7 6 4 0 8 Contador Assíncrono t P t P t P t P t P 0 0 0 0 0 0 Q 3 0 t P Contador Síncrono Setembro de 0
CONTADORES - 9 PROJECTO DO CONTADOR como circuito sequencial síncrono O procedimento de projecto de um contador, como de qualquer outro circuito sequencial síncrono, passa pela definição da tabela de estados do circuito. A lógica combinatória do circuito é projectada de modo a forçar nas entradas dos FFs os valores que impõem as transições de estado especificadas na tabela de estados. Tabela de Excitação do FF JK Qn Qn+ J K 0 0 0 X 0 X 0 X X 0 Tabela de Excitação do FF D Qn Qn+ D 0 0 0 0 0 0 Selecção do Tipo de FF FF JK vs FF D - O FF JK é mais versátil devido às duas entradas resultando numa menor complexidade de portas lógicas adicionais, contudo, possui um processo de síntese mais trabalhoso. Devido à maior facilidade de síntese, os FFD são habitualmente mais utilizados. Setembro de 0
CONTADORES - 20 CONTADORES: Projecto de um Contador Síncrono de Módulo 5 (PM5) Diagrama de Estados de Contagem (Exemplo) 3 4 5 6 7 A existência de 5 estados de contagem impõe, pelo menos, a utilização de 3 FFs Tabela de Codificação de Estados Estado Q2 Q Q0 S 0 0 0 0 S 0 0 S 2 0 0 S 3 0 S 4 0 0 S 5 0 S 6 0 S 7 Tabela de Transição de Estados Estado Presente (n) Estado Seguinte (n+) Q2 Q Q0 Q2 Q Q0 0 0 0 0 0 0 0 0 0 0 Setembro de 0
CONTADORES - 2 PM5 Projecto com FFD Tabela de Excitação do FF D D(n) 0 0 Q(n+) Mapas de Karnaugh por Entrada de FFs D + 2 = Q2 + Q Q0 Q Q 0 00 Q 2 0 0 0 X X X 0 Tabela de Transição de Estados Estado Presente (n) Estado Seguinte (n+) Q2 Q Q0 Q2(n+) Q(n+) Q0(n+) D2(n) D(n) D0(n) 0 0 0 0 0 0 0 0 0 0 D + = Q Q0 Q2 Q D + 0 = Q Q0 Q2 Q Q Q 0 00 Q 2 0 0 0 X X 0 X 0 Q Q 0 Q 2 00 0 0 0 X X 0 X 0 Setembro de 0
CONTADORES - 22 PM5 com FF D (cont.) Funções de Excitação dos FFs D + 2 = Q2 + Q Q0 D + = Q Q0 Q2 Q D + 0 = Q Q0 Q2 Q S5 S6 S7 S3 S4 S5 S6 Setembro de 0
CONTADORES - 23 PM5 Projecto com FFJK Tabela de Excitação do FF JK Q n Q n+ J K 0 0 0 X 0 X 0 X X 0 Tabela de Estados Estado Actual Estado Seguinte Entradas dos FFs Q 2 Q Q 0 Q 2 Q Q 0 J 2 K 2 J K J 0 K 0 0 0 0 X X X 0 0 0 X 0 0 X X 0 0 X 0 X X 0 X 0 X 0 X 0 X X 0 X 0 A lógica combinatória do circuito é projectada de modo a forçar nas entradas JK dos FFs os valores que impõem as transições de estado especificadas na tabela de estados. Setembro de 0
CONTADORES - 24 PM5 com FF JK (cont.) A lógica combinatória força nas entradas JK dos FF os valores que concretizam as transições especificadas, em função do estado actual. Estado Actual Q 2 Q Q 0 J 2 K 2 J K J 0 K 0 0 X X X 0 0 X 0 0 X X 0 X 0 X X 0 X 0 X 0 X X X 0 X 0 Setembro de 0
CONTADORES - 25 PM5 com FF JK (cont.) Funções de Excitação dos FFs: J K 0 = 0 = Q 2 + Q J K = = Q Q 0 2 J K 2 = 2 = Q Q 0 Setembro de 0
CONTADORES - 26 CONTADORES: Projecto de um Contador Ascendente/Descendente Síncrono de Módulo 5. (PADM5) Diagrama de Estados M= 3 4 5 6 7 M=0 Tabela de Transição de Estados Estado Presente (n) Estado Seguinte (n+) M=0 M= Q2 Q Q0 Q2 Q Q0 Q2 Q Q0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Setembro de 0
CONTADORES - 27 CONTADORES: PADM5 (cont) Síntese das Funções de Entrada do FF0 Estado Presente (n) Q(n+) = D(n) M=0 M= Q2 Q Q0 D2 D D0 D2 D D0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Q Q 0 00 0 0 M Q 2 00 X X X 0 0 0 D + 0 = M Q2 Q + Q0 M Q2 0 0 X X 0 X Setembro de 0
CONTADORES - 28 CONTADORES: PADM5 (cont) Síntese das Funções de Entrada do FF Estado Presente (n) Q(n+) = D(n) M=0 M= Q2 Q Q0 D2 D D0 D2 D D0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Q Q 0 M Q 2 00 0 00 X X 0 X 0 0 0 0 D + = M Q Q0 + M Q Q0 + M Q Q0 M Q2 Q 0 X X 0 X Setembro de 0
CONTADORES - 29 CONTADORES: PADM5 (cont) Síntese das Funções de Entrada do FF2 Estado Presente (n) Q(n+) = D(n) M=0 M= Q2 Q Q0 D2 D D0 D2 D D0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Q Q 0 M Q 2 00 0 00 X X 0 X 0 0 ( M + Q + Q + Q ) ( M + Q ) D + 2 = 2 0 Q0 0 0 X X X Setembro de 0
CONTADORES - 30 CONTADORES: PADM5 (cont) Diagrama Lógico Setembro de 0
CONTADORES - 3 CONTADORES: PADM5 (cont) Funções e Tabela de Estados da Solução Funções de Excitação dos FFs ( M + Q + Q + Q ) ( M + Q ) D + 2 = 2 0 Q0 D + = M Q Q0 + M Q Q0 + M Q Q0 M Q2 Q D + 0 = M Q2 Q + Q0 M Q2 Tabela de Transição de Estados Estado Presente (n) Q(n+) = D(n) M=0 M= Q2 Q Q0 D2 D D0 D2 D D0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Setembro de 0
CONTADORES - 32 CONTADORES: PADM5 (cont) Diagrama de Estados da Solução M=0 0 M= 2 M= 3 4 5 6 7 M=0 M=0 M= Os estados não considerados para efeito da contagem (S0,S e S2) permitem passar para a sequência de contagem pretendida, ao fim de um ciclo de relógio (justifique), na solução apresentada, mas terá sido isso uma imposição do projecto? Setembro de 0