Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA CURSO DE ENGENHARIA ELÉTRICA DISCIPLINA DE CIRCUITOS DIGITAIS II MÁQUINAS DE MEALY E MOORE 2° Trabalho (Projeto) Caroline Obregon Pilz Laura Ferreira Prof. Giovani Baratto Santa Maria, Rio Grande do Sul Julho/2015 II SUMÁRIO RESUMO ................................................................................................................................ III 1 INTRODUÇÃO COMPREENSIVA ................................................................................... 1 2 OBJETIVOS .......................................................................................................................... 2 2.1 Objetivo geral ...................................................................................................................... 2 1.2.2 Objetivos específicos ........................................................................................................ 2 3 REVISÃO DA LITERATURA ............................................................................................ 3 4 METODOLOGIA – MÁQUINA DE MOORE .................................................................. 4 4.1 Ferramentas utilizadas ....................................................................................................... 4 4.2 Desenvolvimento ................................................................................................................. 4 4.2.1 Conceitos Utilizados ........................................................................................................ 4 5 METODOLOGIA – MÁQUINA DE MEALY ................................................................. 11 5.1 Ferramentas utilizadas ..................................................................................................... 11 5.2 Desenvolvimento ............................................................................................................... 12 5.2.1 Conceitos Utilizados ...................................................................................................... 12 6 RESULTADOS .................................................................................................................... 19 7 DISCUSSÃO ........................................................................................................................ 21 8 CONCLUSÕES .................................................................................................................... 22 REFERÊNCIAS ..................................................................................................................... 23 ANEXOS ................................................................................................................................. 24 III RESUMO Neste trabalho serão abordadas as máquinas de estados finitos de Moore e de Mealy, suas características, semelhanças, diferenças e aplicações. Bem como a elaboração do projeto e simulação de uma Máquina de Moore que detecte a sequência 1000 (4 bits) e do projeto, simulação e implementação em protoboard de uma Máquina de Mealy que identifique a sequência 111 (3 bits). Para isso, utilizar-se-á o software Logisim, circuitos TTL, entre outras ferramentas de circuitos digitais. 1 * Escolheu-se a sequência 1000, pois 10002 corresponde ao número 810, que é o último dígito da matrícula de uma das componentes do grupo. 1 INTRODUÇÃO COMPREENSIVA A estrutura de uma máquina de estados (ou sequencial) é dividida em blocos de lógica combinacional e elementos de memória (flip-flops). Os blocos combinacionais, por sua vez, geram os sinais de saída e as funções de entrada (ou excitação) para os blocos de memória que fornecerão o próximo estado da máquina. As máquinas de estado podem ser classificadas em Máquina de Moore, onde a saída depende apenas do seu estado atual e Máquina de Mealy, que possui uma saída que depende de seu estado atual e de sua entrada atual. Para simular o projeto de uma Máquina de Moore que identifique a sequência 1000 * , será utilizado o software Logisim. No que se refere à Máquina de Mealy, será feito o projeto de uma máquina que identifique a sequência 111, porém este será implementado em protoboard e não apenas em nível de simulação. O projeto de um circuito sequencial costuma iniciar pela definição de seu comportamento de maneira textual, que deve ser transcrito para um diagrama de estados, de maneira a detalhar os estados existentes, as condições para trocas de estados e os valores das saídas. Pela análise do diagrama de estados é possível identificar o modelo de máquina de estados a ser seguido (Moore ou Mealy). No caso da síntese de máquina de estados, é necessário executar vários passos de um roteiro: deve-se escolher a máquina, construir uma tabela de estado/saída, escolher as variáveis de estado, construir uma tabela de transição/saída, escolher o tipo de flip-flop da memória de estado, construir uma tabela de excitação/saída, descobrir as equações de excitação e de saída e desenhar o diagrama lógico. Os bits serão recebidos serialmente pela máquina e a cada sequência encontrada, a saída será igual a 1, parte da sequência a ser identificada poderá fazer parte da sequência seguinte. 2 2 OBJETIVOS 2.1 Objetivo geral Em âmbito geral, visa-se primeiramente o entendimento do funcionamento das Máquinas de estado, de maneira que seja possível diferenciar uma Máquina de Moore de uma Máquina de Mealy. Após, visa-se o projeto e a simulação da Máquina de Moore que identifique a sequência 1000. Posteriormente, deseja-se realizar a implementação em protoboard de uma Máquina de Mealy que detecte a sequência 111. 1.2.2 Objetivos específicos Ao final do trabalho deverá ser possível executar corretamente as seguintes etapas relacionadas às Máquinas de Estado: Compreensão de seu comportamento e importância; Reconhecimento de uma Máquina de Moore; Reconhecimento de uma Máquina de Mealy; Semelhanças e Diferenças entre as máquinas Domínio do processo de Síntese; Simulação em software; Implementação em protoboard; 3 3 REVISÃO DA LITERATURA De acordo com Alexandre Gazola [1], em seu artigo “Máquinas de Estados com o Padrão de Projeto State”, as Máquinas de Estado são uma abstração recorrente em diversos tipos de sistema, constituindo um poderoso instrumento de modelagem e comunicação para usuários e desenvolvedores. Estas são uma construção extremamente comum para se modelar requisitos de diversos sistemas. Normalmente, são fáceis de desenhar (em forma de modelos) e interessantes instrumentos para comunicação e validação com os usuários por serem de simples entendimento. Para fazer a interação da interface de jogos que exploram técnicas da Inteligência Artificial com os usuários, utilizam-se várias técnicas de controle dos personagens autônomos. Uma dessas, conforme afirma César Roberto de Sousa Loureiro Júnior [2] é a máquina de estados finitos, que pode ser usada de forma a se estabelecer um padrão de ações ou execuções a partir de condições atendidas no decorrer dos jogos, o que pode levar o jogo a se tornar previsível; como também pode ser programada e configurada a fim de tornar o jogo complexo e imprevisível. A abordagem do estudo de caso do jogo Pac- Man no artigo de César Roberto, “Máquinas de Estados Finitos Aplicados a Jogos Eletrônicos” exemplifica o uso da máquina de estado finito. Um circuito sequencial tem sua saídarealimentada para a entrada, ou seja, a próxima saída de uma máquina sequencial depende das entradas atuais e da saída atual desta máquina. Estas máquinas funcionam de maneira síncrona, pois a mudança dos estados da máquina está sincronizada com um sinal de relógio. Se a saída da máquina sequencial for função apenas do estado atual, chama-se Máquina de Moore. Se a saída for função das entradas e do estado atual, chama-se Máquina de Mealy. Segundo Roberta C. de Brito [3], em seu artigo “Máquinas de estados finitos de Mealy e Moore”, uma aplicação frequentemente recomendada da Máquina de Mealy é o projeto de diálogo entre um programa (de computador) e o seu usuário. Neste caso, o diálogo poderia se dar de duas maneiras: ser comandado pelo programa ou pelo usuário. Um exemplo comum de aplicação do conceito de Máquina de Moore é o desenvolvimento de Analisadores Léxicos de compiladores ou tradutores de linguagens em geral. Basicamente, um analisador léxico é um Autômato Finito (em geral, determinístico) que identifica os componentes básicos da linguagem como, por exemplo, números, identificadores, separadores, etc. 4 4 METODOLOGIA – MÁQUINA DE MOORE 4.1 Ferramentas utilizadas Para a simulação do projeto da Máquina de Moore utilizou-se o software Logisim, que é um simulador de lógica que permite a construção de circuitos e os simula usando uma interface gráfica do usuário. Lançado sob a Licença Pública GNU, Logisim é um software livre projetado para ser executado sob o Microsoft Windows, OS X, e plataformas GNU / Linux. Seu código é inteiramente em Java usando a biblioteca de interface de usuário gráfica [4]. Nos anexos deste relatório pode-se encontrar o link para acesso e/ou download do programa. 4.2 Desenvolvimento 4.2.1 Conceitos Utilizados Para iniciar o desenvolvimento do projeto, precisa-se ter conhecimento de alguns conceitos importantes. Neste caso, é necessário entender como funciona uma Máquina de Moore. Na teoria da computação, uma máquina de Moore é um autômato de estado finito onde as saídas são determinadas pelo estado corrente apenas (e não pela entrada). O diagrama de estado para uma máquina de Moore inclui um sinal de saída para cada estado. [5] Para o processo de síntese de máquinas de estado, deseja-se chegar a um diagrama lógico, tendo como especificações o tipo de máquina, os flip-flops da memória de estado e a descrição do funcionamento da máquina por uma tabela de estado/saída. O seguinte roteiro é usado para a síntese de máquinas de estado: 1. Escolha da máquina de estado. 2. Construção da tabela de estado/saída. 3. Minimização do número de estados da tabela de estados/saída. 4. Escolha das variáveis de estado 5. Construção da tabela de transição/saída. 6. Escolha dos flip-flops da memória de estado. 7. Construção da tabela de excitação/saída. 8. Equações de excitação. 9. Equações de saída. 10. Diagrama lógico. 5 4.2.2 Síntese da Máquina 1. Escolha da máquina de estado. Estamos trabalhando com a máquina de Moore, que pode ser representada por diagramas de estado onde um círculo representa o estado atual, e uma seta representa a transição entre dois estados (atual e futuro). Dentro de cada círculo, coloca-se uma letra ou número que identifique o estado e o valor das saídas correspondentes a este estado. Em cada flecha que representa uma transição, coloca-se o valor das entradas do circuito. O diagrama de estado para a máquina de Moore que detecta a sequência 1000 é apresentado na figura 1. Figura 1 - Diagrama de estado de uma máquina de Moore que detecta a sequência 1000 2. Construir a tabela de estado/saída. A tabela de estados especifica completamente o próximo estado e saídas do circuito para qualquer possível combinação de estado atual e entradas. O diagrama de estado para a máquina de Moore que detecta a sequência 1000 é apresentado na figura 1. Tabela 1- Tabela de estado/saída para uma máquina de Moore que detecta a sequência 1000 S x z 0 1 A A B 0 B C B 0 C D B 0 D E B 0 E A B 1 S* 6 3. Minimizar o número de estados da tabela de estado/saída. Minimiza-se o número de estados eliminando os estados equivalentes 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. Neste caso a tabela de estados/saída já está minimizada. 4. Escolher as variáveis de estado. Atribui-se a cada estado (A, B, C, D, E) um valor binário que o identificará posteriormente. Como se tem 5 estados, precisa-se de uma tabela de 3 bits, pois 510 equivale a 1012, mas os estados F, G e H não importarão. Tabela 2 - Tabela de estados e combinações das variáveis de estado S Q2 Q1 Q0 A 0 0 0 B 0 0 1 C 0 1 0 D 0 1 1 E 1 0 0 )care t'don (importa não F 1 0 1 G 1 1 0 H 1 1 1 7 5. Construir a tabela de transição/ saída. Deve-se gerar a tabela de transição/saída a partir das informações contidas no diagrama de estados. Nesta etapa, unir-se-á a tabela de estados com a de combinações das variáveis. Se o número de estados for menor do que o número de combinações existentes, algumas combinações não serão utilizadas (don’t care). Tabela 3 - Tabela de transição/saída S Q2 Q1 Q0 x z 0 1 A 0 0 0 0 0 0 0 0 1 0 B 0 0 1 0 1 0 0 0 1 0 C 0 1 0 0 1 1 0 0 1 0 D 0 1 1 1 0 0 0 0 1 0 E 1 0 0 0 0 0 0 0 1 1 F 1 0 1 X X X G 1 1 0 X X X H 1 1 1 X X X Q2*Q1*Q0* 6. Escolha dos flip-flops da memória de estado. Há um conjunto de flip-flops que armazenam o estado do circuito, são as chamadas memórias de estado. Optou-se por flip-flops tipo D, pois estes resultam em uma semelhança entre as tabelas de transição e excitação. 8 7. Construir a tabela de excitação/saída. A tabela de excitação diz quais são os valores que deve haver na entrada do flip-flop para que um determinado valor seja obtido na sua saída. Tabela 4 - Tabela de excitação/saída Q2 Q1 Q0 X z 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 1 0 0 1 0 0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 X X X 1 1 0 X X X 1 1 1 X X X D2*D1*D0* 8. Encontrar as equações de excitação. As equações de excitação irão determinar o estado do circuito sequencial para o próximo ciclo de relógio. Neste caso, é possível usar o mapa de Karnaugh, caso não for possível minimizar as equações usando esse método (se o número de variáveis for grande), será necessário utilizar outro ou algum programa de minimização. D0 D1 D2 9 Tabela 5 - Tabela de excitação/saída com os bits a serem usados no mapa de Karnaugh localizados Q2 Q1 Q0 X Z 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 1 0 0 1 0 0 1 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 1 0 1 X X X 1 1 0 X X X 1 1 1 X X X D2*D1*D0* Mapas de Karnaugh D0 Q2Q1 D1 Q2Q1 D2 Q2Q1 Q0x 00 01 11 10 Q0x 00 01 11 10 Q0x 00 01 11 10 00 0 1 X 0 00 0 1 X 0 00 0 0 X 0 01 1 1 X 1 01 0 0 X 0 01 0 0 X 1 11 1 1 X X 11 0 0 X X 11 0 0 X X 10 0 0 X X 10 1 0 X X 10 0 1 X X 010 QQxD xQQxQQD 01011 xQQD 012 10 9. Encontrar as equações de saída As equações de saída descrevem o comportamento do bloco de saída epodem ser derivadas a partir da tabela de excitação/transição. Novamente, usando o mapa de Karnaugh, encontra-se: z Q2Q1 Q0 00 01 11 10 0 0 0 X 1 1 0 0 X 0 2Qz 10. Desenhar o diagrama lógico O diagrama lógico é obtido através das equações de excitação e saída. Todos os elementos de memória (flip-flops) recebem o mesmo sinal de relógio, ou seja, são síncronos. Utilizando o software Logisim pode-se verificar o comportamento do circuito através da simulação. Figura 2 - Diagrama lógico da Máquina de Moore que detecta a sequência 1000 11 4.2.3 Simulação do Projeto O diagrama lógico obtido (figura 2) foi montado e simulado no software Logisim. Se em cada borda de subida do clock, a entrada x enviar respectivamente os sinais “1”, “0”, “0”, “0”, a saída z responde com sinal alto, ou seja, 1, indicando que a sequência foi identificada. 5 METODOLOGIA – MÁQUINA DE MEALY 5.1 Ferramentas utilizadas Para simulação prévia utilizou-se o software Logisim. Para a implementação em protoboard da Máquina de Mealy utilizaram-se: 1 protoboard Jumpers/fios Circuitos Integrados: o 7474 (Flip-Flops tipo D) o 7408 (portas lógicas and) o 7432 (portas lógicas or) 1 LED 3 Resistores 2 Botões 1 Arduino 12 5.2 Desenvolvimento 5.2.1 Conceitos Utilizados Assim como discutido na construção da Máquina de Moore, para iniciar o desenvolvimento do projeto, precisa-se ter conhecimento de alguns conceitos importantes. Uma máquina de Mealy é uma máquina de estado finito que produz um resultado (saída de dados) baseando-se no estado em que se encontra e na entrada de dados. Isto significa que o diagrama de estados irá incluir tanto o sinal de entrada como o de saída para cada vértice de transição. Em contraste, a saída de uma máquina de Moore depende apenas do estado atual da máquina, sendo que as transições não possuem qualquer sinal em anexo. [5] Para a síntese da máquina será utilizado o mesmo roteiro de 10 passos. 5.2.2 Síntese da Máquina 1. Escolha da máquina de estado. Estamos trabalhando com a máquina de Mealy. Assim como as máquinas de Moore as de Mealy também podem ser representadas por diagramas de estado onde um círculo representa o estado atual, e uma seta representa a transição entre dois estados (atual e futuro). Dentro de cada círculo, também coloca-se uma letra ou número que identifique o estado, porém agora em cada flecha, que representa uma transição, coloca-se o valor das entradas e das saídas. 2. Construir a tabela de estado/saída. O diagrama de estado para a máquina de Mealy que detecta a sequência 111 é apresentado na figura 3. A tabela de estados está representada na Tabela 6. 13 Figura 3 - Diagrama de estado de uma máquina de Moore que detecta a sequência 1000 A tabela 6 apresenta a tabela de estado para a máquina de Mealy que detecta a sequência 111. O uso de uma Máquina de Mealy normalmente leva a uma redução no número de estados em comparação a uma de Moore Tabela 6- Tabela de estado/saída para uma máquina de Moore que detecta a sequência 1000 S X 0 1 A A,0 B,0 B A,0 C,0 C A,0 C,1 S*,z 3. Minimizar o número de estados da tabela de estado/saída. A tabela de estados/saída já está minimizada. 4. Escolher as variáveis de estado. Atribui-se a cada estado (A, B, C) um valor binário que o identificará posteriormente. Como temos 3 estados, precisamos de uma tabela de 2 bits, pois 310 equivale a 112, mas os estados D não importará. 14 Não importa (don’t care) { Tabela 7 - Tabela de estados e combinações das variáveis de estado 5. Construir a tabela de transição/ saída. Tabela 8 - Tabela de transição/saída Q1 Q0 X 0 1 0 0 00,0 01,0 0 1 00,0 10,0 1 0 00,0 10,1 1 1 X X Q1*Q0* 6. Escolha dos flip-flops da memória de estado. Optou-se por flip-flops tipo D, pelo mesmo motivo que na Máquina de Moore: as tabelas de excitação e transição são equivalentes. 7. Construir a tabela de excitação/saída. Tabela 9 - Tabela de excitação/saída Q1 Q0 X 0 1 0 0 00,0 01,0 0 1 00,0 10,0 1 0 00,0 10,1 1 1 x x D1*D0* S Q1 Q0 A 0 0 B 0 1 C 1 0 D 1 1 D0 D1 15 8. Encontrar as equações de excitação. Usando o mapa de Karnaugh, encontram-se as equações de excitação. Tabela 10 - Tabela de excitação/saída com os bits a serem usados no mapa de Karnaugh localizados Q1 Q0 X 0 1 0 0 00,0 01,0 0 1 00,0 10,0 1 0 00,0 10, 1 1 1 x x D1*D0* Mapas de Karnaugh D0 Q1Q0 D1 Q1Q0 x 00 01 11 10 x 00 01 11 10 0 0 0 X 0 0 0 0 X 0 1 1 0 X 0 1 0 1 X 1 xQQD 010 xQxQD 101 16 9. Encontrar as equações de saída Novamente, utilizando o mapa de Karnaugh, encontra-se a equação de saída. Mapa de Karnaugh z Q2Q1 Q0 00 01 11 10 0 0 0 X 0 1 0 0 X 1 xQz 1 10. Desenhar o diagrama lógico Figura 4 - Diagrama lógico de uma Máquina de Mealy que detecta a sequência 111 17 5.2.3 Simulação do Projeto A simulação prévia do projeto foi feita utilizando o software Logisim. O diagrama da figura 4 foi montado e simulado, a saída z responde com sinal alto, isto é, sinal 1, toda vez que a entrada x envia sinal 1 contínuo a cada duas bordas de subida do clock. Detectando assim, a sequência 111. 5.2.4 Implementação do Projeto Depois do sucesso na simulação, partiu-se para a implementação do projeto em protoboard. Primeiramente coletou-se todo o material necessário e então seguiu-se o circuito (diagrama lógico) representado na figura 4. Precisou-se do CI 7474 (figura 5), que contém dois flip-flops D, do CI 7408 (figura 6) que contém 4 portas lógicas and e do CI 7432 (figura 7) que contém 4 portas lógicas or. Figura 5 - CI 7474 Figura 6 - CI 7408 Figura 7 - CI 7432 Ao longo do processo de montagem foi-se construindo um novo diagrama lógico (figura 8), onde a porta and de três entradas foi desmembrada em duas e a saída z foi ligada a saída da porta and que possuía a mesma equação “ 1Qx ”. A pinagem também foi inserida para tornar mais rápida a identificação de possíveis problemas no circuito montado. Essas simplificações foram feitas visando-se otimizar o projeto. A plataforma Arduino foi utilizada para auxiliar como clock, construiu-se um código que envie para o pino 13 do Arduino um sinal alternado 18 entre alto e baixo. Dessa forma conectou-se sincronamente os clocks do CI 7474 e então estes ao pino 13 do Arduino. O código utilizado está representado a seguir: void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(500); digitalWrite(13, LOW); delay(500); } Figura 8 - Diagrama Lógico com Pinagem 19 Saída z - Clock - Entrada x - 6 RESULTADOS 6.1 Resultados do Projeto de Mealy Quanto à simulação, tem-se como resultado o sucesso em todas as etapas, pois o circuito respondeu como se esperava, a saída z responde com sinal alto, isto é, sinal 1, toda vez que a entrada x envia sinal 1 consecutivo a cada duas bordas de subida do clock. Detectando assim, a sequência 111, o que fica claro na carta de tempo da figura 10.Figura 9 - Carta de Tempo do Funcionamento da Máquina de Mealy que detecta a sequência 111 Pode-se perceber que no caso do modelo de Mealy, as saídas dependem não somente do estado em que o circuito se encontra, mas também do valor atual das entradas, de modo que se estas se alterarem ainda antes da troca de estados, as saídas do circuito podem se alterar. Este é o fator responsável pelo sinal alto da saída z na segunda borda de subida do clock, pois quando se coloca 1 na entrada mesmo antes de uma borda de subida, este valor já está sendo considerado, também se percebe este fato ao enviar 0 na entrada, pois a saída z imediatamente vai para 0, não aguarda a borda de subida. Os resultados obtidos na implementação em protoboard corresponderam à simulação, da mesma forma ao se pressionar o botão, após dois ciclos de clock o LED relacionado à saída z respondeu com sinal alto, portanto acendendo. 6.2 Resultados do Projeto de Moore Quanto à simulação, também se tem como resultado o sucesso em todas as etapas, pois o circuito respondeu como se esperava, a saída z responde com sinal alto, isto é, sinal 1, toda vez que a entrada x envia a sequência de sinais “1”, “0”, “0”, “0”, isto é, exatamente no quarto ciclo de clock, como pode-se perceber na figura 11. 20 Clock - Saída z- Entrada x - Figura 10 - Carta de Tempo do Funcionamento da Máquina de Moore que detecta a sequência 1000 No caso do modelo de Moore, as saídas dependem única e exclusivamente do estado em que o circuito se encontra, de modo que uma mudança nos valores das entradas só toma efeito após a próxima borda do relógio, observando com atenção a carta de tempo da figura isto fica comprovado. Este é o fator responsável pela plena sincronia dos sinais de saída z com as bordas de subida do clock, o que evidencia a principal diferença da Máquina de Moore quando comparada com a Máquina de Mealy. Figura 11 - Foto do Circuito Implementado em Protoboard 21 7 DISCUSSÃO O processo de desenvolvimento dos projetos demandou um tempo de dedicação para o planejamento, construção e revisão das etapas vencidas. Durante o processo de simulação da Máquina de Moore, estudou-se cuidadosamente a construção do diagrama de estados e de todos os passos do roteiro de síntese, mas ao final o sucesso foi pleno, contemplado ainda pelo entendimento de tudo o que aconteceu com a máquina nas situações em que foi testada. Em relação à Máquina de Mealy, na fase de simulação, todo o desenvolvimento correu como o esperado, tanto pelo que se havia estudado, quanto pelo que se objetivava. Na fase de implementação em protoboard encontrou-se uma dificuldade para observar o resultado esperado, pois o LED que estava relacionado à saída z mantinha-se aceso, independente da entrada. Montou-se novamente o circuito várias vezes, por volta de 6, na expectativa de solucionar o erro. Verificou-se todo o roteiro, refez-se todo o processo, analisou-se o diagrama lógico, refez-se a simulação e esta não apresentava qualquer erro. Mediu-se as tensões em todos os componentes do circuito e nada parecia apresentar defeito. Ainda na investigação do problema, decidiu-se por substituir os CI’s e isto resolveu o infortúnio. Concluiu-se que algum dos Circuitos Integrados utilizados deveria estar apresentando alguma irregularidade que não se chegou a identificar. Por fim, o projeto implementado funcionou perfeitamente como se esperava e o mesmo foi apresentado ao professor. 22 8 CONCLUSÕES O circuito sequencial difere de um circuito restritamente combinacional na medida em que o próximo estado depende não só das entradas atuais, como também do estado atual. Logo, aumentam-se as possibilidades de projeto com o uso de circuitos sequenciais e o funcionamento deles pode ser representado por uma máquina de estado. É possível representar essa máquina pelo circuito sequencial síncrono e implementar de duas maneiras: Máquina de Moore e Máquina de Mealy. Após concluir todas as etapas do trabalho proposto, observou-se as características das máquinas de estados, bem como suas aplicações e vantagens. Especificou-se o funcionamento das máquinas de Moore e Mealy, esclarecendo as semelhanças e as diferenças entre as mesmas e evidenciando seu processo de análise. Na simulação obteve-se resultados satisfatórios com as duas máquinas, correspondendo ao que foi estudado teoricamente. Após simular, implementou-se em protoboard o circuito equivalente da máquina de Mealy. Assim, foi possível adquirir experiência em montagem de componentes (como CI’s, Jumpers, LED’s, etc), conhecer e manusear cada ferramenta utilizada para montar o circuito. Certamente uma prática muito interessante e de grande crescimento didático. Portanto, atingiu-se os objetivos almejados tanto na parte teórica, como na parte prática, e pode-se concluir que o trabalho foi um sucesso aquém do esperado. 23 REFERÊNCIAS [1] GAZOLA, A. Máquinas de Estado com o padrão de projeto State”.. Disponível em: <http://www.univale.com.br/unisite/mundo-j/artigos/51ProjetoState.pdf> Acesso em: 4 de julho de 2015. [2] LOUREIRO JR, C. R. S.; BASTOS, E.; de MORAES, M.C.K; GONÇALVES, P. J. C.R. “Máquinas de Estados Finitos Aplicados a Jogos Eletrônicos”. Disponível em: <http://re.granbery.edu.br/artigos/NTAx.pdf> Acesso em: 4 de julho de 2015. [3] de BRITO, R.; MARTENDA, M. D.; de OLIVEIRA, H. E. M. “Máquinas de estados finitos de Mealy e Moore”. Disponível em: <http://www.inf.ufsc.br/~barreto/trabaluno/TC_roberta_diogo_henrique.pdf > Acesso em: 4de julho de 2015. [4] Logisim - Wikipedia, the free encyclopedia. Disponível em <http://en.wikipedia.org/wiki/Logisim> Acesso em: 26 de maio de 2015. [3] Categoria:Teoria da computação – Wikipédia, a enciclopédia livre. Disponível em: <https://pt.wikipedia.org/wiki/M%C3%A1quina_de_Moore> Acesso em: 02 de julho de 2015. [5] Máquina de Mealy – Wikipédia, a enciclopédia livre. Disponível em: https://pt.wikipedia.org/wiki/M%C3%A1quina_de_Mealy Acesso em: 02 de julho de 2015 24 ANEXOS Link para acesso e/ou download do software Logisim http://www.cburch.com/logisim/pt/download.html
Compartilhar