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
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.
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_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
K_1 = Q_1,\bar Q_0
J_0 = \bar Q_0,Q_2
K_0 = Q_0,\bar 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.
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.