Contadores (Counters)
Circuitos sequenciais que : no dependem de entradas externas (para alm do relgio); seguem uma sequncia de estados pr-definida (ciclo do contador = n de estados).
Aplicaes
Contagem de impulsos ou ocorrncias Temporizao - Diviso de frequncia Sequenciamento Formas de onda desfasadas no tempo
Exemplo: Contador binrio de 3 bits, ascendente Sequncia de estados (CBA): 000, 001, 010, 011, 100, 101, 110, 111, 000, .... (0, 1, 2, 3, 4, 5, 6, 7, 0, ...) CLK CONTADOR
C
CLK A B C (dec) Frequncias 0 0 0 0 1 0 0 1
B
0 1 0 2
A
1 1 0 3 0 0 1 4 1 0 1 5 0 1 1 6 1 1 1 7 0 0 0 0 1 0 0 1
CLK A B C Sequenciamento - Formas de onda desfasadas no tempo Exemplo: Contador em anel de 3 bits (standard) Sequncia de estados (ABC): 100, 010, 001, 100... CLK A B C (dec) 1 0 0 4 0 1 0 2 0 0 1 1 1 0 0 4 0 1 0 2
/2 /4 /8
0 0 1 1
1 0 0 4
0 1 0 2
0 0 1 1
1 0 0 4
Tipos de contadores
Uni-modo -no tm entradas externas para alm do relgio; -limitam-se a percorrer uma sequncia de contagem, avanando em cada vertente do relgio. Multi-modo Entradas externas, sncronas ou assncronas, que permitem, por exemplo: - a seleco da sequncia de contagem -ascendente/descendente; - a inicializao do contador num determinado estado; - a inicializao a zero (clear); - a paragem da contagem.
Contadores em anel
Os contadores em anel apresentam um padro circulante constante (contadores standard) ou que passa por uma negao no extremo do contador (contadores twisted). Sequncia de estados (ABCD) Standard 1000 0100 0010 0001 1000 Twisted 1000 1100 1110 1111 0111 0011 0001 0000 1000 A implementao de contadores deste tipo deve sempre garantir auto-correco, isto , qualquer que seja o estado de partida, os contadores devem entrar na sequncia principal aps um nmero finito de ciclos de relgio. Os contadores em anel so muito utilizados para fornecer ondas de relgio desfasadas e, de um modo geral, para sintetizar sequncias cclicas de temporizao. Utilizam-se no s as sadas do contador directamente mas tambm se podem, por exemplo, produzir pulsos mais longos fazendo o OU de 2 ou mais sadas. Neste ltimo caso, no recomendvel utilizar contadores do tipo standard, especialmente quando as sadas das portas vo ser utilizadas como relgios. Com efeito, as sadas das portas podem produzir glitches (pequenos impulsos).
Nas verses simplificadas, estes contadores no requerem nenhuma lgica adicional para alm dos elementos de memria. No entanto, nestas verses, existem sequncias de estados no desejadas conforme se pode verificar nos respectivos diagramas de estados. Diagrama de estados para o contador em anel standard (verso simplificada)
0101 1010
0000
1111
1000
1100
1110
1111
0111
0011
0001
0000
0010
1001
0100
1010
1101
0110
1011
0101
Sntese de um contador em anel twisted de 3 bits Sequncia de estados (ABC): 000, 100, 110, 111, 011, 001, 000,... Diagrama de estados
000
100
110
111
011
001
Tabela de transio de estados Estado Presente A B 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 Mapas de Karnaugh para flip-flops D B DB DA 1 A 1 0 X 0 0 C DA=C Diagrama Lgico DB=A X 1 A 0 1 0 X 0 1 C DC=B B X 1 A Estado Seguinte A B 1 0 0 0 X X 0 0 1 1 X X 1 1 0 1 DC 0 0 0 X C B 1 1 X 1
C 0 1 0 1 0 1 0 1
A 0 0 X 1 0 X 1 1
000
100
110
111
011
001
010
101
Conforme se pode verificar do ltimo diagrama de estados, o circuito apresenta uma sequncia de estados no desejada. Para evitar as sequncias no desejadas, pode-se implementar uma das seguintes solues: a) Inicializao assncrona do contador num estado que pertena sequncia principal. Nesta soluo existe uma entrada adicional de RESET activa no arranque do sistema digital. b) Implementao de um circuito auto-corrector, isto , qualquer que seja o estado inicial do circuito, este transita para a sequncia principal aps um nmero finito de ciclos de relgio.
Quando o circuito inicializado a entrada de RESET activada, colocando o circuito no estado 000 pertencente sequncia principal. Soluo b) - Implementao de um circuito auto-corrector A soluo para projectar contadores em anel auto-correctores est na forma como se agrupam os estados no utilizados (XXX) em um dos mapas de Karnaugh das variveis de excitao. Por regra no se consideram as combinaes indiferente em um dos mapas. Para o exemplo em anlise, considere-se os estados que no pertencem sequncia principal: Estado presente Estado seguinte Observaes Sem auto-correco Com auto-correco(*) (N da soluo) 101 010 110 (1)Alterao do mapa DA 101 010 000 (2)Alterao do mapa DB 101 010 011 (3)Alterao do mapa DC 010 101 001 (4)Alterao do mapa DA 010 101 111 (5)Alterao do mapa DB 010 101 100 (6)Alterao do mapa DC (*) Para o estado seguinte Com auto-correco selecciona-se um estado da sequncia principal que seja diferente do estado seguinte Sem auto-coreco em apenas um bit, alterando, deste modo, apenas um dos mapas de Karnaugh. Optando pela alterao do mapa de Karnaugh para DA Soluo (4) B DA 1 A 1 0 X 0 0 C DA=BC+AC Soluo (4) Soluo (1) 0 1 A Soluo (1) DA B 1 1 0 1 0 0 C DA=C+AB Diagrama lgico - Soluo (1) X 1
011 010
001 101
100 101
110 010
Contadores binrios
Os contadores binrios percorrem uma sequncia de estados cujos cdigos de estado correspondem ao cdigo binrio natural da sequncia de contagem decimal 0, 1, 2, 3, 4, 5, etc...
Contador ripple, com 3 bits e contagem ascendente Sequncia de estados (CBA): 000, 001, 010, 011, 100, 101, 110, 111, 000.....(0, 1, 2, 3, 4, 5, 6, 7, 0, ...)
Anlise do circuito Atendendo a que as entradas J-K do flip-flops esto ligadas a 1 (funo de toggle), verifica-se que: - a sada A comuta de estado em cada vertente negativa do sinal de relgio; - a sada B comuta de estado em cada vertente negativa do sinal A; - a sada C comuta de estado em cada vertente negativa do sinal B. Diagrama temporal CLK A B C (dec) 0 0 0 0 1 0 0 1 0 1 0 2 1 1 0 3 0 0 1 4 1 0 1 5 0 1 1 6 1 1 1 7 0 0 0 0 1 0 0 1
Mxima frequncia de operao: Na transio de 11..1 para 00..0, todos os flip-flop mudam de estado. Assim sendo, a frequncia mxima definida por 1 N.Tp , f onde N o nmero de bits do contador e Tp o tempo de propagao de um flip-flop.
Contador ripple, com 3 bits e contagem descendente Sequncia de estados (CBA): 111, 110, 101, 100, 011, 010, 001, 000, 111, ... (7, 6, 5, 4, 3, 2, 1, 0, ...)
Anlise do circuito Atendendo a que as entradas J-K do flip-flops esto ligadas a 1 (funo de toggle), verifica-se: - A sada A comuta de estado em cada vertente negativa do sinal de relgio; - A sada B comuta de estado em cada vertente negativa do sinal A , ou seja, em cada vertente positiva do sinal A; - A sada C comuta de estado em cada vertente negativa do sinal B, ou seja, em cada vertente positiva do sinal B; Diagrama temporal CLK A B C (dec) 1 1 1 7 0 1 1 6 1 0 1 5 0 0 1 4 1 1 0 3 0 1 0 2 1 0 0 1 0 0 0 0 1 1 1 7 0 1 1 6
Contador de 4 bits, ascendente e transporte paralelo (ciclo=16) (parallel carry/carry look-ahead) Sequncia de estados(DCBA):0000, 0001, 0010, 0011, 0100, ...., 1110, 1111, 0000, ... (0, 1, 2, 3, 4, 14, 15, 0, ...)
Contador de 4 bits, ascendente e transporte no antecipado (ciclo=16) (ripple carry) Sequncia de estados(DCBA):0000, 0001, 0010, 0011, 0100, ...., 1110, 1111, 0000, ... (0, 1, 2, 3, 4, 14, 15, 0, ...)
CLK A B C D
Mxima frequncia de operao: Como todos os flip-flops esto sincronizados com o mesmo sinal de relgio, a mxima frequncia de operao depende apenas do tempo de propagao de um flip-flop e do tempo de propagao do circuito de descodificao do estado seguinte. Para circuitos com transporte antecipado (parallel carry/carry look-ahead) 1 Tp + Tg f Para circuitos com transporte no antecipado (ripple) 1 Tp + (N 2).Tg f Onde, N=N de flip-flops (N>3) Tp = tempo de propagao de um flip-flop Tg = tempo de propagao de uma porta AND Note-se que apenas existe diferena na frequncia mxima de operao, entre contadores com e sem transporte antecipado, quando o nmero de bits superior a 3.
A 1 0 1 0 1 0 1 0
Sntese das funes de excitao utilizando flip-flops J-K Observando a tabela de estados, verifica-se que, relativamente ao estado presente, no estado seguinte: - a sada A complementada (01; 10) em qualquer transio de estado (JA=KA=1); - a sada B complementada quando no estado presente A=1 (JB=KB=A ); - a sada C complementada quando no estado presente B=1 e A=1 (JC=KC=A B). Diagrama lgico
Diagrama temporal
CLK A B C
Contador de 3 bits, descendente Sequncia de estados(CBA):000, 111, 110, 101, 100, 011, 010, 001, 000 ... (0, 7, 6, 5, 4, 3, 2, 1, 0, ...) Tabela de estados Estado Presente C B A 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 Estado Seguinte C B 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1
A 1 0 1 0 1 0 1 0
Sntese das funes de excitao utilizando flip-flops J-K Observando a tabela de estados, verifica-se que, relativamente ao estado presente, no estado seguinte: - a sada A complementada (01; 10) em qualquer transio de estado (JA=KA=1); - a sada B complementada quando no estado presente A=0 (JB=KB=A); - a sada C complementada quando no estado presente B=0 e A=0 (JC=KC=A B). Diagrama lgico
Diagrama temporal
CLK A B C
Contador de 3 bits, com seleco do tipo de contagem ascendente/descendente A entrada X permite seleccionar a sequncia de contagem ascendente ou descendente. X 0 1 Contagem Descendente Ascendente
Sntese das funes de excitao utilizando flip-flops J-K Considerando que: - para a contagem ascendente, as funes de excitao so: JA=KA=1 ; JB=KB=A ; JC=KC=A B - para a contagem descendente, as funes de excitao so: JA=KA=1 ; JB=KB=A ; JC=KC=A B Obtm-se para este circuito: JA=KA=1 ; JB=KB=XA + X A ; JC=KC= X A B + X A B Diagrama lgico
Diagrama temporal
CLK X A B C
Contador de 3 bits, ascendente, com entrada para inibir a sequncia de contagem Entrada EN - Controla a operao de contagem EN 0 1 Operao Contagem interrompida, mantendo-se o estado presente Contagem
Sntese das funes de excitao utilizando flip-flops J-K Considerando que para a contagem ascendente, as funes de excitao so: JA=KA=1 ; JB=KB=A ; JC=KC=A B; Obtm-se, considerando a entrada EN: JA=KA=1 . EN ; JB=KB= A .EN ; JC=KC= A . B . EN; JA=KA= EN ; JB=KB= A .EN ; JC=KC= A . B . EN; Diagrama lgico
Diagrama temporal
CLK EN A B C
Contador de 3 bits, ascendente, com entradas em paralelo para inicializao assncrona (utilizando as entradas PRESET e CLEAR) Entrada assncrona LOAD - Quando activa (activa a 1), coloca o contador no estado definido nas entradas paralelas. Entradas paralelas: Ea,Eb,Ec - Quando a entrada LOAD est activa, o valor binrio destas entradas colocado nas sadas A, B e C respectivamente. LOAD 0 1 Diagrama lgico Operao Contagem ascendente Inicializao assncrona do contador com o valor binrio das entradas Ea, Eb, Ec
Contador de 3 bits, ascendente, com entradas em paralelo para inicializao sncrona Entrada LOAD - Quando activa (activa a 1), coloca o contador no estado definido nas entradas paralelas, na prxima vertente do sinal de relgio (sincronismo). Entradas paralelas: Ea,Eb,Ec - Quando a entrada LOAD est activa, o valor binrio destas entradas colocado na sadas A, B e C respectivamente. Sntese do circuito com flip-flops J-K Para o contador de 3 bits e contagem ascendente, obtm-se: JA=KA=1 ; JB=KB=A ; JC=KC=A.B Considerando as entradas adicionais LOAD, Ea, Eb e Ec, podem-se construir as seguintes tabelas de excitao dos flip-flops J-K:
Flip-Flop A Flip-Flop B Flip-Flop C
LOAD 0 1 1
Ea X 0 1
JA 1 0 1
KA 1 1 0
LOAD 0 1 1
Eb X 0 1
JB A 0 1
KB A 1 0
LOAD 0 1 1
Ec X 0 1
JC A .B 0 1
KC A .B 1 0
Resultando nas seguintes funes de excitao (no simplificadas!): JA =LOAD + Ea . LOAD KA=LOAD + Ea . LOAD JB=LOAD . A + Eb . LOAD KB=LOAD . A + Eb . LOAD JC=LOAD . A . B + Ec . LOAD KC=LOAD . A . B + Ec . LOAD Diagrama lgico
Sntese das funes de excitao utilizando flip-flops J-K Observando a tabela de estados, verifica-se que, relativamente ao estado presente, no estado seguinte: - a sada A complementada (01; 10) para qualquer transio de estado(JA=KA=1); - a sada B complementada quando no estado presente A=1 e D=0 (JB= KB = D. A); - a sada C complementada quando no estado presente A=1 e B=1 (JC= KC = B . A); - a sada D complementada quando no estado presente: C=1, B=1 e A=1 (01111000) ou C=0, B=0 e A=1 (10010000) JD=C.B.A; KD=A Diagrama lgico Diagrama de estados completo
0000 0001 0010 0011 0100 1001 1000 0111 0110 0101 1111 1101 1011 1110 1100 1010
Circuito auto-corrector!!
Diagrama temporal
CLK A B C D
Contador com ciclo=3, ascendente Sequncia de estados(BA): 00, 01, 10, 00, ... (0, 1, 2, 0, ...) Tabela de estados Estado Estado Presente Seguinte B A B A 0 0 0 1 0 1 1 0 1 0 0 0 1 1 X X Sntese das funes de excitao utilizando flip-flops D DA=B A DB=A Diagrama lgico Diagrama de estados completo
00 01 10
11
A frequncia do sinal nas sadas A e B igual a 1/3 da frequncia do relgio(CLK) Sntese das funes de excitao utilizando flip-flops JK Estado Presente B A 0 0 0 1 1 0 1 1 JB=A ; KB=1 JA=B ; KA=1 Diagrama lgico Diagrama de estados completo Var. Estado excitao Seguinte JB KB JA KA B A 0 X 1 X 0 1 1 X X 1 1 0 X 1 0 X 0 0 X X X X X X
00 01 10
11
Circuito auto-corrector!!
Contador com ciclo=6, ascendente Sequncia de estados (CBA): 000, 001, 010, 011, 100, 101,000,...(0, 1, 2, 3, 4, 5, 0...) Tabela de estados Estado Estado Presente Seguinte C B A C B A 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 1 0 1 0 0 0 1 1 0 X X X 1 1 1 X X X Sntese das funes de excitao utilizando flip-flops J-K Mapas de Karnaugh DC JC KC B B B 0 C 1 0 0 1 X A DB 0 C 0 1 0 0 X A DA 1 C 1 0 0 0 X A B 1 X C JA 1 1 X X B 1 X C JB 0 0 1 0 0 X C 0 X 0 X 1 X A JC=B A B X X A JB=C A B X X A JA=1 Diagrama lgico 1 X C KA X X X X C KB X X 0 X C X 0 X 1 X X A KC=A B X X 1 X A KB=A B 1 1 1 X A KA=1 Diagrama de estados completo X X 0 X X X
111 110
Diagrama temporal
CLK A B C
Mapas de Karnaugh Os mapas de Karnaugh para as variveis de excitao com flip-flops JK foram anteriormente construdos (contador sncrono com ciclo=6, ascendente e auto-corrector), resultando nas seguintes expresses algbricas: JC=B A ; KC=A JB=C A ; KB=A JA=1; KA=1 Para as variveis de sada X,Y,Z X 0 C 0 0 1 0 X A X=A C Diagrama lgico Y=A C + B Y 0 C 1 0 0 1 X A Z=A C + A C Z 0 C 1 1 0 1 X A
B 0 X
B 1 X
B 0 X
54/74/XXX169 4 bit binary bi-directional counter Principais funcionalidades: - Contador sncrono binrio de 4 bits com transporte antecipado; - Ciclo de contagem =16; - Positive-Edge trigerred; - Carregamento em paralelo sncrono, atravs da entrada PE (activa a 0); - Entradas em paralelo (P0, P1, P2, P3); - Entradas para activar a contagem CET, CEP (activas a 0); - Entrada para controlar o sentido da contagem U/D(1-contagem ascendente; 0- contagem descendente); - Sada de fim de contagem TC (activa a 0).
54/74/XXX193 4 bit binary up/down counter Principais funcionalidades: - Contador sncrono binrio de 4 bits com transporte antecipado; - Ciclo de contagem =16; - Positive-Edge trigerred; - Clear assncrono, atravs da entrada MR (activa a 1); - Carregamento em paralelo assncrono, atravs da entrada PL (activa a 0); - Entradas em paralelo (P0, P1, P2, P3); - Entradas de relgio independentes para contagem ascendente e descendente (CPU, CPD); - Sadas de fim de contagem TCU, TCD (activa a 0).