Mudanças entre as edições de "DI2022802 2021 1 AULA02"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
(24 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 19: Linha 19:
  
  
[[Imagem:fig14_DIG222802.png|center|500px]]
+
[[Imagem:fig14_DIG222802.png|center|600px]]
 
<center>
 
<center>
 
Figura 1 - Contador assíncrono crescente.
 
Figura 1 - Contador assíncrono crescente.
 
</center>
 
</center>
 +
 +
O contador tem como conteúdo, estado interno, a contagem do número de transições negativas do ''clock'', de forma que quando ocorre uma transição o conteúdo é incrementado de uma unidade. O conteúdo do contador é dado pelo número binário DCBA, onde A é o bit LSB (bit menos significativo) e D é o bit MSB (bit mais significativo).
 +
O modulo (MOD) de um contador é o seu número de estados distintos, portanto, o módulo de um contador com N FF pode ser no máximo o número de possíveis saídas (<math>2^N</math>). A Tabela 1 mostra os estados de contagem de um contador assíncrono com 4 FF (4 bits). Podemos perceber que após 16 transições de ''clock'' o contador reinicia a contagem. Por isso, este contador é de MOD-16, ou seja, tem 16 estados  distintos (0000b até 1111b).
  
  
Linha 29: Linha 32:
 
Figura 2 - Diagrama de tempo do contador assíncrono crescente.
 
Figura 2 - Diagrama de tempo do contador assíncrono crescente.
 
</center>
 
</center>
 +
 +
 +
Nos contadores assíncronos, a frequência do ''clock'' é dividida por 2 em cada FF, ou seja: na saída A temos ''clock/2'', e na saída D temos ''clock/16''. Portanto, os contadores assíncronos são divisores de frequência e no último FF a frequência de ''clock'' é dividida pelo módulo do contador.
  
  
Linha 195: Linha 201:
 
|}
 
|}
  
 +
 +
[[Imagem:fig145_DIG222802.gif|center|600px]]
 +
<center>
 +
Figura 1b - Contador assíncrono crescente (animação).
 +
</center>
 +
 +
Vale ressaltar que os FFs estão configurados com J=1 e K=1 que dá a característica de contador "natural", ou seja, a cada pulso de ''clock'' a saída é complementada (0->1 e 1->0). Cada FF anterior gera o ''clock'' do próximo FF assim realizando a contagem conforme mostra o diagrama da Figura 2 e a Tabela 1. Lembrando que no primeiro FF vai o sinal de ''clock''.
 +
 +
===Contador na prática===
 +
 +
