(valor 4,0) Projete um contador síncrono que realize a sequência (0,5,7,6,2,1) repetidamente. Deseja-se que seja implementado através de flip-flops tipo D com atualização na borda de decida. Pede-se:
a) diagrama de estados completo;
b) tabela verdade do projeto (forçar os estados secundários para o estado " 0 ");
c) expressões lógicas minimizadas do contador;

Passo 1

O enunciado pede o projeto de um contador síncrono que percorre ciclicamente a sequência de estados decimais
0,\;5,\;7,\;6,\;2,\;1
usando flip-flops tipo D com atualização na borda de descida. Precisamos gerar
a) o diagrama de estados completo;
b) a tabela verdade do próximo estado, forçando os estados não usados (estados “secundários”) a irem para o estado 0;
c) as expressões lógicas minimizadas para as entradas D dos flip-flops.

Passo 2

Vamos representar cada estado com três bits (Q_2,Q_1,Q_0), de modo que o valor decimal
n = 4Q_2 + 2Q_1 + Q_0.
Então a sequência fica
000 \to 101 \to 111 \to 110 \to 010 \to 001 \to 000 \to \cdots
e chamaremos de “secundários” os estados 011 ( 3) e 100 ( 4), que devem ir para 000.

Passo 3

O diagrama de estados é um ciclo com as transições:
000\overset{}{\longrightarrow}101\longrightarrow111\longrightarrow110\longrightarrow010\longrightarrow001\longrightarrow000
e ainda
011\longrightarrow000, \quad 100\longrightarrow000.

Passo 4

Montamos a tabela verdade do próximo estado (Q_2^+,Q_1^+,Q_0^+) em função do estado atual (Q_2,Q_1,Q_0). Para os estados secundários (011,100) colocamos próximo estado 000:
\begin{array}{c|ccc|ccc} \text{Estado atual}&Q_2&Q_1&Q_0&Q_2^+&Q_1^+&Q_0^+\\hline 000&0&0&0&1&0&1\\\\ 001&0&0&1&0&0&0\\\\ 010&0&1&0&0&0&1\\\\ 011&0&1&1&0&0&0\\\\ 100&1&0&0&0&0&0\\\\ 101&1&0&1&1&1&1\\\\ 110&1&1&0&0&1&0\\\\ 111&1&1&1&1&1&0 \end{array}

Passo 5

As entradas D_i são iguais aos bits do próximo estado: D_2=Q_2^+, D_1=Q_1^+, D_0=Q_0^+. Das linhas em que D_i=1 extraímos os mintermos e simplificamos:
Para D_2 temos mintermos em 000,101,111, resultando em
D_2 = \overline{Q_2}\,\overline{Q_1}\,\overline{Q_0} \;+\; Q_2\,Q_0.
Para D_1 temos mintermos em 101,110,111, que se agrupam em
D_1 = Q_2\,(Q_1 + Q_0).
Para D_0 temos mintermos em 000,010,101, levando a
D_0 = \overline{Q_2}\,\overline{Q_0} \;+\; Q_2\,\overline{Q_1}\,Q_0.

Resposta

a) Diagrama de estados:
000\to 101\to 111\to 110\to 010\to 001\to 000, e ainda 011\to 000, 100\to 000.
b) Tabela verdade (Q_2,Q_1,Q_0)\to(Q_2^+,Q_1^+,Q_0^+):
\begin{array}{c|ccc|ccc} Q_2&Q_1&Q_0&Q_2^+&Q_1^+&Q_0^+\\hline 0&0&0&1&0&1\\\\ 0&0&1&0&0&0\\\\ 0&1&0&0&0&1\\\\ 0&1&1&0&0&0\\\\ 1&0&0&0&0&0\\\\ 1&0&1&1&1&1\\\\ 1&1&0&0&1&0\\\\ 1&1&1&1&1&0 \end{array}
c) Expressões minimizadas:
D_2 = \overline{Q_2}\,\overline{Q_1}\,\overline{Q_0} + Q_2\,Q_0,
D_1 = Q_2\,(Q_1 + Q_0),
D_0 = \overline{Q_2}\,\overline{Q_0} + Q_2\,\overline{Q_1}\,Q_0.

Exercícios relacionados