You are on page 1of 5

BİL 264/265 25 Haziran 2021 Cuma

TOBB Ekonomi ve Teknoloji Üniversitesi BİL264/265


Bilgisayar Mühendisliği Bölümü Mantıksal Devre Tasarımı
2020 – 2021 Öğretim Yılı
Yaz Dönemi Ara Sınavı

Adı Soyadı Öğrenci Numarası Bölümü

Açıklamalar
1. Sınavı çözmeye başlamadan önce tüm açıklamaları ve soruları okuyun. Sınavda toplam 4 soru
vardır ve soruların toplam değeri 100 puandır. Bütün soruların değeri köşeli ayraç ile
belirtilmiştir. Zamanınızı tek bir soru üzerinde harcamayın; tüm soruları yanıtlamaya çalışın.
Sınav süresi 120 dakikadır.
2. Tüm sınav kağıtlarının fotoğrafını Uzak sistemine yüklemeyi unutmayın. Adınızı tüm sayfalara
yazın.
3. Cevaplar tek bir pdf dosyası olarak gönderilir ve dosya adının formatı numara_ad_soyad.pdf’tir.
Format dışı gönderimlerden 5 puan kırılacak.
4. Sınav sırasında soru sorulmaz.
5. Sonucu yanlış olan yanıtlar puan alamayabilir. Gidiş yolunun ayrıntılı gösterilmesi sorudan puan
alınması için gereklidir ancak yeterli değildir. Açıklamasız işlem yapmamaya özen göstermeniz
alacağınız puanı artıracaktır.
Soru 1 (25) 2 (30) 3 (15) 4 (30) Toplam (100)
Not

1
BİL 264/265 25 Haziran 2021 Cuma

1. [25 Puan] Karışık MDT


a. [3 puan] Aşağıda 12-bitlik ikiye tümleyen gösteriminde yazılmış sayıların onluk tabandaki
değerleri nedir?
i. 100101110001
ii. 101010101010
iii. 000101011010

b. [2 puan] Aşağıdaki onluk tabanda gösterilen sayıyı IEEE-754 gösterimine çevirin.


i. 173,125

c. [10 puan] Aşağıdaki işlevleri Boole cebirinin özelliklerini kullanarak sadeleştirin. Her
aşamada Boole cebirinin hangi özelliğini kullanıp hangi ifadeleri sadeleştirdiğinizi belirtin.
i. F(A, B, C) = A’B’C’ + AB’C’ + A’BC’ + ABC
ii. F(X, Y, Z) = XYZ’ + X’Y + XY’ + XY + XZ

d. [4 puan] Aşağıda verilen Boole işlevlerinin toplamların çarpımı ve çarpımların toplamı


ifadeleri gösterin.
i. F(A, B, C) = ABC + A’C + A’BC + A
ii. F(X, Y, Z) = XYZ’ + XY + X + ZX’

e. [6 puan] F(A, B, C, D) = AB + D’ + AC’ ifadesinin devresini yalnızca evrensel mantık


kapılarını kullanarak çizin.

2
BİL 264/265 25 Haziran 2021 Cuma

2. [30 Puan] Bit Sayma


a. [15 Puan] 8-bit genişliğinde bir sayıdaki “mantık-1” bitlerinin sayısını veren devreyi
tasarlayın. Devrenizde istediğiniz sayıda tam toplayıcı (5 mantık kapısı), yarım toplayıcı (2
mantık kapısı) ve mantık kapısı kullanabilirsiniz. Bu sorudan alacağınız puan devrenizdeki
mantık kapısı sayısı ile ters orantılı olacak.

b. [5 Puan] Yukarıda tasarladığınız devreden ve tam toplayıcılardan en az sayıda kullanarak


64-bit genişliğindeki bir sayıda aynı işlemi gerçekleştiren devreyi tasarlayın.

c. [10 Puan] a şıkkında tasarladığınız devrenin Verilog kodunu yazın. Kodunuzda tam toplayıcı
ve yarım toplayıcı modüllerini kullanabilirsiniz.

module tam_toplayici(input a, input b, input c_i, output s, output c_o);


a = toplanan bit, b = toplanan bit s = toplam, c_i = giren elde, c_o = cikan elde

module yarim_toplayici(input a, input b, output s, output c);


a = toplanan bit, b = toplanan bit s = toplam, c = elde

3
BİL 264/265 25 Haziran 2021 Cuma

3. [15 Puan]
a. [5 Puan] F(a, b, c, d) = Σ(0, 2, 4, 5, 6, 8, 10, 12, 13, 14) fonksiyonunu en az sayıda transistör
kullanarak çiziniz. (Giriş olarak sadece a, b, c, d sinyallerini kullanabilirsiniz.)

b. [5 Puan] F(x, y, z) = Π(0, 2, 5, 7, 8, 10, 13, 15) fonksiyonunu en az sayıda transistör


