60 Sumário CAPÍTULO 5 CIRCUITOS SEQUENCIAIS III: CONTADORES SÍNCRONOS 5.1. Itrodução... 62 5.2. Tabelas de trasição dos flip-flops... 63 5.2.1. Tabela de trasição do flip-flop JK... 63 5.2.2. Tabela de trasição do flip-flop T... 63 5.2.3. Tabela de trasição do flip-flop D... 64 5.3. Projeto de cotador sícroo... 65 5.3.1. Diagramas de Trasição... 65 5.3.2. Tabela de Estados Futuros e de Etradas dos Flip-flops... 65 5.4. Cotador Sícroo Crescete / Decrescete... 69 5.5. Exercícios de Fixação... 73
61 CAPÍTULO 5 CIRCUITOS SEQUENCIAIS III: CONTADORES SÍNCRONOS Cotiuado os estudos sobre circuitos cotadores, partimos agora para circuitos os Cotadores Sícroos. Após esse capítulo você deverá ser capaz de: (1) Eteder o fucioameto de circuitos cotadores sícroos; e (2) Projetar um cotador sícroo a partir das especificações ecessárias.
62 5.1. Itrodução Cotadores sícroos são circuitos sequeciais capazes de executar cotages biárias de forma aleatória, pois possuem um circuito combiacioal extero, que utiliza como etradas as saídas Q e Q de cada flip-flop e suas saídas são coectadas às etradas dos flip-flops utilizados. A figura 5.1 apreseta o diagrama geral de um cotador sícroo utilizado flip-flops JK para cotagem. Figura 5.1 Diagrama geral de um cotador sícroo com flip-flops JK. As características pricipais dos cotadores sícroos são: (1) Os FF POSSUEM as etradas clock em comum; (2) Possuem circuito combiacioal extero, que utiliza as equações de trasição dos flip-flops utilizados para ser implemetado; (3) Possuem saída biária aleatória; e (4) O bit mais sigificativo da cotagem (MSB) pode ser qualquer um dos flip-flops, pois quem determia essa ordem é o circuito combiacioal extero. No caso da figura 5.1 o bit mais sigificativo pode ser tato o flip-flop 1 quato o flip-flop. Ates de estudarmos o projeto de cotadores sícroos, devemos aalisar as tabelas de trasição dos flip-flops.
63 5.2. Tabelas de trasição dos flip-flops As tabelas de trasição dos flip-flops ada mais são que outra forma de visualização das tabelas verdades desses flip-flops. Para a motagem dessas tabelas, devemos aalisar com foco os valores de trasições das saídas e os valores de etrada que se deve ter em suas etradas para provocar essa trasição, desde que um pulso de clock ocorra em suas etradas. A saída do flip-flop em seu estado atual é deomiada em seu estado futuro, ou seja, após a trasição, é deomiada Q 1 ou Q, ou simplesmete Q, e a saída Q. 5.2.1. Tabela de trasição do flip-flop JK Para o flip-flop JK temos: Q = 0 para Q 0, utilizamos em suas etradas, J = 0 e K = 0 ou J = 0 e K = 1. 1 = Q = 0 para Q 1, utilizamos em suas etradas, J = 1 e K = 0 ou J = 1 e K = 1. 1 = Q = 1 para Q 0, utilizamos em suas etradas, J = 0 e K = 1 ou J = 1 e K = 1. 1 = Q = 1 para Q 1, utilizamos em suas etradas, J = 0 e K = 0 ou J = 1 e K = 0. 1 = Logo, resumido essas proposições, temos a seguite tabela verdade de trasição: Q 1 Q J K 0 0 0 X 0 1 1 X 1 0 X 1 1 1 X 0 5.2.2. Tabela de trasição do flip-flop T Para o flip-flop T temos: Q = 0 para Q 0, utilizamos T = 0. 1 = Q = 0 para Q 1, utilizamos T = 1. 1 =
64 Q = 1 para Q 0, utilizamos T = 1. 1 = Q = 1 para Q 1, utilizamos T = 0. 1 = Logo, resumido essas proposições, temos a seguite tabela verdade de trasição: Q 1 Q T 0 0 0 0 1 1 1 0 1 1 1 0 5.2.3. Tabela de trasição do flip-flop D Para o flip-flop D temos: Q = 0 para Q 0, utilizamos D = 0. 1 = Q = 0 para Q 1, utilizamos D = 1. 1 = Q = 1 para Q 0, utilizamos D = 0. 1 = Q = 1 para Q 1, utilizamos D = 1. 1 = Logo, resumido essas proposições, temos a seguite tabela verdade de trasição: Q 1 Q D 0 0 0 0 1 1 1 0 1 1 1 0
65 5.3. Projeto de cotador sícroo Ates de projetarmos um cotador sícroo ecessitamos eteder algumas partes itegrates deste projeto. 5.3.1. Diagramas de Trasição Para projetar um cotador sícroo, deve-se primeiro eteder as especificações de projeto. Um cotador sícroo tem sua cotagem especificada através de um diagrama de trasição, apresetado a figura 5.2, que idica qual é o estado futuro a ser atigido pelo cotador quado é aplicado um pulso de clock. Figura 5.2 Diagrama de estados de um cotador sícroo. A idicação (1) mostra que o cotador deve iiciar sua cotagem pelo estado idicado por (2). Cada circuferêcia represeta um estado da cotagem e pode idicar um valor decimal, biário, hexadecimal ou um ome exemplo state1 que represeta algum valor tabelado. A seta com a idicação (3) represeta que existe uma trasição do estado state1 para state2, assim como para os outros estados. 5.3.2. Tabela de Estados Futuros e de Etradas dos Flip-flops Cosidere o cotador sícroo represetado pelo diagrama de estados da figura 5.3, a tabela de estados futuros desse cotador ada mais é que uma represetação tabelada dos seus estados. Ela será extremamete importate para que possamos gerar a tabela de etrada dos flip-flops adiate.
66 Figura 5.3 Diagrama de estado de um cotador sícroo de módulo 5. A tabela de estados futuros de um diagrama de estados é gerada colocado em uma colua o estado atual que o cotador se ecotra e em outra colua o seu próximo estado. No caso da figura 5.3, sua tabela de estados futuros fica como demostrado a seguir, cosiderado três flip-flops A, B e C, sedo A o bit mais sigificativo. Estados Atuais Estados Futuros Q A Q B Q C Q A Q B 0 0 0 0 0 1 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 Q C A partir dessa tabela, podemos gerar a tabela de etrada dos flip-flops, que são as tabelas que geram as equações lógicas do circuito combiacioal, mostrado a figura 5.1, ecessárias para a implemetação do cotador.
67 Para gerar essa tabela, ecessitamos das tabelas de trasição do tipo de flip-flop utilizado, descritas o item 5.2. Cosiderado que os flip-flops utilizados para implemetação desse cotador sejam flip-flops JK, para gerar a tabela de etrada dos flip-flops, basta observarmos quais são as trasições que ocorrem dos estados Q x para o estado Q x de cada liha e preechermos as etradas J x e K x de cada flip-flop de acordo com a tabela de trasição do flip-flop JK. A tabela de etrada dos flip-flops do cotador descrito a figura 5.3 fica da seguite forma: Estados Atuais Estados Futuros Etradas dos Flip-Flops JK Q A Q B Q C Q A Q B Q C J A K A J B K B J C K C 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 Gerada a tabela de etradas dos flip-flops, ecessitamos gerar as fuções lógicas do circuito combiacioal resposável pela cotagem, e para isso, como descrito o diagrama de blocos da figura 5.1, utilizaremos Q A, Q B e Q C como etradas do circuito combiacioal e J A, K A, J B, K B, J C e K C como saídas, ou seja, basta implemetar uma fução lógica para cada um dos J s e K s utilizados, fazedo como etradas dessas fuções as saídas Q dos flip-flops. Como ferrameta para gerar essas fuções, utilizaremos mapas de Veitch-Karaugh, revisados o capítulo 1, e simplificado as fuções lógicas descritas, obteremos as seguites equações: =. =1 =. = = =1 (1) (2) (3) (4) (5) (6)
68 Determiadas as equações lógicas das etradas, para fializar o projeto, basta implemetar o circuito lógico, retirado como saídas do cotador as saídas Q de cada flip-flop. O circuito do exemplo utilizado é mostrado a figura 5.4. Figura 5.4 Circuito cotador sícroo de módulo 5 implemetado com flip-flops JK. Perguta: Na figura 5.3 possuímos um idicativo de que o cotador deve iiciar sua cotagem o estado 000. O que podemos fazer esse circuito para garatirmos que sempre que o cotador seja ligado ele iicie sua cotagem em 000 se suas etradas assícroas forem ativadas em ível baixo? Sugestão: Implemete o mesmo cotador do exemplo aterior utilizado flip-flops tipo T e tipo D como elemetos de memória. Implemetado o circuito lógico, fializamos o projeto de um cotador sícroo. Resumido as etapas de projeto temos: (1) Determiação do diagrama de estados do cotador a partir das especificações de projeto; (2) Motagem da tabela de estados futuros; (3) Motagem da tabela de etrada dos flip-flops; (4) Implemetação das fuções lógicas de etrada dos flip-flops; e (5) Implemetação do circuito lógico.
69 5.4. Cotador Sícroo Crescete / Decrescete O projeto de um cotador sícroo crescete / decrescete ecessita da iserção de uma variável de cotrole. No osso caso, vamos chamar essa variável de cotrole de variável Z, que será iserida o circuito combiacioal da figura 5.1 para executar uma etapa de cotrole. Figura 5.5 Diagrama de blocos de um cotador sícroo com váriável Z de cotrole. Tomado como exemplo um cotador sícroo crescete / decrescete de 2 bits, devemos costruir um diagrama de estados que coteha as duas possíveis sequêcias de cotagem. Defiido como cotagem crescete para Z = 0 e decrescete para Z = 1 podemos obter os dois diagramas da figura 5.6 ou aida obter um úico diagrama, figura 5.7, que coteha as duas sequêcias obtidas de acordo com o valor de Z. Figura 5.6 Diagramas de estado para os distitos valores da variável de cotrole 'Z'.
70 Figura 5.7 Diagrama de estados que cotém as duas possíveis sequêcias do cotador. A motagem da tabela de estados futuros e de etrada dos flip-flops, cosiderado flip-flops JK, e iserido a variável Z, fica da seguite forma: Estados Atuais Estados Futuros Etradas dos Flip-Flops JK Q A Z Q B Q A Q B J B K B J A K A 0 0 0 0 1 0 X 1 X 0 0 1 1 1 1 X X 0 0 1 0 0 0 X 1 0 X 0 1 1 1 0 X 0 X 1 1 0 0 1 0 1 X 0 X 1 0 1 0 0 0 X X 1 1 1 0 1 1 X 0 1 X 1 1 1 0 1 X 1 X 0 Simplificado as fuções lógicas, obtemos as seguites equações: = = =. = =. = = = (7) (8) (9) (10)
71 Implemetado as equações (7) à (10), obtemos o circuito descrito a figura 5.8. Figura 5.8 Circuito de um cotador sícroo crescete / decrescete com uma variável Z de cotrole (Z = 0 crescete). Perguta: Na figura 5.7 possuímos um idicativo de que o cotador deve iiciar sua cotagem o estado 00. O que podemos fazer esse circuito para garatirmos que sempre que o cotador seja ligado ele iicie sua cotagem em 00 se suas etradas assícroas forem ativadas com ível alto? Sugestão: Implemete o mesmo cotador do exemplo aterior utilizado flip-flops tipo T e tipo D como elemetos de memória. A partir desse tipo de projeto de cotador sícroo, podemos projetar cotadores sícroos de sequêcias aleatórias cotrolados por variáveis exteras. A figura 5.9 mostra um exemplo de diagrama de estados de um cotador sícroo aleatório cotrolado pela variável extera Z. Faça a tabela de estados futuros desse cotador. Os estados estão codificados da seguite forma: Nome Valor em biário S0 0000 S1 0001 S2 1000 S3 0101 S4 0111 S5 1101 S6 1100 S7 1110 S8 1111
72 Figura 5.9 Cotador sícroo aleatório cotrolado por variável Z. Perguta 1: No diagrama da figura 5.9, podemos verificar que em todos os estados que podem ser executados com 4 bits estão sedo utilizados. O que acoteceria se por algum distúrbio o sistema o cotador apresetasse o valor 0110 em sua saída? Perguta 2: O que acoteceria o cotador estivesse o estado S3, com Z =1, e o valor da variável Z fosse alterado para 0? Sugestão: Implemete o mesmo cotador do exemplo aterior utilizado flip-flops tipo T.
73 5.5. Exercícios de Fixação 1) Implemete um cotador sícroo crescete, com reset automático, de módulo 16 utilizado FF JK. 2) Implemete um cotador sícroo, sem reset automático, que cote de 2 até 6, crie uma sub-rotia de iicialização para esse cotador. Utilize FF T. 3) Implemete um cotador sícroo, que execute a sequêcia abaixo. O cotador deve possuir reset automático em 1 e deve-se utilizar FF JK. 4) Implemete um cotador sícroo, com reset automático, que execute a seguite sequêcia: 1 2 3 5 6 7 9 10 12 1. Use FF D. 5) Implemete um cotador sícroo de 4 bits, com reset automático, que execute uma cotagem dos úmeros pares. Utilize FF JK. 6) Implemete um cotador sícroo de 4 bits, sem reset automático, que execute uma cotagem dos úmeros ímpares. Utilize FF JK. 7) Implemete um cotador sícroo de 3 bits, crescete / decrescete, com uma variável Z de cotrole. Utilize FF JK. 8) Implemete um cotador sícroo de 3 bits, com uma variável Z de cotrole, que execute as seguites sequêcias: a. Com Z = 0: 0 1 3 2 5 4 6 7 0. b. Com Z = 1: 3 1 2 0 6 7 4 5 3. Utilize FF D.
74 9) Implemete um cotador sícroo que execute a sequêcia abaixo. Utilize FF T. 10) Implemete um cotador sícroo que execute a sequêcia abaixo. Utilize FF D. 11) Implemete um cotador sícroo, com variáveis Y e X de cotrole, que execute as seguites sequêcias abaixo, com reset iicial em 2 h. Utilize FF JK.