Sayısal Tasarım Final Soruları (II. Öğretim – Soru : 2)

İstek üzerine sayısal tasarım final sorularını vakit buldukça çözüp paylaşacağım. Soruların birden fazla çözüm yolu olabilir. Önce elinde olmayan arkadaşlar için sınav sorularının olduğu word belgesini paylaşayım.

İndirmek için tıklayın

Başlıkta da yazdığım gibi II. öğretimlerin 2. sorusundan başlıyorum.

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)

ÇÖZÜM : Bu soruda aklıma ilk gelen, bu girişleri tek tek tarayıp, bunun çıkışını bir sayıcıya clock olarak kullanmaktı. Bu yönde bir şey tasarladım. Tabii bilgisayar üzerinde tasarlarken deneme-yanılma ve test etme imkanım olduğu için sınavdaki kadar kafa karıştırıcı olmadı. Aşağıya tasarladığım şemayı ekliyorum, ardından da açıklamalara geçeceğim.

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.

Umarım anlaşılabilir bir dille yazmışımdır. İyi geceler :)

Paylaş

Yorum Yap


Not - Bunları KullanabilirsinizHTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>