Sıralı mantık

Dijital Devre teorisinde, “Sıralı Mantık” devrenin çıktılarının sadece şu anki durumuna değil, aynı zamanda geçmişteki Dijital Sinyal girdilerine de bağlı olduğu mantık devresi yapısıdır.  **Sıralı mantık** devreleri kombinasyonel mantık devrelerinin aksine sadece şu anki inputlara bağlı değildir. Şöyle ki, sıralı mantık devrelerinin durum hafızaları varken, kombinasyonel mantık devrelerinin yoktur. Diğer bir deyişle, sıralı mantık devreleri hafıza elemanı taşıyan kombinasyonel devrelerdir.

Sıralı mantık, hafıza elemanları vb. güncel elektroniğin temel inşa bloğu olan sonlu durum makinelerinin dizaynında kullanılır. Aslında tüm kullanımda olan dijital cihazlar, kombinasyonel ve sıralı devrelerin birleşiminden oluşmaktadır.

Tanıdık bir sıralı mantık örneği olarak, kanal numarası artır/azalt fonksiyonuna sahip bir televizyonu gösterebiliriz. Yukarı tuşuna basmak, televizyonun o an taşıdığı değere değil de sırada bir sonraki kanala geçmesini sağlar. 5.kanaldan 6 ya bu şekilde geçilebilir, fakat 8 deyseniz 9 sonucunu elde edersiniz. Bu çok basit gözüken örneğin can alıcı noktası televizyonun sinyal gelmedikçe bulunduğu kanalı muhafaza edebilmesidir ki şu anki durumu da yine önceden basılmış olan butonlara bağlıdır.  Televizyon şu an bulunduğu kanalı, durumunun bir parçası olarak muhafaza edebilmektedir. Bir butona basıldığında ise, şu anki durumuna ve gelen girdiye (aşağı/yukarı) bağlı olarak bir sonraki kanalı hesap edip, daha sonra bu değeri yine saklamaktadır.

Dijital sıralı devreler senkron ve asenkron olmak üzere iki tipe sahiptirler. Senkron dijital devrelerde, hafıza elemanının durumu, sadece  saat girdisinin belirli zamanlarında değiştirilebilirler. Asenkron tipe ise inputun değişimine bağlı olarak anlık durum değişimleri yaşanmaktadır. Örneğin sırasıyla sayı sayan bir devre, her bir saat tikinde değerini senkron bir biçimde artırırken, istendiğinde onun durumunu sıfırlayan kontrol pini bunu asenkron biçimde yapar.

## Senkron sıralı mantık
Günümüzde kullandığımız neredeyse tüm mantık devreleri “saatli” ya da senkron devrelerdir. Senkron bir devrede, “saat” ismi verilen, arka arkaya atmalar üreten bir elektronik osilatör bulunur. Bu atmaların her biri devre üzerindeki tüm hafıza elemanlarına ulaştırılır. Sıralı bir devre içerisinde kullanılan en basit hafıza elemanı Flip-Flop’tur ki kendisi sadece 1 bit lik bir very muhafaza edebilir. Devre içerisindeki herhangi bir flip-flop’un değeri sadece kendisine ulaştırılmış olan saat atmalarının yükselme veya alçalma anında değiştirilebilir. Bu sebeple tüm devre aynı anda başlar ve aynı anda durum değiştirir. Buna devrenin senkronize olması denir.
   
Devre üzerinde bulunan hafıza elemanlarının(Flip-Flop) verilen herhangi bir andaki çıktılarına, devrenin durumu denir. Senkron bir devrede, devrenin tüm durumu sadece saat atmalarında değiştirilebilir. Her bir atmada, devrenin şu anki durumu gelen girdiye göre kombinasyonel bir devre vasıtasıyla yeniden hesaplanır ve çıktı oluştuktan sonra devre durumunu bir sonraki atmaya kadar koruma eğilimi gösterir.

