Exercício: Análise de Circuitos Realimentados

Posted on ter 09 outubro 2018 in sistemas digitais • 3 min read

Assunto: Análise de circuitos realimentados

Enunciado

O circuito ao lado é um circuito digital sequencial realimentado, com entradas T e C, e saída Q. Analise-o por completo, apresentando:

  • As equações de excitação e saída;
  • A tabela de transição de estados e saída;
  • Análise de corridas (e classificação se houve);
  • A tabela de fluxo e saída;
  • O diagrama de transição de estados da máquina.

Solução

Vamos começar colocando os buffers virtuais, como na figura ao lado. Já aproveitei e nomeei todas as conexões existentes para facilitar o próximo passo: a extração das equações.

$$ I=\overline{T.C.Y_2}\ J=\overline{\overline{T}.\overline{C}.\overline{Y_2}}\ K=\overline{\overline{T}.\overline{C}.Y_2}\ L=\overline{T.C.\overline{Y_2}}\ M=\overline{Y_1.K.L}\ N=\overline{T.\overline{C}.\overline{Y_1}}\ O=\overline{T.\overline{C}.Y_1}\ P=\overline{Y_2.O} $$

Resolvendo $M$ e $P$:

$$ M=\overline{Y_1.K.L}=\overline{Y_1.\overline{\overline{T}.\overline{C}.Y_2}.\overline{T.C.\overline{Y_2}}}=\overline{Y_1.(T+C+\overline{Y_2}).(\overline{T}+\overline{C}+Y_2)}\ =\overline{T.\overline{C}.Y_1+T.Y_1.Y_2+\overline{T}.C.Y_1+C.Y_1.Y_2+\overline{T}.Y_1.\overline{Y_2}+\overline{C}.Y_1.\overline{Y_2}}\ P=\overline{Y_2.O}=\overline{Y_2.\overline{T.\overline{C}.Y_1}}=\overline{Y_2.(\overline{T}+C+\overline{Y_1})}=\overline{\overline{T}.Y_2+C.Y_2+\overline{Y_1}.Y_2} $$

E finalmente resolvendo $Y_1^$ e $Y_2^$:

$$ Y_1^=\overline{I.J.M}\ =\overline{\overline{T.C.Y_2}.\overline{\overline{T}.\overline{C}.\overline{Y_2}}.\overline{T.\overline{C}.Y_1+T.Y_1.Y_2+\overline{T}.C.Y_1+C.Y_1.Y_2+\overline{T}.Y_1.\overline{Y_2}+\overline{C}.Y_1.\overline{Y_2}}}\ =T.C.Y_2+\overline{T}.\overline{C}.\overline{Y_2}+T.\overline{C}.Y_1+T.Y_1.Y_2+\overline{T}.C.Y_1+C.Y_1.Y_2+\overline{T}.Y_1.\overline{Y_2}+\overline{C}.Y_1.\overline{Y_2}\ Y_2^=\overline{N.P}=\overline{\overline{T.\overline{C}.\overline{Y_1}}.\overline{\overline{T}.Y_2+C.Y_2+\overline{Y_1}.Y_2}}\ =T.\overline{C}.\overline{Y_1}+\overline{T}.Y_2+C.Y_2+\overline{Y_1}.Y_2\ $$

O próximo passo é preencher a tabela de transição de estados e saída. A tabela preenchida pode ser vista abaixo, para $Y_1^Y_2^$. Os estados contornados são estados estáveis, ou seja, não há mudança de estado para aquela entrada. Também podemos ver a tabela de fluxo, com as saídas.

Tabelas de transição de estados e de fluxo, com saídas

Na tabela de transição de estados, podemos fazer a análise de corridas. Uma corrida acontece quando uma única mudança na entrada causa uma mudança em mais de uma variável de estado. No nosso caso, uma única mudança em $T$ ou $C$ (tanto de zero para um quanto de um para zero, em qualquer uma das entradas), deve provocar uma mudança das variáveis de estado $Y_1Y_2$ de mais de um bit, ou seja, de 00 para 11 ou de 10 para 01 (ou vice-versa). Na tabela, podemos verificar que não há corridas. Exemplo: na primeira linha estamos com as variáveis de estado $Y_1Y_2$ em 00. Nenhuma transição desta linha indica uma transição para 11, as transições possíveis são para 10, 00, 00 e 01, de acordo com as entradas 00, 01, 11 ou 10 respectivamente. Isso significa que, se estivermos no estado 00, uma mudança de um bit não ocasionará uma mudança de mais de um bit nas variáveis de estado. Ainda precisamos analisar as colunas. Se estivermos no mesmo estado (00) e a entrada estiver em 00, as variáveis de estado indicam que o próximo estado é 10, que é estável, portanto esta mudança irá acontecer. Do estado 00 para 10 só há uma mudança nas variáveis de estado, então não há corrida. Se estivermos no estado 00 e a entrada for 01 ou 11, o estado já é estável, então não há mudança alguma nas variáveis de estado. No caso da entrada 10, o novo estado será 01, que é estável e só muda um bit da variável de estado. Prossegue-se com a análise para o restante da tabela e conclui-se que não há corrida alguma. Após a análise de corridas, pode-se montar a tabela de fluxo (com saídas), mostrada do lado direito da figura. Para facilitar, adotou-se a codificação de estados como $S_i$, onde $i$ é o número decimal que representa as variáveis de estado $Y_1Y_2$. É preferível fazer a análise de corrida na tabela de transição em binário, pois é mais fácil perceber as mudanças.

Por último, montamos o diagrama de transição de estados, que fica conforme a figura ao lado.

A análise de comportamento é opcional, mas é relativamente fácil perceber que se trata de um flip-flop tipo T sensível a borda de descida. A análise pode ser feita da seguinte forma: começa-se no estado $S_0$ (pode ser qualquer estado) e analisa-se o comportamento das entradas. Percebe-se que, a única maneira de sair desse estado é se a entrada $C$ for zero, de onde conclui-se que o circuito é algo que espera esta entrada virar zero. Nota-se ainda que, quando isso acontece, a saída muda caso a entrada $T$ seja um, caso contrário não muda. Todos os estados "seguram" a borda da entrada $C$, ou seja, independentemente se formos para $S_1$ ou $S_2$ a partir do $S_0$, a entrada $C$ não altera mais o comportamento da máquina exceto se for para um e depois para zero novamente. Poderíamos dizer que os estados tem estas funções:

  • $S_0$: saída zero, aguarda $C=0$ e inverte a saída se $T=1$;
  • $S_1$: saída um, não deve-se inverter a saída, aguarda que $C=1$;
  • $S_2$: saída zero, não deve-se inverter a saída, aguarda que $C=1$;
  • $S_3$: saída um, aguarda $C=0$ e inverte a saída se $T=1$.

Repare que o efeito toggle só acontece nas arestas horizontais, de $S_0$ para $S_1$ e de $S_3$ para $S_2$.

Download do circuito no LogiSim