• Nenhum resultado encontrado

Os fabricantes de CIs de Flip-Flops especificam vários parâmetros de temporização importantes e características que tem que ser consideradas para utilização de FFs. Como exemplo, a tabela a seguir , exibe os mais importantes parâmetros de temporização de alguns CIs de FFs comerciais das famílias TTL e CMOS, listados abaixo.

• 7474 – Duplo FF D disparado por borda (TTL padrão)

• 74LS112- Duplo FF JK disparado por borda ( TTL Schottky de baixa potência) • 74C74 – Duplo FF D disparado por borda (CMOS de porta metálica)

• 74HC112 – Duplo FF JK disparado por borda (CMOS de alta velocidade) Tempo- rização Descrição CI Família TTL (em ns) CI Família CMOS (em ns) 7474 74LS112 74C74 74HC112 t Tempo de setup 20 20 60 25 tH Tempo de hold 5 0 0 0 tPHL Propagação de CLK para Q 40 24 200 31 tPLH Propagação de CLK para Q 25 16 200 31 tPHL Propagação de CLR para Q 40 24 225 41

tPLH Propagação de PRE para Q 25 16 225 41

tw(L) Tempo de CLK em nível baixo 37 15 100 25

tw(H) Tempo de CLK em nível alto 30 20 100 25

tw(L) Tempo de PRE ou CLRem nível baixo 30 15 60 25

fMAX Em MHz 15 30 5 20

Em se tratando de problemas pontenciais decorrentes de temporização, dois parâmetros de temporização de FFs são especialmente importantes: o tempo de setup (preparação) e o tempo de hold (manutenção).

O tempo de setup, tS, de um FF é o intervalo de tempo que precede imediatamente a transição ativa do sinal de clock durante o qual as entradas de controle síncronas tem que ser mantidas nos níveis adequados.

O tempo de hold, tH, de um FF é o intervalo de tempo que segue imediatamente após a transição ativa do sinal de clock durante o qual as entradas de controle síncronas tem de ser mantidas nos níveis adequados. As figuras (a) e (b) demonstram esses parâmetros.

7) FLIP-FLOP MESTRE-ESCRAVO

Em muitos circuitos digitais, a saída de um FF é conectada, diretamente ou por meio de portas lógicas, à entrada de outro FF, e ambos são disparados pelo mesmo pulso de clock. Isso representa um problema potencial de temporização.

A próxima figura apresenta um exemplo de um circuito com essa situação. O problema potencial de temporização é que Q1 muda de estado na borda negativa do pulso de clock, então, a entrada J2 de Q2 estará mudando de estado quando recebe a mesma borda de descida do pulso de clock. Isto pode conduzir a uma resposta imprevisível de Q2.

Na figura anterior, considerando-se Q1=1 e Q2=0, assim o FF Q1 possui J1=K1, e Q2 possui J2=Q1=1 e K2=0 antes da borda de descida do pulso de clock. Quando ocorre a borda de descida de clock, Q1 comuta para o estado 0, mas isso só ocorre depois de decorrido o tempo de propagação tPHL. A mesma borda negativa dispara Q2 de modo confiável para o estado 1 desde que tPHL seja maior que o tempo de hold de Q2.

Todos FFs recentes disparados por borda tem um tempo de hold de 5 ns ou menos. A maioria possui tH = 0, o que significa que eles não necessitam de tempo de hold. Para estes FFs não há o problema potencial de temporização.

Antes do desenvolvimento dos FFs disparados por borda que requerem um tempo de hold pequeno ou nulo, os problemas de temporização acima relatados eram frequentemente tratados usando uma classe de FFs denominada FF Mestre-Escravo.

