Sayaç (dijital)

Dijital mantık ve bilgi işlemde **sayaç** belirli bir olay veya işlem olay sayısını genellikle saat ile ilişkili olarak kaydeden (ve bazen de görüntüleyen) bir cihazdır. En yaygın tipi *saat* olarak adlandırılan bir giriş hattı ve çoklu çıkış hatları olan sıralı dijital mantık devresidir. Çıkış satırlarındaki değerler, ikili veya BCD sayı sistemindeki bir sayıyı temsil eder. Saat girişine uygulanan artırma veya azaltma her darbesi sayaçtaki sayıyı artırır veya azaltır.

Sayıcı devresi genellikle kademeli olarak bağlı birkaç flip-flopdan oluşur. Sayaçlar sayısal devrelerde çok kullanılan bileşenlerdir ve ayrı entegre devreler olarak üretilir ve ayrıca daha büyük entegre devrelerin parçaları olarak birleştirilir.

## Elektronik sayaçlar
Bir elektronik sayaç, saat giriş sinyaline ve tam sayı "sayma" değerini temsil eden grup çıkış sinyalli bir sıralı mantık devresidir. Nitelikli her saat kenarında devre, sayıları artıracak (veya devre tasarımına bağlı olarak azaltacaktır). Sayımlar, sayma dizisinin sonuna ulaştığında (artırırken maksimum sayım; azaltma sırasında sıfır sayım), bir sonraki saat, sayımların taşmasına veya azalmasına neden olur ve sayma dizisi baştan başlar.
Dahili olarak, sayaçlar mevcut sayıları temsil etmek ve saatler arasındaki sayıları tutmak için flip-flopları kullanır. Sayacın türüne bağlı olarak çıktı, sayıların (ikili bir sayı) doğrudan bir temsili olabilir veya kodlanmış olabilir. İkincisinin örnekleri, halkalı sayaçlar ve Gray kodlarını veren sayaçlardır.

Birçok sayaç, sayma dizisinin dinamik kontrolünü kolaylaştırmak için aşağıdakiler gibi ek giriş sinyalleri verir:
* Sıfırlama (Reset) – sayıları sıfırlar. Bazı IC üreticileri buna "temiz" veya "ana sıfırlama (ingilizce: "master reset) (MR)" adını verir.
* Etkinleştir (Enable)– saymaya imkan verir veya sayımı engeller.
* Yön (Direction)– sayıların artacağını mı yoksa azalacağını mı belirler.
* Veri (Data)– belirli bir sayım değerini temsil eden paralel giriş verileri.
* Yükle (Load)– paralel giriş verilerini sayımlara kopyalar.
Bazı sayaçlar, bir sonraki saatin taşma veya yetersizliğe neden olacağını gösteren bir Terminal Sayım çıktısı verir. Bu genellikle, bir sayacın Terminal Sayımı çıkışını bir sonraki sayacın Etkinleştir girişine bağlayarak sayaç basamaklandırmasını (tek, daha büyük bir sayaç oluşturmak için iki veya daha fazla sayacı birleştirerek) uygulamak için kullanılır.

Bir sayacın modülü, sayım dizisindeki durum sayısıdır. Mümkün olan maksimum modül, flip-flop sayısı ile belirlenir. Örneğin, dört bitlik bir sayacın modülü 16'ya (2^4) kadar olabilir.

Sayaçlar genellikle senkron veya asenkron olarak sınıflandırılır. Senkron sayaçlarda, tüm flip-flop'lar ortak bir saati paylaşır ve aynı anda durum değiştirir. Asenkron sayaçlarda, her flip-flop'un eşsiz bir saati vardır ve flip-flop durumları farklı zamanlarda değişir.

Senkron sayaçlar çeşitli şekillerde sınıflandırılır. Örneğin:
* Modül sayacı-belirli sayıda durum boyunca sayar.
* On basamak sayacı – modül on sayacı (on durum boyunca sayar).
* Yukarı/aşağı sayacı – bir kontrol girişi tarafından yönlendirildiği şekilde yukarı ve aşağı sayar.
* Halka sayacı – bir "dairesel" shift register tarafından oluşturulur.
* Johnson sayacı – *bükülmüş* bir halka sayacıdır.
* Gri kod sayacı – bir dizi Gri kod çıktısı verir.

Sayaçlar, özel MSI ve LSI entegre devreler, ASIClerde gömme sayaçlar, mikrodenetleyicilerde ve FPGA'larda IP blokları olarak genel amaçlı sayaç ve zamanlayıcı çevre birimleri gibi çeşitli şekillerde uygulanır.