A Figura 3 mostra o circuito realístico utilizando o 7473 (duplo flip-flop JK) montado e simulado com a página do [https://www.tinkercad.com/ Tinkercad].
  
  
O contador tem como conteúdo (estado interno) a contagem do número de transições negativas do ''clock'', de forma que quando ocorre uma transição o conteúdo é incrementado de uma unidade. O conteúdo do contador é dado pelo número binário DCBA, onde A é o bit LSB (bit menos significativo) e D é o bit MSB (bit mais significativo).
+
[[Imagem:fig140_DIG222802.png|center|600px|border]]
O modulo (MOD) de um contador é o seu número de estados distintos, portanto, o módulo de um contador com N FF pode ser no máximo o número de possíveis saídas (<math>2^N</math>). A Tabela mostra os estados de contagem de um contador assíncrono com 4 FF (4 bits). Podemos perceber que após 16 transições de ''clock'' o contador reinicia a contagem. Por isso, este contador é de MOD-16, ou seja, tem 16 estados  distintos (0000b até 1111b).  
+
<center>
Nos contadores assíncronos, a frequência do ''clock'' é dividida por 2 em cada FF, ou seja: na saída A temos ''clock/2'', e na saída D temos ''clock/16''. Portanto, os contadores assíncronos são divisores de frequência e no último FF a frequência de ''clock'' é dividida pelo módulo do contador.
+
Figura 3 - Contador assíncrono crescente realístico.
 +
</center>
 +
 
 +
Na Figura 3 podemos visualizar um Gerador de função configurado para uma frequência de 1Hz com 5V de amplitude e um componente CC de 2,5V, que transforma a onda quadrada em sinal de ''clock'' oscilando entre 0V e 5V - respectivamente 0 e 1 lógicos. Também temos uma Fonte de energia e uma placa de ensaio pequena. Quanto às ligações (fios) em vermelho são 5V (nível lógico alto), as em verde foram utilizadas para conectar às saídas, às ligações em preto são 0V (nível lógico baixo) e às ligações em roxo foram utilizadas para o ''clock''. Lembrando que o ''clock'' sempre vem das saídas anteriores, exceto o ''clock'' do primeiro flip-flop que vem do Gerador de função. A Figura 4 mostra o diagrama de pinos do 7473.
 +
 
 +
[[Imagem:fig141_DIG222802.gif|center|border]]
 +
<center>
 +
Figura 4 - Diagrama de pinos do 7473 (duplo flip-flop JK).
 +
</center>
 +
 
 +
No Diagrama de pinos podemos observar que o sinal do ''clock'' (pinos CLK) é por borda de descida e que o ''clear'' (pinos CLR) é ativo baixo.
  
 
===Contadores com módulo < <math>2^N</math>===
 
===Contadores com módulo < <math>2^N</math>===
  
Para obter um contador com módulo menor do que <math>2^N</math> é necessário adicionar um circuito decodificador para reiniciar a contagem antes de chegar ao valor máximo (ou mínimo). A Figura 3 mostra um contador MOD-6. Se não houvesse a porta NAND ligada nas entradas CLR dos FF o módulo do contador seria 8. A sequência de estados do contador MOD-6 é mostrada nas Figura 4 e Tabela 2.  Note que na transição do 6º ''clock'' o estado do contador passa temporariamente pelo estado (110b), o qual faz com que a saída da porta NAND passe para o estado BAIXO, causando o CLR nos FF, e consequentemente levando o contador para o estado (000b).
+
Para obter um contador com módulo menor do que <math>2^N</math> é necessário adicionar um circuito decodificador para reiniciar a contagem antes de chegar ao valor máximo (ou mínimo). A Figura 5 mostra um contador MOD-6. Se não houvesse a porta NAND ligada nas entradas CLR dos FF o módulo do contador seria 8. A sequência de estados do contador MOD-6 é mostrada nas Figura 6 e Tabela 2.  Note que na transição do 6º ''clock'' o estado do contador passa temporariamente pelo estado (110b), o qual faz com que a saída da porta NAND passe para o estado BAIXO, causando o CLR nos FF, e consequentemente levando o contador para o estado (000b).
  
  
 
[[Imagem:fig16_DIG222802.png|center|500px]]
 
[[Imagem:fig16_DIG222802.png|center|500px]]
 
<center>
 
<center>
Figura 3 - Contador assíncrono com módulo < <math>2^N</math>.
+
Figura 5 - Contador assíncrono com módulo < <math>2^N</math>.
 
</center>
 
</center>
  
 
[[Imagem:fig17_DIG222802.png|center|600px]]
 
[[Imagem:fig17_DIG222802.png|center|600px]]
 
<center>
 
<center>
Figura 4 - Diagrama de tempo do contador com módulo < <math>2^N</math>.
+
Figura 6 - Diagrama de tempo do contador com módulo < <math>2^N</math>.
 
</center>
 
</center>
  
Linha 296: Linha 323:
 
| 2
 
| 2
 
|}
 
|}
*Não atingível.  
+
''*Não atingível.''
  
 +
A Figura 6b mostra a animação do contador MOD-6. Percebam que foi utilizado uma porta AND ao invés de NAND porque o R (reset) é ativo alto. Então quando a contagem chega a 110b que é 6d a porta AND é ativada e sua saída da ''reset'' em todos os FFs recomeçando a contagem de 0. Cuidado com o bit mais significativo e menos significativo.
  