Um FF Mestre-Escravo é constituído de dois FFs, um Mestre e um Escravo. Na borda de subida do sinal de clock, os níveis presentes nas entradas síncronas (D, J, K) são usados para determinar a saída interna do FF Mestre. A carta seguinte demonstra a temporização dos FFs internos, Mestre e Escravo. Quando o sinal de clock vai para nível baixo, o estado do FF Mestre é transferido para o FF Escravo, cujas saídas são as saídas Q e Q do FF Mestre_Escravo. Assim as saídas Q e Q do FF Mestre-Escravo funcionam de maneira muito semelhante com os FFs disparados por borda negativa, exceto que as entradas de controle tem que ser mantidas estáveis quando o pulso de clock estiver em nível alto. Este problema foi resolvido com uma versão do FF Mestre-Escravo melhorada denominada Mestre-Escravo com travamento de dados (data lockout). Este tipo de Flip-Flop tornou-se obsoleto.

Ent. S Ent. R CLK QM QE=QFF

CAPÍTULO 3

CIRCUITOS CONTADORES

Os circuitos contadores são uma finalidade especial dos circuitos digitais, compostos de FFs, que têm a função de contar o número de eventos de um determinado sistema. Um contador de N, que é capaz de contar até um especificado número N de eventos, irá necessitar de K Flip-Flops, onde 2K≥ N.

REVISÃO DE CÓDIGOS BINÁRIO-DECIMAL

Em computadores e outros sistemas lógicos binários, a informação e os dados são tratados na forma de representação binária. Entretanto, para o homem, o sistema de representação numérica decimal é a forma mais conveniente. Assim, a codificação e decodificação de números decimais em binários se torna necessária para conciliar as quantidades tratadas pelos circuitos digitais, na forma binária, e a representação de melhor entendimento para o homem, ou seja, a decimal.

A seguir estão representados alguns dos mais conhecidos códigos de representação de Decimal Codificado em Binário (BCD) de 4 bits. Nestes códigos são necessários 4 bits, ou dígitos binários, para representação de um dígito decimal.

CÓDIGOS BCD NÚMERO DECIMAL 8 4 2 1 2 4 2 1 7 4 2 1 5 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 2 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 1 3 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 4 0 1 0 0 0 1 0 0 0 1 0 0 0 1 1 1 5 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 6 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 1 7 0 1 1 1 0 1 1 1 1 0 0 0 1 0 1 1 8 1 0 0 0 1 1 1 0 1 0 0 1 1 1 0 1 9 1 0 0 1 1 1 1 1 1 0 1 0 1 1 1 1 Exemplos de representação de números decimais em BCD:

73(10)= 0111.0011(BCD 8421) 92(10)= 1111.0010(BCD 2421) 395(10)= 0011.1010.0101(BCD7421) 278(10)= 0011.1011.1101(BCD5211)

1) CONTADORES ASSÍNCRONOS

Esse contador recebe a designação de Contador Assíncrono, porque os FFs de seus diversos estágio não mudam de estado em sincronismo com o clock de entrada, apenas o primeiro estágio está sincronizado com o clock de entrada.

Nos sistemas assíncronos de contagem existe um determinado tempo para que todas as mudanças nos diversos FFs que compõem o sistema ocorram. O atraso ocorrido em cada FF é na ordem de 5 a 20 ns. O tempo gasto para a realização de uma contagem de evento depende do número total de FFs envolvidos.

Esse circuito recebe outras designações alternativas. Por exemplo, como a saída de cada FF aciona a entrada de clock do FF seguinte, dá-se o nome de Contador Série, que se refere à forma de propagação do clock pelos diversos FFs de seus estágios. Ele também é frequentemente denominado de

Contador Ondulante (Ripple Counter), devido a maneira dos FFs responderem um após o outro de

modo análogo à propagação de uma onda. Finalmente, em função das contagens apresentadas nas saídas dos seus FFs apresentarem a mesma seqüência do sistema de numeração binário, ele também pode ser denominado de Contador Binário Puro.

CONTADORES DIRETOS E INVERSOS

Contadores diretos ou crescentes, ou simplesmente UP contam os eventos em ordem direta, desde um número menos significativo para um número mais significativo. Os contadores inversos ou decrescentes, ou simplesmente DOWN, contam os eventos em ordem inversa, ou seja, desde um número mais significativo para um número menos significativo.

CONTAGEM DIRETA CONTAGEM

