Tutorial Prático de FSM: Projeto de Controle de Semáforo
Este tutorial aborda o desenvolvimento de um projetoIntrodução ao SystemVerilog: História e EvoluçãoDescubra a trajetória do SystemVerilog, sua origem a partir do Verilog, e os marcos que transformaram a verificação de hardware na indústria digital. prático de Máquina de Estado Finito
Máquinas de Estado Finito (FSMs): Diagramas de estado, tabelas de transição e otimização de estadosAprenda a criar diagramas de estado e tabelas de transição e otimize FSMs para circuitos sequenciais com clareza e eficiência. (FSM), utilizando como exemplo o controle de um semáforo. O objetivo é fornecer uma visão aplicada de como projetar e implementar uma FSM, ilustrando de forma clara os principais conceitos envolvidos.
Visão Geral🔗
Uma Máquina de Estado FinitoMáquinas de Estado Finito (FSMs): Diagramas de estado, tabelas de transição e otimização de estadosAprenda a criar diagramas de estado e tabelas de transição e otimize FSMs para circuitos sequenciais com clareza e eficiência. (Finite State Machine) é um modelo matemático de computação que transita entre estados pré-definidos a partir de entradas (ou sinais de controle) e das condições momentâneas do sistema. No contexto de eletrônica digital
Introdução à Eletrônica Digital: Conceitos Básicos e AplicaçõesDescubra os conceitos e aplicações essenciais da Eletrônica Digital, do funcionamento de sinais binários aos transistores, e comece sua jornada tecnológica., as FSMs são amplamente utilizadas para controlar sequências lógicas de eventos em sistemas embarcados, microcontroladores, e até em circuitos mais complexos como FPGAs.
Características Principais
- As FSMs
Máquinas de Estado Finito (FSMs): Diagramas de estado, tabelas de transição e otimização de estadosAprenda a criar diagramas de estado e tabelas de transição e otimize FSMs para circuitos sequenciais com clareza e eficiência. são compostas por um conjunto de estados.
- Há transições definidas entre esses estados, geralmente disparadas por sinais de entrada ou condições temporais.
- O comportamento de saída pode ser definido de duas formas:
- FSM do tipo Moore
Máquinas de Estado Finito (FSMs): Tipos: Moore e Mealy (diferenças e usos)Explore as bases das FSMs e aprenda as diferenças entre as máquinas Moore e Mealy, fundamentais para circuitos sequenciais e sistemas digitais.: Saídas dependem apenas do estado atual.
- FSM do tipo Mealy
Máquinas de Estado Finito (FSMs): Tipos: Moore e Mealy (diferenças e usos)Explore as bases das FSMs e aprenda as diferenças entre as máquinas Moore e Mealy, fundamentais para circuitos sequenciais e sistemas digitais.: Saídas dependem do estado atual e das entradas.
- FSM do tipo Moore
Para ilustrar, faremos um exemplo de um semáforo simples em um cruzamento de uma única via.
Definição do Problema: Semáforo🔗
Imagine um semáforo com três indicações: Vermelho, Verde e Amarelo. A lógica básica de funcionamento é:
1. Vermelho → aguarda alguns segundos, então muda para Verde.
2. Verde → aguarda alguns segundos, então muda para Amarelo.
3. Amarelo → aguarda alguns segundos, então volta para Vermelho.
As restrições de tempo (ou pulsos de clockFlip-Flops e Latches: Tipos: SR, JK, D, T (funcionamento e clock)Aprenda os conceitos de Flip-Flops e Latches, incluindo tipos SR, JK, D e T, além do impacto do clock na sincronização de circuitos digitais.) podem variar conforme a aplicação. Por exemplo, podemos desejar:
- Vermelho: 5 segundos
- Verde: 4 segundos
- Amarelo: 1 segundo
Para simplificar, poderemos considerar cada segundo como “1 pulso de clockFlip-Flops e Latches: Tipos: SR, JK, D, T (funcionamento e clock)Aprenda os conceitos de Flip-Flops e Latches, incluindo tipos SR, JK, D e T, além do impacto do clock na sincronização de circuitos digitais.” ou contar pulsos que indiquem essas durações.
Diagrama de Estados🔗
Segue um diagrama conceitual em que cada estado representa a cor do semáforo acesa. As transições ocorrem após um tempo pré-estabelecido (contagemRegistradores e Contadores: Contadores síncronos e assíncronos: sequências personalizadasAprenda as diferenças entre contadores assíncronos e síncronos, e descubra como utilizar sequências personalizadas para otimizar sistemas digitais. interna de pulsos ou outro sinal de temporização).
- VERMELHO: primeiro estado (inicial).
- VERDE: ativado após o tempo definido para o sinal vermelho expirar.
- AMARELO: ativado após o tempo definido para o sinal verde expirar.
- Em seguida, retorna ao VERMELHO e o ciclo se repete.
Este diagrama é de alto nível e não representa detalhes de hardware específicos, mas orienta o projeto lógico.
Tabela de Estados e Transições🔗
Para projetar a FSM de forma sistemática, podemos fazer uma tabela de transições, listando o estado atual, a condição que dispara a mudança e o estado seguinte. Abaixo, um exemplo simplificado:
Estado Atual | Condição | Próximo Estado | Saída (Se Moore) |
---|---|---|---|
VERMELHO | Tempo_Vermelho_OK | VERDE | Sinal Vermelho=0, Verde=1, Amarelo=0 (no instante de próxima saída) |
VERDE | Tempo_Verde_OK | AMARELO | Sinal Vermelho=0, Verde=0, Amarelo=1 |
AMARELO | Tempo_Amarelo_OK | VERMELHO | Sinal Vermelho=1, Verde=0, Amarelo=0 |
Observação:
- Em uma FSM do tipo Moore
Máquinas de Estado Finito (FSMs): Tipos: Moore e Mealy (diferenças e usos)Explore as bases das FSMs e aprenda as diferenças entre as máquinas Moore e Mealy, fundamentais para circuitos sequenciais e sistemas digitais., as saídas dependem somente do estado atual.
- Em uma FSM do tipo Mealy
Máquinas de Estado Finito (FSMs): Tipos: Moore e Mealy (diferenças e usos)Explore as bases das FSMs e aprenda as diferenças entre as máquinas Moore e Mealy, fundamentais para circuitos sequenciais e sistemas digitais., haveria também a possibilidade de algum fator externo (como botão de pedestre ou sensor) mudar o comportamento das saídas durante o estado.
Etapas de Projeto🔗
Definir Entradas e Saídas
- Entradas: No caso de um semáforo simples, a entrada principal pode ser um pulso de clock
Flip-Flops e Latches: Tipos: SR, JK, D, T (funcionamento e clock)Aprenda os conceitos de Flip-Flops e Latches, incluindo tipos SR, JK, D e T, além do impacto do clock na sincronização de circuitos digitais. ou sinal de temporizador.
- Saídas: As três luzes (Vermelho, Verde, Amarelo). Podemos representar cada cor por um bit
Sistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. de saída ou linha de controle.
Selecionar o Tipo de FSM
- Moore
Máquinas de Estado Finito (FSMs): Tipos: Moore e Mealy (diferenças e usos)Explore as bases das FSMs e aprenda as diferenças entre as máquinas Moore e Mealy, fundamentais para circuitos sequenciais e sistemas digitais.: Geralmente mais simples de projetar e depurar, pois as saídas variam somente quando o estado muda.
- Mealy
Máquinas de Estado Finito (FSMs): Tipos: Moore e Mealy (diferenças e usos)Explore as bases das FSMs e aprenda as diferenças entre as máquinas Moore e Mealy, fundamentais para circuitos sequenciais e sistemas digitais.: Útil quando a saída precisa reagir imediatamente a variações externas, sem aguardar o próximo pulso de clock
Flip-Flops e Latches: Tipos: SR, JK, D, T (funcionamento e clock)Aprenda os conceitos de Flip-Flops e Latches, incluindo tipos SR, JK, D e T, além do impacto do clock na sincronização de circuitos digitais..
Para um semáforo básico, utilizaríamos o modelo MooreMáquinas de Estado Finito (FSMs): Tipos: Moore e Mealy (diferenças e usos)Explore as bases das FSMs e aprenda as diferenças entre as máquinas Moore e Mealy, fundamentais para circuitos sequenciais e sistemas digitais. por ser mais direto e previsível.
Atribuir Códigos para Cada Estado
Como na maioria dos projetosIntrodução ao SystemVerilog: História e EvoluçãoDescubra a trajetória do SystemVerilog, sua origem a partir do Verilog, e os marcos que transformaram a verificação de hardware na indústria digital. digitais, é comum codificar cada estado em binário. Exemplo (3 estados = 2 bits são suficientes, mas aqui ilustramos 2 bits e ignoramos o 4º estado não usado):
Estado | Código Binário |
---|---|
VERMELHO | 00 |
VERDE | 01 |
AMARELO | 10 |
Criar a Lógica de Transição
A lógica de transição determina qual será o próximo estado (próximo valor de bitsSistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos.) em função do estado atual e do sinal de tempo atingido. Por exemplo, se estamos em VERMELHO (00) e o tempo do vermelho já expirou, vamos para VERDE (01); caso contrário, continuamos em VERMELHO (00) até que o tempo seja concluído.
Implementar a Lógica de Saída
Para uma FSM do tipo MooreMáquinas de Estado Finito (FSMs): Tipos: Moore e Mealy (diferenças e usos)Explore as bases das FSMs e aprenda as diferenças entre as máquinas Moore e Mealy, fundamentais para circuitos sequenciais e sistemas digitais., as saídas estão relacionadas apenas ao estado atual. Assim, ao estarmos no estado VERMELHO (00), acenderemos apenas a luz vermelha, no VERDE (01) ligamos apenas a luz verde, etc.
Benefícios e Possíveis Extensões🔗
- Simplicidade: Um semáforo básico exemplifica bem como uma FSM funciona e como cada saída depende de um estado.
- Escalabilidade: Projetos
Introdução ao SystemVerilog: História e EvoluçãoDescubra a trajetória do SystemVerilog, sua origem a partir do Verilog, e os marcos que transformaram a verificação de hardware na indústria digital. mais complexos podem incluir entradas adicionais (como botão de pedestre ou detecção de veículos) para alterar automaticamente o tempo dos sinais.
- Aplicabilidade: O procedimento de modelar uma FSM para resolver problemas de controle sequencial pode ser aplicado a máquinas de venda automática, sistema de transporte
Circuitos Combinacionais: Somadores (meio somador, somador completo) e subtratores (complemento de 2)Aprenda a montar circuitos digitais com meio somador, somador completo e subtratores via complemento de 2. Domine operações aritméticas de forma clara. em linhas de produção, robôs, etc.
Conclusão🔗
As Máquinas de Estado FinitoMáquinas de Estado Finito (FSMs): Diagramas de estado, tabelas de transição e otimização de estadosAprenda a criar diagramas de estado e tabelas de transição e otimize FSMs para circuitos sequenciais com clareza e eficiência. (FSMs) formam a espinha dorsal de inúmeros sistemas digitais de controle, desde aplicações simples como um semáforo até máquinas industriais e protocolos de comunicação avançados. Dominar a modelagem de estados, compreender como implementar as lógicas de transição e saída, e garantir a correta temporização é fundamental em projetos
Introdução ao SystemVerilog: História e EvoluçãoDescubra a trajetória do SystemVerilog, sua origem a partir do Verilog, e os marcos que transformaram a verificação de hardware na indústria digital. de engenharia elétrica, eletrônica, computação e áreas correlatas.
Este exemplo de projetoIntrodução ao SystemVerilog: História e EvoluçãoDescubra a trajetória do SystemVerilog, sua origem a partir do Verilog, e os marcos que transformaram a verificação de hardware na indústria digital. prático de semáforo serve como base para se familiarizar com a abordagem de FSMs. A prática de desenhar o diagrama de estados, montar tabelas de transição
Máquinas de Estado Finito (FSMs): Diagramas de estado, tabelas de transição e otimização de estadosAprenda a criar diagramas de estado e tabelas de transição e otimize FSMs para circuitos sequenciais com clareza e eficiência. e codificar cada estado é facilmente adaptável a outras situações de controle sequencial.
Dica: antes de partir para a implementação em hardware ou simulação, é sempre recomendável revisar a consistência dos estados e transições e, se possível, simular em software (usando ferramentas que suportem lógica digital) para garantir que todo o fluxo funcione como esperado.
Esperamos que este tutorial facilite a compreensão e o desenvolvimento de projetos baseados em Máquinas de Estado FinitoMáquinas de Estado Finito (FSMs): Diagramas de estado, tabelas de transição e otimização de estadosAprenda a criar diagramas de estado e tabelas de transição e otimize FSMs para circuitos sequenciais com clareza e eficiência.!
Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.