Uma máquina de estados finitos (FSM - do inglês Finite State Machine) ou autômato finito é um modelo matemático usado para representar programas de computadores ou circuitos lógicos. O conceito é concebido como uma máquina abstrata que deve estar num de seus finitos estados.
A máquina está em apenas num estado de cada vez, e este estado é chamado estado actual. Um estado armazena informações sobre o passado, isto é, reflecte as mudanças desde a entrada num estado, no início do sistema, até o momento presente.
Uma transição indica uma mudança de estado e é descrita por uma condição que precisa ser realizada para que a transição ocorra. Uma acção é a descrição de uma actividade que deve ser realizada num determinado momento.
Para projectar um alarme de segurança de carro recorri a FSM, isto é uma máquina de estados-finitos. Suponhamos que um ladrão abre uma porta de um veículo e fecha a porta rapidamente em poucos milisegundos. Se o circuito lógico for simples demais, o alarme tocará e parará de tocar logo em seguida. Não é isso que queremos. Por issio, precisamos analisar todas as condições e o estado do alarme (se está armado ou não) e se algum evento ocorreu.
Endereçando este problema, escrevi um tutorial de utiliza StateCAD da Xilinx para desenhar o diagrama de estados, depois gerei o código VHDL, testei o diagrama de estados e finalmente testei o código VHDL numa placa de FPGA (Kit de Arranque Spartan 3 da Digilent),
Os membros e visitantes deste espaço podem lêr o tutorial em 3 partes no meu blogue em inglês em:
http://redacacia.wordpress.com/2012/08/17/finite-state-machine-design-of-a-simple-car-security-alarm-on-a-xilinx-fpga-part-i/Fiz também video que demonstra o alarme, O interruptor do lado esquerdo arma o alarme. Os interruptores do lado direito simulam a porta e um sensor ultrasónico detector de presença no interior do veículo:
Experimentem repetir a experiência descrita no tutorial. Tenho a certeza que aprendem alguma coisa. Os FPGAs oferecem enorme potencial sendo o futuro de circuitos integrados específicos, acabando por desaparecer os circuitos integrados da família TTL, CMOS e outros com que nos habituamos na electrónica digital.
Tayeb