INVERSA Saídas Contador Saídas Contador Valor Decimal D C B A Valor Decimal D C B A 0 0 0 0 0 15 1 1 1 1 1 0 0 0 1 14 1 1 1 0 2 0 0 1 0 13 1 1 0 1 3 0 0 1 1 12 1 1 0 0 4 0 1 0 0 11 1 0 1 1 5 0 1 0 1 10 1 0 1 0 6 0 1 1 0 9 1 0 0 1 7 0 1 1 1 8 1 0 0 0 8 1 0 0 0 7 0 1 1 1 9 1 0 0 1 6 0 1 1 0 10 1 0 1 0 5 0 1 0 1 11 1 0 1 1 4 0 1 0 0 12 1 1 0 0 3 0 0 1 1 13 1 1 0 1 2 0 0 1 0 14 1 1 1 0 1 0 0 0 1 15 1 1 1 1 0 0 0 0 0

Os contadores UP-DOWN são aqueles que podem contar diretamente ou inversamente, bastando para isso que sejam assim comandados.

As tabelas anteriores expõem as saídas dos quatro estágios de um contador em binário puro e os sentidos das contagens. Nas tabelas anteriores a saída D representa o dígito binário (bit) mais significativo e a saída A representa o bit menos significativo.

CONTADOR ASSÍNCRONO DIRETO (CONTADOR UP)

Da tabela de contagem direta, pode-se observar que o dígito imediatamente mais significativo muda de estado toda vez que a saída do estágio anteriormente menos significativa muda de 1 para 0. Quanto ao dígito menos significativo do conjunto, saída A, ele muda de estada a cada pulso de entrada. Essas condições são satisfeitas pelo FF tipo T, chaveado na descida do pulso de clock.

O circuito do contador assíncrono de 0 a 15, contagem direta, utilizando FFs JK, com as entradas J=1 e K=1 para implementar a função FF tipo T, e a sua respectiva carta de tempo se encontram mostrados na figura seguinte.

CONTADOR ASSÍNCRONO INVERSO (CONTADOR DOWN)

Da tabela de contagem inversa anteriormente vista pode-se observar que o dígito imediatamente mais significativo muda de estado toda vez que a saída do estágio anteriormente menos significativa muda

de 0 para 1. Quanto ao dígito menos significativo do conjunto, saída A, ele muda de estada a cada pulso de entrada.

Essas condições são satisfeitas pelo FF tipo T, chaveado na subida do pulso de clock, excetuando-de o FF A que ainda tem que ser comutado na transição negativa do pulso de clock de entrada. Assim, em contador inverso cada FF, exceto o primeiro tem de comutar quando o FF decrescente passa do nível 0 para o nível 1.

Para implementar-se esse contador faz-se necessário que ao invés de se utilizar a saída Q para alimentar a entrada clock do FF do próximo estágio mais significativo, utiliza-se então a saída negada ( Q ), o que vai satisfazer a necessidade de comutação nas transições de 0 para 1.

O circuito do contador assíncrono de 7 a 0, contagem inversa, utilizando FFs JK, com as entradas J=1 e K=1 para implementar a função FF tipo T, e a sua respectiva carta de tempo se encontram mostrados na figura seguinte.

MÓDULO DE UM CONTADOR

O contador síncrono direto visto anteriormente tem 16 estados de saída distintos (de 0000 a 1111). Ele é um contador série de módulo 16. O módulo é sempre igual ao número de estados que o contador percorre em cada ciclo completo de contagem antes de retornar ao estado original.

O módulo é limitado pelo número de FFs do contador , ou seja: Módulo ≤ 2N, onde N é o número de FFs do contador.

O contador básico pode ser utilizado para gerar um módulo menor que 2N. Isto ocorre fazendo-se que contador não exiba estados de saída, contagens, que normalmente fazem parte da seqüência de contagem. O circuito e a sua correspondente carta de tempo mostrados na figura a seguir é de um contador de 3 FFs, portanto seu módulo ≤ 23≤ 8.