O diagrama de transição de estados do contador de 3 bits MOD-6 é mostrado na Figura 5. No diagrama de transição as linhas contínuas indicam a passagem pelos estados estáveis (000b  101b) e as linhas tracejadas indicam a passagem pelos estados temporários (110b). O estado (111b) embora possível não é atingível.
+
[[Imagem:fig146_DIG222802.gif|center]]
 +
<center>
 +
Figura 6b - Contador assíncrono com MOD-6 (animação).
 +
</center>
 +
 
 +
O diagrama de transição de estados do contador de 3 bits MOD-6 é mostrado na Figura 7. No diagrama de transição as linhas contínuas indicam a passagem pelos estados estáveis (000b  101b) e as linhas tracejadas indicam a passagem pelos estados temporários (110b). O estado (111b) embora possível não é atingível.
  
  
 
[[Imagem:fig18_DIG222802.png|center|350px]]
 
[[Imagem:fig18_DIG222802.png|center|350px]]
 
<center>
 
<center>
Figura 5 - Diagrama de transição de estados de um contador MOD-6.
+
Figura 7 - Diagrama de transição de estados de um contador MOD-6.
 
</center>
 
</center>
  
Linha 317: Linha 350:
 
===Contadores de década===
 
===Contadores de década===
  
Os contadores de década (ou decádico) são contadores que possuem 10 estados distintos, não importando a sequência de contagem. Quando um contador decádico realiza a contagem em sequência binária crescente de 0000b a 1001b (0 a 9), ele é chamado de contador BCD.
+
Os contadores de década (ou decádico) são contadores que possuem 10 estados distintos, não importando a sequência de contagem. Quando um contador decádico realiza a contagem em sequência binária crescente de 0000b a 1001b (0 a 9), ele é chamado de contador BCD. A Figura 8 mostra o CI 7490.
 +
 
 +
[[Imagem:figura111_EDI018702.png|300px|center|border]]
 +
<center>
 +
Figura 8 - Circuito Integrado Contador 7490.
 +
</center>
 +
 
 +
