Projetar Contador binário síncrono Up/Down com FF tipo D, Módulo 4.
Sequência Up: ( 00-01-10-11-00-01…). Sequência Down: ( 00-11-10 -01-00-11…)

Passo 1

O problema pede o projeto de um contador síncrono de módulo 4 que conta para cima quando um sinal de controle U está em nível alto ( U=1) e para baixo quando U=0. Vamos usar dois flip-flops do tipo D cujas saídas são (Q_1,Q_0). Nossa tarefa é encontrar as expressões lógicas de D_1 e D_0 em função de Q_1, Q_0 e U.

Passo 2

Montamos a tabela de transição (Q_1,Q_0,U)\to(Q_1^+,Q_0^+):
\begin{array}{ccc|cc} Q_1 & Q_0 & U & Q_1^+ & Q_0^+\\hline 0 & 0 & 1 & 0 & 1\\\\ 0 & 1 & 1 & 1 & 0\\\\ 1 & 0 & 1 & 1 & 1\\\\ 1 & 1 & 1 & 0 & 0\\\\ 0 & 0 & 0 & 1 & 1\\\\ 0 & 1 & 0 & 0 & 0\\\\ 1 & 0 & 0 & 0 & 1\\\\ 1 & 1 & 0 & 1 & 0 \end{array}

Passo 3

Da tabela vemos que em todas as oito linhas Q_0^+ = \neg Q_0. Logo
D_0 \;=\; \neg Q_0.

Passo 4

Para D_1 = Q_1^+ observamos dois casos:
  • Se U=1, então Q_1^+=Q_1\oplus Q_0.
  • Se U=0, então Q_1^+=Q_1\odot Q_0 + \neg Q_1\odot \neg Q_0 (isto é, Q_1 XNOR Q_0).
    Podemos unificar num só termo usando U'\!=\!\neg U:
D_1 \;=\; (Q_1\oplus Q_0)\,U \;\oplus\;(Q_1\oplus Q_0)\,U' \;=\; Q_1\oplus Q_0\oplus U'.

Passo 5

O contador é então implementado ligando nos flip-flops D as entradas:
D_0 = \neg Q_0, \qquad D_1 = Q_1 \oplus Q_0 \oplus \neg U.

Resposta

D_0 = \neg Q_0 D_1 = Q_1 \oplus Q_0 \oplus \neg U

Exercícios relacionados