Para reduzir seu módulo está demonstrada a utilização de uma porta lógica para decodificação das saídas e utilização das entradas assíncronas CLRpara alteração da seqüência de contagem. A porta NAND é utilizada para forçar a mostragem de contagem 0, através da ativação da entrada CLRtoda vez que o contador apresentar a contagem 6, ou seja B e C=1. Assim o contador mostrará somente as contagens 000,001,010,011,100,101, e retornará a 000, repetindo o ciclo. Como o contador apresenta somente 6 estados diferentes de contagem, ele é um contador módulo 6.

Deve ser observado que a forma de onda na saída B contém um spike ou glitch causado pela ocorrência momentânea do estado 110 antes de ir para 000.

CIRCUITOS DIVISORES POR N

Como visto anteriormente, o FF tipo T, que é um contador de 2, é um divisor de freqüência do sinal de entrada por 2. Da mesma forma, um circuito contador até N eventos também divide a freqüência do evento contado por N. Se extrairmos a forma de onda do estágio de contagem mais significativo do contador, ele terá um período N vezes maior do que o evento de entrada que está sendo contado, e

assim a freqüência de saída será N vezes menor que a freqüência de entrada do evento de entrada. Tal ocorrência pode ser verificada na forma de onda da saída C do contador módulo 6 visto acima, ou seja, a freqüência do sinal de saída em C é a freqüência de clock dividida por 6.

A ilustração da divisão de freqüência se encontra na figura que se segue. Considerando que a freqüência de clock da carta de saída do contado assíncrono de 16 eventos visto anteriormente, abaixo representada seja 16 KHz, a saída do FF A é uma onda quadrada de 8 KHz, ou seja, a freqüência do clock dividida por 2; a saída do FF B é uma onda quadrada de 4 KHz, ou seja, a freqüência do clock dividida por 4; a saída do FF C é uma onda quadrada de 2 KHz, ou seja, a freqüência do clock dividida por 8; a saída do FF D é uma onda quadrada de 1 KHz, ou seja, a freqüência do clock dividida por 16.

Como exemplo da utilização de contadores na divisão de frequência, o contador exibido na próxima figura é um contado de módulo 10, ou contador decádico, ou contador BCD. Os contadores decádicos tem ampla utilização na divisão de frequência do eventos a serem contados, ou seja, pulsos de clock, por 10. Os pulsos de saída, com a frequência dividida por 10, são obtidos na saída do FF D. No exemplo a frequência de clock de 1 MHz, aparece no sinal da saída D com 100 KHz.

DECODIFICAÇÃO DE CONTAGENS ESPECÍFICAS

Os sistemas digitais às vezes são requeridos para gerar um pulso quando um contador alcança um contagem previamente determinada. Nesse caso é necessário um decodificador para realizar essa função. O decodificador é obtido com portas lógicas AND ou NAND, cujas entradas são as saídas Q e

O circuito visto anteriormente, contador decádico ou BCD, mostra um contador assíncrono de módulo 16 com um decodificador para detecção de contagem 10. Em outras palavras a saída da porta NAND deverá apresentar um nível lógico 0 a cada vez que o contador apresentar a contagem 10 nas saídas dos seus FFs. No caso deste circuito o resultado da detecção da contagem 10 é utilizada para retorna-lo à contagem 0 toda vez que a contagem 10 é alcançada.

CIRCUITOS INTEGRADOS DE CONTADORES ASSÍNCRONOS

Existem vários CIs contadores assíncronos das famílias TTL e CMOS. Como exemplo será ilustrado o CI TTL 74LS293. O diagrama lógico deste CI é mostrado na figura (a) seguinte. A figura (b) exibe o símbolo lógico e respectiva pinagem.

O CI 74LS293 possui quatro FFs JK com as saídas Q0(LSB), Q1, Q2 e Q3(MSB). As entradas de clock, ativas na transição negativa, para o FF1 e o FF2, são respectivamente, os pinos CP0 (clock pulse) e

CP1. Os pinos MR1 (master reset) e MR2 alimentam as entradas CLEAR (CD) de cada FF, através de uma porta lógica NAND.

Os FF1, FF2 e FF3 já estão conectados como um contado série de três bits. O FF0 não está conectado na série dos demais FFs. Para formar um contador série de 4 bits é necessário se conectar externamente a saída Q0 à entrada CP1.

