4 Şubat 2013 Pazartesi

Sayısal Tasarım Soru Çözümü


Soru:a,b,c,d,e,f,g gibi 7 adet girişe sahip devrede “1” olan girişlerin toplam sayısını bulan sayısal devreyi tasarlayınız. (20p)


saytas

Olay şöyle işliyor : girişleri multiplexerdan veriyoruz, yalnız 7 giriş dendiği için 8 to 1 mux’un 8. girişini toprağa bağlayacağız ki lojik 0 olarak işlem görsün ve 1′lerin toplamına dahil edilmesin. C-1 sayıcısına clock pals uyguluyorum. Yetkilendirme ucunu da Q0, Q1 ve Q2′nin ve’lenmesine bağladım. Bu şu işe yarayacak: bu üç çıkışın tamamı 1 olduğunda, yani decimal olarak 7 olduğunda yetkilendirme ucuna lojik 1 gidecek. Yetkilendirme ucu lojik 0 iken sayıcı sayar, lojik 1 iken saymaz. Bu durumda elimizde 0′dan 7′ye kadar bir defa sayan bir sayıcı oldu.
Üstte de belirttiğim gibi girişleri tek tek tarayacağız. C-1 sayıcısının görevi de; girişleri verdiğim mux’un adres girişlerini değiştirerek, çıkışa yansıyacak olan girişi değiştirmek.
Bu noktada her şey çok güzel. Girişimiz 1 ise 1, 0 ise 0 alıyoruz. Ancak henüz bunu C-2 sayıcısı için clock olarak kullanamayız. Sebebi ise arka arkaya iki tane lojik 1 gelirse, inen kenar olmayacağı için bu iki pals değil, 1 pals olarak işleyecek. Bunu gidermemiz gerek. Bunun için de şöyle bir şey düşündüm: bir flip flop ile, çıkışa sırayla bir girişi, bir de lojik 0 verirsem, girişe ardarda iki kez lojik 1 gelse bile, arada vereceğim lojik 0 sayesinde doğru sayıda, yani iki adet pals üretmiş olacağım.
Bunun için ISIS’in kütüphanesinde flip flop ararken hem D girişi, hem de R-S girişleri olan bir flip flopa denk geldim. Bu flip flop tam da yapmak istediğim şeyi karşılayacak türden. R-S girişlerinden 0-0 verirsem, çıkışa aynen D girişini veriyor, 1-0 verirsem çıkışa lojik 0 veriyor. Ben de bu flip flopu kullandım.
Mux’un çıkışını, flip flopun D girişine bağlıyorum. Flip flopun clock girişini devremin esas clock girişinden alıyorum. Flip flopun Q çıkışını da C-2 sayıcım için clock olarak bağlıyorum. Bu şekilde devre çalışıyor, fakat ardarda gelen lojik 1′ler, C-2 tarafından tek pals olarak ayarlanıyor. Bunu çözmek için aralarda lojik 0 vermem gerektiğini söylemiştim.
Bunu sağlamak için de esas clock sinyalimi NOT kapısına sokarak flip flopun R girişine bağlıyorum. Bu durumda clock sinyalimin çıkan kenarında R 0, düşen kenarında 1 olacak. R-S 0-0 olduğunda ki bu çıkan kenarda oluyor, flip flopun çıkışına, D girişindeki değer gidecek. Clock düşen kenarda iken R değeri 1 olacağından çıkışa lojik 0 gidecek. Böyle çalıştığı zaman da C-2 sayıcıma doğru palsi vermiş olacağım.
Flip flopun giriş ve çıkışlarında olabilecek durumlardan birine bakalım:
Giriş : 0-1-1-0-1-0-1   Çıkış : 0-0-1-0-1-0-0-0-1-0-0-0-1-0
Gördüğünüz gibi flip flopu hem çıkan hem de düşen kenarda çalıştırdığım için çıkışlar, girişin iki katı kadar. Ayrıca her düşen kenarda da çıkışa lojik 0 veriliyor. Kırmızı ile yazdığım 0′lar, bu düşen kenarda verilen 0′lar. Bu durumda C-2′ye 4 adet pals gelmiş oluyor, C-2 4′e kadar sayıyor ve ledlerde de bu değeri görüyoruz. İstenirse 7447 ve 7 segment displaylerle de gösterilebilir.

Hiç yorum yok:

Yorum Gönder