Projete um circuito contador síncrono utilizando FF JK que realize a contagem da série de Fibonacci até os números com 3 bits. ( 3,0 pontos)

Passo 1

Beleza, a gente vai projetar um “contador” de 3 bits que segue a regra do LFSR do tipo Fibonacci (não é a série matemática 0,1,1,2…), mas sim um registrador de deslocamento em que o novo bit é gerado por XOR de duas saídas anteriores. É conteúdo de Circuitos Digitais: seqüenciais síncronos, excitação de flip-flops JK, mapas de Karnaugh. A gente vai precisar de:
  • Definir o estado atual Q2Q1Q0 e o próximo estado Q2′Q1′Q0′.
  • Montar tabela de excitação JK para cada flip-flop.
  • Simplificar no mapa de Karnaugh cada J e cada K.

Passo 2

Definindo o LFSR tipo Fibonacci de ordem 3:
Q2′ = Q1
Q1′ = Q0
Q0′ = Q2 ⊕ Q0
Isso gera um ciclo de comprimento 7, percorrendo todos os estados não-zerados de 3 bits.
Agora, para cada flip-flop JK, usamos a tabela de excitação:
se Q→Q′ = 0→0, J=0, K=X;
se 0→1, J=1, K=X;
se 1→0, J=X, K=1;
se 1→1, J=X, K=0.

Passo 3

Vamos achar J2,K2 (para Q2):
  • Como Q2′=Q1, examinamos Q2→Q2′ = Q2→Q1.
    • Se Q2=0 e Q1=1 ⇒ 0→1 ⇒ J2=1. Isso só ocorre quando ¬Q2·Q1=1.
    • Se Q2=1 e Q1=0 ⇒ 1→0 ⇒ K2=1. Isso é Q2·¬Q1=1.
      Logo:
      J2 = ¬Q2·Q1
      K2 = Q2·¬Q1
Agora J1,K1 (para Q1):
  • Q1′=Q0, idem:
    J1 = ¬Q1·Q0
    K1 = Q1·¬Q0
E finalmente J0,K0 (para Q0):
  • Q0′ = Q2⊕Q0. Há toggle quando Q2⊕Q0=1.
    • Se Q0=0 e Q2⊕Q0=1 ⇒ 0→1 ⇒ J0=1 ⇒ J0 = ¬Q0·(Q2⊕Q0). Mas quando Q0=0, Q2⊕Q0=Q2, então J0=¬Q0·Q2.
    • Se Q0=1 e Q2⊕Q0=1 ⇒ 1→0 ⇒ K0=1 ⇒ K0=Q0·(Q2⊕Q0). Mas Q2⊕Q0 em Q0=1 é ¬Q2, então K0=Q0·¬Q2.
      Portanto:
      J0 = ¬Q0·Q2
      K0 = Q0·¬Q2

Passo 4

Recapitulando as equações finais (todas em LaTeX):
J_2 = \bar Q_2,Q_1
K_2 = Q_2,\bar Q_1
J_1 = \bar Q_1,Q_0
K_1 = Q_1,\bar Q_0
J_0 = \bar Q_0,Q_2
K_0 = Q_0,\bar Q_2
Basta ligar cada J e cada K desses termos aos flip-flops Q2, Q1 e Q0, e colocar o clock em comum.

Resposta

Circuito síncrono de 3 JK-FF com realimentação tipo LFSR Fibonacci:
Q2′=Q1, Q1′=Q0, Q0′=Q2⊕Q0
com
J2=¬Q2·Q1, K2=Q2·¬Q1;
J1=¬Q1·Q0, K1=Q1·¬Q0;
J0=¬Q0·Q2, K0=Q0·¬Q2.

Exercícios relacionados