Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIVERSIDADE ESTÁCIO DE SÁ – UNESA CURSO DE ENGENHARIA ELÉTRICA DISCIPLINA: CIRCUITOS DIGITAIS CAPÍTULO 6 – REGISTRADORES DE MOVIMENTO E CONTADORES Prof.: Ricardo Toscano e Leonardo Domingues Edição: 2019.2 2 Sumário 1 Introdução ............................................................................................................................3 1.1 Transferência Paralela de Dados ..................................................................................4 1.2 Registradores de Movimento com FF tipo JK ...............................................................4 1.3 Transferência Serial entre Registradores ......................................................................6 1.4 Transferência Paralela x Serial ......................................................................................7 1.5 Divisão da Transferência e Contagem ..........................................................................7 1.6 Operações de Contagem ..............................................................................................8 1.7 Módulo do Contador ....................................................................................................9 3 1 Introdução Com certeza, o uso mais comum de flip-flops é no armazenamento de dados ou de informações. Os dados podem representar valores numéricos (por exemplo, números binários, números BCD — decimal codificado em binário) ou qualquer outro de uma grande variedade de tipos de dados que podem ser codificados em binário. Esses dados são geralmente armazenados em grupos de FFs denominados registradores. A operação mais comum realizada sobre os dados armazenados em FFs ou registradores é a transferência de dados, que envolve a transferência de dados de um FF ou registrador para outro. A Figura 1 ilustra como esse processo pode ser implementado entre dois FFs usando flip- flops S-R, J-K e D. Em cada caso, o valor lógico atual armazenado em um FF A é transferido para um FF B na borda de descida do pulso TRANSFER. Assim, após essa borda de descida, a saída B terá o mesmo valor que a saída A. As operações mostradas na Figura 1 são exemplos de transferência síncrona, visto que as entradas de controle síncronas e a entrada CLK foram usadas para realizar a transferência. A operação de transferência também pode ser obtida usando-se as entradas assíncronas de um FF. A Figura 2 mostra como uma transferência assíncrona pode ser implementada usando as entradas PRESET e CLEAR de qualquer tipo de FF. Nesse caso, as entradas assíncronas são ativas em nível BAIXO. Essa transferência assíncrona é realizada independentemente das entradas síncronas e do clock do FF e também é conhecida como transferência por interferência, porque o dado que está sendo transferido ‘interfere’ no FF B, mesmo que as entradas síncronas estejam ativadas. Figura 1 : Operação de transferência síncrona de dados realizada por diversos tipos de FFs com clock. Figura 2: Operação de transferência assíncrona de dados. 4 1.1 Transferência Paralela de Dados A Figura 3 ilustra uma transferência de dados de um registrador para outro usando FFs D. O registrador X é constituído dos FFs X2, X1 e X0; o Y, dos FFs Y2, Y1 e Y0. Na aplicação da borda de subida do pulso TRANSFER, o nível armazenado em X2 é transferido para Y2, X1 para Y1 e de X0 para Y0. A transferência do conteúdo do registrador X para o Y é síncrona, também denominada transferência paralela, visto que os conteúdos de X2, X1 e X0 são transferidos simultaneamente para Y2, Y1 e Y0. Caso uma transferência serial fosse realizada, o conteúdo do registrador X seria transferido, um bit de cada vez, para o registrador Y. Isso será analisado na próxima seção. É importante entender que a transferência paralela não altera o conteúdo do registrador, que é a fonte dos dados. Por exemplo, na Figura 3, se X2X1X0 = 101 e Y2Y1Y0 = 011 antes de ocorrer o pulso TRANSFER, então, após ocorrer o pulso TRANSFER, o conteúdo dos dois registradores será 101. Figura 3: Transferência paralela do conteúdo do registrador X para o registrador Y. 1.2 Registradores de Movimento com FF tipo JK Antes de descrevermos a operação de transferência serial de dados, temos de analisar a configuração básica de um registrador de deslocamento. 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. Você, sem dúvida, já viu registradores de deslocamento em operação em dispositivos tais como uma calculadora eletrônica, em que os dígitos mostrados no display são deslocados cada vez que você tecla um novo dígito. Essa operação é similar à que acontece em um registrador de deslocamento. A Figura 4(a) mostra uma maneira de organizar flip-flops J-K para que operem como um registrador de deslocamento de quatro bits. Observe que os FFs estão conectados de maneira que o valor da saída X3 é transferido para X2, o valor de X2 para X1 e o de X1 para X0. Isso significa que, quando ocorre uma borda de descida no pulso de deslocamento, cada FF recebe o valor armazenado previamente no FF à esquerda. O FF X3 recebe o valor determinado pelos níveis das entradas J e K quando ocorre uma borda de descida no clock. Por enquanto, 5 admitiremos que as entradas J e K de X3 sejam acionadas pelo sinal ENTRADA DE DADOS, cuja forma de onda é mostrada na Figura 4 (b). Admitiremos também que todos os FFs estejam no estado 0 antes que os pulsos de deslocamento sejam aplicados. As formas de onda na Figura 4 (b) mostram como os dados de entrada são deslocados da esquerda para a direita, de um FF para outro, enquanto os pulsos de deslocamento são aplicados. Quando ocorre a primeira borda de descida em t1, cada um dos FFs X2, X1 e X0 tem em suas entradas a condição J = 0 e K = 1, devido ao estado do FF que está à esquerda. O FF X3 tem J = 1 e K = 0, devido ao sinal ENTRADA DE DADOS. Assim, no instante t1, somente X3 vai para o nível ALTO, enquanto todos os outros FFs permanecem no nível BAIXO. Quando ocorrer a segunda borda de descida em t2, o FF X3 terá J = 0 e K = 1, devido ao sinal ENTRADA DE DADOS. O FF X2 tem J = 1 e K = 0, por causa do atual nível ALTO de X3. Os FFs X1 e X0 ainda permanecem com J = 0 e K = 1. Assim, no instante t2, apenas o FF X2 vai para o nível ALTO; o FF X3 vai para o nível BAIXO, e os FFs X1 e X0 permanecem no nível BAIXO. Figura 4 : Registrador de deslocamento de 4 bits OBS.: Nesse tipo de registrador de deslocamento, é necessário que os FFs tenham um tempo de hold muito pequeno, porque existem momentos em que as entradas J e K mudam de estado simultaneamente à transição do CLK. Por exemplo, a saída X3 comuta de 1 para 0 em resposta à borda de descida no instante t2, fazendo com que as entradas J e K de X2 mudem de estado enquanto a sua entrada de CLK está mudando. Na realidade, em virtude do atraso de propagação de X3, as entradas J e K de X2 não mudarão de estado durante um curto intervalo de tempo após a borda de descida do CLK. Por essa razão, um registrador de deslocamento deve ser implementado usando FFs disparados por borda que tenham valor de tH menor que um atraso de propagação do CLK para a saída. Este último requisito é facilmente atendido pela maioria dos modernos FFs disparados por borda. 6 1.3 Transferência Serial entre Registradores A Figura 5 (a) mostra dois registradores de deslocamento de três bits conectados de modo que o conteúdo do registrador X seja transferido de forma serial (deslocada) para o registrador Y. Estamos usando FFs D para cada registrador de deslocamento, visto que esses FFs requerem menos conexões que os FFs J-K. Observe comoX0, o último FF do registrador X, está conectado à entrada D de Y2, o primeiro FF do registrador Y. Assim, quando os pulsos de deslocamento são aplicados, a transferência da informação acontece da seguinte maneira: X2 → X1 → X0 → Y2 → Y1 → Y0. O FF X2 irá para o estado determinado pela sua entrada D. Por enquanto, a entrada D será mantida em nível BAIXO, de modo que X2 irá para o nível BAIXO no primeiro pulso, e assim permanecerá. Para ilustrar, vamos considerar que, antes que seja aplicado qualquer pulso de deslocamento, o conteúdo do registrador X seja 101 (ou seja, X2 = 1, X1 = 0, X0 = 1) e o registrador Y seja 000. Veja a tabela na Figura 5 (b), que mostra como os estados de cada FF mudam conforme os pulsos de deslocamento são aplicados. Devem ser observados os seguintes pontos: 1. Na borda de descida de cada pulso, cada FF recebe o valor que estava armazenado no FF à esquerda antes da ocorrência do pulso. 2. Após três pulsos, o nível 1, que estava inicialmente em X2, está em Y2; o nível 0, que estava inicialmente em X1, está em Y1; e o nível 1, que estava inicialmente em X0, está em Y0. Em outras palavras, a informação 101 armazenada no registrador X foi deslocada para o registrador Y. O registrador X é agora 000, perdeu o dado original. 3. A transferência completa dos três bits de dados requer três pulsos de deslocamento. Figura 5: Transferência serial de dados do registrador X para o Y Exemplo: Considere os mesmos valores dos registradores X e Y mostrados na Figura 5. Qual será o valor de cada FF após a ocorrência de seis pulsos de deslocamento? Solução Se continuarmos o processo mostrado na Figura 5.44(b) para mais três pulsos de deslocamento, veremos que todos os FFs estarão no estado 0 após seis pulsos. Outra maneira de chegar a esse 7 resultado é a seguinte: um nível 0 constante na entrada D de X2 é deslocado a cada pulso, de modo que após seis pulsos os registradores estarão carregados com 0s. 1.4 Transferência Paralela x Serial Na transferência paralela, todas as informações são transferidas simultaneamente na ocorrência de um único pulso (Figura 3), não importando quantos bits são transferidos. Na transferência serial, conforme exemplificado na Figura 5, a transferência completa de N bits de informação requer N pulsos de clock (três bits requerem três pulsos, quatro bits, quatro pulsos etc.). Portanto, a transferência paralela é muito mais rápida que a serial usando registradores de deslocamento. 1.5 Divisão da Transferência e Contagem Veja a Figura 6 (a). Cada FF tem suas entradas J e K em nível 1, para que ele mude de estado (comute) sempre que o sinal em sua entrada de CLK for do nível ALTO para o BAIXO. Os pulsos de clock são aplicados apenas na entrada CLK do FF Q0. A saída de Q0 está conectada na entrada CLK do FF Q1, e a saída de Q1 está conectada na entrada CLK do FF Q2. As formas de onda, mostradas na Figura 6 (b), indicam como os FFs mudam de estado conforme os pulsos são aplicados. Os pontos importantes a serem observados são os seguintes: 1. O FF Q0 comuta na borda de descida de cada pulso na entrada de clock. Assim, a forma de onda da saída Q0 tem uma frequência que é exatamente a metade da frequência dos pulsos de clock. 2. O FF Q1 comuta de estado cada vez que a saída Q0 vai do nível ALTO para o BAIXO. A forma de onda de Q1 tem uma frequência exatamente igual à metade da frequência da saída Q0 e, portanto, um quarto da frequência do sinal de clock. 3. O FF Q2 comuta de estado cada vez que a saída Q1 vai do nível ALTO para o BAIXO. Assim, a forma de onda Q2 tem a metade da frequência de Q1 e, portanto, um oitavo da frequência de clock. 4. A saída de cada FF é uma forma de onda quadrada (tem ciclo de trabalho de 50 por cento). 8 Figura 6: Flip-flops J-K conectados para formar um contador binário de três bits (módulo 8). Como vimos, cada FF divide a frequência do sinal de sua entrada por 2. Assim, se acrescentarmos um quarto FF a essa cadeia, ele teria frequência igual a 1/16 da frequência de clock, e assim por diante. Usando um número apropriado de FFs, esse circuito pode dividir uma frequência por qualquer potência de 2. Especificamente, usando N flip-flops produziríamos uma frequência de saída do último FF que seria igual a 1 2𝑛 da frequência de entrada. Essa aplicação com flip-flops é conhecida como divisor de frequência. 1.6 Operações de Contagem Além de funcionar como divisor de frequência, o circuito da Figura 6 também funciona como contador binário. Isso pode ser demonstrado analisando a sequência de estados dos FFs após a ocorrência de cada pulso de clock. A Figura 7 apresenta os resultados em uma tabela de estados. Digamos que os valores de Q2Q1Q0 representam um número binário em que Q2 está na posição 2², Q1 na 2¹ e Q0 na 20. Os primeiros oito estados de Q2Q1Q0 mostrados na tabela devem ser reconhecidos como uma contagem binária sequencial de 000 a 111. Após a primeira borda de descida do clock, os FFs passam para o estado 001 (Q2 = 0, Q1 = 0, Q0 = 1) que representa 0012 (equivalente ao decimal 1); após a segunda borda de descida do clock, os FFs passam para o estado 0102, que equivale a 210; após três pulsos de clock, temos 0112 = 310; após quatro pulsos de clock, temos 1002 = 410; e assim sucessivamente, até que ocorram sete pulsos de clock, quando teremos 1112 = 710. Na oitava borda de descida do clock, os FFs retornam para o estado 000 e a sequência binária se repete para os pulsos de clock posteriores. Assim, para os primeiros sete pulsos de entrada, o circuito funciona como contador binário, no qual os estados dos FFs representam o número binário equivalente ao número de pulsos ocorridos. Esse contador pode contar até 1112 = 710 antes de retornar para 000. Figura 7: Tabela com os estados dos flip-flops mostrando uma sequência de contagem binária. Outra maneira de mostrar como os estados dos FFs mudam a cada pulso de clock aplicado é pelo uso de um diagrama de transição de estados, conforme está ilustrado na Figura 8. 9 Figura 8: O diagrama de transição de estados mostra como os estados de um contador mudam a cada pulso de clock aplicado. 1.7 Módulo do Contador O contador mostrado na Figura 6 tem 23 = 8 estados diferentes (000 a 111). Dizemos que é um contador de módulo 8, em que o valor do módulo indica o número de estados da sequência de contagem. Se um quarto FF fosse acrescentado, a sequência de estados contaria, em binário, de 0000 a 1111, em um total de 16 estados. Este seria um contador de módulo 16. Em geral, se N flip-flops estão conectados na configuração mostrada na Figura 6, o contador resultante terá 2N estados diferentes e, portanto, será um contador de módulo 2N. Esse contador é capaz de contar até 2N -1, antes de retornar ao estado 0. Exercícios: 1) Considere que o contador de módulo 8 mostrado na Figura 6 esteja no estado 101. Qual será o estado (a contagem) após a aplicação de 13 pulsos? Solução Localize o estado 101 no diagrama de transição de estados. Siga por oito mudanças de estado. Você deve ter retornado ao estado 101. Agora, continue por mais cinco mudanças de estado (total de 13). Você deve estar agora no estado 010. Observe que, como esse é um contador de módulo 8, ele necessita de oito transições de estado para fazer uma excursão completa no diagrama e retornar ao estado inicial. 2) Considere um circuito de um contador que possui seis FFs conectados, segundo o diagrama da Figura 6 (isto é, Q5,Q4, Q3, Q2, Q1, Q0). (a) Determine o módulo do contador. (b) Determine a frequência na saída do último FF (Q5) quando a frequência do clock de entrada for de 1 MHz. (c) Qual é a faixa de estados de contagem desse contador? (d) Considere como estado (contagem) inicial o valor 000000. Qual será o estado do contador após129 pulsos? Solução (a) Módulo = 26 = 64. (b) A frequência no último FF é igual à frequência do clock de entrada dividida pelo módulo do contador. Ou seja, 𝑓 (𝑒𝑚 𝑄5) = 1𝑀𝐻𝑧 64 = 15,625 𝑘𝐻𝑧 10 (c) Esse contador contará de 0000002 a 1111112 (0 a 6310) em um total de 64 estados. Observe que o número de estados é o mesmo que o valor do módulo. (d) Visto que esse contador é de módulo 64, ele retorna para o estado inicial a cada 64 pulsos de clock. Portanto, após 128 pulsos, o contador retorna para 000000. O 129º pulso leva o contador para a contagem 000001.
Compartilhar