• Nenhum resultado encontrado

aula 13 - Contadores

N/A
N/A
Protected

Academic year: 2021

Share "aula 13 - Contadores"

Copied!
10
0
0

Texto

(1)

Contadores

Nas aulas anteriores vimos a definição e princípio de funcionamento dos circuitos flip-flop (FF), e seu uso como registradores e contadores. Nessa aula exploraremos um pouco mais sobre contadores, mostrando os diversos tipos e suas vantagens e desvantagens.

Contador Assíncrono

A conexão em cascata de FF do tipo J-K pode ser usada para implementar um contador simples, visto que esse dispositivo comuta (altera) sua saída na transição do clock, quando suas entradas J e K são ambas iguais a 1.

Se analisarmos a saída de cada FF, a medida que o clock de entrada do FF-A na figura acima apresenta uma borda de descida, o FF-A irá comutar sua saída, ou seja, a cada duas bordas de descida do clock, teremos uma borda de descida do FF.

Como a saída do FF-A é a entrada do FF-B, esse terá uma borda de descida a cada duas do FF-A, ou a cada 4 bordas de descida do clock. Consequentemente, a saída do n-ésimo FF será um trem de pulsos com a frequência 2N vezes menor que o clock de entrada. Dessa forma, temos implementado

(2)

Exemplo: Considerando o sistema abaixo, onde se deseja construir um relógio digital, qual a quantidade mínima de FFs seriam necessários para criar o circuito “Contador módulo 60” da figura?

Uma outra forma de analisar o trem de pulsos gerado por cada FF, é considerar o conjunto de saídas como uma palavra binária, onde o FF-A de entrada do clock representa o LSB. Assim, a cada borda de descida do clock, temos o incremento de uma unidade na palavra binária. Dessa forma, temos implementado um contador binário assíncrono.

Esse tipo de contador tem esse nome pois cada entrada de clock dos FFs é a saída do FF anterior, e esses clocks não são sincronizados. O não sincronismo desses clocks faz com que o clock de um FF dependa da saída do FF anterior, que naturalmente apresenta um atraso de propagação.

Ao colocar vários FFs em cascata, o atraso de propagação irá acumular, conforme a figura abaixo. Considerando, por exemplo, um contador de 3 bits (divisor módulo 8) onde cada FF é ativado pela borda de descida, e tem um atraso de 50 ns, as formas de onda de cada FF, para um clock de entrada de 1 MHz, seria:

Nesse caso, ainda seria possível obter um contador binário, apesar da saída do MSB atrasado. Entretanto, se aumentarmos a frequência do clock de entrada:

(3)

Na figura acima, o clock de entrada é de 10 MHz, como o atraso do FF do contador é de 50 ns, esse atraso é comparável ao período do clock. No exemplo acima, devido ao atraso de propagação dos FF, o contador nunca terá a palavra binária 100.

A partir dessa análise, podemos calcular a maior frequência de clock de entrada de um contador assíncrono a partir do tempo de atraso de propagação (tpd) de cada FF (N) que o forma:

TclockN×tpd

Contadores síncronos

Para evitar o efeito de propagação do clock em um contador, podemos usar circuitos lógicos combinacionais para definir a transição dos FFs mais significativos e usar o mesmo clock para todos eles. Eles são chamados de contadores síncronos ou contadores paralelos.

Para projetar o circuito combinacional que fará a lógica da transição, basta construir a tabela verdade do contador, construindo a lógica de transição de cada FF a partir da transição da contagem.

(4)

A partir da tabela acima, percebemos que o FF-A fará a comutação de seu valor sempre que tiver uma borda de transição do clock, assim, basta inserir o valor lógico 1 em ambas entradas do FF tipo J-K.

Para o FF-B, percebe-se que seu valor será comutado quando o valor do FF-A for 1, permanecendo o mesmo quando o valor do FF anterior for 0. Assim, basta colocar como entrada do FF-B o valor da saída do FF-A, assim, quando esse último tiver como saída o valor 0, o FF-B não sofrerá alteração, quando o FF-A tiver como saída o valor 1, o FF-B irá comutar.

O valor de saída do FF-C irá comutar quando os valores de saída de ambos FFs, A e B, forem 1, permanecendo o mesmo para os outros casos. Algo semelhante acontece com o FF-D, que terá seu valor comutado quando todos os FFs anteriores tiverem saída 1.

(5)

A desvantagem desse tipo de contador, comparado aos assíncronos, é a necessidade de uso de um circuito combinacional adicional. A principal vantagem, entretanto, é a ausência da propagação do atraso dos FFs que formam o contador, havendo apenas o atraso de propagação de um único FF e das portas lógicas adicionais:

Atraso total = tpd de 1 FF + tpd da porta AND

Alteração do módulo do contador

Até agora, todos os contadores considerados possuiam um módulo de contagem múltiplo de potências de 2. Por exemplo, um contador de 4 bits faz a contagem de 0000 (010) a 1111 (1510).

Podemos, contudo, projetar circuitos lógicos que implementem contagens com módulo diferente de 2N.