O circuito integrado TTL 7490 consiste num contador de década, divisor por 2 e por 5, com saídas BCD. Cada circuito integrado exige uma corrente de 32 mA e a máxima frequência de contagem é 18 MHz. A contagem ocorre nas transições negativas do sinal de ''clock''. Este circuito é encontrado em versões mais rápidas nas subfamílias TTLs correspondentes. [https://www.jameco.com/Jameco/Products/ProdDS/50690.pdf Datasheet 7490 - Contador Decádico]
 +
 
 +
O circuito do contador pode ser simulado no 'falstad'. A Figura 8b mostra o circuito com o contador (a esquerda), no centro o decodificador - que transforma a contagem binária em contagem decimal num display de 7 segmentos a direita.
 +
 
 +
[[Imagem:Fig144_DIG222802.gif|center]]
 +
<center>
 +
Figura 8b - Circuito contador 'falstad'.
 +
</center>
  
 
===Contador assíncrono decrescente===
 
===Contador assíncrono decrescente===
  
Os contadores que contam progressivamente a partir do zero são denominados contadores crescentes (ou ascendentes). Já os contadores que contam do valor máximo até zero são chamados decrescentes (ou descendentes). A Figura 6 mostra a configuração para um contador decrescente construído com FF do tipo JK. A configuração é semelhante à do contador crescente, com a única diferença de cada FF é disparado pela saída '''Q\''' no lugar de '''Q'''.
+
Os contadores que contam progressivamente a partir do zero são denominados contadores crescentes (ou ascendentes). Já os contadores que contam do valor máximo até zero são chamados decrescentes (ou descendentes). A Figura 8 mostra a configuração para um contador decrescente construído com FF do tipo JK. A configuração é semelhante à do contador crescente, com a única diferença de cada FF é disparado pela saída '''Q\''' no lugar de '''Q'''.
  
  
 
[[Imagem:fig19_DIG222802.png|center|500px]]
 
[[Imagem:fig19_DIG222802.png|center|500px]]
 
<center>
 
<center>
Figura 6 - Contador assíncrono decrescente.
+
Figura 8 - Contador assíncrono decrescente.
 
</center>
 
</center>
  
  
A Figura 7 mostra o diagrama de tempo das saídas do contador, enquanto que a Tabela 3 mostra a contagem das transições do ''clock'' e os estados correspondentes ao contador. O diagrama de estados do contador decrescente é mostrado na Figura 8 (b), enquanto que o diagrama do contador crescente é mostrado na Figura 8 (a). Note que nos dois diagramas o contador passa por todos os estados.
+
A Figura 9 mostra o diagrama de tempo das saídas do contador, enquanto que a Tabela 3 mostra a contagem das transições do ''clock'' e os estados correspondentes ao contador. O diagrama de estados do contador decrescente é mostrado na Figura 10 (b), enquanto que o diagrama do contador crescente é mostrado na Figura 10 (a). Note que nos dois diagramas o contador passa por todos os estados.
  
  
 
[[Imagem:fig20_DIG222802.png|center|350px]]
 
[[Imagem:fig20_DIG222802.png|center|350px]]
 
<center>
 
<center>
Figura 7 - Diagrama de tempo do contador assíncrono decrescente.
+
Figura 9 - Diagrama de tempo do contador assíncrono decrescente.
 
</center>
 
</center>
  
Linha 431: Linha 478:
 
[[Imagem:fig21_DIG222802.png|center|450px]]
 
[[Imagem:fig21_DIG222802.png|center|450px]]
 
<center>
 
<center>
Figura 8 - Diagrama de transição de estados do contador MOD-8.
+
Figura 10 - Diagrama de transição de estados do contador MOD-8.
 
</center>
 
</center>
  
Linha 437: Linha 484:
  
  
O contador assíncrono ascendente-descendente, também chamado de reversível, é uma combinação dos contadores anteriormente vistos. Ele possui os FF conectados conforme mostra a Figura 9. Nesta configuração a lógica de portas permite que o contador tenha dois modos de operação distintos:
+
O contador assíncrono ascendente-descendente, também chamado de reversível, é uma combinação dos contadores anteriormente vistos. Ele possui os FF conectados conforme mostra a Figura 11. Nesta configuração a lógica de portas permite que o contador tenha dois modos de operação distintos:
  
 
*Modo de contagem ascendente:  UP = 1 e DOWN = 0.  Os FF B e C são disparados pelas saídas não complementares do FF anterior (Q)
 
*Modo de contagem ascendente:  UP = 1 e DOWN = 0.  Os FF B e C são disparados pelas saídas não complementares do FF anterior (Q)
Linha 445: Linha 492:
 
[[Imagem:fig22_DIG222802.png|center|450px]]
 
[[Imagem:fig22_DIG222802.png|center|450px]]
 
<center>
 
<center>
Figura 9 - Contador assíncrono ascendente-descendente.
+
Figura 11 - Contador assíncrono ascendente-descendente.
 
</center>
 
</center>
 
  
 
==Atrasos de Propagação de Contadores Assíncronos==
 
==Atrasos de Propagação de Contadores Assíncronos==
  
Em um contador assíncrono cada FF é disparado pela saída de um FF anterior. Essa característica traz como desvantagem o acumulo dos tempos de atraso de propagação. Isso pode ser visto na Figura 10. Ao passar por um FF, o sinal de ''clock'' sofre um atraso de propagação <math>t_{pd}</math> e esse efeito é somado até o último FF, gerando um atraso total de <math>N.t_{pd}</math>, onde N é o número de FF.
+
Em um contador assíncrono cada FF é disparado pela saída de um FF anterior. Essa característica traz como desvantagem o acumulo dos tempos de atraso de propagação. Isso pode ser visto na Figura 12. Ao passar por um FF, o sinal de ''clock'' sofre um atraso de propagação <math>t_{pd}</math> e esse efeito é somado até o último FF, gerando um atraso total de <math>N.t_{pd}</math>, onde N é o número de FF.
  
  
 
[[Imagem:fig23_DIG222802.png|center|450px]]
 
[[Imagem:fig23_DIG222802.png|center|450px]]
 
<center>
 
<center>
Figura 10 - Contador assíncrono ascendente-descendente.
+
Figura 12 - Contador assíncrono ascendente-descendente.
 
</center>
 
</center>
  
Linha 477: Linha 523:
 
library ieee;
 
library ieee;
 
use ieee.std_logic_1164.all;
 
use ieee.std_logic_1164.all;
 +
 +
ENTITY ff_jk is
 +
    port(j,k,clk: in bit;
 +
        q: out bit);
 +
END ff_jk;
 +
 +
ARCHITECTURE teste of ff_jk is
 +
BEGIN
  
entity FF_JK is
+
process(clk)
port
+
variable temp : bit :='0';
(
 
J,K : in  bit;
 
clk : in  bit;
 
Q : out bit
 
);
 
end FF_JK;
 
 
 
architecture Ex2 of FF_JK is
 
 
begin
 
begin
process (clk)
+
if( falling_edge(clk) ) then
begin
+
if (j='1' and k='0') then
if (falling_edge(clk)) then
+
temp:='1';
 
+
elsif (j='0' and k='1') then
  Q <= '1' when J='1' and K='0' else
+
temp:='0';
                '0' when J='0' and K='1' else
+
elsif (j='1' and k='1') then
                not Q when J='1' and K='1' else
+
temp:= not temp;
                Q;
+
else
 +
temp:=temp;
 +
end if;
 +
q<=temp;
 
end if;
 
end if;
 
end process;
 
end process;
end Ex2;
+
END teste;
 
 
  
 
</syntaxhighlight>
 
</syntaxhighlight>
Linha 507: Linha 555:
  
 
[1] Apostila do CURSO DE ELETRÔNICA DIGITAL. CEFET/SC: São José, 2011.
 
[1] Apostila do CURSO DE ELETRÔNICA DIGITAL. CEFET/SC: São José, 2011.
 +
 +
[2] https://pdf1.alldatasheetpt.com/datasheet-pdf/view/50911/FAIRCHILD/7473.html
 +
 +
[3] https://www.tinkercad.com/
  
  

Edição atual tal como às 10h26min de 16 de junho de 2021

Contadores

Os contadores são circuitos que utilizam flip-flops e são aplicados, principalmente, em contagens diversas, divisão de frequência, medição de frequência e de tempo, divisão de formas de onda e conversão de analógico para digital. Estes circuitos sequenciais são divididos em duas categorias:

  • Contadores assíncronos; e
  • Contadores síncronos.

A principal diferença entre eles é que o síncrono utiliza um sinal de clock comum a todos os flip-flops e o assíncrono possuí um sinal de clock que é dividido até o último flip-flops.


Contadores Assíncronos

Estes contadores também são conhecidos como seriais ou contadores por pulsação (ripple counter). Tal nome advém do fato dos flip-flops (FF) do contador não serem disparados diretamente pelo sinal de clock. Cada FF é disparado pela saída do FF anterior. Esta característica torna estes contadores limitados em termos de velocidade, pois o tempo de ativação (tempo de resposta) é dado aproximadamente pela soma dos tempos de atraso de propagação de cada FF.


Contador assíncrono crescente

Um circuito típico de um contador assíncrono crescente construído com FF do tipo JK é mostrado na Figura 1. Os FF JK estão com ambas entradas J e K permanentemente em nível alto, estando configuradas portanto como FF tipo T. Cada FF é disparado pela saída do FF anterior. A Figura 2 mostra o diagrama de tempo para esse contador.


Fig14 DIG222802.png

Figura 1 - Contador assíncrono crescente.

O contador tem como conteúdo, estado interno, a contagem do número de transições negativas do clock, de forma que quando ocorre uma transição o conteúdo é incrementado de uma unidade. O conteúdo do contador é dado pelo número binário DCBA, onde A é o bit LSB (bit menos significativo) e D é o bit MSB (bit mais significativo). O modulo (MOD) de um contador é o seu número de estados distintos, portanto, o módulo de um contador com N FF pode ser no máximo o número de possíveis saídas (). A Tabela 1 mostra os estados de contagem de um contador assíncrono com 4 FF (4 bits). Podemos perceber que após 16 transições de clock o contador reinicia a contagem. Por isso, este contador é de MOD-16, ou seja, tem 16 estados distintos (0000b até 1111b).


Fig15 DIG222802.png

Figura 2 - Diagrama de tempo do contador assíncrono crescente.


Nos contadores assíncronos, a frequência do clock é dividida por 2 em cada FF, ou seja: na saída A temos clock/2, e na saída D temos clock/16. Portanto, os contadores assíncronos são divisores de frequência e no último FF a frequência de clock é dividida pelo módulo do contador.


Tabela 1 - Contador assíncrono crescente MOD-16
Clock D C B A Decimal Estado
0 0 0 0 0 0 0
1 0 0 0 1 1 1
2 0 0 1 0 2 2
3 0 0 1 1 3 3
4 0 1 0 0 4 4
5 0 1 0 1 5 5
6 0 1 1 0 6 6
7 0 1 1 1 7 7
8 1 0 0 0 8 8
9 1 0 0 1 9 9
10 1 0 1 0 10 10
11 1 0 1 1 11 11
12 1 1 0 0 12 12
13 1 1 0 1 13 13
14 1 1 1 0 14 14
15 1 1 1 1 15 15
16 0 0 0 0 0 0
17 0 0 0 1 1 1
18 0 0 1 0 2 2


Fig145 DIG222802.gif

Figura 1b - Contador assíncrono crescente (animação).

Vale ressaltar que os FFs estão configurados com J=1 e K=1 que dá a característica de contador "natural", ou seja, a cada pulso de clock a saída é complementada (0->1 e 1->0). Cada FF anterior gera o clock do próximo FF assim realizando a contagem conforme mostra o diagrama da Figura 2 e a Tabela 1. Lembrando que no primeiro FF vai o sinal de clock.

Contador na prática

A Figura 3 mostra o circuito realístico utilizando o 7473 (duplo flip-flop JK) montado e simulado com a página do Tinkercad.


Fig140 DIG222802.png

Figura 3 - Contador assíncrono crescente realístico.

Na Figura 3 podemos visualizar um Gerador de função configurado para uma frequência de 1Hz com 5V de amplitude e um componente CC de 2,5V, que transforma a onda quadrada em sinal de clock oscilando entre 0V e 5V - respectivamente 0 e 1 lógicos. Também temos uma Fonte de energia e uma placa de ensaio pequena. Quanto às ligações (fios) em vermelho são 5V (nível lógico alto), as em verde foram utilizadas para conectar às saídas, às ligações em preto são 0V (nível lógico baixo) e às ligações em roxo foram utilizadas para o clock. Lembrando que o clock sempre vem das saídas anteriores, exceto o clock do primeiro flip-flop que vem do Gerador de função. A Figura 4 mostra o diagrama de pinos do 7473.

Fig141 DIG222802.gif

Figura 4 - Diagrama de pinos do 7473 (duplo flip-flop JK).

No Diagrama de pinos podemos observar que o sinal do clock (pinos CLK) é por borda de descida e que o clear (pinos CLR) é ativo baixo.

Contadores com módulo <

Para obter um contador com módulo menor do que é necessário adicionar um circuito decodificador para reiniciar a contagem antes de chegar ao valor máximo (ou mínimo). A Figura 5 mostra um contador MOD-6. Se não houvesse a porta NAND ligada nas entradas CLR dos FF o módulo do contador seria 8. A sequência de estados do contador MOD-6 é mostrada nas Figura 6 e Tabela 2. Note que na transição do 6º clock o estado do contador passa temporariamente pelo estado (110b), o qual faz com que a saída da porta NAND passe para o estado BAIXO, causando o CLR nos FF, e consequentemente levando o contador para o estado (000b).


Fig16 DIG222802.png

Figura 5 - Contador assíncrono com módulo < .

Fig17 DIG222802.png

Figura 6 - Diagrama de tempo do contador com módulo < .

Tabela 2 - Contador assíncrono crescente MOD-6
Clock C B A Decimal Estado
0 0 0 0 0 0
1 0 0 1 1 1
2 0 1 0 2 2
3 0 1 1 3 3
4 1 0 0 4 4
5 1 0 1 5 5
6* 1 1 0 6 6
6 0 0 0 0 0
7 0 0 1 1 1
8 0 1 0 2 2

*Não atingível.

A Figura 6b mostra a animação do contador MOD-6. Percebam que foi utilizado uma porta AND ao invés de NAND porque o R (reset) é ativo alto. Então quando a contagem chega a 110b que é 6d a porta AND é ativada e sua saída da reset em todos os FFs recomeçando a contagem de 0. Cuidado com o bit mais significativo e menos significativo.

Fig146 DIG222802.gif

Figura 6b - Contador assíncrono com MOD-6 (animação).

O diagrama de transição de estados do contador de 3 bits MOD-6 é mostrado na Figura 7. No diagrama de transição as linhas contínuas indicam a passagem pelos estados estáveis (000b 101b) e as linhas tracejadas indicam a passagem pelos estados temporários (110b). O estado (111b) embora possível não é atingível.


Fig18 DIG222802.png

Figura 7 - Diagrama de transição de estados de um contador MOD-6.

Para a construção de um contador módulo X menor que o módulo máximo, o procedimento deve seguir as etapas:

  • Determinar o menor número N de FF tal que .
Exemplo: MOD-12 N = 16.
  • Conectar a porta NAND nas entradas assíncronas de todos os FF. Se , não é necessário conectar nada a entrada;
  • Conectar as saídas que estarão em ALTO na contagem X, na porta NAND.
Exemplo: 12 = 1100b D = 1 e C = 1, conectar D e C a porta NAND.

Contadores de década

Os contadores de década (ou decádico) são contadores que possuem 10 estados distintos, não importando a sequência de contagem. Quando um contador decádico realiza a contagem em sequência binária crescente de 0000b a 1001b (0 a 9), ele é chamado de contador BCD. A Figura 8 mostra o CI 7490.

Figura111 EDI018702.png

Figura 8 - Circuito Integrado Contador 7490.

O circuito integrado TTL 7490 consiste num contador de década, divisor por 2 e por 5, com saídas BCD. Cada circuito integrado exige uma corrente de 32 mA e a máxima frequência de contagem é 18 MHz. A contagem ocorre nas transições negativas do sinal de clock. Este circuito é encontrado em versões mais rápidas nas subfamílias TTLs correspondentes. Datasheet 7490 - Contador Decádico

O circuito do contador pode ser simulado no 'falstad'. A Figura 8b mostra o circuito com o contador (a esquerda), no centro o decodificador - que transforma a contagem binária em contagem decimal num display de 7 segmentos a direita.

Fig144 DIG222802.gif

Figura 8b - Circuito contador 'falstad'.

Contador assíncrono decrescente

Os contadores que contam progressivamente a partir do zero são denominados contadores crescentes (ou ascendentes). Já os contadores que contam do valor máximo até zero são chamados decrescentes (ou descendentes). A Figura 8 mostra a configuração para um contador decrescente construído com FF do tipo JK. A configuração é semelhante à do contador crescente, com a única diferença de cada FF é disparado pela saída Q\ no lugar de Q.


Fig19 DIG222802.png

Figura 8 - Contador assíncrono decrescente.


A Figura 9 mostra o diagrama de tempo das saídas do contador, enquanto que a Tabela 3 mostra a contagem das transições do clock e os estados correspondentes ao contador. O diagrama de estados do contador decrescente é mostrado na Figura 10 (b), enquanto que o diagrama do contador crescente é mostrado na Figura 10 (a). Note que nos dois diagramas o contador passa por todos os estados.


Fig20 DIG222802.png

Figura 9 - Diagrama de tempo do contador assíncrono decrescente.


Tabela 2 - Contador assíncrono decrescente MOD-6
Clock C B A Decimal Estado
0 0 0 0 0 0
1 1 1 1 7 1
2 1 1 0 6 2
3 1 0 1 5 3
4 1 0 0 4 4
5 0 1 1 3 5
6 0 1 0 2 6
7 0 0 1 1 7
8 0 0 0 0 0
9 1 1 1 7 1
10 1 1 0 6 2


Fig21 DIG222802.png

Figura 10 - Diagrama de transição de estados do contador MOD-8.

Contador assíncrono ascendente-descendente

O contador assíncrono ascendente-descendente, também chamado de reversível, é uma combinação dos contadores anteriormente vistos. Ele possui os FF conectados conforme mostra a Figura 11. Nesta configuração a lógica de portas permite que o contador tenha dois modos de operação distintos:

  • Modo de contagem ascendente: UP = 1 e DOWN = 0. Os FF B e C são disparados pelas saídas não complementares do FF anterior (Q)
  • Modo de contagem descendente: UP = 0 e DOWN = 1. Os FF B e C são disparados pelas saídas complementares do FF anterior (Q\)


Fig22 DIG222802.png

Figura 11 - Contador assíncrono ascendente-descendente.

Atrasos de Propagação de Contadores Assíncronos

Em um contador assíncrono cada FF é disparado pela saída de um FF anterior. Essa característica traz como desvantagem o acumulo dos tempos de atraso de propagação. Isso pode ser visto na Figura 12. Ao passar por um FF, o sinal de clock sofre um atraso de propagação e esse efeito é somado até o último FF, gerando um atraso total de , onde N é o número de FF.


Fig23 DIG222802.png

Figura 12 - Contador assíncrono ascendente-descendente.

Para que um contador assíncrono funcione de modo confiável é necessário que o atraso total de propagação seja menor que o período de clock usado: , ou ainda, em termos de frequência máxima, que .

Exercício de Fixação

[1] Complete o circuito abaixo para que funcione como contador assíncrono crescente.

Fig78 DIG222802.png

[2] Utilizando o mesmo circuito, faça as modificações necessárias para que funcione como contador assíncrono decrescente.


VHDL

Código VHDL
Descreve o funcionamento de FF tipo JK.
 
library ieee;
use ieee.std_logic_1164.all;
 
ENTITY ff_jk is
    port(j,k,clk: in bit;
         q: out bit);
END ff_jk;
 
ARCHITECTURE teste of ff_jk is
BEGIN

process(clk)
variable temp : bit :='0';
begin
	if( falling_edge(clk) ) then
		if (j='1' and k='0') then
			temp:='1';
		elsif (j='0' and k='1') then
			temp:='0';
		elsif (j='1' and k='1') then
			temp:= not temp;
		else
			temp:=temp;
		end if;
		q<=temp;
	end if;
end process;
END teste;

Referências

[1] Apostila do CURSO DE ELETRÔNICA DIGITAL. CEFET/SC: São José, 2011.

[2] https://pdf1.alldatasheetpt.com/datasheet-pdf/view/50911/FAIRCHILD/7473.html

[3] https://www.tinkercad.com/



Icone voltar.png Icone menu.png Icone prox.png