SAYICILAR


Giriş darbelerine bağ olarak, belirli bir durum dizisini tekrarlayan lojik devrelere sayıcı denir. Dijital elektronikte sayıcıların önemi çok büyüktür. Genel olarak sayıcı, flip - floplarin ardı ardına uygun şekilde bağlanmalarıyla elde edilir.Sayıcılar dijital ölçü, kumanda ve kontrol tesislerinin en önemli elemanlarından biridir. Örneğin; bilgisayarlarda iç programın sıralanmasını kontrol etmek için, zamanı temsil etmek üzere, saat darbeleri (clock pulses) sürekli olarak sayıcılarla sayılır. Sayıcıları aşağıdaki esaslara göre sınıflandırmak ve adlandırmak mümkündür.
1- Saat darbelerinin (tetikleme işaretinin) farklı zamanlı - Senkron -(Asynchronous) ve es zamanlı - Senkron - (Synchronous) verilisine göre sayıcılar; iki gruba ayrılırlar.
a) Senkron sayıcılar,
b)Senkron sayıcılar.
Asenkron sayıcılarda, sayılacak darbeler ilk giriş flip flopuna verilir. Bu FF.un çıkısı ile bundan sonra gelen FF tetiklenir. Kısacası asenkron sayıcılarda flip floplar birbirlerini tetiklerler. Senkron sayıcılarda, sayıcıyı oluşturan bütün FF.lara saat darbesi ayni anda verilir. Sayıcılarda tek giriş vardır.
2- Sayma yönüne göre sayıcılar üç gruba ayrılırlar.
a) Yukarı (ileri) sayıcılar (Up counter)
b) Aşağı (geri) sayıcılar (Down counters)
c) Yukarı - Aşağı sayıcılar (Up/Down Counters)
Eğer sayıcı, 0'dan başlayıp belirli bir sayıya doğru sayıyorsa yukarı sayıcı, belirli bir sayıdan 0'a doğru sayıyorsa aşağı sayıcı, her iki tip saymayı da yapabiliyorsa yukarı/aşağı sayıcı olarak adlandırılır. Yukarı sayıcı ile ileri sayıcı ve aşağı sayıcı ile geri sayıcı eşanlamlıdır.
3- Elde edilen sayının kodlanmasına göre sınıflandırılabilirler. Örneğin; Binary sayıcı, BCD sayıcı onluk (Decade) sayıcı gibi.
Sayıcılar, girişine uygulanan darbe miktarına bagli olarak 2”n değişik durum alabilirler veya diğer bir ifade ile 2”n sayma yaparlar. Burada n, sayıcı yapısındaki FF ayıcıdır. Örneğin sayıcı yapısında 3 adet FF kullanılmış ise bu sayıcı 2”3 = 8 değişik durum alabilir, yani 0'dan 7'ye sayabilir demektir. Ancak 2”n formülünün geçerli olabilmesi için sayıcı yapısında herhangi bir geri besleme yapılmamış olması gerekir. Bir sayıcının, tekrar yapmadan alabildiği maksimum durum sayısına veya diğer bir ifade ile sayabildiği sayı miktarına, o sayıcının "mod"u denir. Örneğin bir MOD - 10sayicissi 10 değişik durum alabilir, yani 0'dan 9'a kadar sayar ve sonra tekrar 0'a döner.
ASENKRON SAYICILAR :
Asenkron sayıcılar, dalgalı sayıcı (Ripple counter) veya seri sayıcı (------ Counter) olar akta adlandırılmaktadır. Bu sayıcılarda bir flip - flopun çıkısı onu takip eden flip - flopun girişini sürmek için kullanılır. Asenkron sayıcılardaki flip - floplar toggle modanda çalışırlar, yani her bir saat darbesi ile durum değiştirirler. Her bir FF, önceki katin her bir 1'den 0'a (veya 0'dan 1'e) geççisinde durum değiştirir. Sayıcıların en önemli özelliklerinden biri de çalışma hızlarıdır. Örneğin asenkron yapıdaki bir sayıcıda 6 adet FF kullanılmış ve her FF.un yayılım gecikmesi 10 nsn olsun. Yapıda bulunan 6.FF.un konum değiştirmesi için 6x10 = 60 ns. lik bir zamanın geçmesi gerekir. Bu durum sayıcının çalışma hızını oldukça etkiler. Çünkü sayıcı girişindeki bilgi ancak 60 ns. sonra çıkışta oluşacak demektir. Asenkron sayıcılar; doğru binary ve geri beslemeli sayicilar olmak üzere iki gruba ayrilirlar. 2”n seklinde sayan sayıcılar doğru binary sayıcı olar akta isimlendirilirler.
Asenkron Yukarı sayıcılar (Up counters) :
Ayni sayıcının, gelen saat darbesine göre çıkışlarının nasıl değiştiğiıklanmıştır.
4 adet FF kullanıldığına göre bu sayıcı 2”n = 2”4 = 16, MOD - 16 sayıcısıdır. Yani 0'dan 15'e kadar sayar.
Tetikleme işareti sadece birinci FF olan D'ye uygulanmıştır.
Başlangıçta tüm FF.larin çıkışlarının "0" olduğunu kabul edelim. Burada yapılan işlem CK işaretinin sayılmasıdır. Yapıdaki tüm FF.larin negatif kenar tetiklemeli (CK işaretinin 1'den 0'a inişlerinde) olduğunu kabul edelim. Ilk CK darbesi olan 0 nolu CK.nin 1'den 0'a düşüşü esnasında d FF.u tetiklenir ve çıkısı "1" olur. Diğer FF”larda herhangi bir değişim olmaz. Çünkü bu FF.larin girişlerine henüz 1'den 0'a giden bir CK işareti uygulanmamıştır. D FF.un girişine uygulanan 1 nolu CK (2. CK) işaretinin 1'den 0'a düşüşü esnasında D FF.u tetiklenerek çıkısı 1'den 0'a gider. Bu anda C FF.u girişine 1'den 0'a giden bir CK gelmiş olur. Çünkü D FF.unun Q çıkışı ayni zamanda C FF.unun tetikleme girişidir. Böylece ikinci CK'da D FF çikisi "0" olurken C FF.u çıkışı "1" olacaktır. Diğer FF.larda bir değişim olmaz. 2 nolu CK (3. CK) nin 1'den 0'a düşüşünde D FF.u yine durum değiştirir ve çıkışı 0'dan 1'e gider, diğer FF.larda değişim olmaz. 3 nolu (4. CK) CK'nin 1'den 0'a düşüşü esnasında D FF.u yine durum değiştirir, yani çıkışı 1'den 0'dan gider. Bu değişim C FF.unun da durum değişikliğine neden olur. C FF.u çıkışı da değişerek 1'den 0'a gider. Bu durum ayni anda B FF.ununda 1'den 0'a giden bir CK aldığını gösterir. Böylece B FF.u da durum değiştirerek çıkışı 0'dan 1'e gider.
4 darbe sonunda çıkışlar A = 0, B = 1, C = 0 ve D = 0 seklindedir. Bundan sonra işlem anlatıldığı şekilde devam edecek ve 15 nolu (16. CK) CK.nin 1'den 0'a inişi esnasında tüm FF.lar "0" durumuna dönerler. D FF,u çıkısındaki işaretin frekansı giriştekinin yarısı, A FF,u çıkısındaki işaretin frekansı ise giriştekinin 1/16sidir. Yani girişe 16 darbe uygulanmışken A FF.u çıkısında ancak 1 darbe oluşmuştur. Bu özellik bize, bu sayıcıların ayni zamanda frekans bölücü olarak kullanılabileceklerini gösterir. Çıkış frekansı = Giriş frekansı / 2”n dir. Burada n sayıcıdaki FF sayısını gösterir.
Başlangıçta tüm FF çıkışlarının "0" olduğunu kabul etmiştik. Ancak bu her zaman böyle olacak demek değildir. Bu nedenle sayma işlemine başlamadan önce tüm FF.lari 0'a şartlamamız gerekir. Böyle bir devre silme (clear) girişleri olan FF.larla gerçekleştirilir. JK FF.lar ile gerçekleştirilmiş bir asenkron yukarı sayıcı görülmektedir.
Buradaki JK FF.larin J ve K” lari birleştirilip "1" seviyesine bağlanmakla toggle modunda çalışmaları sağlanmıştır. Ayrıca devreye S1, R1, C1 ilavesi ile başlangıçta tüm FF çıkışlarının "0" olma şartı yerine getirilmiş olur.
görüldüğü gibi 4 adet FF kullanildigina göre 2”4 = 16 adet durum var, veya sayıcı 0'dan 15'e kadar sayabilir demektir. Sayıcıdaki tüm FF"larin silme girişleri birleştirilip R1 - C1 birlesim noktasina baglanmislardir. Silme girisleri bu devrede "0" seviyede etkilidir. Bu nedenle silme girislerine uygulanacak "0", tüm çikislari "0" yapar.
S1 anahtari devrenin çalisma gerilimi anahtari ile senkron baglanmalidir. Çalisma gerilimi anahtari kapatildigi anda S1 de kapanacagindan R1, C1 sebekesinden büyük bir sarj akimi geçecektir. (Çünkü ilk anda C1 bostur ve üzerindeki gerilim sifirdir). Bu sarj akimi nedeniyle ilk anda bütün gerilim R1 üzerinde görülür. (Sekilde isaretlendigi polaritede). R1'in alt ucundaki "0" seviyeli gerilim silme darbesi olarak FF.larin silme girislerine uygulanir ve tüm FF çikislari "0" a set edilir. Daha sonra R1 üzerinden C1 kondansatörü sarj olunca devreden akan akim sifira düser. Bu nedenle R1 üzerindeki "1" seviyeli +V gerilimi silme girislerini etkisiz kilar.
Eger kullanilan FF.larin silme girisleri "1" seviyede etkili ise Sekil 8.4 teki baglanti kullanilir. Bu baglantidaki S1 de devrenin çalisma gerilimi anahtari ile senkrondur. Gerilim verildigi anda R1, C1 sebekesinden büyük bir sarj akimi akacaktir. (C1 bos). Bu nedenle gerilimin tamami R1'de düsecektir. Bu anda C1 - R1 birlesim noktasinda elde edilen "1"seviyeli gerilim silme darbesi olarak kullanilir. Daha sonra C1, R1 üzerinden sarj olacagindan devre akimi sifira düser ve gerilimin tamami C1 de düser. Bu andan sonra C1 - R1 birlesim noktasinda "0" seviyeli gerilim vardir. kullanilan FF lari hem ön ayar (PRESET) hem silme (CLEAR) girislerine sahip oldugunu kabul edelim. Sayicinin "0010"binary sayisindan saymaya baslamasini istiyorsak 2. FF.un önayar girisi ile diger FF.larin silme girisini birlestirerek R1 - C1 birlesim noktasina baglamaliyiz. Bu sekilde her türlü ilk sart gerekli FF.lari set, digerlerini reset etme yolu ile saglanir.
ilk anda C FF.unun "1" sartli digerlerinin "0" sartli sekli görülmektedir. Bu sayici 2'den baslayip 15'e kadar sayar. asenkron yukari sayicilar D tipi FF.lar ile de gerçeklestirilebilir. Bu durumda herbir D tipi FF.un D girisi ile Q çikisi birbirine baglanir. Elde edilen devrenin çalisma prensibi sekil 8.2 - a'daki devrenin çalisma prensibi ile aynidir. D tipi FF.lar ile teskil edilmis 16 durumlu asenkron yukari sayici Q'lardan alinip, her bir FF.un Qdegil ile D girisi birlestirilip bir sonraki FF.un CK girisi olarak baglanirsa yine 16 durumlu asenkron yukari sayici elde edilir, fakat pozitif kenar tetiklemelidir.
Asenkron asagi sayicilar (Down Counters)
Asenkron yukari sayici ile asenkron asagi sayici arasindaki en önemli fark asagida belirtildigi gibidir:
Asenkron yukari sayicilarda bir sonraki FF için saat darbesi (CK) bir önceki FF un Q çikisindan alinirken, Asenkron asagi sayicilarda bir sonraki FF için saat darbesi (CK) bir önceki FF un Qdegil çikisindan alinir.
Ikinci önemli fark; asenkron yukari sayicilar 0'dan belirli bir sayiya dogru sayarken, asenkron asagi sayicilar belirli bir sayidan 0'a dogru sayarlar.
Bu iki farkin disinda asenkron yukari sayici ile asenkron asagi sayicinin çalisma prensipleri aynidir.
4 adet T tipi FF.lu 16 durumlu asenkron asagi sayicinin devresi, çikislarinin dalga sekilleri ve gelen saat darbesine göre çikislarinin nail degistigi gösterilmistir.
Asenkron asagi sayici yapisinda 4 adet FF kullanildigina göre, bu sayici 2^n = 2^4 = 16 degisik duruma sahiptir. Yani 15 ten baslayip 0'a kadar sayar ve tekrar eder. Sekil 8.7 a'ya dikkat edilirse her FF için gerekli CK isareti bir önceki FF.un Qdegil çikisindan alinmistir. Tetikleme isareti olan CK sadece birinci FF olan D'ye uygulanmistir.
Baslangiçta tüm FF çikislarinin "0" oldugunu kabul edelim. Yapidaki tüm FF lar negatif kenar tetiklemelidir (CK isaretinin 1'den 0'a inisinde).
Ilk CK darbesi olan 0 nolu CK.nin 1'den 0'a düsüsü esnasinda d FF.u durum degistirir. QD çikisi 1'e giderken QDdegil çikisi 0'a gider. Bu durumda C FF.u için uygun CK isareti olusmustur. Bu nedenle C FF.u da durum degistirir ve QC = 1 olurken QCdegil = 0 olur. Ardindan B FF.u durum degistirir ve QB = 1 olurken QBdegil = 0 olur. Bu durumda A FF.u da uygun CK isareti almistir. Durum degistirerek QA = 1 olurken QAdegil = 0 olur. Görülüyorki ilk saat darbesinde tüm FF.lar için uygun tetikleme isareti olusmus ve D = C = B = A = 1 olmustur.
D FF.unun girisine uygulanan 1 nolu CK isaretinin (2. CK) 1'den 0'a düsüsü esnasinda D FF.u tekrar durum degistirerek QD = 0 ve QDdegil = 1 olur. Bu anda diger FF.larda degisim olmaz. Çünkü bunlar için uygun CK isareti olusmamistir. 2. darbe sonunda çikislar A = 1, B = 1, C = 1 ve D = 0 seklindedir. Bundan sonra islem anlatildigi sekilde devam eder. 15 nolu (16. CK) CK'nin 1'den 0'a inisi esnasinda tüm FF çikislari "0" olur. Bu açiklamalar Sekil 8.7.b'deki çikis dalga sekilleri ve c'deki çikislarin saat darbesine göre degisimi tablosunda tüm detaylari ile belirtilmistir.
çikis dalga sekillerine dikkat edilirse, her CK isaretinin 1'den 0'a inisinde D FF unun, her QD çikisinin 0'dan 1'e gidisinde C FF unun, her QC çikisinin 0'dan 1'e gidisinde B FF unun ve her QB çikisinin 0'dan 1'e gidisinde A FF unun durum degistirdigi görülecektir. Çünkü FF.larin Q çikislari 1'e giderken Qdegil çikislari 0'a gitmekte ve ancak bu durumda bir FF için uygun bir tetikleme isareti olusmaktadir.
Asenkron sayicilarin modlara göre sifirlanmasi :
Asenkron yapida birçok sayici devresi gerçeklestirilebilir. Sayici 2^n sayacak sekilde istenirse bundan önceki kisimlardan yararlanarak bu sayiciyi gerçeklestirebiliriz. 2^n'in disinda sayma isteniyorsa sayici tasariminda takip edilecek yöntemlerden birisi "modlara göre sifirlama islemidir". Tasarimda asagidaki islem sirasi takip edilir.
a) Hangi sayilarin sayilmasi isteniyorsa bunlarin binary karsiliklari bir tablo halinde toplanir.
b) Tablonun en alt kismina sayilacak en son sayidan sonraki sayi yazilir.
c) Sayicidaki FF adedi ve tipi belirlenir.
d) Istenilen tür sayicinin prensip semasi çizilir.
e) Prensip semaya sifirlama kapisi ilave edilir.
ÖRNEK - 1
MOD - 10'lu bir sayici gerçeklestirelim. MOD - 10 sayicisi 0'dan 9'a kadar sayan ve 10'da tekrar basa dönen bir sayicidir. Ilk önce sayilacak sayilari bir tablo haline getirelim.
sayilacak son sayidan sonra sistemi sifirlayip tekrar basa döndürecek bilgi (10)10 = (1010)2 binary bilgisidir. Asenkron sayicilar, çikislarinda sira ile binary formlarini verdikleri için "binary sayicilar" olarak ta isimlendirilmektedirler. Bu sayicida 4 adet FF kullanmak gerekir. ÇünkÜ 4'ten az FF.la bu sayiciyi gerçeklestirmek olanaksizdir. Örnegin 3 adet FF.lu bir sayici ancak 2^3 = 8 e kadar sayilabilir. Oysa 4 adet FF.lu sayici 2^4 = 16 ya kadar sayabilmektedir. sayici 0'dan 9'a kadar sayacak, sonra sifirlanacaktir. Kullanilacak FF.lar negatif kenar tetiklemeli JK tipi FF olsun.
bu sayicinin bir MOD - 16 sayicisi oldugunu (0'dan 15'e sayan) görülüyor. Bu sayicinin amacimiza uygun olmasi için A = 1, B = 0, C = 1 ve D = 0 çikisi verdigi anda sifirlanmasi gerekir. A ve C çikislarini ele alarak iki girisli bir NAND kapisi ile bu islemi sekil 8.9 daki gibi gerçeklestirebiliriz. Bildiginiz gibi bir NAND kapisi sadece tüm girisleri "1" oldugunda "0" çikis veren bir devredir.
Bu örnegin böyle genis açiklanmasinin amaci, anlasimi kolaylastirmak içindir. Uygulamada "islem sirasi" adi altinda sayilan maddeleri daha az tutabiliriz. Örnegin; Tablo çiziminin amaci, sayilacak son sayidan sonra gelen sifirlama sayisinin degerini bulmak ve sayim sirasini gözlemektir. Tablo çizimi yerine sadece sifirlama sayisini tespit ederekte tasarim yapilabilir. Prensip semanin çizimi yerine, dogrudan ihtiyaç duyulan devre çizilir (Tabiki istege ve amaca uygun FF türü ve adedi ile). MOD - 10 sayicisi kusuru olan bir sayicidir. Biz sadece 0-9 arsi sayilarin sayilmasini istiyoruz. 10 sayisinin görülmesini istemiyoruz. Fakat sifirlama yöntemi içinde 10 sayisina ihtiyaç oldugu muhakkak. Bu nedenle çok kisa bir süre içinde olsa 10 sayisi belirir. Bu süre çok kisa oldugu için insan gözü tarafindan kesinlikle hissedilmez.
Örnek - 2 :
D tipi FF kullanilarak MOD - 5 sayicisi gerçeklestirelim. MOD - 5 sayicisi 0'dan 4'e kadar sayan bir sayicidir. Bu islem için 3 adet D tipi FF kullanmak gerekir. Sayici 0'dan 4'e kadar saydiktan sonra 5 çikisi verdigi anda sifirlanir. 5 çikisi verdigi anda sayici çikislari 101 konumuna sahiptir. Ave C çikislarini ele alarak iki girisli bir NAND kapisi ile sistemi sifirlayabiliriz.
Örnek - 3 :
T tipi FF kullanarak MOD - 25 sayicisini gerçeklestirilelim. MOD - 25 sayicisi 0'dan 24'e kadar sayan bir sayicidir. Bu sayicida 5 adet FF kullanmak gerekir. Sayici 0'dan 24'e kadar saydiktan sonra 25 çikisi verdigi anda sifirlanir. 25 çikisi verdigi anda sayici çikislari "11001" dir. AB ve E çikislarini ele alarak 3 girisli bir NAND kapisi ile sistemi sifirlayabiliriz.
Direkt resetli asenkron sayicilar :
2^n'den farkli sayma yapan asenkron sayicilarda dizayn isleminde takip edilecek ikinci yöntem "direkt resetli sayici" gerçeklemesidir. bu yöntemde resetleme (sifirlama) islemi devrenin çalisma konumundan yararlanilarak gerçeklestirilir.
Dizayn islemini bir örnekle açiklamaya çalisalim.
Örnek - 1 :
4 adet JK FF kullanarak bir direkt resetli asenkron MOD - 10 sayicisi gerçeklestirelim. FF.lar negatif kenar tetiklemelidir.
Ilk önce sayici çikislarin giris darbelerine göre nasil degistigini tespit edelim.
Yatay oklar etkili darbeleri göstermektedir. Yatay oklarin çikisi, darbenin hangç FF çikisindan alindigini, yatay oklarin ucu ise, darbenin hangi FF.a etki yaptigini gösterir. Di--- oklar FF çikislarindaki 1'den 0'dan giden degisimi gösterir. Bilindigi gibi negatif kenar tetiklemeli bir FF girisine 1'den 0'a giden bir darbe gelirse, o FF konum degistirir.
Tablo 8.3 ten görüldügü gibi sayilmak istenen giris darbeleri (CK'lar) LSB FF unun (1.FF.un) girisine etki yapmakta ve her giris darbesinde LSB FF.u konum degistirmektedir. O halde giris darbeleri LSB FF.u girisine verilmelidir. Tablodan görüldügü gibi ikinci FF (C FF.u), LSB FF.u (D FF.u) çikisi 1'den 0'a gittigi zaman konum degistirmektedir. O halde LSB FF çikisi ikinci FF.un darbe girisine verilmelidir. 3. FF.un (B FF.u) çikisinin da 2. FF.un (C FF.u) çikisinin 1'den 0'a gittigi anda degistigi görülüyor. O halde ikinci FF.un çikisi 3. FF'un darbe girisine verilmelidir.
MSB FF.unun (A FF.u) çikisi desimal sayinin 7'den 8'e vr 9'dan 0'a geçisi aninda degismektedir. 7'den 8'e geçis aninda D, C, B FF.lari çikislari 1'den 0'a gitmekle MSB FF.u için uygun tetikleme isareti olusturmuslardir. Fakat 9'dan 0'a geçis aninda sadece LSB FF.u (1.FF - D) çikisinda 1'den 0'dan geçis vardir. O halde bu iki kosulu (7'den 8'e ve 9'dan 0'a geçis aninda MSB FF.u için uygun tetikleme darbesini) yerine getiren sadece LSB FF.u (1. FF - D) oldugundan, sadece LSB FF.u çikisi MSB FF.u için darbe olarak kullanilabilir. Bu nedenle LSB FF.u çikisi MSB FF.u darbe girisine baglanmalidir. Böylece sayici yapisinda kullanilacak 4 adet FF için gerekli tetikleme darbelerinin nerelerden alinacagi tespit edilmis oldu.
a) Eger FF girisinde tetikleme girisi varsa FF.un J ve K girislerine bagli olarak FF konum degistirir.
b) Eger FF girisinde tetikleme isareti yoksa J ve K girislerinin durumu ne olursa olsun FF konum degistirmeyecektir. Bu durumda J ve K'in durumu önemli degildir (J=0 veya J=1, K=0 veya K=1 olabilir). Bu nedenle böyle durumlar için J = d, K = d kabul edilmistir. FF.larin konum degistirdikleri anlar yaptiklari geçisler Tablo 8.4 te yay seklindeki di--- çizgilerle gösterilmistir.
FF'lar için J-K geçisleri tespit edildigine göre karnaugh haritalari yardimi ile her FF için J ve K esitlikleri tespit edilir. Özetleyecek olursak Direkt resetli asenkron sayici dizayninda;
a) Ilkönce kullanilacak FF adedi, tipi ve tetikleme türü belirlenir.
b) Sonra giris darbelerine göre FF.larin çikislarinin nasil degistigini ve her FF için etkili darbeleri gösterir bir tablo hazirlanir. (Örnegin tablo 8.3).
c) Bu tabblo yardimi ile her FF için giris geçisleri tespit edilir (Örnegin Tablo 8.4).
d) Elde edilen giris geçisleri karnaugh haritalari ile basitlestirilir.
e) Basitlesmis esitliklerden ve (b) maddesinde yapilan etkili darbe tespitlerinden direkt resetli asenkron sayici devresi çizilir.
Örnek - 2 :
Negatif kenar tetiklemeli 3 adet JK tipi FF kullanarak bir direkt resetli asenkron MOD - 6 sayicisi gerçeklestirelim. Ilk önce giris darbelerine göre FF.larin çikislarinin nasil degistigini gösterir tabloyu hazirlayalim. Bu tablodan da FF.lar için etkili giris darbelerinin nereden alinacagini tespit edelim.
her giris darbesinde C FF.u konum degistirmektedir. O halde giris darbeleri C FF.u darbe girisine uygulanacaktir. C FF.unun her 1'den 0'a gidisinde B FF.u konum degistirmektedir. Buna göre C FF.u çikisi B FF.unun darbe girisine baglanacaktir. A FF.u desimal 3'ten 4'e ve 5'ten 0'a geçerken konum degistirmektedir. 3'ten 4'e geçerken C ve B FF.lari çikislari 1'den 0'a giderek A FF.u için uygun tetikleme darbesini olustururlar. Fakat 5'ten 0'a geçerken sadece C FF.u çikisinda 1'den 0'a düsüs olmaktadir. O halde bu iki kosulu yerine getiren sadece C FF.u oldugundan, C FF.u çikisi A FF.u darbe girisi olarak A FF.u darbe girisine baglanacaktir.
Örnek - 3 :
Son olarak nrgatif kenar tetiklemeli 4 adet JK FF ile direkt resetli asenkron MOD - 12 sayicisini gerçeklestirelim. Islemi kisaltmak için, giris darbelerine göre FF.larin çikislarinin nasil degistigini ve her FF için etkili darbeleri gösterir darbe ile her FF için JK geçislerini tespit etmede kullandigimiz tabloyu birlestirerek çizelim (Zaten geçisler bulunurken birlestiriliyor) ve islemi bu sekilde yapalim. sayilacak darbeler LSB FF.u darbe girisine, LSB FF.u çikisi C FF.u darbe girisine, C FF u çikisi hem B FF.u hem A FF.u darbe girisine uygulanacaktir. Simdi J ve K girislerinin esitliklerini karnaugh haritalari ile bulalim.
Yukari/Asagi asenkron sayicilar ( Up/Down Counter)
Asenkron sayicilar, yukari sayici ve asagi sayici yapisinda düzenlenebilecegi gibi küçük bir degisiklikte hem yukari hem asagi sayan sayici yapisinda da gerçeklestirilebilir. Yukari/asagi sayicinin temel yapisi her FF çikisina konan kontrol devresi haricinde bu kisma kadar inceledigimiz sayicilarinn temel
apisindan farkli degildir. Daha önceki kisimlarda da açikladigimiz gibi, yukari sayicilarda her FF.un tetikleme darbesi (CK) bir önceki FF.un Q çikisindan, asagi sayicilarda ise bir önceki FF.un Qdegil çikisindan alinmakta idi.
Yukari/asagi sayicilarda da her FF çikisina konulan kontrol devresi ile bir sonraki FF un darbe girisine bir önceki FF.un Q ya da Qdegil çikisi baglanir.
8.3. SENKRON SAYICILAR
Bilindigi gibi asenkron sayicilarda darbe girisi yalnizca ilk FF.tan olmaktadir. Bu nedenle birinci FF.a uygulanan bir darbenin en son FF.a geçisi, sirasi ile tüm FF.larin konum degistirmelerinden sonra olmaktadir. Bu ise uzun bir sayma zamaninda, FF.larin konum degistirmelerinin neden oldugu gecikme sebebi ile, bir zaman kaybina neden olmakta ve sayma hizini azaltmaktadir. Sayma hizinin arttirilmasi ve gecikmenin istenmedigi uygulamalarda senkron sayici devreleri kullanilir.
Senkron sayicilarda, sayici yapisindaki tüm FF.lar için tetikleme darbesi tek bir darbe girisinden temin edilir. FF.larin konum degistirmeleri diger girislerindeki (örnegin JK FF.ta J ve K girislerinin) durumlara baglidir. Böylece sayici yapisindaki tüm FF.lar senkron çalistirilarak sayici hizi önemli ölçüde arttirilmis olur. em asenkron hem de senkron sayicida ana eleman FF olmakla beraber, senkron sayici yapisinda ek olarak kapilarda bulunur. Ilk anda tüm FF çikslarinin "0" oldugunu kabul edelim. Ilk giris darbesinde D FF'u konum degistirir ve çikisi "1" olur. D FF.u çikisi C FF.unun J ve K girislerini "1" yapar. Örnegin bir FF.un yayilim gecikmesi 20 nsn ise, bu FF.un girisine uygulanan bir isaret ancak 20 nsn sonra çikista görülecek demektir. D FF.u çikisinin "1" olmasiyla C FF.unun J ve K girisleri de "1" olmustur, fakat tetikleme darbesinden ancak 20 nsn sonra. Bir FF.un konum degistirme sartlarindan biride girisinde mutlaka tetikleme darbesi olmalidir. Bu nedenle ilk giris darbesinde sadece D FF.u konum degistirir. Digerlerinde degisme olmaz. Ikinci darbede toggle modunda çalisan D FF'u ile J ve K girislerinde "1" olan C FF.u tetiklenir. D FF.u çikisi 1'den 0'a giderken C FF.u çikisi "1" olur. Bu anda B ve A FF.lari, J-K'lari "0" oldugu için durum degisikligi göstermezler.Üçüncü darbede D FF.u tekrar durum degistirir ve çikisi "1" olur. Bu anda C FF.u durumunu korurken B ve A FF.larinda bir degisme olmaz. Üçüncü darbe sonunda D FF.u çikisi C FF.u J-K girislerini ve C FF.u çikisi ile D FF.u çikisi 1 nolu kapi üzerinden B FF.u JK girislerini "1" yapmistir.Yani gelecek darbede C ve B FF.lari toggle çalismaya hazirdirlar. Bu nedenle dördüncü darbede D-C-B FF.lari konum degistirerek D = 0, C = O, B = 1 olur. Devre bu sekilde çalismaya devam ederek 16. darbe sonunda tüm FF çikislari sifira gider ve sayma yeniden baslar. Sayicinin çikis dalga sekillerinin ve saat darbelerine göre çikislarin degisim tablosu sekil 8.2-b ve tablo 8.1 deki asenkron sayicininkilerle (4 adet T FF.lu) aynidir.
8.3.1. Senkron sayicilarin karnaugh haritalari ile tasarimi :
Karnaugh haritalari kullanilarak bir çok devre tasarimi yapilabilir. Önemli olan belirli bir çalisma programinin tespit edilmis olmasidir. Senkron sayicilarda; küçük bir farkla direkt resetli asenkron sayici tasariminda kullanilan islem sirasina uyularak rahatlikla tasarlanabilirler. Senkron sayicilarda sayilacak darbeler tüm FF.larin darbe girisine ayni anda verilir. Bu nedenle "direkt resetli sayici" tasariminda tespiti yapilan etkili darbe tespitine senkron sayici tasariminda gerek yoktur. Bu fark disinda tasarimdaki islem sirasi aynidir.
Tasarimdaki islem sirasini asagidaki gibi belirleyebiliriz :
a) Ilk önce kullanilacak FF adedi ve türü belirlenir.
b) Sonra, sirasi ile hangi sayilarin sayilacagina karar verip, bu sayilar bir tabloda toplanir. Bu tablo giris darbelerine göre sayici çikislarinin nasil degistigini gösterir. Bu nedenle bu tabloya sayicinin "dogruluk tablosu" diyebiliriz. Çünkü sayicinin tüm fonksiyonlarini ve hangi darbede çikislarinin ne durumda oldugunu bu tablodan açikça görebilmekteyiz.
c) Bu tablo yardimi ile her FF için giris geçisleri tespit edilir. (Örnegin J-K FF.ta J ve K'larin durumlari).
d) Elde edilen giris geçisleri karnaugh haritalari ile basitlestirilir.
e) Basitlesmis esitliklerden senkron sayici devre çizilir.
Tasarim hangi tür FF la yapilacaksa, o FF.a ait geçis tablosunun ögrenilmis olmasi gerekir.
Örneklerle tasarimi açiklayalim.
Örnek - 1 :
3 adet JK tipi FF kullanarak bir MOD - 7 senkron sayicisi tasarlayalim. Ilk önce sayicinin doggruluk tablosu hazirlanir.
Tablo 8.8 deki dogruluk tablosuna göre, sayicimiz 0'dan 6'ya kadar sayacak ve sonra sifirlanip tekrar bastan saymaya baslayacaktir.
Simdi J-K geçis tespiti için gerekli tablloyu çizelim.
Tablo 8.9 daki J ve K esitlikleri ayri ayri karnaugh haritalarinda basitlestirilir. Örnek olarak JA geçisinin karnaugh haritasina nasil aktarildigini açiklayalim.
0 nolu CK da JA = 0 için ABC = 000'dir. JA haritasinda ABC = 000 karesine "0" yazilir.
1 nolu CK da JA = 0 için ABC = 001'dir. JA haritasinda AB = 00, C = 1 karesine "0" yazilir.
2 nolu CK da JA = 0 için ABC = 010'dir. JA haritasinda AC = 00, B = 1 karesine "0" yazilir.
3 nolu CK da JA = 1 için ABC = 011'dir. JA haritasinda BC = 11, A = 0 karesine "1" yazilir.
4 nolu CK da JA = d için ABC = 100'dir. JA haritasinda A = 1, BC = 00 karesine "d" yazilir.
5 nolu CK da JA = d için ABC = 101'dir. JA haritasinda AC = 11, B = 0 karesine "d" yazilir.
6 nolu CK da JA = d için ABC = 110'dir. JA haritasinda AB = 11, C = 0 karesine "d" yazilir.
Bos kareler "d" ile doldurulur ve bileskeler olusturularak JA esitligi bulunur. (Bu örnekte bos kareyi göstermek için x harfi konmustur).
JA = BC JB = C JC = Adegil + Bdegil
KA = B KB = A + C KC = 1 bulunmustur. Bunlara göre MOD - 7 senkron sayicisini
Görüldügü gibi senkron sayici tasarimi asnekron sayici tasarimindan pek farkli degildir.
Bundan sonraki örneklerde sayicinin dogruluk tablosu dogrudan girislerin geçis tablosuna yazilacaktir.
Örnek - 2 :
2^2 - 1 sayma yapan senkron sayicisini JK FF.lari ile tasarlayalim.
2^2 - 1 sayma yapan sayici 2^2 - 1 = 4 - 1 = 3 MOD - 3 sayicisidir. Sayici 0'dan 2'ye kadar sayilacak ve sonra 0'a gidecek demektir. Yapida 2 adet FF kullanilacaktir.
Tablo 8.10 dan JA = B, KA = 1, JB = Adegil, KB = 1 elde edilmistir. MOD - 3 sayicisi Sekil 8.25 teki gibidir.
Örnek - 3 :
2^3 - 3 sayma yapan senkron sayicisini JK FF.lar ile tasarlayalim.
2^3 - 3 sayma yapan sayici 2^3 - 3 = 8 - 3 = 5, MOD - 5 sayicisidir. Sayici 0'dan 4'e kadar sayar ve sonra 0'a gider. Yapida 3 adet FF kullanilacaktir.
Örnek 1-2 ve 3 teki örnekler, senkron yukari sayici devrelerdir. Ayni düsünce ile senkron asagi sayici devreleri de gerçeklestirilebilir.
Örnekler genelde J-K FF.larla gerçeklestirilmistir. Çünkü kullanilan FF.lar daha çok JK FF.lardir (Master-Slave yapisinda). Fakat istenirse gerek asenkron gerekse senkron yukari veya asagi sayicilar SR, D veya T tipi FF.larla da gerçeklestirilebilir.
MOD - 16 senkron asagi sayicisini JK FF.lar kullanarak tasarlayalim. MOD - 16 senkron asagi sayicisi 15'ten 0'a kadar sayip tekrar basa dönen sayicidir. Bu sayici yapisinda 4 adet FF kullanilacaktir.
Simdi karnaugh haritalari ile J-K esitliklerini bulalim.
JA = Bdegil Cdegil Ddegil JB = Cdegil Ddegil JC = Ddegil JD = 1
KA = Bdegil Cdegil Ddegil KB = Cdegil Ddegil KC = Ddegil KD = 1 bulunmustur.
Devrenin çalisma gerilimi verildikten sonra SD (Set Direct) girisi ile tüm FF.lar (1111) durumuna set edilmelidir. Bundan sonra verilecek start darbesi (CK isareti) ile sayici (1111)2 den (0000)2 a dogru saymaya baslayacaktir.
PROGRAMLANABILIR SAYICILAR (Programmable Counters) :
Bu kisma kadar inceledigimiz sayicilarda, sayicinin MOD'u, yani alabilecegi durum sayisi degistirilmek istenirse, mutlaka sayici yapisinda degisiklik yapmak gerekir.
devre, yapisinda bir degisiklik gerektirmeden istenilen sayma moduna ve sayma yönüne göre ayarlanabilen; bir programli yukari/asagi BCD sayici devresidir.
Her bir FF istenilen sayma modu ayari için bagimsiz (preset) ön ayar girislerine sahiptir. Bu girislere bilgi girisleri (Data Inputs) adi da verilir. Bu girisler kullanilarak sayici istenilen mod'a ayarlanabilir.
Silme (Reset) girisi ile sayici, istenilen zamanda diger girislere bagli olmadan sifirlanabilir.
Ön ayar ve silme girisleri kullanilmadigi zaman "0" da tutulmalidirlar.
Eger yukari (Up Input) giris "0" asagi giris (Down Input) "1" ise sayici, asagi sayma yapar. Yukari giris "1" ve asagi giris "0" ise sayici, yukari sayma yapar.
Sayici, bir baska sayici ile kaskat baglanirsa 4.katin tasima çikisi (carry out) ikinci sayicinin tasima girisine baglanmalidir.
Sayici modu degistirilmek istenirse, ilk önce sayici resetlenir. Sonra DA, DB, DC, DD preset veya bilgi girisleri ile istenilen sayma moduna ayarlanir.
SAYICI ENTEGRE DEVRELERININ INCELENMESI
Uygulamada kullanilabilecek bir çok sayici entegresi vardir. Bunlar her tür amaca hizmet edecek çesittedirler. Yapilarinin temel taslari FF'lardir. Bu kisimda günümüzde kullanilan çesitli sayici entegrelerinin iç yapilari, dogruluk tablolari ve özellikleri tanitilacaktir.
7490 entegresi iki adet bagimsiz sayiciyi ihtiva eder. Biri 2'ye bölen digeri 5'e bölen sayicidir. Dikkat edilirse bu iki sayicinin saat girisleri birbirinden bagimsizdir.
7490 entegresi sayicilari degisik sekillerde baglanarak 2'den 10'a kadar bölme iselmleri yapilabilir. BCD ve c'de BCD Bi - quinary sayma sirasi tablo halinde verilmistir. 7490 entegresinin BCD sayma için QA çikisi B girisine baglanmasi gerekir. BCD Bi - quinary sayma için QD çikisi A girisine baglanmalidir. c'de dogruluk tablosu görülmektedir. Dogruluk tablosundan görüldügü gibi saylama islemi için R9 ve R0 resetleme girislerinin en az birer girisleri "0" seviyeli olmalidir.
7493 entegresi de iki adet bagimsiz sayiciyi ihtiva eder. Biri 2'ye, digeri 8'e bölen sayicidir. Bununda bagimsiz iki saat girisi vardir. Bu entegredeki sayicilar bagimsiz veya kaskat baglanarak 2'den 16'ya bölme islemi yapilabilir. Dogruluk tablosunda görüldügü gibi sayma islemi için resetleme girislerinden enaz birinin "0" da olmasi gerekir.
Ayni sekilde bu entegrenin MOD - 16 sayicisi olarak kullanilmasi halinde sayma sirasi verilmistir. Bu durumda entegrenin QA sikisi B girisine baglanmalidir.
74191 iki yönlü senkron sayici entegresi görülmektedir. Bu entegrede sayma isemi asagi (down) veya yukari (up) yapilabildigi gibi mod kontrolu (alabilecegi durum sayisi) da yapilabilmektedir. Sayma için (Enable) yetki girisinin"0" da olmasi gerekir. Yetki girisi "1" ise sayma engellenir. FF.lar pozitife giden saat darbeleri ile tetiklenir. Sayma yönü asagi/yukari (down/up) girisindeki seviye ile belirlenir. Bu giris "0" ise yukari sayma, "1" ise asagi sayma gerçeklesir.
Sayici tam programlidir. Yük (load) girisindeki "0" seviyeli bir durum ile bilgi girislerindeki (Data Inputs) durumlara göre sayici önceden herhangi bir konuma set edilebilir. (Preset girisleri ile). Bu sayicida max/min çikis ve dalgali saat çikislarida mevcuttur. Sayicinin son çikisi max sayma veya min saymada "1" seviyeli çikis yapar. Dalgali saat (Ripple clock) çikisi bu durumda "0" seviyeli çikis verir. Bu çikis bir baska sayicinin yetki girisine baglanarak kaskat baglama islemleri gerçeklestirilebilir. Bu durumda kaskat bagli sayicilarin saat girisleri paralel olmali. Max/min sayma çikisi yüksek hizli çalismalar için kullanilir. Programli binary sayicisi olan 7556 entegresi görglmektedir. Yapida üç durum çikisli 4 adet NAND kapisi kullanilmistir. Senkron sayici yapisindadir. Diger kapilar totem pole çikislidir. Üç durum çikisli kapilar yüksek empedansli çikislardir.
Reset girisi ile sayici diger girislerden bagimsiz olarak sifirlanabilir. FF.lar pozitif kenar tetiklemelidir. Maximum sayma çikisi bir baska sayicinin yetki girisine dogrudan baglanarak iki sayici kaskat kullanilabilir.
Verilen örneklere dikkat edilirse sayilacak sayilar sürekli bir sira halinde verilmistir (0, 1, 2, 3, ...... veya 15, 14, 13, 12, ..... gibi). Bu kurala asenkron sayicilarda sadik kalmaliyiz, fakat senkron sayicilarda sayma isleminin belirli bir sira dahilinde olmasi sart degildir. Yani senkron sayiciyi istedigimiz sayilari sayabilecek sekilde tasarlayabiliriz.
Halka Sayicisi (Ring Counter)
Bazi uygulamalarda sayici girislerinde kod çözme (decoder) islemi gerekebilir. Bu islemi ortadan kaldirmak çok önemlidir. Bilindigi gibi bir kod çözücü, girislerindeki isaretlere göre herhangi bir anda daima bir çikisi dogru olan bir devredir.
Halka sayicilar her sayma için bir adet FF kullanirlar. O halde 10 sayan halka sayicissi istenirse, 10 adet FF kullanilacak demektir. Bu FF.lardan, herhangi bir anda sadece birinin çikisi dogrudur, yani "1" dir. Böylece kod çözücü devreye gerek kalmamistir.
bir halka sayicisi, son FF.un Q ve Qdegil çikislarinin ilk FF.un J ve K girislerine baglanmasiyla elde edilir. Ara kartlarda önceki FF.un Q çikisi sonraki FF.un J girisi ve önceki FF.un Qdegil çikisi sonraki FF.un K girisidir. Tüm FF.lar için tetikleme isareti (CK), ortak bir giristen temin edildiginden, halka sayicisi senkron sayicisinin bir çesitidir. Halka sayicisi, ayni zamanda saga kayma yapabilen bir kaymali kaydedicidir (Kaydediciler bundan sonraki kisimlarda incelenecektir).
devrenin çalismasini açiklayalim. Ilk anda CD silme darbesi ile FF1 set, digerleri reset konumuna ayarlanir. Bu anda FF1 çikisi "1" olurken diger çikislar "0" olacaktir. Bu durumda FF 10'dan FF 1'in J girisine "0", K girisine "1" beslenir. Ayni anda FF1 Q çikisindan FF2 J girisine "1", Qdegil çikisindan K girisine "0" uygulanir. Diger FFlarin J girislerinde "0", K girislerinde "1" vardir.
JK FFun dogruluk tablosunu hatirlayalim. Bilindigi gibi :
J = 0, K = 0 ise FF çikislari degismez.
J = 0, K = 1 ise Q = 0, Qdegil = 1 olur.
J = 1, K = 0 ise Q = 1, Qdegil = 0 olur.
J = 1, K = 1 ise FF çikislari bir önceki konumun tesi seklinde degisir, yani FF toggle modunda çalisir.
J ve K girisleri ancak 2 durumda bulunabilir, yani JK = 01 veya JK = 10 dir.
Buna göre devre gelen ilk tetikleme darbesinde FF1 ve FF2 konum degistirirler. FF1 çikisi 1'den 0'a giderken FF2 çikisi 0'dan 1'e gider. Böylece daha önce Q0 = 1 iken Q0 = 0 ve Q1 = 1 olur. Diger çikislar sifirda kalirlar. Bu anda FF1'in girisleri bir önceki konumuna sahiptir. FF2.nin J.si "0" K.si "1" ve FF3.ün J.si "1" K.si "0" olur. Diger FF.larin girisleri bir önce açiklandigi gibidir. Ikinci tetikleme darbesinde FF2 ve FF3 konum degistirerek FF2 çikisi olan Q1 0'a ve FF3 çikisi olan Q2 "1" e gider. Diger FF.larda bir degisme olmaz.
FF.larin tetiklemeleri bu sekilde devam ederek baslangiçta FF1 e yerlestirilen "1" bilgisi gelen her tetikleme darbesinde bir sonraki FF a aktarilir. Böylece her hangi bir zamanda sadece bir çikisi "1" olan ve girisine uygulanan darbeleri sayan bir özel senkron sayici çalismasi elde edilmis olur.
Johnson Sayicisi
Johnson sayicisi veya diger adiyla dalgali halka sayicisi, senkron sayicisinin bir baska seklidir. Yapisi halka sayicisina benzer, fakat son FF.tan birinci FF.a yapilan geri besleme farkli yerlerden alinmistir. Halka sayicisindaki son FF.un Q çikisini birinci FF.un K girisine ve son FF.un Qdegil çikisini birinci FF.un J girisine baglarsak bir Johnson sayicisi devrsi elde etmis oluruz.
Ayrica halka sayicisindaki FF1 ilk anda set ve digerleri reset edilmisken, Johnson sayicisinda ilk anda tüm FF.lar resetlenir. Yani tüm FF çikislari ilk anda "0" dir.
FF10 çikislarindan dolayi FF1 için J = 1, K = 0 dir. Diger FF.larda J = 0, K = 1'dir.
Gelen ilk darbede FF1 konum degistirerek Q0 = 1 olur. Bu nedenle FF2 için J = 1, K = 0 olmustur. Ikinci darbede FF1 için J = 1, K = 0 oldugu için FF1 konum degistirmez. Q0 = 1'dir. Bu darbede FF2 konum degistirerek çikisi "1" olur. Bçylece yeni bir darbede tetiklenecek sekilde FF3 girisleri olan J = 1, K = 0 olmustur. Üçüncü darbede FF3 çikisi konum degistirerek Q2 = 1 olur ve böylece konum degistirmek üzere FF4 hazir hale gelir.
Konum degistirmeler bu sekilde devam ederek 10 darbe sonunda tüm çikislar 1 olur. Saymanin yeniden baslamasi için sistemin tekrar resetlenmesi gerekir.