Finite State Machine (FSM): Donanım Tasarımının Sessiz Omurgası
Dijital tasarım dünyasında bazı yapılar vardır ki, tüm sistemin davranışını belirler ama gözle görülmez. Finite State Machine — yani Sonlu Durum Makinesi (FSM) — bu görünmez yapının en temel taşıdır.
Bir FPGA tasarladığında, bir iletişim protokolü yönettiğinde, bir motor sürücü ya da asansör kontrol sistemi geliştirdiğinde aslında yaptığın şey, sistemi mantıksal durumlara ayırıp bu durumlar arasında doğru geçişleri kurmaktır. Bu nedenle FSM, hem gömülü sistemlerde hem de donanım tabanlı tasarımlarda zorunlu bir organizasyon biçimidir.
FSM’in gücü, karmaşık davranışı kontrollü parçalara bölmesinde yatar:
“Hangi durumdayım? Gelen olaya göre nereye geçmeliyim?”
Bu kadar basit görünen yapı, dijital tasarımın hem güvenliğini hem de okunabilirliğini belirler.
FSM Donanım Dünyasında Neden Bu Kadar Önemli?
FSM’in popüler olmasının sebebi sadece teorik sadeliği değildir; donanımdaki çalışma modeliyle birebir uyumlu olmasıdır.
1. Clock Tabanlı Deterministik Davranış
Donanımda davranış deterministik olmak zorundadır.
Her clock kenarında sistemin hangi durumda olduğu, hangi geçişi yaptığı, hangi çıkışı ürettiği net biçimde tanımlanmalıdır.
FSM, bu düzeni sağlar.
2. Sentez Araçlarının FSM Optimizasyonu
Vivado, FSM’i otomatik olarak tanır ve:
– one-hot encoding
– binary encoding
– gray encoding
gibi state encoding’lere optimize eder.
3. Karmaşık Davranışı Sadeleştirme
UART, I2C, SPI, AXI, DMA, motor kontrolcüleri… hepsi FSM olarak modellenir.
4. Debug Kolaylığı
Vivado waveform analizinde state register’ı izlemek tasarımı anlamayı kolaylaştırır.
Moore ve Mealy FSM — Donanım Perspektifiyle Teknik Fark
FSM iki tiptir ve farkları donanımda doğrudan hissedilir:
Moore FSM
– Çıkışlar sadece duruma bağlıdır.
– Glitch oluşumu düşüktür.
– Zamanlama analizi daha nettir.
FPGA başlangıç projelerinde en güvenilir modeldir.
Mealy FSM
– Çıkışlar durum + giriş kombinasyonundan türetilir.
– Girdi değiştiği anda çıktı değişebilir.
– Daha hızlı tepki verir ancak glitch riski vardır.
Örnek FSM Tasarımı: Trafik Işığı
FSM üç durumdan oluşur:
RED → GREEN → YELLOW → R1ED
Durum Diyagramı:
Her durum bir LED çıkışıyla eşleşir:
RED → kırmızı LED
GREEN → yeşil LED
YELLOW → sarı LED
Vivado’da Yapılabilecek 3 FSM Projesi (Başlangıç Seviyesi)
1. Trafik Işığı FSM’i (LED’lerle)
– Moore FSM mantığını öğretir.
– Clock divider kullanımını öğretir.
– FPGA LED pinleriyle pratik yapılır.
2. Knight Rider LED Efekti (FSM ile LED Tarama)
FSM LED pozisyonlarını durum olarak temsil eder:
LED0 → LED1 → LED2 → LED3 → LED4 → LED3 → LED2 → LED1 → LED0 → …
Öğrettikleri:
– Çok durumlu FSM tasarımı
– Döngüsel state akışı
– Zaman tabanlı animasyon kontrolü
3. Basit Asansör FSM’i (Tek Kat Yukarı–Aşağı Model)
Durumlar:
IDLE_0 → MOVING_UP → IDLE_1 → MOVING_DOWN → IDLE_0
Girdiler:
BTN_UP ve BTN_DOWN
Öğrettikleri:
– Kullanıcı girişine göre state transition
– Hareket ve bekleme durumlarını modelleme
– Gerçek sistem davranışını sadeleştirme
Sonuç
FSM, dijital tasarımın temel kontrol modelidir. Trafik ışığı, Knight Rider animasyonu ve asansör FSM’i gibi projeler, Vivado üzerinde FSM mantığını görsel ve pratik şekilde öğretir. FSM öğrenmek, dijital sistem tasarımında ilerlemek için zorunlu bir kilometre taşıdır.

