Projete um circuito contador sincrono utilizando FF D que realize a contagem de sua Matrícula. Por exemplo, se sua matricula for 2013020345 , você deve utilizar a parte em negrito realizando a sequência da esquerda para a direita. ( 2,5 pontos)

Passo 1

Beleza, vamos projetar um contador síncrono com flip-flops tipo D que percorre uma sequência de estados definida pelos dígitos “em negrito” da sua matrícula. Isso é conteúdo de Projeto de Sistemas Digitais – contadores assíncronos vs. síncronos, codificação de estados e excitação de FF D. Para resolver a gente vai precisar de:
  1. Identificar a sequência de valores que o contador deve gerar (os dígitos em negrito, esquerda→direita).
  2. Atribuir um código binário único a cada valor/estado (porque tem dígitos repetidos!).
  3. Fazer a tabela de transição de estados (estado atual → próximo estado).
  4. Escrever as equações de entrada D de cada flip-flop (excitação D = próximo valor de Q).
  5. Simplificar as equações (mapa de Karnaugh ou álgebra booleana).
  6. Montar o circuito com 3 FF D e lógica combinacional.

Passo 2

Supondo que, por exemplo, a parte em negrito da matrícula 2013020345 seja “1 3 0 2 0 3” (seis dígitos), a gente precisa de 6 estados. Como tem dígitos repetidos (0 e 3 aparecem duas vezes), a gente dá nome a cada passo da contagem e não ao valor numérico em si. Então:
Estado A → “1”
Estado B → “3”
Estado C → “0”
Estado D → “2”
Estado E → “0” (segunda vez)
Estado F → “3” (segunda vez)
Cada estado vai receber um código binário de 3 bits (porque 2 bits dão só 4 códigos, e precisamos de 6). Vamos escolher, por exemplo:
A ≡ 000
B ≡ 001
C ≡ 010
D ≡ 011
E ≡ 100
F ≡ 101

Passo 3

Agora montamos a tabela de transição “Estado Atual → Próximo Estado” com seus códigos:
Atual (Q2 Q1 Q0) Nome Próximo (Q2⁺ Q1⁺ Q0⁺) Nome⁺
000 A 001 B
001 B 010 C
010 C 011 D
011 D 100 E
100 E 101 F
101 F 000 A
Outros (110,111) 000 A
Coloquei também estados “fantasmas” (110,111) para retornarem a A, fechando o circuito contra erros.

Passo 4

Em FF D, a entrada D deve ser igual ao valor do próximo Q. Ou seja:
D2 = Q2⁺,
D1 = Q1⁺,
D0 = Q0⁺.
Da tabela:
Para D2 (próximo Q2):
Quando o próximo estado é 100 (E) ou 101 (F), Q2⁺=1. Isso ocorre se o estado atual for D (011) ou E (100).
Então:
D2 = 1 se (Q2 Q1 Q0 = 011) ou ( = 100).
Em forma booleana:
D2 = ¬Q2·Q1·Q0 + Q2·¬Q1·¬Q0
Para D1 (próximo Q1):
Q1⁺=1 se o próximo estado é 001, 011 ou 100. Isso acontece quando o atual é A(000), C(010) ou D(011).
D1 = (¬Q2·¬Q1·¬Q0) + (¬Q2·Q1·¬Q0) + (¬Q2·Q1·Q0)
= ¬Q2·(¬Q1·¬Q0 + Q1·¬Q0 + Q1·Q0)
= ¬Q2·(¬Q0 + Q1)
Para D0 (próximo Q0):
Q0⁺=1 se o próximo estado é 001, 011 ou 101. Acontece quando atual é A(000), C(010) ou E(100).
D0 = ¬Q2·¬Q1·¬Q0 + ¬Q2·Q1·¬Q0 + Q2·¬Q1·¬Q0
= ¬Q0·(¬Q2·¬Q1 + ¬Q2·Q1 + Q2·¬Q1)
= ¬Q0·(¬Q2 + ¬Q1)

Passo 5

Simplificando ainda mais:
D2 = ¬Q2·Q1·Q0 + Q2·¬Q1·¬Q0
D1 = ¬Q2·(¬Q0 + Q1)
D0 = ¬Q0·(¬Q2 + ¬Q1)
Nada de mapinha extra—essas são bem enxutas.

Passo 6

Desenha três flip-flops D (Q2,Q1,Q0). Liga cada D<sub>i</sub> à expressão booleana correspondendo aos sinais Q2,Q1,Q0 (e seus inversos via inversores). O clock é comum e síncrono a todos.

Resposta

Contador síncrono de 6 estados (1→3→0→2→0→3→1…) codificado em 3 FF D com as entradas:
D2 = ¬Q2·Q1·Q0 + Q2·¬Q1·¬Q0
D1 = ¬Q2·(¬Q0 + Q1)
D0 = ¬Q0·(¬Q2 + ¬Q1)
E o clock comum a todos os FF D.

Exercícios relacionados