15
Curso de Lógica Sequencial Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling 77 CAPÍTULO 5 CIRCUITOS SEQUENCIAIS III: CONTADORES SÍNCRONOS Sumário 5.1. Introdução ............................................................................................................................ 79 5.2. Tabelas de transição dos flip-flops ....................................................................................... 80 5.2.1. Tabela de transição do flip-flop JK .................................................................................. 80 5.2.2. Tabela de transição do flip-flop T .................................................................................... 80 5.2.3. Tabela de transição do flip-flop D .................................................................................... 81 5.3. Projeto de contador síncrono ............................................................................................... 82 5.3.1. Diagramas de Transição .................................................................................................. 82 5.3.2. Tabela de Estados Futuros e de Entradas dos Flip-flops ................................................... 82 5.4. Contador Síncrono Crescente / Decrescente ....................................................................... 86 5.5. Exercícios de Fixação ........................................................................................................... 90

CAPÍTULO 5 CIRCUITOS SEQUENCIAIS III: CONTADORES … · Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling 79 5.1

Embed Size (px)

Citation preview

Page 1: CAPÍTULO 5 CIRCUITOS SEQUENCIAIS III: CONTADORES … · Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling 79 5.1

Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling

77

CAPÍTULO 5 – CIRCUITOS SEQUENCIAIS III: CONTADORES SÍNCRONOS

Sumário

5.1. Introdução ............................................................................................................................ 79

5.2. Tabelas de transição dos flip-flops ....................................................................................... 80

5.2.1. Tabela de transição do flip-flop JK .................................................................................. 80

5.2.2. Tabela de transição do flip-flop T .................................................................................... 80

5.2.3. Tabela de transição do flip-flop D .................................................................................... 81

5.3. Projeto de contador síncrono ............................................................................................... 82

5.3.1. Diagramas de Transição .................................................................................................. 82

5.3.2. Tabela de Estados Futuros e de Entradas dos Flip-flops ................................................... 82

5.4. Contador Síncrono Crescente / Decrescente ....................................................................... 86

5.5. Exercícios de Fixação ........................................................................................................... 90

Page 2: CAPÍTULO 5 CIRCUITOS SEQUENCIAIS III: CONTADORES … · Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling 79 5.1

Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling

78

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.

Page 3: CAPÍTULO 5 CIRCUITOS SEQUENCIAIS III: CONTADORES … · Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling 79 5.1

Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling

79

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.

Page 4: CAPÍTULO 5 CIRCUITOS SEQUENCIAIS III: CONTADORES … · Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling 79 5.1

Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling

80

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 1nQ ou Q .

5.2.1. Tabela de transição do flip-flop JK

Para o flip-flop JK temos:

0nQ para 01 nQ , utilizamos em suas entradas, J = 0 e K = 0 ou J = 0 e K = 1.

0nQ para 11 nQ , utilizamos em suas entradas, J = 1 e K = 0 ou J = 1 e K = 1.

1nQ para 01 nQ , utilizamos em suas entradas, J = 0 e K = 1 ou J = 1 e K = 1.

1nQ 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 1nQ 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:

0nQ para 01 nQ , utilizamos T = 0.

0nQ para 11 nQ , utilizamos T = 1.

Page 5: CAPÍTULO 5 CIRCUITOS SEQUENCIAIS III: CONTADORES … · Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling 79 5.1

Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling

81

1nQ para 01 nQ , utilizamos T = 1.

1nQ para 11 nQ , utilizamos T = 0.

Logo, resumindo essas proposições, temos a seguinte tabela verdade de transição:

nQ 1nQ 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:

0nQ para 01 nQ , utilizamos D = 0.

0nQ para 11 nQ , utilizamos D = 1.

1nQ para 01 nQ , utilizamos D = 0.

1nQ para 11 nQ , utilizamos D = 1.

Logo, resumindo essas proposições, temos a seguinte tabela verdade de transição:

nQ 1nQ D

0 0 0

0 1 1

1 0 0

1 1 1

Page 6: CAPÍTULO 5 CIRCUITOS SEQUENCIAIS III: CONTADORES … · Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling 79 5.1

Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling

82

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.

Page 7: CAPÍTULO 5 CIRCUITOS SEQUENCIAIS III: CONTADORES … · Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling 79 5.1

Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling

83

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 partir dessa 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.

Page 8: CAPÍTULO 5 CIRCUITOS SEQUENCIAIS III: CONTADORES … · Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling 79 5.1

Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling

84

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)

(2)

(3)

(4)

(5)

(6)

Page 9: CAPÍTULO 5 CIRCUITOS SEQUENCIAIS III: CONTADORES … · Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling 79 5.1

Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling

85

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.

Page 10: CAPÍTULO 5 CIRCUITOS SEQUENCIAIS III: CONTADORES … · Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling 79 5.1

Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling

86

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'.

Page 11: CAPÍTULO 5 CIRCUITOS SEQUENCIAIS III: CONTADORES … · Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling 79 5.1

Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling

87

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)

Page 12: CAPÍTULO 5 CIRCUITOS SEQUENCIAIS III: CONTADORES … · Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling 79 5.1

Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling

88

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

Page 13: CAPÍTULO 5 CIRCUITOS SEQUENCIAIS III: CONTADORES … · Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling 79 5.1

Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling

89

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.

Page 14: CAPÍTULO 5 CIRCUITOS SEQUENCIAIS III: CONTADORES … · Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling 79 5.1

Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling

90

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 reset automá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.

Page 15: CAPÍTULO 5 CIRCUITOS SEQUENCIAIS III: CONTADORES … · Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling 79 5.1

Curso de Lógica Sequencial – Cap. 5: Circuitos Sequenciais III: Contadores Síncronos | Prof. Marcelo Wendling

91

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.