Ciências da computação dia 63

![[Harrison

Harrison
Broadbent

do autômato ao circuito

Nas últimas aulas de Sistemas digitais, vimos muito sobre flip-flops e autômatos, e hoje finalmente saímos desses conceitos para aplicar em um circuito real. Nesta aula, fizemos uma série de passos para conseguir transformar um grafo dirigido, em um circuito digital.

Criação do grafo dirigido

Antes de tudo, precisamos entender quais são os estados do nosso grafo. No exemplo que mostrarei será feito um grafo dirigido para um contador BCD.

uma espécie de circulo com varios número indo de 0 a 9 e repetindo esse ciclo
veja o contador aqui

Neste autômato mostrado acima, é possível entender que teremos um ciclo. Contador irá de 0 até 9, e ao chegar no 9 o próximo número será 0, repetindo todo o ciclo.

Quantidade de FFs necessários

Como visto na última aula, a quantidade de flip-flops usada em um circuito vai depender diretamente da quantidade de estados do grafo (nesse caso 10 estados).

Sendo assim, podemos usar a equação:

log2 QE ≤ n

ou

QE ≤ 2^n

onde QE é a quantidade de estados e n é a quantidade de flip-flops

colocando tudo na fórmula

temos que 10 ≤ 2^n

sendo assim a menor número possível para n que satisfaça a inequação é 4 (4 flip-flops necessários)

Tabela de estímulos

Antes de construirmos uma tabela de estímulos para os flip-flops, precisamos primeiro saber quais são as saídas dos flip-flops dependendo de suas entradas.

tabela com as entradas e saídas do flip-flop JK
tabela de saídas do FF-JK

A partir dessa tabela podemos montar outra que demonstrará quais são as entradas necessárias para gerar uma sequência de saídas.

tabela com as possiveis entradas do flip-flop baseando-se nas saídas
tabela de entradas FF-JK

Para montar a tabela de entradas, precisamos saber quais são as saídas que queremos, e olhando na tabela de saídas podemos ter uma ideia de quais entradas podem gerar essas saídas. Pegando como exemplo as saídas 0 0, para J temos apenas uma opção 0, enquanto para o K podemos usar tanto o valor 1 como o valor 0, sendo assim colocamos um X no local.

Com essa tabela pronta, podemos finalmente montar a tabela de estímulos.

tabela de estímulos para o FF-JK contador BCD crescente
tabela de estímulos FF-JK

Para montar esta tabela de estímulos, primeiro precisamos pegar quais são os valores em binário (0--9 neste caso) e colocar tudo em sequencia na coluna com nome Atual. Depois na próxima coluna com o nome de Próximo, precisamos listar o próximo número, sendo assim na linha do zero precisamos colocar o valor do número 1, e assim vai, até chegar ao valor 9 que colocaremos o próximo como sendo o 0 para continuar o ciclo infinito. Por fim, na coluna de estímulos precisamos colocar em JnKn os valores referentes da tabela de entradas baseando-se na Qn da coluna atual e próximo, por exemplo, no J3K3 colocaremos 0 X respectivamente pois o valor de transição de Q3 atual, 0, para o próximo Q3, 0 também, na tabela de entradas é 0 e X.

Montando mapas de Karnaugh

Com a tabela de estímulos pronta devemos criar mapas de Karnaugh para cada uma das colunas de estímulos (Jn e Kn), neste caso 8 mapas de Karnaugh.

template do mapa de karnaugh de quatro variáveis que vamos utilizar
template mapa de Karnaugh 4 variáveis

Obs: posições que não estão na tabela de estímulos, como as posições de 10 à 15, você coloca o valor X.

mapa de Karnaugh J3
J3
Mapa de Karnaugh K3
K3
mapa de Karnaugh J2
J2
Mapa de Karnaugh K2
K2
Mapa de Karnaugh J1
J1
mapa de Karnaugh K1
K1
Mapa de Karnaugh J0
J0
Mapa de Karnaugh K0
K0

Criando o circuito

Por fim, vamos utilizar algum software para criar o circuito.

circuito montado
circuito pronto

Repare que neste circuito nossas saídas Q0, Q1, Q2 e Q3 são aquelas quatro linhas que estão com LLHL, das quais as saídas dos componentes se interligarão. Repare também que no Q0 temos um elemente com +5v, como nosso resultado de J0 e K0 foi 1, podemos ligar essas entradas diretamente na energia, no caso o 5v, também chamado de PULL UP.