





Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Os melhores documentos à venda: Trabalhos de alunos formados
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
circuitos digitais
Tipologia: Notas de estudo
1 / 9
Esta página não é visível na pré-visualização
Não perca as partes importantes!
No semestre passado vimos o funcionamento dos FFs, entretanto estes podem ser conectados para funcionarem como contadores e registradores. Os sistemas digitais empregam muitas variações destas conexões dos FFs, na maioria das vezes sob forma de circuitos integrados. Nesta aula iremos verificar como os FFs e as portas lógicas podem ser conectados para produzir diferentes tipos de contadores e registradores.
CONTADORES ASSÍNCRONOS:
A figura abaixo mostra um contador binário de 4 bits:
Os pulsos de clock são aplicados apenas na entrada CLK do FF A. Assim, o FF A comutará ( mudará para o seu estado oposto ) cada vez que ocorrer uma transição negativa no pulso de clock. Observe que J=K=1 para todos os FFs. A saída normal do FF A funciona como clock de entrada para o FF B, sendo que o FF B comuta a cada vez que a saída A muda de 1 para 0. Da mesma forma, o FF C comuta quando B muda de 1 para 0 e o FF D comuta quando C muda de 1 para 0. As saídas dos FFs D, C, B e A apresentam um número binário de 4 bits sendo D o mais significativo. Vamos considerar todos os oFFs tenham sido resetados para o estado 0 ( as entradas CLEAR não são mostradas ). As formas de onda na figura acima mostram que a contagem binária seqüencial de 0000 a 1111 ocorre à medida que os pulsos de clock são aplicados continuamente. Após a transição negativa do décimo quinto pulso de clock, os FFs do contador estão na condição 1111. Na décima sexta transição negativa do clock, o FF A muda de 1 para 0, fazendo com que o FF B mude de 1 para 0, o mesmo ocorre com os FFs C e D até que o contador chegue a 0000, ou seja o contador realizou um ciclo completo de contagem e se os pulsos de clock continuarem, será iniciado um novo ciclo de contagem. Neste contador, a saída de cada FF aciona a entrada de clock do FF seguinte, este tipo de configuração de contador é conhecido como contador assíncrono, porque os FFs não mudam de estado exatamente com o mesmo sincronismo com que os pulsos de clock são aplicados. Apenas o FF A responde aos pulsos de clock, os demais FFs dependem dos FFs anteriores para mudar de estado.
FLUXO DE SINAL:
Usualmente é convencionado representar circuitos, sempre que for possível, com o fluxo indo da esquerda para a direita, iremos tentar fazer a apresentação destes circuitos assim, o FF A ( LSB ) à direita e o FF D ( MSB ) à esquerda, como podemos verificar na figura acima, é apenas uma convenção que auxilia a compreensão do funcionamento dos contadores.
O contador mostrado além de assíncrono tem módulo 16, ou seja, o contador percorre 16 estados distintos até começar a contar os mesmos estados novamente, naturalmente a quantidade de módulos é igual a onde n é igual ao número de FFs utilizados.
2^ n
Um registrador de deslocamento é um grupo de FFs organizados de modo que os números binários armazenados nos FFs sejam deslocados de um FF para o seguinte a cada pulso de clock. Um exemplo típico de registrador de deslocamento é uma calculadora eletrônica, quando digita-se um número os outros que já estavam no display são deslocados para a esquerda.
Uma forma de conectar FFs J-K para que operem como um registrador de deslocamento de quatro bits está apresentada na figura acima. Veja que os FFs estão conectados de forma que as saídas estão ligadas as entradas dos FFs posteriores, assumiremos que todos os FFs estão resetados inicialmente. As formas de onda mostram como os dados são deslocados da esquerda para direita de FF para outro enquanto os pulsos de deslocamento são aplicados. Quando ocorre a primeira borda de descida no instante T1, cada um dos FFs 2, 1, 0 têm em suas entradas a condição J = 0 e K = 1, devido ao estado do FF que está a sua esquerda. O FF 3 tem J = 1 e K = 0 devido a entrada de dados. Assim no instante T1 somente Q3 vai para o nível ALTO, enquanto todos os outros FFs permanecem em nível BAIXO. Quando ocorrer a segunda borda de descida ( instante T2 ), o FF 3 terá J = 0 e K = 1, devido ao sinal de entrada. O FF 2 tem J = 1 e K = 0 devido ao nível ALTO de Q3. Os FFs 1 e 0 ainda permanecem com J = 0 e K = 1, portanto no instante T2 apenas Q2 vai para nível ALTO, o FF3 vai para o nível BAIXO e os FFs 1 e 0 permanecem em nível BAIXO. O mesmo raciocínio pode ser utilizado para determinar como as formas de onda mudam nos instante T3 e T4. Observe que a cada borda de descida do pulso de deslocamento, cada saída do FF recebe o nível lógico que estava presente na saída do FF à sua esquerda antes da borda de descida do pulso de deslocamento.
O contador básico assíncrono que estudamos até aqui está limitado ao módulo 2 N , onde N é o número de FFs. Podemos alterar o contador básico para gerar um módulo menor, fazendo com que se pule estados que normalmente fazem parte da contagem, podemos fazer isto utilizando uma lógica adicional, como é mostrado na figura abaixo:
Se for desconsiderada a porta NAND conectada, temos um contador de módulo 8 que conta de 000 a 111, entretanto a presença da porta altera a seqüência. A saída da porta NAND está conectada a entrada assíncrona CLEAR dos 3 FFs, enquanto a saída da porta NAND estiver em nível ALTO, não há efeito sobre o contador, entretanto quando tivermos as duas entradas ( B e C ) em nível ALTO a saída será “0”, resetando todos os FFs, fazendo com que o contador reinicie a contagem em 000, com isso as entradas B e C em “0” o sianl de CLR não está mais ativado. Essa condição ocorre quando tivermos 110 nas saídas CBA, porém a condição 110 dura apenas o tempo do CLR ( alguns nanosegundos ) logo este contador vai somente até 5 na prática, acaba tendo apenas seis estados diferentes, passa então ser um contador de módulo 6. Perceba no mapa de tempos que a saída B contém um SPIKE, causado pela ocorrência momentânea do estado 110 antes do reset. Este SPIKE não permite a visibilidade deste estado em LED´s ou displays, uma vez que é muito rápido.
DIAGRAMA DE TRANSIÇÃO DE ESTADOS:
A figura que segue mostra a transição de estados do contador que vimos, cada círculo representa um dos possíveis estados do contador, as setas indicam como se passa de um estado para o outro em resposta a um pulso de clock na entrada. Se considerarmos a contagem iniciando em 000, o diagrama mostra que os estados contador mudam de forma crescente até 101, quando o próximo pulso de clock ocorre, o contador passa momentaneamente para a contagem 110 antes de ir para a contagem estável 000. As linhas tracejadas indicam o estado temporário 110. A duração deste estado temporário é tão curta que consideramos este contador de 000 a 101 ( linha contínua ). Não há nenhuma linha entrando em 111, porque este estado nunca ocorrerá, ou ainda se ocorrer aleatoriamente na ligação ( instante inicial ) a porta NAND garante o clear, portanto este será apenas um estado temporário. Em geral utilizamos um display ou ainda um LED para indicar os estados do contador.
EXEMPLOS: Se quisermos projetar um contador de módulo 14, basta projetar uma lógica que reinicie a contagem quando tivermos 1110 em DCBA, logo a contagem irá de 0000 a 1101 ( 0 a 13 => 14 estados ), utilizamos as saídas DCB nas entradas de uma porta NAND, se conectarmos um sinal de clock com freqüência de 30 KHz teremos na saída 2,14 KHz, veja abaixo:
Podemos também projetar um contador decádico, quando tivermos em DCBA 1010, o contador é reiniciado, basta utilizarmos as saídas D e B, a contagem será de 0000 a 1001 ( 0 a 9 => 10 estados ).
Para projetar um contador que inicia com todos os bits em 0 e tem módulo X, basta calcular o menor número de
FFs 2 N^ ≥ X , conecte a saída da porta NAND as entradas CLEAR de todos os FFs, verifique quais serão os FFs que estarão em nível ALTO na contagem = X, conecte estas saídas dos FFs nas entradas da porta NAND.
Se considerarmos que cada FF tem um atraso de propagação entre o sinal na sua entrada e a saída, podemos imaginar que isso fará com que haja um efeito cumulativo à medida que os sinais forem sendo propagados entre um FF e outro. Em resumo os FF não mudam de estado simultaneamente em sincronismo com os pulsos de entrada. Essas limitações podem ser corrigidas com a utilização dos contadores síncronos, nos quais todos os FFs são disparados simultaneamente pelos pulsos de clock de entrada.
A medida que o contador tiver a freqüência de clock mais elevada, os atrasos passam a ser mais significativos a ponto de pular alguns estados, veja figura (b).
Em geral os contadores síncronos são circuitos maiores e mais complexos que os contadores assícronos, bem como não são em todos os FFs que as entradas J-K estão em nível ALTO.
A seqüência de contagem mostra que o FF A tem que mudar de estado a cada transição negativa do clock, por isso suas entradas são mantidas em “1” O FF B deve mudar de estado a cada transição negativa do clock, enquanto A = 1. O FF C tem que mudar de estado na borda de descida do clock, quando A = B = 1. Assim como D deverá mudar de estado também na borda de descida do clock quando A, B e C estiverem em nível ALTO. O princípio básico para um contador síncrono é: Cada FF deve ter suas entradas J e K conectadas de modo que elas estejam no nível ALTO apenas quando as entradas de todos os FFs de mais baixa ordem estiverem no estado ALTO.
Existem também os circuitos integrados comerciais com contadores como este prontos:
74LS160/162 Contadores síncronos decádicos. 74LS161/162 Contadores síncronos de módulo 16.
Assim como nos contadores assíncronos, podemos também projetar contadores decrescentes, basta utilizarmos
no contador síncrono que vimos na página anterior ao invés das saídas A, B, C utilizamos as saídas A , B , C ,
então o contador síncrono passará a contar 15, 14, 13, 12, 11, 10 ... 3, 2, 1, 0, 15, 14, 13 .... A figura abaixo mostra como implementar um contador crescente/decrescente ( conhecido também como up/down ):
A entrada up / down controla se as entradas J e K dos FFs seguintes serão acionadas pelas saídas normais ou
pelas saídas invertidas dos FFs. Quando up / down for mantida em nível ALTO, as portas AND n° 1 e n° 2
estarão habilitadas enquanto as portas AND n° 3 e n° 4 estarão desabilitadas (verifique a presença do inversor). Isso permite que as saídas A e B passem pelas portas 1 e 2 para as entradas J e K dos FFs B e C. Quando
up / down for mantida em nível BAIXO, as portas 1 e 2 estarão desabilitadas enquanto as portas 3 e 4 estarão
habilitadas. Isso permite que as saídas A e B passem pelas portas 3 e 4 para as entradas J e K dos FFs B e C. As formas de onda mostradas na figura abaixo ilustram a operação do contador.