Senkron bir mantık devresinin en önemli avantajı sade olmasıdır. Gelen girdiden bağımsız olarak tüm devrenin değer alıp sonuç verme süresi bellidir. Aradaki ufak gecikmeye “İlerleme gecikmesi” denilmektedir. Arka arkaya gelen iki atmanın süresinin bu ilerleme gecikmesinden fazla olması devrenin düzgün çalışabilmesi için hayati öneme sahiptir. Eğer aralıklar yeterince uzun olursa, devre gelen girdiye bağlı olarak sonucunu hesaplayıp bir sonraki saat atmasına kadar durumunu muhafaza edebilir. Çok küçük diğer birkaç sorun dışında, bu koşulun sağlanması devrenin istenen bir biçimde düzgün çalışacağını garanti etmektedir. İlerleme gecikmesi bir devrenin en yüksek çalışma hızını belirleyen unsurdur. 
Senkron devrelerin 2 önemli dezavantajları bulunmaktadır:
*Elde edilebilecek en yüksek saat hızı devre içerisindeki en yavaş mantık yolu tarafından belirlenir. Bu yola “Kritik yol” denir. Her mantıksal hesaplamada, en basitinden en karmaşığına kadar, tüm işlemlerin tek bir saat atmasında tamamlanması gerekir. Diğer bir deyişle işlemleri çok hızlı tamamlayabilen devreler bir sonraki saat atmasına kadar bekleme durumunda kalırlar. Bu sebeple senkron bir devre asenkron olana kıyasla daha yavaş olabilir. Senkron devreleri biraz daha hızlı çalıştırmanın yolu, karmaşık ve çok vakit alan işlemlerin daha basit birimlere bölünmesinden geçer. Bu tarz yapılan işlemlere küme komut işleme denir. Bu metot birçok mikroişlemci tarafından benimsenmiş bir metoddur ve modern işlemcilerin daha performanslı çalışmasını sağlar.
*Saat sinyali devre içerisindeki her bir flipo flopa aktarılmak zorundadır. Saat sinyali de genellikle yüksek frekansa sahip olduğundan, saat sinyalinin devre üzerindeki iletimi oldukça uzun yol üzerinden çok fazla güç harcanmasına sebep olmaktadır ki bu da ısı demektir. Flip-Flop'lar devre içerisinde durumlarını korumak konusunda çok az bir güç tüketmelerine rağmen  saat sinyalinin iletimi sebebiyle toplam güç tüketimi ciddi biçimde artar ve artık bir sıcaklık oluşur. Bu durum özellikle sınırlı pil ile çalışan mobil cihazlarda ciddi bir sıkıntı teşkil eder, cihazın çalışmadığı anlarda bile güç tüketmesi demektir.

## Asenkron sıralı mantık

Asenkron sıralı devreler, belirli bir saat sinyali tarafından kontrol edilmezler, devrenin durumu anlık olarak girdinin değişmesiyle beraber değişir. Asenkron devrelerin senkronlara oranla daha hızlı çalıştığı bilinmektedir çünkü durumun değişmesi için bir sonraki saat atmasını beklemesine gerek yoktur. Devrenin potansiyel hızı, devre içerisinde kullanılan mantık kapılarının ilerleme gecikmeleriyle sınırlıdır.

Fakat, asenkron devreler, senkronlara oranla dizaynı ve kontrol etmesi daha zordur. Temel problem dijital hafıza elemanlarının gelen girdi sırasına hassas olmalarından kaynaklanmaktadır, eğer iki girdi mantık kapısına neredeyse aynı anda ulaşırlarsa, devrenin vereceği çıktıyı tahmin etmek zorlaşmaktadır, daha erken gelen sinyal devrenin durumunu belirlemektedir. Bu sebeple devredeki sıcaklık vb. dış etmenlerden kaynaklanan gecikmeler devrenin istenmeyen bir duruma girmesine sebep olabilir. Bu duruma “Yarış Şartı” denmektedir (önce gelen ne derse o gibi de söylenebilir). Bu duruma senkron devrelerde çok rastlanmaz çünkü bir sonraki saat atmasına kadar devrenin istenen sinyallere ulaşacağı öngörüsünde bulunulmuştur. Asenkron devreler, bu sebeple genellikle zamanlama konusunda tüm devre dizaynında sorun çıkaran elemanlardır çünkü çıktı bir saat sinyaliyle kontrol edilmemektedir.

Asenkron devreler genellikle çok az kısımda kullanılırlar, mikroişlemciler ve dijital sinyal işlemcileri gibi diğer durumlar için yüksek hızlı senkron devreler tercih edilmektedir. 
Asenkron devrelerin dizaynı ve analizi için senkron devrelerden daha farklı matematik modeller ve teknikler geliştirilmektedir. Şu sıralar bu konu aktif bir araştırma konusudur.

## Ayrıca bakınız
* Kombinasyonel Mantık
* Senkron Devre
* Asenkron Devre
* Mantık Dizaynı
* Asenkron Mantık ve Cebir
* İşleme Özel Entegre Devre Tasarımı
* FPGA

## Kaynakça

*Katz, R, and Boriello, G. *Contemporary Logic Design*. 2nd ed. Prentice Hall. 2005. ISBN 0-201-30857-6.
* Zvi Kohavi, Niraj K. Jha. *Switching and Finite Automata Theory*. 3rd ed. Cambridge University Press. 2009. ISBN 978-0-521-85748-2
*V. O. Vasyukevich. (2009). *[https://web.archive.org/web/20110722160840/http://asynlog.balticom.lv/Content/Files/en.pdf Asynchronous logic elements. Venjunction and sequention]* — 118 p.