Projeto Contador Síncrono 2024/1

Suponha que queiramos construir um contador síncrono capaz de executar a seguinte sequência de contagem:

contador_sinc_2024_1_main

Obs.: A variável serve para ajustar o sentido da contagem. Funcionaria como a entrada de um CI 74LS190.

Projeto ?

Notamos que o maior valor assumido nesta contagem é e o menor valor é , o que significa que FF's bastam para resolver este circuito. Resta escolher que tipo de FF adotar. Se usarmos FF´s-JK será necessário deduzir equações (circuitos). Se optarmos por FF´s-D, teremos que deduzir apenas 1 circuito (equação) por FF.

Seque tabela de sequência de contagem deste contador:

Lembrando que a tabela de transição do FF-D é:

Seguem os Mapas de karnaught e equações para as entradas dos FF´s adotados neste projeto:

mapa_K_d2

Isto implica usar: 1 OR(4) + 3 AND(2) + 3 NOT (a portas NOT geram: , e ).

mapa_K_d1

Implica usar: 1 OR(5) + 5 AND(3) + 1.

mapa_K_d0

Implica usar: 1 OR(3) + 1 AND(2) + 1 AND(3).

Total:

Um total de 8 pastilhas TTL.

Próximo passo: desenhar o circuito lógico (diagrama elétrico).

Mas... poderíamos ter usado o Logisim para realizar esta parte do projeto (a eletrônica digital combinacional necessária para comandar os FF's): arquivo: projeto_2024_1.circ . Neste caso, esta ferramenta nos sugere:

D2:D1:D0:
d2d1d0

Percebemos que a solução sugerida para está melhor (implica: 1 OR(4) + 4 AND(3)).

O Logisim termina sugerindo o seguinte circuito para a eletrônica combinacional de comando dos FF's:

main_logisim_circuito

Obs.: Este circuito lógico, principalmente a eletrônica combinacional associada com a entrada (FF-1), exige um circuito algo grande.

Detalhes

Isto é:

contador_sinc_2024_1_todos_estados

Resposta:

Considerando a lógica de controle dos FF's o circuito sugerido pelo Logisim, notamos que:

Resumindo, podemos compor o seguinte diagrama de estados final para este circuito:

Cópia do contador_sinc_2024_1_Logisim

Outras soluções de circuito para lógica de controle:

Lembramos que podemos sinterizar uma função lógica combinacional usando MUX ou DEC. Se optarmos por MUX, seria necessário um MUX com 4 entradas de seleção (correspondendo as variáveis: , , e ), de 16 canais (uma pastilha algo grande, com 24 pinos), ou até podemos adaptar a solução para um MUX de 8 canais e usar a varíavel mais significativa, para completar a adaptação para circuito combinacional usando um MUX menor (de 8 canais; 16 pinos).

Temos então que deduzir a "programação" de cada um dos MUXes de 8 canais, um para cada circuito combinacional ncessário aqui (um para a entrada do FF-0, outro para entrada do FF-1 e o terceiro MUX associado com a entrada do FF-2).

Faremos isto na próxima aula (10/05/2024) e tentaremos simular este circuito no Proteus.

Obs.: para acessar estes videos eventualmente será necessário você autenticar sua conta @upf.br.

Continuação (aula de 10/05/2024)...

Resolvendo o circuito usando

Note que neste caso, todas as transições de estado são "programadas", incluindo as "don´t care", ou seja, antes, tínhamos o projeto assim:

Transições DefinidasTransições "don´t care"
contador_sinc_2024_1_main.webpcontador_sinc_2024_1_outros.webp

 

Agora necessitamos definir o que acontece se o circuito parte destes estados, porque não podemos programar as entras , e do MUX com um nível lóligo indeterminado

Neste caso, foi optado (deliberadamente) por definir como o circuito deve continuar à partir dos estados anteriores, resultando em:

contador_sinc_2024_1_mux.webp

Programando os MUXes:

Obs.: durante resolução sem aula, a programação para as linhas Ref = 12, 13 e 15 estava equivocada!

Diagrama elétrico e simulação:

contador_diferente_2024_1.png

Este circuito ( contador_diferente_2024_1.pdsprj - Proteus 8.13 SP0 ) ocupa simplesmente 5 pastilhas.

Segue uma simulação:

contador_diferente

Detalhe: a pastilha 74LS175 não permite um "Parallel Load", isto é, não permite inicializar seus FF´s em qualquer estado. Temos disponível apenas o Master Reset (pino ).

O Proteus permite forçar a inicialização da pastilha 74LS175, se, depois de selecionarmos a mesma (botão direito do mouse sobre a pastilha), selecionamos Propriedades e alteramos o valor da caixa de texto "Inicial Output State of Lath" para o valor desejado (no caso, por padrão, estão o valor ). Ver figura abaixo:

propriedades_74175_estado_inicial

Ou podemos optar por criar um circuito usando pastilhas 74LS74 + outras portas lógicas básicas para incorporar uma função similar ao "Parallel Load":

FFs_D_Parallel_Load

Mais ums poucas modificações no circuito anterior e então teremos:

contador_diferente_2024_1_PL

Esta última solução ( circuito: contador_diferente_2024_1_PL.pdsprj ) exige 8 pastilhas.


Fernando Passold, em 03/05/2024.