quinta-feira, 17 de novembro de 2011

Síntese de Circuitos

O   procedimento   para   o   projeto   (síntese)   de   um   circuito   sequencial   síncrono,   a   partir   da   descrição   verbal   do funcionamento do circuito, é o procedimento inverso ao realizado no processo de análise deste tipo de circuitos.

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).

Codificação dos estados 
Existem quatro estado distintos, A, B, C e D, sendo por isso necessário 2 bits ( 2 células de memória – Q1, Q0) para codificar cada um dos estados.

Nenhum comentário:

Postar um comentário