ASSOCIAÇÃO DE CIs DE CONTADORES ASSÍNCRONOS

Como exemplo de decodificação de contagens específicas e da possibilidade de construir-se contadores de módulos maiores a partir da disponibilidade de contadores de módulos menores, está exposto na figura seguinte, um contador de módulo 60, ou divisor por 60, constituído da associação de um contador de módulo 10 e um contador de módulo 6.

Neste circuito, contador de 60 eventos, cabe ressaltar que ambos os contadores de módulo 10 e módulo 6, foram construídos com CI 74LS293, onde foi utilizada a decodificação das contagens 10 e 6, respectivamente, e a saída mais significativa do primeiro contador, ou seja saída dividida por 10, ou com sinalização de contagem 10 alimenta a entrada de clock do segundo contador, de módulo 6 ou divisor por 6.

2) CONTADORES SÍNCRONOS OU PARALELOS

Como visto nos contadores assíncronos o tempo gasto para contar um evento é dependente do número total de estágios componentes do contador. Nos contadores síncronos, ou paralelos, as entradas de clock são alimentadas em paralelo pelo mesmo clock, e as mudanças dos estado dos FFs ocorrem simultaneamente.

Como o sinal de clock é aplicado simultaneamente em todos os FFs, é necessátrio que as entradas síncronas de cada FF estejam preparadas para que cada FF mude no instante apropriado. Esse efeito é obtido utilizando-se a decodificação dos próprios sinais de saída dos FFs para alimentação das entradas sícronas de cada estágio.

As próximas figuras (a) e (b) exibem respectivamente o circuito de um contador síncrono módulo 16 e a tabela contendo cada um das contagens que ele exibe, entre 0 e 15.

Pode-se observar na tabela de contagem que a saída do FF do estágio imediatamente mais significativo só muda do estado O para o estado 1, quando todos os estágios anteriormente menos significativos estão em nível 1. Assim a decodificação, efetuada pelas portas AND do circuito, das saídas anteriores alimenta as entradas J e K do estágio imediatamente mais significativo com um nível alto, possibilitando que o estágio mude de estado, nesse caso de 0 para 1, na ocorrência da próxima

ocorrência de transição ativa do pulso de clock. O estágio menos significativo, FF A, muda de estado a cada pulso de clock.

TEMPORIZAÇÃO DE CIRCUITOS CONTADORES

No contador síncrono todos os FFs mudam de estado simultaneamente. Assim, diferentemente dos contadores assíncronos, os atrasos de propagação dos FFs não são somados para se obter o atraso total. Em vez disso, o tempo total de resposta de um contado síncrono, como o anteriormente mostrado, é o tempo de resposta de um FF para comutar mais o tempo para os novos níveis lógicos se propagarem por uma única porta lógica AND. Então no contador síncrono:

atraso total= tempo de propagação do FF + tempo de propagação da porta AND

Um contador síncrono pode operar com uma frequência de entrada muito maior que um contador assíncrono. Por exemplo, se num determinado circuito contador de módulo 16, estiverem sendo

utilizados FFs com tempo de propagação de 50 ns e portas lógicas (somente no contador síncrono) com tempo de propagação 20 ns, a máxima frequência de clock de entrada a ser contada é :

Para o contador síncrono

fmax=1/Tclock, onde Tclock=50+20=70 ns ; fmax=1/70 ns = 14,3 MHz Para o contador assíncrono (4 FFs):

fmax=1/Tclock, onde Tclock=4x50=200 ns ; fmax=1/200 ns = 5,0 MHz

CONTADORES COM CARGA PARALELA

Muitos contadores síncronos (paralelos) disponíveis em CIs podem ser carregáveis (presettable), ou seja, podem ser inicializados com qualquer valor inicial antes do início da contagem. Essa operação de inicialização também é denominada de carga paralela. A figura seguinte mostra o circuito lógico de um contador up de três bits com carga paralela.