kullanarak çiziniz. (Giriş olarak sadece x, y, z sinyallerini kullanabilirsiniz.)

c. [5 Puan] F(x, y, z, t) = y’(x t + x z) fonksiyonunu sadece en az sayıda 2 girişli NOR kapısı


kullanarak çizin. (Giriş olarak sadece x, y, z, t sinyallerini kullanabilirsiniz.)

4
BİL 264/265 25 Haziran 2021 Cuma

4. [30 Puan] Bileşik Mantık ve Verilog Modelleme


a. [15 Puan] Bir COVID19 aşı merkezi, hastalarının kolay bir şekilde aşı seçmeleri için bir
devre tasarlamak istiyordur. Aşı seçme işleminde aşağıdaki faktörler etkilidir.
■ Hastanın yaşı(Y1Y0): Hastanın yaşı 18’den küçük ise Y1Y0 = 00, 18-30 arası ise
Y1Y0 = 01, 30-65 arası ise Y1Y0 = 10, 65’ten büyük ise Y1Y0 = 11.
■ Kronik rahatsızlık(K): Hastanın kronik rahatsızlığı yok ise K = 0, var ise K = 1.
■ Sigara kullanımı(S): Hasta sigara kullanmıyor ise S = 0, kullanıyor ise S = 1.
■ Bilgisayar mimarisini sevme(B): Hasta bilgisayar mimarisini sevmiyorsa B = 0,
seviyor ise B = 1.
Yukarıdaki faktörlere göre hastanın kullanacağı aşı markası aşağıdaki gibidir.
■ Hasta 18 yaşının altında ise kesinlikle aşı yapılmaması gerekiyor.
■ Sigara kullanımının aşı seçme işlemine herhangi bir etkisi yoktur.
■ Hastanın yaşı 65’ten büyük ise kesinlikle BioNTech marka aşı olmalıdır.
■ 18-65 yaş aralığında olup bilgisayar mimarisi sevmeyen hastalar Sinovac marka aşı
olmalıdır.
■ Geri kalan hastalardan 18-30 yaş aralığında olup kronik rahatsızlığı olan hastalar
BioNTech marka aşı olmalıdır.
■ Geri kalan hastalar ise Sputnik marka aşı olmalılardır.
Aşı markaları çıkışlara A 1A0 sinyalleri ile gösterilecektir. Aşı yapılmaması gerekiyor ise
A1A0 = 00, BioNTech marka aşı için A1A0 = 01, Sinovac marka aşı için A1A0 = 10 ve Sputnik marka aşı
için A 1A0 = 11 verilmesi gerekiyor.
Yukarıdaki maddeleri sağlayan, giriş olarak Y1Y0, K, S, B sinyallerini alan ve çıkış olarak A1A0
çıkışını veren bir devreyi sadece en az sayıda 4x1 çoklayıcı, 8x3 kodlayıcı ve 3x8 kod çözücü
kullanarak tasarlayınız. Devrenizde giriş olarak Y1, Y0, K, S, B sinyallerine ek olarak mantık-0 ve
mantık-1 sinyallerini kullanabilirsiniz.

b. [10 Puan] Aşağıdaki girdi ve çıktıları verilen modülleri Verilog kapı seviyesinde modelleme
kullanarak yazınız. (Modüllerin fonksiyonları yorum olarak verilmiştir.)
module coklayici_4x1(input[3:0] a, input[1:0] s, output m);
// coklayici_4x1: m = s[1]’.s[0]’.a[0]+s[1]’.s[0].a[1]+s[1].s[0]’.a[2]+s[1].s[0].a[3]
module kodlayici_8x3(input[7:0] a, output[2:0] m);
// kodlayici_8x3: m[0] = a[1]+a[3]+a[5]+a[7]
// kodlayici_8x3: m[1] = a[2]+a[3]+a[6]+a[7]
// kodlayici_8x3: m[2] = a[4]+a[5]+a[6]+a[7]

c. [5 Puan] a şıkkında tasarladığınız Aşı Seçme devresine ait Verilog kodunu yazın.
Modelinizde b şıkkındaki modülleri ve aşağıdaki kodcozucu_3x8 modülünü
kullanabilirsiniz.
module kodcozucu_3x8(input[2:0] a, output[7:0] m);
// kodcozucu_3x8: m[0] = a[2]’.a[1]’.a[0]’
// kodcozucu_3x8: m[1] = a[2]’.a[1]’.a[0]
// kodcozucu_3x8: m[2] = a[2]’.a[1].a[0]’
// kodcozucu_3x8: m[3] = a[2]’.a[1].a[0]
// kodcozucu_3x8: m[4] = a[2].a[1]’.a[0]’
// kodcozucu_3x8: m[5] = a[2].a[1]’.a[0]
// kodcozucu_3x8: m[6] = a[2].a[1].a[0]’
// kodcozucu_3x8: m[7] = a[2].a[1].a[0]

You might also like