·

Ciência da Computação ·

Sistemas Digitais

· 2022/1

Envie sua pergunta para a IA e receba a resposta na hora

Fazer Pergunta

Texto de pré-visualização

Sistemas Digitais Aula 5-5 Projetar FSMs Prof. Dr. Stefan Michael Blawid sblawid@cin.ufpe.br SD - §5 Circuitos Sequencias 2 Tópicos Recapitulação Etapas básicas de projeto Outros Exemplos Atribuição de estados Modelando FSMs no Verilog SD - §5 Circuitos Sequencias 3 Tópicos Recapitulação Etapas básicas de projeto Outros Exemplos Atribuição de estados Modelando FSMs no Verilog SD - §5 Circuitos Sequencias 4 Etapas Básicas de Projeto Vamos introduzir as técnicas de projeto de circuitos sequenciais usando um exemplo Projete um circuito que atenda às seguintes especificações: O circuito possui uma entrada, w, e uma saída, z Todas as mudanças no circuito ocorrem na borda positiva do sinal de clock A saída será z=1 se a entrada w foi 1 durante os dois ciclos de clock imediatamente anteriores ao atual A partir dessa especificação é óbvio que z não pode depender somente do valor de w SD - §5 Circuitos Sequencias 5 Diagrama de estados Para o exemplo anterior, vamos assumir que o estado inicial é chamado de A Enquanto w=0, o circuito deve permanecer no mesmo estado e sua saída z=0 Quando w=1, o circuito deve transitar para um novo estado (B) para “lembrar” dessa informação Essa transição deve ocorrer na próxima borda positiva (de subida) do sinal de clock SD - §5 Circuitos Sequencias 6 Diagrama de Estados Quando estiver no estado B e w=1, circuito deve transitar para um novo estado (C) para “lembrar” dessa informação Diagrama de estados completo: SD - §5 Circuitos Sequencias 7 Tabela de Estados|Saídas SD - §5 Circuitos Sequencias 8 Tabela Transições|Saídas Atribuição de estados A tabela mostra a adição do estado y2y1=11. Apesar de não ser utilizado, é necessário para completar o problema SD - §5 Circuitos Sequencias 9 Transições e Mapas de Saídas SD - §5 Circuitos Sequencias 10 Circuito SD - §5 Circuitos Sequencias 11 Diagrama de Tempo SD - §5 Circuitos Sequencias 12 Tópicos Recapitulação Etapas básicas de projeto Outros Exemplos Atribuição de estados Modelando FSMs no Verilog SD - §5 Circuitos Sequencias 13 Projeto 1 Projetar um circuito de segurança de um carro. Toda vez que a chave é colocada na ignição o computador de bordo do carro ativará este circuito. O chip colocado na chave deverá enviar um código identificador ao computador de bordo para que o carro permaneça ligado. Suponha que ó código seja 1101. SD - §5 Circuitos Sequencias 14 Projeto 1 SD - §5 Circuitos Sequencias 15 Projeto 2 Projetar um circuito sequencial que converta o acionamento de um botão em um sinal de um ciclo de duração, independentemente do tempo que o botão fique pressionado. SD - §5 Circuitos Sequencias 16 Projeto 2 SD - §5 Circuitos Sequencias 17 Projeto 3: Contador Projete um contador de 2 bits que faça a contagem: Na sequência 0,1,2,3,0,… se for acionado um dado sinal de controle U=1, ou Na sequência 0,3,2,1,0,… se for acionado um dado sinal de controle U=0 Contador binário de 2 bits progressivo/regressivo: A entrada de U controla a direção da contagem Uma entrada de RESET coloca o contador no valor (inicial) zero O contador contará nas transições positivas do sinal de clock Projetar esse contador usando uma máquina de estados sequencial síncrona com: Flip-flops D, T e JK SD - §5 Circuitos Sequencias 18 Diagrama de Estados SD - §5 Circuitos Sequencias 19 Tabela de Estados|Saídas SD - §5 Circuitos Sequencias 20 Tabela de Transições|Saídas Escolhendo A=00, B=01, C=10 e D=11 faz sentido pois as saídas Z1Z0 se tornam as saídas dos flip-flops diretamente. SD - §5 Circuitos Sequencias 21 Implementação Usando Flip-Flops D Quando flip-flops D são utilizados para implementar uma máquina de estados finita, os próximos estados na tabela de estados correspondente são, exatamente, os sinais que devem ser aplicados às entradas D. Portanto, mapas de Karnaugh para implementar as entradas podem ser montados diretamente a partir da tabela de estados Esse não é o caso dos outros tipos flip-flops, como o 
 T e o JK SD - §5 Circuitos Sequencias 22 Transições SD - §5 Circuitos Sequencias 23 Circuito SD - §5 Circuitos Sequencias 24 Implementação Com Outras Flip-Flops Os próximos estados ainda devem ser “manipulados” antes de conectados às entradas dos flip-flops JK e T Uma tabela de transição geralmente é utilizada nesses casos: Essa tabela simplesmente lista as entradas necessárias para uma dada mudança de estado A tabela de transição é usada em conjunto com a tabela de estados para construir a tabela de excitação A tabela de excitação lista as entradas dos flip-flops que devem ser excitadas para causar a transição para o próximo estado SD - §5 Circuitos Sequencias 25 Tabelas de Transições SD - §5 Circuitos Sequencias 26 Flip-Flop T Usar as entradas da tabela de transição para derivar as entradas dos flip-flops baseando-se na tabela de estados. SD - §5 Circuitos Sequencias 27 Equações de Excitações e Saídas SD - §5 Circuitos Sequencias 28 Circuito SD - §5 Circuitos Sequencias 29 Flip-Flop JK Deve-se usar as entradas da tabela de transição para obter as entradas dos flip-flops baseando-se na tabela de estados; Esse procedimento deve ser adotado para cada entrada J e K de cada flip-flop SD - §5 Circuitos Sequencias 30 Equações de Excitações SD - §5 Circuitos Sequencias 31 Equações de Excitações SD - §5 Circuitos Sequencias 32 Circuito SD - §5 Circuitos Sequencias 33 Tópicos Recapitulação Etapas básicas de projeto Outros Exemplos Atribuição de estados Modelando FSMs no Verilog SD - §5 Circuitos Sequencias 34 Desafio Para todos os circuitos sequenciais mostrados até agora uma atribuição de estados simples e direta foi realizada Uma atribuição de estados diferente poderia conduzir a uma solução mais simples? SD - §5 Circuitos Sequencias 35 Atribuição Alternativa Se mudarmos a atribuição de estados de forma que A=00, B=01, C=11 e 10 seja o estado não utilizado a tabela de estados se tornará: SD - §5 Circuitos Sequencias 36 Implementação Simplificada SD - §5 Circuitos Sequencias 37 Compare com a Implementação Anterior SD - §5 Circuitos Sequencias 38 Atribuição de Estados Geralmente, os circuitos são muito maiores que o exemplos mostrados até aqui e, atribuição de estados diferentes podem gerar uma diferença grande de custo na implementação É frequentemente impossível (na verdade, impraticável) achar a melhor atribuição para um circuito grande, pois o número de estados também será grande Ferramentas CAD geralmente fazem a atribuição de estados usando técnicas heurísticas SD - §5 Circuitos Sequencias 39 Três Regras Não garante uma solução mínima Atribuições serão adjacentes para estados que diferem em apenas uma variável de estado 1. Estados que têm o mesmo próximo estado para uma dada entrada devem ter atribuições adjacentes 2. Estados que são o próximo estado de um mesmo estado devem ter atribuições adjacentes 3. Estados que têm a mesma saída para uma dada entrada devem ter atribuições adjacentes (agrupamento de 1’s no mapa de Karnaugh da saída) SD - §5 Circuitos Sequencias 40 Regras #1 e #2 1. Estados que têm o mesmo próximo estado para uma dada entrada devem ter atribuições adjacentes 2. Estados que são o próximo estado de um mesmo estado devem ter atribuições adjacentes SD - §5 Circuitos Sequencias 41 Observações Os seguintes detalhes devem ser notados: Atribuir ao estado inicial o valor ‘0’ (i.e. o estado inicial deve ter todas as saídas dos flip-flops iguais a zero) Primeiramente, satisfazer a regra #1 e múltiplas ocorrências da regra #2 Se, para atender as regras, for necessário que 3 ou 4 estados sejam adjacentes coloque esses estados dentro de um grupo de 4 células adjacentes no mapa de Karnaugh A regra #3 é menos importante que as regras #1 e #2 a menos que o circuito tenha múltiplas saídas SD - §5 Circuitos Sequencias 42 Exemplo Detector da sequência 101 Uma máquina de Moore SD - §5 Circuitos Sequencias 43 Exemplo: Atribuição de Estados Duas variáveis de estado: y1y0 De acordo com as regras, A=00 1. {A,C}, {A,D}, {A,B}, {B,D} 2. {A,B}, {B,C}, {A,D} 3. {A,B,C} Outra boa atribuição A=00, B=11, C=10, D=01 SD - §5 Circuitos Sequencias 44 Codificação one-hot Uma possibilidade de atribuição de estados é fazer com que número de estados seja igual ao número de variáveis de estado Para cada estado apenas uma das variáveis de estado será 1 A variável cujo valor será 1 é denominada hot Método de codificação one-hot Aumenta o número de flip-flops necessários para a implementação, mas tende a resultar em expressões de saída mais simples Expressões de saída mais simples resultam em circuitos mais rápidos já que haverá uma menor propagação do atraso das saídas dos flip-flops até as saídas finais do circuito seqüencial Métodos preferidos para implementação de FSMs em FPGAs SD - §5 Circuitos Sequencias 45 Tópicos Recapitulação Etapas básicas de projeto Outros Exemplos Atribuição de estados Modelando FSMs no Verilog SD - §5 Circuitos Sequencias 46 Controlador de Janela com Botão de Pressão SD - §5 Circuitos Sequencias 47 Abordagem de Modelagem Defina dois sinais do tipo reg: current_state, next_state Escolha uma codificação de estado Use três blocos de procedimentos separados para descrever: Memória de estado Lógica do próximo estado Lógica de saída SD - §5 Circuitos Sequencias 48 Verilog Model SD - §5 Circuitos Sequencias 49 One-hot Encoding A codificação de estado pode ser facilmente alterada. Apenas o tamanho do registro dos dois sinais de estado precisa ser alterado e os parâmetros adaptados. Aqui a codificação "one-hot" preferida para a síntese FPGA: reg[1:0] current_state, next_state; parameter w_closed = 2´b01, w_open = 2´b10; SD - §5 Circuitos Sequencias 50 Sugestões de Leitura John F. Wakerly, “Digital Design: Principles and Practices”, Pearson Education, 2017 Capítulos 7.7 Neal S. Widmer, Gregoy L. Moss, Ronald J. Tocci “Digital Systems: Principles and Applications”, Morgan Kaufmann, Pearson Education, 2018 Capítulos 7.9 - 7.14, 7.22, 10 Charles H. Roth, Lizy Kurian John, and Beyond Kil Lee, “Digital Systems Design Using Verilog”, Cengage Learning, 2015 Capítulos 1.9 Brock J. LaMeres, “Quick Start Guide to Verilog”, Springer, 2019 Capítulos: 8 »Wissen schafft Brücken.«