A maioria dos contadores conta os eventos numa seqüência binária normal, embora suas seqüências possam ser alteradas utilizando métodos já vistos. Existem situações, entretanto, que um contador deve seguir uma seqüência diferente da seqüência de numeração binária, como por exemplo, quando utiliza códigos de 4 bits diferentes do BCD 8421.

Para ilustrar uma situação dessas, será abordado o projeto de um contador síncrono decádico módulo 10, utilizando FFs JK cuja contagem dos eventos deve ser mostrado utilizando-se o código BCD 2421. O contador desejado é de módulo 10 (N), portanto o número (K) de FFs a serem utilizados deve atender a equação 2K≥N. Então K=4, ou seja, o contador precisa de 4 FFs.

Passo 1 – Tabela de contagem para o código BCD 2421

Contagem Decimal D C B A 0 0 0 0 0 1 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 0 1 0 0 5 0 1 0 1 6 0 1 1 0 7 0 1 1 1 8 1 1 1 0 9 1 1 1 1 10-15 - - - -

Nas tabelas e mapas utilizados no projeto, para qualquer combinação de entradas ou resultado na saída que não interesse ou que nunca deva ocorrer será utilizada a notação “ - ” em substituição aos níveis lógico 0 e 1.

Passo 2– Mapa de karnaugh para a contagem desejada

DC BA 00 01 11 10 00 0 4 - - 01 1 5 - - 11 3 7 9 - 10 2 6 8 -

Passo 3 – Mapa de mudanças para o tipo de FF utilizado

Em contadores paralelos, as saídas de todos os FFs mudam simultaneamente. Por isso, todos os FFs após mostrarem um contagem já devem estar com as entradas síncronas preparadas para mostrar a próxima contagem. Neste projeto está sendo utilizado o FF JK. É então necessária a construção de uma tabela relacionando as mudanças do estado da saída e as entradas J e K.

Níveis lógicos Mudança na saída Q J K 0->1 (Mudança de 0 para 1) 1 - 1->0 (Mudança de 1 para 0) - 1 0->0 (0 mantido) 0 - 1->1 (1 mantido) - 0

Passo 4 – Mapa de mudanças para cada FF do contador

Observa-se que pela seqüência de contagens na tabela de contagem, que o FF C após a contagem 3 deverá estar preparado para a próxima contagem, 4, onde irá de 0->1 e que na contagem 4 deverá estar preparado para a próxima contagem, 0, onde irá de 1->0. Essas mudanças devem ser descritas no Mapa de Mudanças do FF C. Isso deverá ser feito para todos os FFs do contador.

Mapa Contagem Mapa Mudanças FF D

DC DC BA 00 01 11 10 Æ BA 00 01 11 10 00 0 4 - - 00 0->0 0->0 - - 01 1 5 - - 01 0->0 0->0 - - 11 3 7 9 - 11 0->0 0->1 1->0 - 10 2 6 8 - 10 0->0 0->0 1->1 -

Mapa Contagem Mapa Mudanças FF C

DC DC BA 00 01 11 10 Æ BA 00 01 11 10 00 0 4 - - 00 0->0 1->1 - - 01 1 5 - - 01 0->0 1->1 - - 11 3 7 9 - 11 0->1 1->1 1->0 - 10 2 6 8 - 10 0->0 1->1 1->1 -

Mapa Contagem Mapa Mudanças FF B

DC DC BA 00 01 11 10 Æ BA 00 01 11 10 00 0 4 - - 00 0->0 0->0 - - 01 1 5 - - 01 0->1 0->1 - - 11 3 7 9 - 11 1->0 1->1 1->0 - 10 2 6 8 - 10 1->1 1->1 1->1 -

Mapa Contagem Mapa Mudanças FF A

DC DC BA 00 01 11 10 Æ BA 00 01 11 10 00 0 4 - - 00 0->1 0->1 - - 01 1 5 - - 01 1->0 1->0 - - 11 3 7 9 - 11 1->0 1->0 1->0 - 10 2 6 8 - 10 0->1 0->1 0->1 -

Os mapas de mudança de cada FF devem ser associados às condições de J e K para mudança de saída do FF JK.

Mapa Mudanças FF D Mapa JDKD