Prévia do material em texto
CIRCUITOS SEQUENCIAIS 121 Capítulo 6: Circuitos Sequenciais 1- CONTADORES ASSÍNCRONOS E SÍNCRONOS Circuitos contadores são aqueles cujas saídas, para uma condição inicial 0, assumem uma combinação binária cujo equivalente decimal é igual ao número de pulsos recebidos na entrada clock. A arquitetura interna de circuitos contadores é um arranjo conveniente de flip-flops. Uma combinação binária presente na saída do contador é denominada estado do contador. A sequência das combinações binárias assumidas pelas saídas do contador em função dos pulsos de clock pode ser natural (crescente – 0, 1, 2, 3, ... ou decrescente – ..., 3, 2, 1, 0) ou não natural (3, 6, 4, 8, 2, 5, 1). 1.1- CONTADOR ASSÍNCRONO Quando as entradas de clock dos vários flip-flops internos são diferentes, o contador é conhecido como contador assíncrono, figura 1. As suas saídas correspondem as saídas dos flip- flops internos. A entrada clock do contador corresponde a entrada clock do flip-flop mais a direita. A saída deste flip-flop corresponde ao bit menos significativo do contador. Os flip-flops não mudam de estado em sincronismo exato com os pulsos de clock, somente o primeiro FF responde aos pulsos de clock. O segundo FF tem de esperar o primeiro mudar de estado antes de comutar; o terceiro tem de esperar o segundo comutar; e assim por diante. Logo, existe um retardo entre as respostas de FF’s consecutivos, que pode ser muito pequeno (10 a 40ns). 1 1 1 1 1 1 1 1 clock A B C D reset Figura 1- Contador assíncrono crescente/4bits. A) Contador Assíncrono Crescente. A figura 1 representa um contador assíncrono crescente. Cada FF tem suas entradas J e K no nível lógico 1, de tal maneira que tais FF’s trocarão de estado sempre que o sinal aplicado em suas entradas de clock for do estado ALTO para BAIXO. A figura 3 apresenta os diagramas no tempo das saídas do contador, da entrada de clock e a tabela de combinações do circuito da figura 2, onde: 1) estado inicial é igual a 0, ou seja, DCBA = 0000; 2) o sinal de clock possui frequência f; 3) ti corresponde ao tempo após a descida da i-ésima transição do clock; 4) o disparo dos flip-flops ocorres nas descidas dos pulsos de clock. O projeto de um contador assíncrono crescente é simples: as saídas e entradas são, respectivamente, ligadas e polarizadas conforme a rotina: 1) a saída de cada FF deve ser conectada a entrada clock dos FF’s seguintes; 2) as entradas J e K de todos os FF’s devem estar em nível lógico 1; CIRCUITOS SEQUENCIAIS 122 3) o sinal clock do contador deve acionar a entrada clock do primeiro FF. t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 (a) Número de pulsos na Saídas entrada clock 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 0 0 0 9 1 0 0 1 10 1 0 1 0 11 1 0 1 1 12 1 1 0 0 13 1 1 0 1 14 1 1 1 0 15 1 1 1 1 (b) Figura 3- Contador assíncrono crescente. (a) formas de onda, (b) tabela de combinações. A interligação de todas as entradas reset dos FF’s fornece uma entrada que corresponde à linha reset do contador. Esta entrada é usada para garantir um estado inicial zero. O circuito opera da seguinte maneira: 1) o primeiro FF troca de estado na transição negativa da cada pulso de clock, então a saída A tem uma frequência que é a metade da frequência do sinal de clock. 2) o segundo FF muda de estado cada vez que a saída A vai de ALTO para BAIXO, então a saída B tem a metade da frequência da saída A e um quarto da frequência do clock. 3) o terceiro FF muda de estado cada vez que a saída B vai de ALTO para BAIXO, então a saída C tem a metade da frequência da saída B e um oitavo da frequência do clock. 4) o quarto FF muda de estado cada vez que a saída C vai de ALTO para BAIXO, então a saída D tem a metade da frequência da saída C e um dezesseis avos da frequência do clock. tempo decimal f f/2 f/4 f/8 f/16 clock A B C D estado inicial CIRCUITOS SEQUENCIAIS 123 Usando o número apropriado de FF’s, este circuito pode dividir uma frequência por qualquer potência inteira de 2. Com N FF’s poderemos produzir como saída do último FF uma frequência igual a 1/2 N da frequência de entrada. Observando a figura 3, partindo do estado 0000, o contador assumirá, após o primeiro pulso de clock (tempo t1) D=0, C=0, B=0 e A=1, que corresponde ao binário 0001 (decimal 1). Após o segundo pulso (tempo t2) D=0, C=0, B=1 e A=0, que corresponde ao decimal 2 e assim sucessivamente. Após 16 pulsos, o contador retornará ao estado 0000. Podemos mostrar como os estados dos FF’s mudam a cada aplicação de um pulso de clock na entrada utilizando os diagramas de estados, conforme figura 4. Cada círculo representa um dos possíveis estados, indicado pelo número binário ou decimal escrito dentro do círculo. Por exemplo, o círculo contendo o número decimal 1 representa o estado 0001 (D=0, C=0, B=0 e A=1). As setas conectando um círculo a outro mostram a troca de um estado para outro quando um pulso de clock é aplicado. Observando um círculo em particular, podemos determinar o estado precedente e o estado seguinte ao considerado. Nota: cada seta representa a ocorrência de um pulso de clock. 0 1 2 3 4 5 15 14 13 12 11 10 6 9 7 8 Figura 4- Diagrama de estados de um contador assíncrono crescente. Exercício: Implemente um contador assíncrono crescente de 4 bits utilizando FF’s do tipo D. CONTAGEM MÓDULO-N – O contador da figura 2 tem 24=16 diferentes estados (0000 até 1111). Este contador é denominado “contador de módulo 16” ou contador MOD-16, onde o número que segue a palavra MOD indica a quantidade de estados na sequência de contagem. Em geral, se N flip-flops forem utilizados teremos um contador MOD-2 N que será capaz de contar até 2 N -1 antes de voltar a seu estado zero. CONTADORES COM NÚMERO MOD < 2 N – O contador pode ser modificado para gerar números MOD menores do que 2 N , permitindo que o contador salte estados que normalmente fazem parte da sequência de contagem. Um dos métodos mais comuns é apresentado na figura 5, onde é mostrado um contador assíncrono crescente de 3 bits. A B C clock (a) CIRCUITOS SEQUENCIAIS 124 1 2 3 4 5 6 7 8 9 10 11 12 (b) Figura 5- Contador MOD-6 criado através do reset de um contador MOD-8 quando este atinge o estado seis (110). Sem a porta NAND o contador contará em sequência de 000 até 111 (MOD-8). Entretanto, a presença da porta NAND vai alterar a sequência da seguinte forma: 1- A saída da porta NAND está conectada às entradas assíncronas CLEAR de cada um dos flip- flops. Enquanto a saída da porta NAND estiver em nível ALTO, ela não afetará o contador. Quando ela forpara BAIXO, vai resetar todos os flip-flops e o contador vai imediatamente para o estado 000. 2- As entradas da porta NAND são as saídas dos flip-flops B e C, de forma que a saída da NAND vai para BAIXO quando B=C=1, o que ocorre quando o contador for do estado 101 para o estado 110. Desta forma, em alguns nanosegundos, o contador irá para o estado 000. Depois de resetados os FF’s a saída da porta NAND vai para ALTO. 3- A sequência de contagem é, portanto, CBA – 000, 001, 010, 011, 100, 101, 110, 000, 001, ... 110 – estado temporário necessário a resetar o contador (poucos nanosegundos) A forma de onda na saída B contem um pico causado pela ocorrência momentânea do estado 110 antes do reset. Este pico é muito estreito e não vai produzir nenhuma indicação visível nas luzes indicadoras ou nos displays numéricos. Ele pode, entretanto, causar um problema se a saída B estiver sendo usada para ativar outro circuito externo ao contador. A saída C tem uma frequência igual a um sexto da frequência de entrada e a forma de onda não é uma onda quadrada simétrica (50% do ciclo em 1 e 50% do ciclo em 0) por que ela só está no nível ALTO durante dois ciclos do clock e permanece em nível BAIXO durante quatro ciclos. A figura 6 apresenta o diagrama de estados para o contador MOD-6. 0 1 2 3 4 5 6 7 estado temporário Figura 6- Diagrama de estados para o contador MOD-6. clock A B C saída da NAND CIRCUITOS SEQUENCIAIS 125 O contador de décadas é o circuito que efetua a contagem, em números binários, de zero a nove (0000 a 1001), figura 7. Para que o contador conte somente de 0 a 9, quando ocorrer nos terminais de saída o estado 1020123 101010QQQQ deve-se jogar um pulso zero na entrada clear e assim o contador logo após o décimo pulso reiniciará a contagem. Q0 Q1 Q2 Q3 clock Obs: poderíamos usar apenas uma porta NAND com as duas entradas, Q3 e Q1, que valem “1”. J=K=1 Figura 7- Contador de década assíncrono Podemos fazer um contador contar de 0 a um número n qualquer verificando quais as saídas do contador para o caso seguinte a n e colocarmos estas saídas numa porta NAND e a saída desta porta ligarmos nas entradas CLEAR dos flip-flops do contador. B) Contador Assíncrono Decrescente. Um contador assíncrono decrescente pode ser obtido de dois arranjos diferentes: 1) Modificando o arranjo da figura 2 de tal forma que as entradas clock dos estágios mais significativos sejam obtidas das saídas Q e as saídas dos contador sejam tiradas das saídas Q dos flip-flops, conforme figura 8(a). 2) Os circuitos dos flip-flops forem organizados de forma similar ao da figura 2, contudo, considerando como saídas do contador as saídas Q dos flip-flops, conforme figura 8(b). A B C D clock J=K=1 reset (a) clock A B C D J=K=1 reset (b) Figura 8- Contador assíncrono decrescente. A figura 9 apresenta os diagramas no tempo das saídas do contador e da entrada de clock do circuito da figura 8 e o diagrama de estados, onde: 1) estado inicial é igual a 0, ou seja, DCBA = 0000; 2) o sinal de clock possui frequência f; 3) ti corresponde ao tempo após a descida da i-ésima transição do clock; 4) o disparo dos flip-flops ocorres nas descidas dos pulsos de clock. CIRCUITOS SEQUENCIAIS 126 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 15 (a) Nota: cada seta representa a ocorrência de um pulso de clock. 0 1 2 3 4 5 15 14 13 12 11 10 6 9 7 8 (b) Figura 9- Diagramas no tempo e diagrama de estados do contador assíncrono decrescente C) Contador Assíncrono Crescente/Decrescente (up/down) Pode-se juntar as duas funções no mesmo contador. Inclui-se um circuito combinacional com a função de escolha entre os dois modos de funcionamento (ordem crescente ou ordem decrescente), conforme figura 10. Um nível lógico “1” na entrada de controle faz com que as portas AND do lado Q fiquem habilitadas e os sinais se propaguem das saídas Q para as entradas de clock dos flip-flops e o contador opera em ordem crescente. As portas AND do lado Q permanecem bloqueadas durante este tempo (0 na saída). Quando o nível lógico na entrada de controle é “0”, ficam habilitadas as portas AND do lado Q e bloqueadas as portas do lado Q. Os sinais das saídas do lado Q passam para as entradas de clock e o contador opera em ordem decrescente. A B C clock J=K=1 reset controle 1 crescente / 0 decrescente (up/down) Figura 10- Contador assíncrono crescente/decrescente (up/down) D) Retardo de Propagação em Contadores Assíncronos Os contadores assíncronos são também chamados de contadores “ripple” e são o tipo mais simples de contadores binários pois requerem o menor número de componentes. Entretanto, eles tem uma grande desvantagem que é causada pelo princípio básico de operação. Cada flip- decimal clock A B C D CIRCUITOS SEQUENCIAIS 127 flop é ativado pela transição na saída do flip-flop precedente. Devido ao tempo de retardo de propagação do sinal (tpd) inerente a cada flip-flop, o segundo flip-flop não vai responder enquanto não passar um tempo tpd após o primeiro flip-flop receber uma transição ativa do clock; o terceiro flip-flop só vai responder depois de passado um tempo igual a 2 x tpd após aquela transição do clock e assim por diante. Ou seja, os retardos de propagação doa flip-flops acumulam-se de maneira que o N-ésimo flip-flop não pode mudar de estado enquanto não ocorrer um tempo igual a N x tpd após a ocorrência da transição do clock. Os contadores assíncronos apresentam falhas quando operados em altas frequências devido aos tempos de propagação dos flip-flops. Para evitar problemas na utilização de contadores assíncronos, o período entre os pulsos da entrada deve ser maior do que o retardo de propagação total do contador. Isto é Tclock N x tpd, onde N é o número de flip-flops. Assim, contadores assíncronos não são úteis em frequências muito altas, especialmente para um número grande de bits. 1.2- CONTADOR SÍNCRONO Os problemas encontrados com contadores assíncronos são causados pelo acúmulo dos retardos de propagação dos flip-flops. Estas limitações podem ser superadas com o uso de contadores síncronos, ou paralelos, nos quais todos os flip-flops são ativados simultaneamente pelos pulsos de entrada do clock. Já que os pulsos de entrada são aplicados a todos os flip-flops, deve ser usado algum meio para controlar quando um flip-flop deve comutar. Isto é feito através das entradas J e K, figura 11, para um contador de quatro bits síncrono MOD-16. A) Contador Síncrono Crescente A figura 11 apresenta um contador síncrono crescente de quatro bits. 1 Q0 Q1 Q2 Q3 1 clock Figura 11- Contador síncrono crescente MOD-16 O princípio básico de operação de um contador síncrono é: As entradas J e K dos flip- flops estão conectadas de forma que só aqueles flip-flops que deverão comutar em determinada transição negativa vão ter J=K=1 quando tal transição vier a ocorrer. A tabela abaixo apresenta a sequênciade contagem da figura 11. A sequência de contagem mostra que o primeiro flip-flop tem que trocar de estado a cada transição negativa, desta forma as entradas J e K estão sempre em nível lógico ALTO. O segundo flip-flop deve trocar de estado a cada transição negativa que ocorra enquanto A=1, o que é conseguido conectando-se a saída do primeiro flip-flop nas entradas J e K do segundo de forma que J=K=1 quando A=1. O terceiro flip-flop tem de trocar de estado a cada transição negativa que ocorra enquanto A=B=1, o que é garantido com a conexão do sinal A.B às entradas J e K do terceiro flip-flop. De maneira semelhante, o quarto flip-flop tem que trocar de estados a cada transição negativa que ocorre enquanto A=B=C=1, o que é feito com a conexão de A.B.C às entradas J e K deste flip-flop. CIRCUITOS SEQUENCIAIS 128 contagem Q3 Q2 Q1 Q0 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 2 8 1 0 0 0 9 1 0 0 1 10 1 0 1 0 11 1 0 1 1 12 1 1 0 0 13 1 1 0 1 14 1 1 1 0 15 1 1 1 1 Nos contadores síncronos os retardos de propagação dos flip-flops não se adicionam para produzir o retardo total, como nos contadores assíncronos, pois todos os flip-flops mudam de estado simultaneamente. O tempo de resposta total de um contador síncrono é o tempo que leva para comutar um flip-flop mais o tempo de propagação dos novos níveis lógicos através de uma porta AND para alcançar as entradas J e K. Isto é: retardo total=tpd do flip-flop + tpd da porta AND. Isto significa que um contador síncrono pode operar com uma frequência de entrada muito maior que um contador assíncrono com o mesmo número de flip-flops. B) Contadores Síncronos Decrescentes e Crescentes/Decrescentes Um contador síncrono decrescente é obtido através do uso da saída invertida dos flip- flops para ativar as entradas J e K seguintes. Para formar um contador paralelo crescente/decrescente, figura 12, as entradas de controle (contagem-crescente e contagem-decrescente) são usadas para controlar se as saídas normais dos flip-flops ou as saídas invertidas são alimentadas pelas entradas J e K dos flip-flops seguintes. Um “1”na linha contagem-crescente enquanto contagem-decrescente=0 habilita as portas AND 1 e 2 e desabilita as portas AND 3 e 4, fazendo com que o contador conte de maneira crescente (000 até 111). A ação contrária tem lugar quando contagem-crescente=0 e contagem-decrescente=1 (conta de maneira decrescente de 111 até 000). contagem-crescente 1 Q0 1 Q0 contagem-decrescente clock Figura 12- Contador síncrono crescente/decrescente CIRCUITOS SEQUENCIAIS 129 C) Projeto de Contadores Síncronos Existem vários CI’s contadores que podem ter suas sequências de contagem alteradas de alguma forma. Existem situações onde é necessário um contador que siga uma sequência que não seja uma sequência binária, por exemplo 000, 010, 001, 110, 000, .... Existem vários métodos para projeto de contadores que seguem sequências arbitrárias e podem ser utilizados qualquer tipo de flip-flop. Idéia básica: Nos contadores síncronos, todos os flip-flops são ativados pelo clock ao mesmo tempo. Se usarmos um flip-flop J-K, antes de cada pulso de clock cada entrada J e K de cada flip- flop do contador deve estar no nível correto para assegurar que cada flip-flop vai para o estado correto. O projeto de um contador síncrono é o projeto de um circuito lógico que decocifica os vários estados de um contador para suprir os níveis lógicos nas entradas dos flip-flops. As entradas para estes circuitos decodificadores virão das saídas de um, ou mais, dos flip-flops. Exemplo: Projetar o contador síncrono conforme a sequência da tabela abaixo. C B A 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 0 0 0 etc 1 o passo: Formulação do problema e determinação do diagrama de estados. Através da tabela verificamos que são necessários três flip-flops. A sequência da tabela não inclui os estados 101, 110 e 111. Estes estados serão chamados de estados indesejáveis. Na obtenção do diagrama de estados mostraremos todos os possíveis estados, incluindo aqueles que não fazem parte da sequência de contagem desejada. A idéia usada neste diagrama é a inclusão dos estados indesejáveis. Eles serão incluídos no projeto para o caso de o contador ir acidentalmente para um destes estados durante a partida ou devido a ruído. O projetista pode escolher ter cada um destes estados indesejáveis indo para qualquer estado na aplicação do pulso de clock seguinte. Aqui, escolhemos todos indo para o estado 000 de onde a sequência correta será gerada. q0 q1 q2q3 q4 q5 q6 q7 q0=000 q1=001 q2=010 q3=011 q4=100 q5=101 q6=110 q7=111 2 o passo: Determinação da tabela de estados. Nesta tabela são apresentados os estados atuais e os estados após a transição dos pulsos de clock, chamados de próximo estado. Eles são obtidos a partir do diagrama de estados apresentado acima. Por exemplo, se o estado atual é 000 teremos como próximo estado 001. CIRCUITOS SEQUENCIAIS 130 Os estados indesejáveis 101, 110 e 111 são apresentados na tabela e todos tem como próximo estado 000. estado atual próximo estado q0 q1 q1 q2 q2 q3 q3 q4 q4 q0 q5 q0 q6 q0 q7 q0 3 o passo: Obtenção da tabela de transição. Nesta tabela substituímos os termos qo, q1, ... pelas saídas dos flip-flops com a combinação binária correspondente. estado atual próximo estado Q1 Q2 Q3 Q1(o+1) Q2(o+1) Q3(o+1) 0 0 0 0 0 10 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 4 o passo: Escolha do tipo de flip-flop. Pode ser utilizado qualquer um dos flip-flops estudados. Escolheremos o FF J-K. Tabela de excitação do FF J-K Q0 Q0+1 J K 0 0 0 x 0 1 1 x 1 0 x 1 1 1 x 0 5 o passo: Determinação dos circuitos combinacionais para as excitações. Adicione uma coluna a tabela de transição para cada uma das entradas J e K. Para cada estado atual, indique os níveis necessários em cada uma das entradas J e K, a fim de produzir a transição para o próximo estado. Os valores das entradas J e K são obtidos através do uso da tabela de excitação para o flip-flop JK. CIRCUITOS SEQUENCIAIS 131 Tabela de transição do circuito estado atual próximo estado excitações Q1 Q2 Q3 Q1(o+1) Q2(o+1) Q3(o+1) J1 K1 J2 K2 J3 K3 0 0 0 0 0 1 0 x 0 x 1 x 0 0 1 0 1 0 0 x 1 x x 1 0 1 0 0 1 1 0 x x 0 1 x 0 1 1 1 0 0 1 x x 1 x 1 1 0 0 0 0 0 x 1 0 x 0 x 1 0 1 0 0 0 x 1 0 x x 1 1 1 0 0 0 0 x 1 x 1 0 x 1 1 1 0 0 0 x 1 x 1 x 1 A tabela acima lista seis entradas J e K. temos que considerar cada uma delas como uma saída d seu próprio circuito lógico com entradas dos três flip-flops. A seguir temos que projetar o circuito para cada uma delas. Para projetar os circuitos para cada uma das entradas J e K precisamos olhar para os estados atuais e os níveis desejados em cada entrada J e K para cada caso. Montamos o mapa de Karnaugh para cada entrada J e K e obtemos a equação minimizada. Equação final para cada excitação Q2Q3 Q2Q3 Q2Q3 Q2Q3 Q1 1 Q1 x x x x 321 Q.QJ Q2Q3 Q2Q3 Q2Q3 Q2Q3 Q1 x x x x Q1 1 1 1 1 1K1 Q2Q3 Q2Q3 Q2Q3 Q2Q3 Q1 1 x x Q1 x x 132 Q.QJ Q2Q3 Q2Q3 Q2Q3 Q2Q3 Q1 x x 1 Q1 x x 1 1 3122 QQ.QK Q2Q3 Q2Q3 Q2Q3 Q2Q3 Q1 1 x x 1 Q1 x x 13 QJ Q2Q3 Q2Q3 Q2Q3 Q2Q3 Q1 x 1 1 x Q1 x 1 1 x 1K3 6 o passo: Circuito final.1 1 clock CIRCUITOS SEQUENCIAIS 132 Este mesmo processo de projeto pode ser usado para contadores com qualquer número de bits e qualquer sequência arbitrária. A única restrição sobre a sequência é que ela não pode conter o mesmo estado mais de uma vez dentro de um ciclo completo antes de repetir. Por exemplo, a sequência 000, 001, 011, 001, 100 não vai funcionar por que o estado 001 aparece mais de uma vez. Isto faz sentido, já que o nosso método de projeto não pode manipular um estado atual 001 que tem dois próximos estados diferentes. D) Contador em Anel Este contador deve gerar a seguinte sequência, figura 12. Q3 Q2 Q1 Q0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 etc q0=0001 q1=0010 q2=0100 q3=1000 q1 q2q3 q0 Figura 12- Sequência do contador em anel. Note-se a simetria diagonal quando um bit é deslocado em uma fileira de 4. Vamos estudar o comportamento das entradas J e K perante a sequência apresentada. A sequência básica de contagem inclui somente 4 estados dos 16 estados possíveis, com o nível 1 circulando nas saídas do contador. Logo, os outros estados são irrelevantes. Tabela de excitação do FF J-K Q0 Q0+1 J K 0 0 0 x 0 1 1 x 1 0 x 1 1 1 x 0 estado atual próximo estado excitações Q3 Q2 Q1 Q0 Q3(o+1) Q2(o+1) Q1(o+1) Q0(o+1) J3 K3 J2 K2 J1 K1 J0 K0 0 0 0 1 0 0 1 0 0 x 0 x 1 x x 1 0 0 1 0 0 1 0 0 0 x 1 x x 1 0 x 0 1 0 0 1 0 0 0 1 x x 1 0 x 0 x 1 0 0 0 0 0 0 1 x 1 0 x 0 x 1 x CIRCUITOS SEQUENCIAIS 133 Equação final para cada excitação Q1Q0 Q1Q0 Q1Q0 Q1Q0 Q3Q2 x x Q3Q2 1 x x x Q3Q2 x x x x Q3Q2 x x x x 23 QJ Q1Q0 Q1Q0 Q1Q0 Q1Q0 Q3Q2 x x 1 Q3Q2 x x x x Q3Q2 x x x x Q3Q2 x x x 12 QJ Q1Q0 Q1Q0 Q1Q0 Q1Q0 Q3Q2 x 1 x x Q3Q2 x x x Q3Q2 x x x x Q3Q2 x x x 01 QJ Q1Q0 Q1Q0 Q1Q0 Q1Q0 Q3Q2 x x x Q3Q2 x x x Q3Q2 x x x x Q3Q2 1 x x x 30 QJ K3 = K2 = K1 = K0 = 1 Circuito Final: Q0 Q1 Q2 Q3 Vcc clock O contador em anel é geralmente representado na forma de um circuito padronizado chamado registrador de deslocamento (shift-register). Para a obtenção deste circuito não utilizamos todas as condições irrelevantes para a obtenção das expressões das variáveis de excitação K3 a K0. Utilizando somente algumas das condições irrelevantes obteremos: 30011223 QKQKQKQK Q0 Q1 Q2 Q3 clock As entradas preset e clear dos FF’s podem ser utilizadas para iniciar a contagem em um dos estados existentes. Podemos também fazer com que o contador entre na sequência descrita mesmo assumindo qualquer estado inicial (estados irrelevantes: 0, 3, 5, 7, 9, 11, 12, 13, 14 e 15). CIRCUITOS SEQUENCIAIS 134 A porta AND é usada para garantir uma auto-correção, ou seja, após um certo número de pulsos, a sequência original é alcançada. Este procedimento resulta no circuito abaixo: Q0 Q1 Q2 Q3 1 clock As saídas do contador em anel podem ser usadas para comandar sequencialmente quatro pontos diferentes de um sistema. Por exemplo, para ligar e desligar máquinas elétricas e acionar circuitos de alarme. É claro que cada saída digital não pode acionar diretamente um desses sistemas sem antes passar por um estágio de potência. E) Contador JOHNSON A figura 13 apresenta um contador síncrono de 4 bits e sua tabela de combinações, conhecido como contador Johnson (ou contador em anel torcido). Q0 Q1 Q2 Q3 clock clock Q3 Q2 Q1 Q0 1 o 0 0 0 0 2 o 0 0 0 1 3 o 0 0 1 1 4 o 0 1 1 1 5 o 1 1 1 1 6 o 1 1 1 0 7 o 1 1 0 0 8 o 1 0 0 0 9 o 0 0 0 0 Figura 13- Contador Johnson O estado inicial 0000 é garantido através das entradas reset dos FF’s. O circuito foi projetado para garantir uma sequência de contagem igual a 0, 1, 3, 7, 15, 14, 12, 8, 0. Desta forma o circuito opera apenas com 8 estados dos 16 possíveis. Para forçarmos o contador a seguir a sequência desejada, caso ele caia em um dos estados irrelevantes (2, 4, 5, 6, 9, 10, 11, 13) podemos utilizar o circuito abaixo. CIRCUITOS SEQUENCIAIS 135 Q0 Q1 Q2 Q3 clock As portas AND são usadas para garantir a auto-correção. Como, neste caso, podem ocorrer mais de um nível 1 por vez, as saídas não devem ser usadas diretamente para comandar sequencialmente pontos diferentes de um sistema. Antes elas devem comandar as entradas de um decodificador decimal cujas saídas são usadas para comandar os vários pontos do sistema. Note que este contador possibilita duas vezes mais estados que o contador em anel com o mesmo número de bits. Desta forma pode comandar duas vezes mais pontos de um sistema. Contudo, com o contador Johnson precisamos usar um decodificador nas suas saídas, tornando o sistema de comando complexo. O número de entradas das portas AND são um número inteiro r obtido da divisão n/3 – onde n é igual ao número de FF’s do contador. Se n/3 for igual a um núemro fracionário, use para r o inteiro imediatamente superior (se n = 4, r = 4/3 = 1,33 r = 2). As r’s saídas do contador a serem usadas como entradas das portas AND são as r’s saídas mais significativas. 2- Circuitos Integrados Comerciais Contadores assíncronos: 7493 contador binário de 4 bits, responde na transição negativa do clock, é composto por duas seções: contador módulo 2 (1 FF) e contador módulo 8 (3 FF) que podem ser usados em separado ou em cascata. 7490 contador BCD, responde na transição negativa do clock, é composto por duas seções: contador módulo 2 (1 FF) e contador módulo 5 (3 FF) que podem ser usados em separado ou em cascata. 7492 contador de módulo 12, responde na transição negativa do clock, é composto por duas seções: contador módulo 2 (1 FF) e contador módulo 6 (3 FF) que podem ser usados em separado ou em cascata, fornece pulsos de saída simétricos, muito usado em circuitos temporizadores. Contadores síncronos: 74160 e 40160 contador em ordem crescente, responde na transição positiva do clock, entradas preset sincronizadas na subida do clock. 74162 e 40162 contador em ordem crescente, responde na transição positiva do clock, entradas reset sincronizadas na subida do clock. 74193 e 40193 contador binário (4 bitis) crescente/decrescente, possui duas entradas de clock (uma para a contagem cerescente e uma para a decrescente. 74191 contador binário crescente/decrescente, responde na transição positiva do clock CIRCUITOS SEQUENCIAIS 136 3- REGISTRADORES Um arranjo conveniente de flip-flops é responsável por um tipo de circuito que retém (armazena) uma informação binária por uma duração de tempo qualque desejada. Tais circuitos recebem a denominação de registradores (registers). O número de flip-flops envolvido em um registrador é, no mínimo, igual ao número de bits da informação a ser armazenada. A) Registrador com Carga Paralela O circuito da figura 14 permite o armazenamento da informação XYZW. Quando ocorre uma transição positiva do sinal de clock, os níveis lógicos presentes nas entradas (X, Y, Z e W) são simultaneamente copiados, respectivamente, nas saídas P, Q, R e S, onde ficam armazenados. Por exemplo, se antes da transição positiva do clock temos XYZW = 1100, então após a transição teremos PQRS=1100. A informação armazenada só será perdida se ocorrer um dos seguintes casos: a) falta de alimentação, b) ocorrência de ruído, c) nova transiçãodo clock para XYZW diferente de 1100. Pelo fato dos bits colocados nas entradas de dados serem armazenados ao mesmo tempo, o circuito é conhecido como registrador paralelo. Uma informação paralela é a informação na qual todos os bits se apresentam simultaneamente e necessita tantos fios quantos forem os bits contidos na informação. local de dados armazenamento X P clock entradas saídas Y Q W R Z S clock (a) (b) R E G X P Y Q W R Z S Figura 14- Registrador paralelo: (a) circuito, (b) símbolo B) Registrador Série O circuito da figura 15 apresenta um arranjo de flip-flops que permite o armazenamento sequencial, ou seja, não ao mesmo tempo, dos 4 bits da informação binária. Ele é conhecido como registrador série. Uma informação série é aquela que utiliza apenas um fio sendo que os bits de informação vem sequencialmente um após o outro. P Q R S X clock (a) X P Q R S saídas entrada série clock (b) Figura 15- Registrador série: (a) circuito, (b) símbolo CIRCUITOS SEQUENCIAIS 137 Quando ocorre uma transição positiva na linha de clock, o nível lógico presente na entrada X é copiado na saída P, o bit que estava em P é copiado em Q, o que estava em Q é copiado em R e o que estava em R é copiado em S. O conteúdo original de S é perdido. Assim, após uma transição positiva na linha de clock, o bit externo X é armazenado no registrador e a informação presente em PQRS sofre um deslocamento para a direita. Por causa deste deslocamento, o circuito é conhecido como registrador de deslocamento (shift-register). Neste tipo de registrador, os n bits da informação não são armazenados ao mesmo tempo. A cada pulso na linha de clock, um bit de cada vez é armazenado. Este armazenamento será de acordo com a ordem de significação. ARMAZENAMENTO DE DADOS – A seguir apresentaremos a rotina para o armazenamento da informação 1010 em um registrador de deslocamento. 1) Coloque o bit menos significativo (no caso, bit 0) na entrada X; 2) Aplique um pulso completo na linha de clock. Com isso, a saída P assume nível 0; 3) Coloque o bit seguinte, em ordem de significação (no caso, bit 1) na entrada X; 4) Aplique um novo pulso na linha clock. Com isso ocorre um deslocamento interno, de tal forma que a saída Q assume nível 0 (valor de P antes da aplicação do segundo pulso) enquanto P assume 1 (cópia de X); 5) Repita os passos 3 e 4 até que todos os 4 bits sejam armazenados. Em resumo, a rotina consiste de: 1) atualização de X; 2) aplicação de pulso na linha clock; 3) nova atualização; 4) novo pulso; e assim sucessivamente, até que sejam aplicados tantos pulsos quanto for o número de saídas do registrador. A tabela abaixo ilustra o procedimento acima sugerido. N o de pulsos aplicados na linha clock nível lógico em X, antes do pulso clock saídas P Q R S comentário 0 * * condição inicial 0 0 * X = 0 (bit LSB) 1 0 0 * * * P = X = 0 (deslocamento) 1 0 * * * X = 1 (atualização) 2 1 1 0 * * Q = 0; P = X = 1 0 1 0 * * X = 0 (atualização) 3 0 0 1 0 * R = 0; Q = 1; P = X = 0 1 0 1 0 * X = 1 (atualização) 4 1 1 0 1 0 P = 1; Q = 0; R = 1; S = 0 Na figura 16 implementamos um registrador de deslocamento com flip-flops J-K. Observe que os FF são conectados de maneira que a saída Q3 seja deslocada para Q2, a de Q2 para Q1 e a de Q1 para Q0, o que significa dizer que, na ocorrência de um pulso de clock, cada FF assume o nível lógico que estava presente na saída do FF a sua esquerda, imediatamente antes da transição considerada. O FF Q3 recebe um valor que vai depender das condições presentes nas entradas J e K, no momento da ocorrência do pulso de deslocamento. As formas de onda mostram como os dados de entrada são deslocados da esquerda para a direita, de FF para FF, quando o pulso de deslocamento é aplicado. CIRCUITOS SEQUENCIAIS 138 J Q3 Q3 K SET CLR J Q2 Q2 K SET CLR J Q1 Q1 K SET CLR J Q0 Q0 K SET CLR ENTRADA SERIAL CLOCK 1 1 Q3 Q2 Q1 Q0 ENTRADA SERIAL 1 432CLOCK Q 3 Q 2 Q 1 Q 0 65 1 1 00 0 1 Figura 16- Um registrador de deslocamento de quatro bits C) Terminais – Os terminais de entrada e saída dos registradores possuem denominações específicas comuns a todos os fabricantes de circuitos integrados. A figura 17 apresenta um registrador, com 4 bits, que pode funcionar como registrador série ou paralelo. entradas paralelas a b c d P Q R S X clock entrada reset Figura 17- Registrador típico 1) Entrada série (serial-in) – Terminal existente somente para registradores de deslocamento. Corresponde à entrada do flip-flop no qual é conectada a linha externa , ou seja, entrada X. 2) Entradas paralelas (parallel-in) – Terminais existentes apenas para os registradores cm carga paralela, onde a informação é armazenada de uma só vez. Corresponde as entradas abcd da figura 16 (entradas XYZW da figura 14). Para garantir a carga paralela devemos primeiro ressetar o registrador e, a seguir, colocar a informação a ser armazenada nas entradas set abcd. Note que as entradas reset e set operam em nível 0. 3) Saída serial (serial-out) - Terminal existente somente para registradores de deslocamento. Corresponde à saída do último flip-flop, saída S na figura 17 e 15. CIRCUITOS SEQUENCIAIS 139 4) Saída paralela (parallel-out) – Quando no registrador é permitido o acesso a todas as saídas dos flip-flops internos, tais saídas são conhecidas como saídas paralelas. Por exemplo, as saídas PQRS das figuras 14 e 17. D) Classificação 1) Quanto a forma de manipulação dos dados a) Registrador tipo entrada série/saída série (serial-in/serial-out) – Quando temos acesso aos terminais entrada série e saída série. b) Registrador tipo entrada série/saída paralela (serial-in/parallel-out) – Quando temos acesso aos terminais entrada série e saídas paralelas (figuras 15–registrador de deslocamento e 17). c) Registrador tipo entrada paralela/saída paralela (parallel-in/parallel-out) – Quando temos acesso aos terminais entradas paralelas e saídas paralelas (figuras 14 e 17). 2) Quanto a direção de deslocamento – O deslocamento da informação no shift-register pode ocorrer de uma das três formas abaixo: a) Deslocamento para a esquerda – conhecido como shift-left; b) Deslocamento para a direita – conhecido como shift-right; c) Deslocamento bidirecional - shift-right/left. Neste caso, possui uma entrada de controle que permuta o funcionamento como right ou left. 3) Quanto a capacidade de armazenamento – Este parâmetro está relacionado com o número de bits que pode ser armazenado no registrador. Por exemplo, no caso das figuras 14, 15 e 17, os registradores possuem uma capacidade para armazenamento igual a quatro. O número de bits armazenado é igual ao número de flip-flops do registrador. E) Aplicações Especiais – Os registradores podem ser organizados para obtenção de um registrador equivalente com maior número de bits. Também as informações armazenadas em um registrador podem ser transferidas facilmente para outro registrador. 1) Cascateamento e paralelismo – Por exemplo, podemos organizar dois shift-registers para a obtenção de um circuito equivalente a um shift com 8 bits: a) através de cascateamento de registradores do tipo série, figura 18; b) através do paralelismo entre registradores paralelos, figura 19. X1 PQ R S saída série entrada série clock REG1 X2 P Q R S saídas REG2 Figura 18- Cascateamento de shift-register CIRCUITOS SEQUENCIAIS 140 entradas saídas clock R E G X P Y Q W R Z S R E G A F B G C H D K Figura 19- Paralelismo de registradores 2) Comunicação entre registradores – O objetivo é a transferência de conteúdos entre registradores. O termo transferir é usado quando queremos nos referir ao envio do conteúdo de um registrador A para um registrador B sem a necessidade de manutenção do conteúdo de A. O termo cópia é usado quando queremos nos referir ao envio do conteúdo de A para B mantendo- se o conteúdo do registrador A. A figura 20 apresenta um circuito para transferência entre registradores com carga paralela e a figura 21 para registradores série. clock R E G 1 X P Y Q W R Z S R E G 2 A F B G C H D K Figura 20- Comunicação entre registradores paralelos registrador A registrador B entrada A2 A1 A0 B2 B1 B0 clock Figura 21- Transferência serial de informação de um registrador A para um registrador B Para ilustrar o processo da figura 21, vamos assumir que antes da aplicação do pulso de deslocamento o conteúdo do registrador A era 101 e do registrador B era 000. A tabela abaixo mostra como os estados de cada FF mudam com a aplicação do pulso de clock. A transferência completa dos três bits armazenados em A para B requer três pulsos de clock. A2 A1 A0 B2 B1 B0 1 0 1 0 0 0 antes da aplicação dos pulsos 0 1 0 1 0 0 depois do primeiro pulso 0 0 1 0 1 0 depois do segundo pulso 0 0 0 1 0 1 depois do terceiro pulso CIRCUITOS SEQUENCIAIS 141 3) Somador série - Um somador série de 4 bits pode ser obtido com a utilização de registradores de deslocamento, figura 22. Nos registradores A e B serão armazenados os dois números de 4 bits a serem somados. Com quatro pulsos de clock os números serão armazenados nos registradores. Os bits menos significativos de A e B serão enviados para o somador completo (FA), onde serão somados, resultando a soma (S) e gerando um vai-um de saída (carry- out/Cout). O resultado da soma será enviado para o acumulador (registrador de deslocamento) onde ficará armazenado. O Cout vai para a entrada de um FF D, onde no próximo pulso de clock será enviado para o Cin (entrada de carry) do somador, e será somado com os próximos bits dos registradores A e B que foram deslocados para as posições menos significativas dos dois registradores. Portanto, a função do FF D é promover um atraso no vai-um gerado, para que este seja somado aos próximos bits a serem somados e não aos bits que o geraram. O resultado da soma ficará armazenado no acumulador, que possui um bit a mais que os registros A e B para armazenar o vai-um de saída que pode ser gerado na soma dos bits mais significativos. D Q Q SET CLR REGISTRO A REGISTRO B ACUMULADOR B A Cin Cout S CLOCK FA Figura 22- Somador série 4- Análise e Síntese de Circuitos Sequenciais Para a análise e síntese de circuitos sequenciais utilizaremos os diagramas de estados. Um diagrama de estados representa um modelo gráfico de um sistema sequencial, descrevendo as transições entre os estados do sistema. A figura 23 apresenta o diagrama de estados de um sistema digital qualquer. Cada célula- círculo representa um estado distinto do sistema. As linhas direcionadas com setas são indicações gráficas das mudanças de estados. Cada transição é representada pelo código binário de entrada e saída consequente. O diagrama de estados formaliza a adaptação da tabela verdade para sistemas sequenciais. qo q1 q2 0/0 1/1 0/0 0/1 1/0 qo=00 q1=01 q2=10 Figura 23 CIRCUITOS SEQUENCIAIS 142 4.1- Análise de Circuitos Sequenciais O objetivo da análise é, dado um circuito sequencial determinar qual é o seu comportamento e responder perguntas do tipo: quais os estados que possui; se o estado atual é qi, para uma entrada xi, qual será seu próximo estado; qual a sequência de estados (e/ou saídas) para um determinado estado inicial e uma determinada sequência de entrada; o estado qi pertence ao conjunto de estados acessíveis? etc. Para analisarmos circuitos sequenciais devemos seguir os seguintes passos: 1 o passo: Definição das equações das saídas atuais e das variáveis de excitação (controle): saída atual: Z=(Z1, Z2, ..., Zn) variáveis de excitação (controle): J, K, T, D, R e S 2 o passo: Definição das equações do próximo estado. Qo+1= f(X, Q) 3 o passo: Obtenção da tabela de transição e da tabela de estados do circuito. 4 o passo: Obtenção do diagrama de estados. Exemplo 1: Faça a análise do circuito sequencial abaixo. clock J1 Q1 K1 CLK J2 Q2 K2 CLK X Z 1 o passo: Definição das equações das saídas atuais e das variáveis de excitação (controle). 21 2211 Q).QX(Z ZKZJXKXJ 2 o passo: Definição das equações do próximo estado. Para o flip-flop J-K a equação do próximo estado é: Q.KQ.JQ 1o Utilizaremos esta equação para determinar as saídas Q1 e Q2. 2122222222)1o(2 11111111)1o(1 Q.QXZQQ.ZQ.ZQ.ZQ.KQ.JQ XQQ.XQ.XQ.XQ.KQ.JQ CIRCUITOS SEQUENCIAIS 143 3 o passo: Obtenção da tabela de transição e da tabela de estados do circuito. Tabela de transição estado atual X=0 X=1 Q1 Q2 Q1(o+1)Q2(o+1)/Z Q1(o+1)Q2(o+1)/Z 0 0 00/0 10/0 0 1 00/0 11/1 1 0 00/0 10/0 1 1 01/1 11/1 Construção da tabela de transição: a) Q1 = Q2 = X = 0 0QQ.QXZ 0Q.QXQ 0XQ )1o(221 21)1o(2 )1o(1 b) Q1 = X = 0 e Q2 = 1 0QQ.QXZ 0Q.QXQ 0XQ )1o(221 21)1o(2 )1o(1 c) Q2 = X = 0 e Q1 = 1 0QQ.QXZ 0Q.QXQ 0XQ )1o(221 21)1o(2 )1o(1 d) Q1 = Q2 = 1 e X = 0 1QQ.QXZ 1Q.QXQ 0XQ )1o(221 21)1o(2 )1o(1 Podemos ter somente quatro estados diferentes. Na primeira e segunda colunas aparecem os estados atuais (Q1 e Q2). Os estados Q1(o+1) e Q2(o+1) correspondem aos estados Q depois da transição, sendo determinados pelos valores dos níveis lógicos de X, Q1 e Q2. Z corresponde aos valores da saída para cada estado analisado. A tabela de estados é obtida denominando-se os quatro estados possíveis de q0, q1, q2 e q3, sendo que: q0 = 00, q1 = 01, q2 = 10 e q3 = 11. Tabela de estados estado X=0 X=1 atual qi /Z qi /Z q0 q0/0 q2/0 q1 q0/0 q3/1 q2 q0/0 q2/0 q3 q1/1 q3/1 4 o passo: Obtenção do diagrama de estados. qo q3 q1 0/0 1/1 0/0 0/1 0/0 qo=00 q1=01 q2=10 q3=11 q21/0 1/0 1/1 0/0, 0/1, 1/0, 1/1 Representam os valores de entrada/saída X/Z CIRCUITOS SEQUENCIAIS 144 Exemplos de interpretação: 1) Pede-se indicar os próximos estados ao estado atual q2. Na linha correspondente ao estado q2 obtemos Q1(o+1)Q2(o+1) para X=0 e Q1(o+1)Q2(o+1) para X=1. Os próximos estados são 00 (q0) e 10 (q2). 2) Indicar os próximos estados ao estado atual q1. Obtemos: Q1(o+1)Q2(o+1)= 00 (q0) e 11 (q3). A tabela de estados possibilita a construção do diagrama de estados,que representa uma forma visual mais direta das transições de estados. Exemplo 2: Faça a análise do circuito sequencial abaixo. clock D1 Q1 CLK Q2 D2 CLK X Z Lógica combinacional Memória 1 o passo: Definição das equações das saídas atuais e das variáveis de excitação (controle). 121221 21 Q.XQ)QX(QQ).QX(Z ZDXD 2 o passo: Definição das equações do próximo estado. Para o flip-flop D a equação do próximo estado é: DQ 1o Utilizaremos esta equação para determinar as saídas Q1 e Q2. 122)1o(2 1)1o(1 Q.XQDQ XDQ 3 o passo: Obtenção da tabela de transição e da tabela de estados do circuito. Tabela de transição estado atual X=0 X=1 Q1 Q2 Q1(o+1)Q2(o+1)/Z Q1(o+1)Q2(o+1)/Z 0 0 01/1 10/0 0 1 01/1 11/1 1 0 00/0 10/0 1 1 01/1 11/1 Tabela de estados estado X=0 X=1 atual qi /Z qi /Z q0 q1/1 q2/0 q1 q1/1 q3/1 q2 q0/0 q2/0 q3 q1/1 q3/1 CIRCUITOS SEQUENCIAIS 145 4 o passo: Obtenção do diagrama de estados. qo q3 q1 0/1 1/1 0/0 0/1 0/1 qo=00 q1=01 q2=10 q3=11 q2 1/0 1/0 1/1 0/0, 0/1, 1/0, 1/1 Representam os valores de entrada/saída X/Z 4.2- Síntese de Circuitos Sequenciais Para a síntese de circuitos sequenciais devemos seguir os seguintes passos: 1 o passo: Descrição completa da operação do circuito. Todas as entradas e saídas devem ser identificadas. Determinação do diagrama de estados. 2 o passo: Determinação da tabela de estados do circuito. 3 o passo: Obtenção da tabela de transição do circuito. 4 o passo: Escolha do tipo de flip-flop. 5 o passo: Determinação dos circuitos combinacionais para as excitações. 6 o passo: Circuito final. Exemplo 1: Projetar o circuito sequencial dado o diagrama de estados. qo q1 1/1 0/0 0/0 0/0 qo=00 q1=01 q2=10 q2 1/0 1/0 0/0, 1/0, 1/1 Representam os valores de entrada/saída X/Z 1 o passo: Formulação do problema e determinação do diagrama de estados. Através do diagrama de estados verificamos que são necessários dois flip-flops. 2 o passo: Determinação da tabela de estados. estado X=0 X=1 atual qi /Z qi /Z q0 q0/0 q1/0 q1 q0/0 q2/0 q2 q0/0 q2/1 X X X CIRCUITOS SEQUENCIAIS 146 3 o passo: Obtenção da tabela de transição. estado atual X=0 X=1 Q1 Q2 Q1(o+1)Q2(o+1)/Z Q1(o+1)Q2(o+1)/Z 0 0 00/0 01/0 0 1 00/0 10/0 1 0 00/0 10/1 X X XX/X XX/X 4 o passo: Escolha do tipo de flip-flop. Pode ser utilizado qualquer um dos flip-flops estudados. Escolheremos o FF J-K. Tabela de excitação do FF J-K Q0 Q0+1 J K 0 0 0 x 0 1 1 x 1 0 x 1 1 1 x 0 5 o passo: Determinação dos circuitos combinacionais para as excitações. Tabela de transição do circuito entradas próximo estado excitações saída X Q1 Q2 Q1(o+1) Q2(o+1) J1 K1 J2 K2 Z 0 0 0 0 0 0 X 0 X 0 0 0 1 0 0 0 X X 1 0 0 1 0 0 0 X 1 0 X 0 0 1 1 X X X X X X X 1 0 0 0 1 0 X 1 X 0 1 0 1 1 0 1 X X 1 0 1 1 0 1 0 X 0 0 X 1 1 1 1 X X X X X X X Equação final para cada excitação Q1Q2 Q1Q2 Q1Q2 Q1Q2 X X X X 1 X X 21 Q.XJ Q1Q2 Q1Q2 Q1Q2 Q1Q2 X X X X 1 X X 12 Q.XJ Q1Q2 Q1Q2 Q1Q2 Q1Q2 X X X X 1 X X X X XK1 Q1Q2 Q1Q2 Q1Q2 Q1Q2 X X 1 X X X X 1 X X 1K2 CIRCUITOS SEQUENCIAIS 147 Q1Q2 Q1Q2 Q1Q2 Q1Q2 X X X X 1 1Q.XZ 6 o passo: Circuito final. X Z 1clock Exemplo 2: Projetar o circuito sequencial dado o diagrama de estados. q1 q3 qo=000 q1=001 q2=010 q3=011 q4=100 q5=101 q6=110 q7=111 q4 q2 q6 q0 q7 q5 1 o passo: Formulação do problema e determinação do diagrama de estados. Através do diagrama de estados verificamos que são necessários três flip-flops. 2 o passo: Determinação da tabela de estados. estado atual próximo estado q0 q6 q1 q3 q2 q5 q3 q4 q4 q2 q5 q7 q6 q1 q7 q0 CIRCUITOS SEQUENCIAIS 148 3 o passo: Obtenção da tabela de transição. estado atual próximo estado Q1 Q2 Q3 Q1(o+1) Q2(o+1) Q3(o+1) 0 0 0 1 1 0 0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 1 0 0 1 0 0 0 1 0 1 0 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 0 4 o passo: Escolha do tipo de flip-flop. Pode ser utilizado qualquer um dos flip-flops estudados. Escolheremos o FF D. Tabela de excitação do FF D Q0 Q0+1 D 0 0 0 0 1 1 1 0 0 1 1 1 5 o passo: Determinação dos circuitos combinacionais para as excitações. Tabela de transição do circuito estado atual próximo estado excitações Q1 Q2 Q3 Q1(o+1) Q2(o+1) Q3(o+1) D1 D2 D3 0 0 0 1 1 0 1 1 0 0 0 1 0 1 1 0 1 1 0 1 0 1 0 1 1 0 1 0 1 1 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 1 0 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 Equação final para cada excitação Q2Q3 Q2Q3 Q2Q3 Q2Q3 Q1 1 1 1 Q1 1 32131211 Q.Q.QQ.QQ.QD Q2Q3 Q2Q3 Q2Q3 Q2Q3 Q1 1 1 Q1 1 1 22 QD Q2Q3 Q2Q3 Q2Q3 Q2Q3 Q1 1 1 Q1 1 1 32323 Q.QQ.QD CIRCUITOS SEQUENCIAIS 149 6 o passo: Circuito final. Q Q Q clock Exercícios: 1) Projetar um contador assíncrono módulo 8 com FF D. Depois, adicione as funções crescente/decrescente a este contador. 2) Projete um contador binário assíncrono reversível de 4 bits utilizando somente flip-flops JK e portas lógicas E, OU e Inversoras. 3) Elaborar um contador assíncrono que faça a contagem de 0 até 11 e outro de 0 até 14. Determine a frequência na saída do último FF se a frequência do clock é de 1MHz. 4) Um certo FF J-K tem tempo de propagação de 12ns. Qual é o maior contador MOD que pode ser construído com estes FF e ainda operar até 10MHz? 5) Um contador assíncrono de 12 estados é composto de FF J-K. Cada FF tem um tempo de retardo de 10ns. O período do sinal de clock é 50ns. Qual a máxima frequência permitida? 6) Projete um contador síncrono crescente de 4 bits utilizando FF J-K. Depois, projete o mesmo circuito com FF D. 7) Projete um contador síncrono de 3 bits utilizando FF T. Tabela de excitação do FF T Q0 Q0+1 T 0 0 0 0 1 1 1 0 1 1 1 0 8) Projete um gerador de sequência de código Gray de 4 bits utilizando FF J-K. CIRCUITOS SEQUENCIAIS 150 9) Projete um contador síncrono programável crescente/decrescente de 2 bits, segundo o diagrama de estados abaixo. q0=00 q1=01 q2=10 q3=11 0 e 1 são as entradas de controle (M). Se M=1, contador crescente Se M=0, contador decrescente q1q0 1 0 0 11 q3 q2 0 1 0 10) Projete o contador síncrono que execute a sequência 0, 1, 3, 4, 2, 11, 13, 5 usando FF D considerando os estados não usados como irrelevantes. Depois, reprojete o contador de modo que na ocorrência dos estados não usados o contador retorne a 0. Compare. 11) Projete o contador síncrono para a seguinte sequência usando FF D. clock Q3 Q2 Q1 Q0 1o 0 0 0 0 2o 0 1 0 1 3o 1 0 1 0 4o 0 1 1 1 5o 0 1 0 0 6o 0 0 0 1 7o 0 1 1 0 8o 0 0 1 1 9o 0 0 1 0 10o 1 0 0 1 11o 1 1 1 0 12o 1 1 1 1 13o 1 0 0 0 14o 1 1 0 1 15o 1 0 1 0 16o 1 0 1 1 12) Pede-se projetar um contador na sequência 0, 5, 3, 7, 6 sendo que qualquer número de 3 bits não usado retorna o contador a 0. 13) Quais os estados alcançados pelo contador abaixo? Suponha que todas as entradas J e K estão em nível 1 e que, inicialmente, todas as saídas Q estão em nível 0.14) Projete, com flip-flops JK, circuitos divisores por 12 utilizando: a) Um sistema assíncrono (com porta detetora de estado); b) Um sistema síncrono, desprezando os estados irrelevantes; c) Um sistema síncrono, considerando os estados irrelevantes (force-os a ir ao estado 0). CIRCUITOS SEQUENCIAIS 151 15) Projete um contador cujo comportamento é dado pelo diagrama de estados abaixo: 16) Determine o diagrama de estados de um contador de 3 bits com a lógica: J BA J A CB J ABC K CA K ACB K ABC 17) Faça o projeto do circuito sequencial síncrono, utilizando flip-flops JK, que execute a tabela verdade abaixo (contador em anel). Mostre se, por um acidente devido a um ruído externo o contador chegar a qualquer outro estado, ele retornará ou não à seqüência desejada. Pulso A B C D 0 1 0 0 0 1 0 1 0 0 2 0 0 1 0 3 0 0 0 1 18) Faça o projeto do cicuito que execute a sequência dada pela tabela do circuito anterior, utilizando um circuito assíncrono acoplado a um decodificador. 19) Determinar o estado do registrador abaixo após cinco pulsos de clock. Considere condições iniciais iguais a zero. 20) O sinal de entrada do circuito abaixo faz com que a saída forneça o sinal 000011010. No início da operação os flip-flops são zerados. Defina os diagramas de tempo e estado. 21) Determine o número de flip-flops necessários para construir um registrador de deslocamento capaz de armazenar: a) um número binário de 6 bits; b) números hexadecimais até 4F; c) números decimais até 32. CIRCUITOS SEQUENCIAIS 152 22) Um registrador de deslocamento tem oito flip-flops. Qual o maior número binário que pode ser armazenado no mesmo? O maior número decimal? O maior número hexadecimal? 23) Considere um registrador de deslocamento de 12 bits. Quanto tempo ele levará para armazenar um número se seu relógio é de 5 MHz? 24) Temos disponíveis dois registradores de n bits A e B onde os elementos armazenadores individuais são FF D. Temos ainda um sinal habilitador de transferência RARB. Mostre uma estrutura através da qual podemos transferir o conteúdo de RA para RB. 25) Esquematize um registrador de 4 bits com flip-flops tipo D que, após a transição positiva do relógio, realize uma operação lógica AND entre os valores lógicos das saídas Q e os sinais de entrada. 26) Fazer a análise dos seguintes sistemas sequenciais: a) Para o FF T a equação de próximo estado é: Q.TQ.TQ 1o T T X clock Z b) X clock 1 Z c) CIRCUITOS SEQUENCIAIS 153 27) Analise o circuito da figura abaixo: a) escreva as equações que o representam; b) monte a tabela de estados; c) faça o diagrama de estados; d) faça uma descrição da operação do circuito através de um diagrama no tempo com as seguintes condições iniciais: saídas Q nulas e X=1, sendo que X permanece sempre igual a 1. 28) Analise o circuito do gerador pseudo-aleatório de ruído abaixo. 29) Projete o circuito cujo funcionamento é mostrado no diagrama de estados abaixo. Para tal utilize FF D. Explique a função do circuito analisando o diagrama de esatdos quando a entrada for X=0 e quando for X=1. q0=000 q1=001 q2=010 q3=011 q4=100 q5=101 q6=110 q7=111 0/0, 1/1 Representam os valores de entrada/saída X/Z q1 q2 q3q0 q4q5q6 q7 1/1 0/0 0/00/0 1/1 1/1 0/0 1/1 1/1 0/0 0/0 1/1 0/0 1/1 0/0 1/1 30) Projete um gerador de sequência do código excesso 3 utilizando FF D. O estado inicial do FF da extremidade direita é 1 e dos demais, 0.