Método sistematizado de síntese
1- Analisar as especificações do circuito (descrição verbal), obtendo um primeiro diagrama de estados (representados por identificadores).
2- Minimizar o número de estados, eliminando eventuais estados redundantes. Um estado é redundante se existir outro estado equivalente no diagrama, isto é, se existir outro estado que para as mesmas especificações das entradas apresente o mesmo estado seguinte e as mesmas especificações de saída.
3- Proceder à codificação de estados. Nesta fase determina-se, em primeiro lugar, o número de células da unidade de memória. Normalmente, considera-se o expoente da menor potência de base 2 (2n ) que seja maior ou igual ao número de estados do circuito. Refira-se que podem existir situações em que um número maior de células de memória pode conduzir a um circuito globalmente mais simples.
Em segundo lugar, é necessário atribuir um código binário a cada um dos estados (código de estado). A atribuição dos códigos de estado condiciona a complexidade da lógica combinacional envolvente (descodificador de estado seguinte e descodificador de saída). As “regras” a seguir enunciadas tendem a minimizar a complexidade destes circuitos.
Regras:
1. Escolher para o estado inicial do circuito um código binário facilmente obtido através da
inicialização assíncrona do circuito (tudo a 0’s ou 1’s);
2. Tentar associar aos bits ou conjunto de bits do código de estado um
significado relacionado com as entradas ou saídas;
3. Minimizar o número de bits do código de estado que mudam em cada
transição entre estados;
4- Construir a tabela de estados para flip-flops D.
5- Determinar os mapas de Karnaugh para as variáveis de excitação dos flip-flops D e para as variáveis de saída.
6- Obter, se necessário, os mapas de karnaugh para as variáveis de excitação dos flip-flops J-K, a partir dos mapas de karnaugh das variáveis de excitação dos flip-flops D. Normalmente, a utilização de flip-flops J-K conduz a circuitos de menor complexidade.
7- Selecionar o tipo de flip-flops (D ou J-K) e obter as expressões simplificadas das funções de excitação e funções de saída.
8- Desenhar o diagrama lógico.
9- Testar o circuito utilizando eventualmente um simulador.
Exemplo: Detector de uma sequência de bits (Máquina de Moore).
Especificação funcional: Projetar um circuito sequencial síncrono que detecte a ocorrência de um determinado padrão de bits numa sequência de valores de entrada. O circuito é constituído pela entrada de dados, X, e produz uma única saída Z que é colocada a 1 quando nas últimas três vertentes do sinal de relógio é detectada a sequência de bits 110.
Diagrama de blocos:
Construção do diagrama de estados
Trata-se de uma máquina de Moore, já que a saída depende apenas do estado do sistema. De acordo com as especificações, se nas últimas três vertentes do sinal de relógio tiver sido detectada a sequência 110 a saída é colocada a 1.
Considera-se um estado inicial A, ao qual se associa o facto de nenhuma sub-sequência de 110 ter sido detectada. Se X=0, o estado do sistema mantém-se.
Se X-1, o sistema transita para o estado B (detectada a sequencia 1)
Do estado B, se X=1, o sistema transita para o estado C (detectada a sequência 11), se X=0, o sistema transita para o estado A (estado inicial).
Se o estado atual é C (detectada a sequência 11) e X=1 o sistema mantém-se no mesmo estado C (detectada a sequência 11). Se X=0, o sistema transita para o estado D (detectada a sequência 110) colocando a saída Z a 1.
Se o estado atual é D (detectada a sequência 110) a saída Z está a 1. Se X=0, o sistema transita para o estado A (estado inicial). Se X=1, o sistema transita para o estado B (detectada a sequência 1).