Como primeiro exemplo, deseja-se fazer a contagem de 000 (010) a 101 (510). Uma estratégia para

essa mudança é utilizar a entrada CLR (clear) do FF, que faz com que sua saída seja 0 independente da entrada (e do clock).

Se o contador contará até 101, o estado seguinte (110), deve ser direcionado para o início da nova contagem (000). Em outras palavras, quando as saídas dos FFs B e C forem 1, o CLR dos FFs deve ser ativado, zerando a saída de todos eles.

(6)

Na figura acima, os FFs usados no contador tem as entradas de clock e clear invertidas, o que significa que as entradas do FF serão avaliadas somente na borda de descida do clock, e seus valores serão forçados a 0 quando a entrada CLR for 0.

A porta NAND tem como entrada os valores de saída dos FFs B e C, ou seja, quando ambas saídas forem 1, a saída da porta será 0, em todos os outros casos a saída da porta será 1. Isso significa que quando os valores de B e C forem 1, a entrada CLR de todos os FFs será ativada, e isso forçará a saída de todos eles para 0.

Repare que na sexta borda de descida do clock, todos os FFs tem a saída forçada para 0, que faz com que a saída da porta NAND (consequente as entradas CLR dos FFs) seja automaticamente transferida para 1. O pequeno pulso que observamos na saída do FF-B e da porta NAND são consequência do tempo propagação dos FFs e das portas lógicas, que são insignificantes considerando o período do clock.

(7)

Podemos representar esse contador através de um diagrama de estados, que tem os últimos 2 estados da contagem módulo-8 não executadas:

(8)

Inversão da ordem de contagem

Até agora somente contadores crescentes foram analisados, todavia contadores decrescentes também podem ser implementados. Adicionalmente, pode-se projetar um contador que realize tanto a contagem crescente quanto a decrescente, a partir de um bit de controle.

Primeiramente, faremos a implementação de um contador decrescente. Analisando a tabela verdade de um contador binário, é fácil perceber que para implementar um contador decrescente basta inverter todos os bits. Logo, o circuito de um contador decrescente será o mesmo do anterior, bastando pegar a saída invertida de cada FF.

Um contador crescente/decrescente dependerá de um bit de controle, que determinará o sentido da contagem. Quando o bit de controle for 1, o contador será crescente, quando o bit for 0, o contador será decrescente. Por exemplo, consideremos novamente um contador de 3 bits.

(9)

Analisando a tabela verdade do contador de 3 bits mostrado anteriormente, vemos que, independente do sentido da contagem, para cada borda de ativação o estado do FF-A (LSB) irá comutar, portanto, as entradas J e K do FF devem ser 1.

A comutação do FF-B irá depender para cada caso. No caso de um contador crescente (bit de controle = 1), o seu estado irá comutar quando a saída do FF-A for 1, ou seja, quando o bit anterior for mudar de 1 para 0. No caso de um contador decrescente (bit de controle = 0), será o contrário, o FF-B só irá comutar quando a saída de FF-A for 0, ou seja, mudar de 0 para 1.

Para o terceiro bit (FF-C), a comutação do seu estado também dependerá dos valores de saída dos FFs anteriores. Para um contador crescente (bit de controle = 1), o estado do FF irá comutar quando ambos FFs anteriores tiverem valor 1, e o contrário para o caso do contador decrescente (bit de controle = 0).

O circuito que implementa essa lógica pode ser montado da seguinte forma:

Como exercício, simule um sinal de clock e atribua valores 1 ou 0 para o bit de controle (UP/DOWN), observando o sinal de saída de cada FF.

Representando o contador acima através de um diagrama de estados, além de representar cada estado do contador, é preciso ilustrar o comando de controle que faz a transição do estado. No caso de um contador crescente (bit de controle = 1), o sentido de transição é um, caso contrário, a transição entre os estados é outro.

(10)

Como resumo da aula, e indicação de projeto de circuitos contadores, o aluno deve ler as páginas 339 a 344 do livro texto Sistemas Digitais: princípios e aplicações (Tocci, Widmer e Moss, 11ª ed.).

Referências

Documentos relacionados

Sendo os resultados experimentais (verde) obtidos nas amostras sem desvolatilizacão da Figura 37, fizeram-se a descrição feita acima onde a media final serviu

Chora Peito Chora Joao Bosco e Vinicius 000 / 001.. Chão De Giz Camila e

Podem treinar tropas (fornecidas pelo cliente) ou levá-las para combate. Geralmente, organizam-se de forma ad-hoc, que respondem a solicitações de Estados; 2)

Isto é, agrupa uma série de informações e procedimentos de trabalho que envolvem desde os processos de aquisição dos head-sets, como o treinamento, exames e a

Essa pesquisa tem por objetivo investigar e estabelecer as bases epistemológicas das Ciências da Religião a partir do estudo religiográfico das pesquisas do

As IMagens e o texto da Comunicação (com as legendas incluídas) devem ser enviadas por correio eletrônico. Comitê

esta espécie foi encontrada em borda de mata ciliar, savana graminosa, savana parque e área de transição mata ciliar e savana.. Observações: Esta espécie ocorre

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam