Baixe o app para aproveitar ainda mais
Prévia do material em texto
Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling 60 CAPÍTULO 5 – CIRCUITOS SEQUENCIAIS III: CONTADORES SÍNCRONOS Sumário 5.1. Introdução ................................................................................................................................. 62 5.2. Tabelas de transição dos flip-flops .......................................................................................... 63 5.2.1. Tabela de transição do flip-flop JK ...................................................................................... 63 5.2.2. Tabela de transição do flip-flop T ........................................................................................ 63 5.2.3. Tabela de transição do flip-flop D ....................................................................................... 64 5.3. Projeto de contador síncrono ................................................................................................... 65 5.3.1. Diagramas de Transição ....................................................................................................... 65 5.3.2. Tabela de Estados Futuros e de Entradas dos Flip-flops ..................................................... 65 5.4. Contador Síncrono Crescente / Decrescente .......................................................................... 69 5.5. Exercícios de Fixação ................................................................................................................ 73 Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling 61 CAPÍTULO 5 – CIRCUITOS SEQUENCIAIS III: CONTADORES SÍNCRONOS Continuando os estudos sobre circuitos contadores, partimos agora para circuitos os Contadores Síncronos. Após esse capítulo você deverá ser capaz de: (1) Entender o funcionamento de circuitos contadores síncronos; e (2) Projetar um contador síncrono a partir das especificações necessárias. Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling 62 5.1. Introdução Contadores síncronos são circuitos sequenciais capazes de executar contagens binárias de forma aleatória, pois possuem um circuito combinacional externo, que utiliza como entradas as saídas Q e Q’ de cada flip-flop e suas saídas são conectadas às entradas dos flip-flops utilizados. A figura 5.1 apresenta o diagrama geral de um contador síncrono utilizando flip-flops JK para contagem. Figura 5.1 Diagrama geral de um contador síncrono com flip-flops JK. As características principais dos contadores síncronos são: (1) Os FF POSSUEM as entradas clock em comum; (2) Possuem circuito combinacional externo, que utiliza as equações de transição dos flip-flops utilizados para ser implementado; (3) Possuem saída binária aleatória; e (4) O bit mais significativo da contagem (MSB) pode ser qualquer um dos flip-flops, pois quem determina essa ordem é o circuito combinacional externo. No caso da figura 5.1 o bit mais significativo pode ser tanto o flip-flop ‘1’ quanto o flip-flop ‘n’. Antes de estudarmos o projeto de contadores síncronos, devemos analisar as tabelas de transição dos flip-flops. Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling 63 5.2. Tabelas de transição dos flip-flops As tabelas de transição dos flip-flops nada mais são que outra forma de visualização das tabelas verdades desses flip-flops. Para a montagem dessas tabelas, devemos analisar com foco nos valores de transições das saídas e nos valores de entrada que se deve ter em suas entradas para provocar essa transição, desde que um pulso de clock ocorra em suas entradas. A saída do flip-flop em seu estado atual é denominada nQ , ou simplesmente Q , e a saída em seu estado futuro, ou seja, após a transição, é denominada 1+nQ ou +Q . 5.2.1. Tabela de transição do flip-flop JK Para o flip-flop JK temos: � 0=nQ para 01 =+nQ , utilizamos em suas entradas, J = 0 e K = 0 ou J = 0 e K = 1. � 0=nQ para 11 =+nQ , utilizamos em suas entradas, J = 1 e K = 0 ou J = 1 e K = 1. � 1=nQ para 01 =+nQ , utilizamos em suas entradas, J = 0 e K = 1 ou J = 1 e K = 1. � 1=nQ para 11 =+nQ , utilizamos em suas entradas, J = 0 e K = 0 ou J = 1 e K = 0. Logo, resumindo essas proposições, temos a seguinte tabela verdade de transição: nQ 1+nQ J K 0 0 0 X 0 1 1 X 1 0 X 1 1 1 X 0 5.2.2. Tabela de transição do flip-flop T Para o flip-flop T temos: � 0=nQ para 01 =+nQ , utilizamos T = 0. � 0=nQ para 11 =+nQ , utilizamos T = 1. Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling 64 � 1=nQ para 01 =+nQ , utilizamos T = 1. � 1=nQ para 11 =+nQ , utilizamos T = 0. Logo, resumindo essas proposições, temos a seguinte tabela verdade de transição: nQ 1+nQ T 0 0 0 0 1 1 1 0 1 1 1 0 5.2.3. Tabela de transição do flip-flop D Para o flip-flop D temos: � 0=nQ para 01 =+nQ , utilizamos D = 0. � 0=nQ para 11 =+nQ , utilizamos D = 1. � 1=nQ para 01 =+nQ , utilizamos D = 0. � 1=nQ para 11 =+nQ , utilizamos D = 1. Logo, resumindo essas proposições, temos a seguinte tabela verdade de transição: nQ 1+nQ D 0 0 0 0 1 1 1 0 1 1 1 0 Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling 65 5.3. Projeto de contador síncrono Antes de projetarmos um contador síncrono necessitamos entender algumas partes integrantes deste projeto. 5.3.1. Diagramas de Transição Para projetar um contador síncrono, deve-se primeiro entender as especificações de projeto. Um contador síncrono tem sua contagem especificada através de um diagrama de transição, apresentado na figura 5.2, que indica qual é o estado futuro a ser atingido pelo contador quando é aplicado um pulso de clock. Figura 5.2 Diagrama de estados de um contador síncrono. A indicação (1) mostra que o contador deve iniciar sua contagem pelo estado indicado por (2). Cada circunferência representa um estado da contagem e pode indicar um valor decimal, binário, hexadecimal ou um nome – exemplo ‘state1’ que representa algum valor tabelado. A seta com a indicação (3) representa que existe uma transição do estado ‘state1’ para ‘state2’, assim como para os outros estados. 5.3.2. Tabela de Estados Futuros e de Entradas dos Flip-flops Considere o contador síncrono representado pelo diagrama de estados da figura 5.3, a tabela de estados futuros desse contador nada mais é que uma representação tabelada dos seus estados. Ela será extremamente importante para que possamos gerar a tabela de entrada dos flip-flops adiante. Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling 66 Figura 5.3 Diagrama de estado de um contador síncrono de módulo 5. A tabela de estados futuros de um diagrama de estados é gerada colocando em uma coluna o estado atual que o contador se encontra e em outra coluna o seu próximo estado. No caso da figura 5.3, sua tabela de estados futuros fica como demonstrado a seguir, considerando três flip-flops A, B e C, sendo A o bit mais significativo. Estados Atuais Estados Futuros QA QB QC QA+ QB+ QC+ 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 A partirdessa tabela, podemos gerar a tabela de entrada dos flip-flops, que são as tabelas que geram as equações lógicas do circuito combinacional, mostrado na figura 5.1, necessárias para a implementação do contador. Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling 67 Para gerar essa tabela, necessitamos das tabelas de transição do tipo de flip-flop utilizado, descritas no item 5.2. Considerando que os flip-flops utilizados para implementação desse contador sejam flip-flops JK, para gerar a tabela de entrada dos flip-flops, basta observarmos quais são as transições que ocorrem dos estados Qx para o estado Qx+ de cada linha e preenchermos as entradas Jx e Kx de cada flip-flop de acordo com a tabela de transição do flip-flop JK. A tabela de entrada dos flip-flops do contador descrito na figura 5.3 fica da seguinte forma: Estados Atuais Estados Futuros Entradas dos Flip-Flops JK QA QB QC QA+ QB+ QC+ JA KA JB KB JC KC 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 entradas dos flip-flops, necessitamos gerar as funções lógicas do circuito combinacional responsável pela contagem, e para isso, como descrito no diagrama de blocos da figura 5.1, utilizaremos QA, QB e QC como entradas do circuito combinacional e JA, KA, JB, KB, JC e KC como saídas, ou seja, basta implementar uma função lógica para cada um dos J’s e K’s utilizados, fazendo como entradas dessas funções as saídas Q dos flip-flops. Como ferramenta para gerar essas funções, utilizaremos mapas de Veitch-Karnaugh, revisados no capítulo 1, e simplificando as funções lógicas descritas, obteremos as seguintes equações: �� = ��. �� �� = 1 �� = �� . �� �� = �� + �� �� = �� �� = 1 (1) (2) (3) (4) (5) (6) Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling 68 Determinadas as equações lógicas das entradas, para finalizar o projeto, basta implementar o circuito lógico, retirando como saídas do contador as saídas Q de cada flip-flop. O circuito do exemplo utilizado é mostrado na figura 5.4. Figura 5.4 Circuito contador síncrono de módulo 5 implementado com flip-flops JK. Pergunta: Na figura 5.3 possuímos um indicativo de que o contador deve iniciar sua contagem no estado ‘000’. O que podemos fazer nesse circuito para garantirmos que sempre que o contador seja ligado ele inicie sua contagem em ‘000’ se suas entradas assíncronas forem ativadas em nível baixo? Sugestão: Implemente o mesmo contador do exemplo anterior utilizando flip-flops tipo T e tipo D como elementos de memória. Implementado o circuito lógico, finalizamos o projeto de um contador síncrono. Resumindo as etapas de projeto temos: (1) Determinação do diagrama de estados do contador a partir das especificações de projeto; (2) Montagem da tabela de estados futuros; (3) Montagem da tabela de entrada dos flip-flops; (4) Implementação das funções lógicas de entrada dos flip-flops; e (5) Implementação do circuito lógico. Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling 69 5.4. Contador Síncrono Crescente / Decrescente O projeto de um contador síncrono crescente / decrescente necessita da inserção de uma variável de controle. No nosso caso, vamos chamar essa variável de controle de variável ‘Z’, que será inserida no circuito combinacional da figura 5.1 para executar uma etapa de controle. Figura 5.5 Diagrama de blocos de um contador síncrono com váriável Z de controle. Tomando como exemplo um contador síncrono crescente / decrescente de 2 bits, devemos construir um diagrama de estados que contenha as duas possíveis sequências de contagem. Definindo como contagem crescente para Z = 0 e decrescente para Z = 1 podemos obter os dois diagramas da figura 5.6 ou ainda obter um único diagrama, figura 5.7, que contenha as duas sequências obtidas de acordo com o valor de ‘Z’. Figura 5.6 Diagramas de estado para os distintos valores da variável de controle 'Z'. Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling 70 Figura 5.7 Diagrama de estados que contém as duas possíveis sequências do contador. A montagem da tabela de estados futuros e de entrada dos flip-flops, considerando flip-flops JK, e inserindo a variável ‘Z’, fica da seguinte forma: Estados Atuais Estados Futuros Entradas dos Flip-Flops JK Z QB QA QB+ QA+ JB KB JA KA 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 Simplificando as funções lógicas, obtemos as seguintes equações: �� = ̅�� + �� = ⊕ �� �� = ̅. �� + �� = ⊕ �� �� = ̅. �� + �� = ⊕ �� �� = ̅�� + �� = ⊕ �� (7) (8) (9) (10) Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling 71 Implementando as equações (7) à (10), obtemos o circuito descrito na figura 5.8. Figura 5.8 Circuito de um contador síncrono crescente / decrescente com uma variável ‘Z’ de controle (Z = 0 – crescente). Pergunta: Na figura 5.7 possuímos um indicativo de que o contador deve iniciar sua contagem no estado ‘00’. O que podemos fazer nesse circuito para garantirmos que sempre que o contador seja ligado ele inicie sua contagem em ‘00’ se suas entradas assíncronas forem ativadas com nível alto? Sugestão: Implemente o mesmo contador do exemplo anterior utilizando flip-flops tipo T e tipo D como elementos de memória. A partir desse tipo de projeto de contador síncrono, podemos projetar contadores síncronos de sequências aleatórias controlados por variáveis externas. A figura 5.9 mostra um exemplo de diagrama de estados de um contador síncrono aleatório controlado pela variável externa ‘Z’. Faça a tabela de estados futuros desse contador. Os estados estão codificados da seguinte forma: Nome Valor em binário S0 0000 S1 0001 S2 1000 S3 0101 S4 0111 S5 1101 S6 1100 S7 1110 S8 1111 Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling 72 Figura 5.9 Contador síncrono aleatório controlado por variável ‘Z’. Pergunta 1: No diagrama da figura 5.9, podemos verificar que nem todos os estados que podem ser executados com 4 bits estão sendo utilizados. O que aconteceria se por algum distúrbio no sistema o contador apresentasse o valor ‘0110’ em sua saída? Pergunta 2: O que aconteceria o contador estivesse no estado S3, com Z =1, e o valor da variável ‘Z’ fosse alterado para ‘0’? Sugestão: Implemente o mesmo contador do exemplo anterior utilizando flip-flops tipo T. Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling 73 5.5. Exercícios de Fixação 1) Implemente um contador síncrono crescente, com reset automático, de módulo 16 utilizando FF JK. 2) Implemente um contador síncrono, sem reset automático, que conte de 2 até 6, crie uma sub-rotina de inicialização para esse contador. Utilize FF T. 3) Implemente um contador síncrono, que execute a sequência abaixo. O contador deve possuir resetautomático em ‘1’ e deve-se utilizar FF JK. 4) Implemente um contador síncrono, com reset automático, que execute a seguinte sequência: 1 � 2 � 3 � 5 � 6 � 7 � 9 � 10 � 12� 1. Use FF D. 5) Implemente um contador síncrono de 4 bits, com reset automático, que execute uma contagem dos números pares. Utilize FF JK. 6) Implemente um contador síncrono de 4 bits, sem reset automático, que execute uma contagem dos números ímpares. Utilize FF JK. 7) Implemente um contador síncrono de 3 bits, crescente / decrescente, com uma variável Z de controle. Utilize FF JK. 8) Implemente um contador síncrono de 3 bits, com uma variável Z de controle, que execute as seguintes sequências: 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. Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling 74 9) Implemente um contador síncrono que execute a sequência abaixo. Utilize FF T. 10) Implemente um contador síncrono que execute a sequência abaixo. Utilize FF D. 11) Implemente um contador síncrono, com variáveis Y e X de controle, que execute as seguintes sequências abaixo, com reset inicial em 2h. Utilize FF JK.
Compartilhar