14
BİL 201 L 201 Birleşimsel Mantık Birleşimsel Mantık (Combinational Logic) (Combinational Logic) Bilgisayar Mühendisligi Bölümü Hacettepe Üniversitesi Bu derste... Bu derste... Birleşimsel Devreler - Çözümlenmesi - Tasarımı Birleşimsel Devre Örnekleri - Yarım Toplayıcı - Tam Toplayıcı - Tam Toplayıcı - Yarım Çıkarıcı - Tam Çıkarıcı - BCD Toplayıcı - Çarpma - Karşılaştırma - Kod Çözücüler ver Kodlayıcılar - Çoklayıcılar ve Dağıtıcılar Birleşimsel Birleşimsel Mantık Mantık (Combinatorial Combinatorial Logic) Logic) Bir ya da daha çok giriş sinyali Bir ya da daha çok çıkış sinyali Çıkışlar, yalnız giriş değerlerinin o andaki değerlerine bağlı değerlerdir. (yayılma gecikmesi değerlerine bağlı değerlerdir. (yayılma gecikmesi - propagation delays) 3 Birleşimsel Birleşimsel Mantık Mantık (Combinatorial Logic Combinatorial Logic ) Birleşimsel devreler belleksiz devrelerdir. - Çıkışlar, yalnızca giriş değerlerine bağlıdır. - Daha önceki olaylar bilinmez. - Aynı giriş değerleri her zaman aynı çıkış değerlerini verir. verir. Dizisel devreler (sequential circuit) bellekli devrelerdir. - Aynı giriş değerleri farklı çıkış değerlerini verebilir. 4

BBİİL 201 L 201 Birleşimsel Mantık (Combinational Logic) · Tam Toplayıcı Tam Toplayıcı ––Devre Şeması 2 Devre Şeması 2 2 yarım toplayıcı ve 1 OR geçiti ile. İkili

  • Upload
    lediep

  • View
    219

  • Download
    0

Embed Size (px)

Citation preview

BBİİL 201 L 201 Birleşimsel Mantık Birleşimsel Mantık

(Combinational Logic)(Combinational Logic)(Combinational Logic)(Combinational Logic)

Bilgisayar Mühendisligi Bölümü

Hacettepe Üniversitesi

Bu derste...Bu derste...

• Birleşimsel Devreler- Çözümlenmesi- Tasarımı

• Birleşimsel Devre Örnekleri- Yarım Toplayıcı- Tam Toplayıcı- Tam Toplayıcı- Yarım Çıkarıcı- Tam Çıkarıcı- BCD Toplayıcı- Çarpma- Karşılaştırma - Kod Çözücüler ver Kodlayıcılar- Çoklayıcılar ve Dağıtıcılar

BirleşimselBirleşimsel MantıkMantık((Combinatorial Combinatorial Logic)Logic)

• Bir ya da daha çok giriş sinyali

• Bir ya da daha çok çıkış sinyali

• Çıkışlar, yalnız giriş değerlerinin o andaki değerlerine bağlı değerlerdir. (yayılma gecikmesi değerlerine bağlı değerlerdir. (yayılma gecikmesi - propagation delays)

3

BirleşimselBirleşimsel MantıkMantık((Combinatorial Logic Combinatorial Logic ))

• Birleşimsel devreler belleksiz devrelerdir. - Çıkışlar, yalnızca giriş değerlerine bağlıdır.

- Daha önceki olaylar bilinmez.

- Aynı giriş değerleri her zaman aynı çıkış değerlerini verir.verir.

• Dizisel devreler (sequential circuit) bellekli devrelerdir. - Aynı giriş değerleri farklı çıkış değerlerini verebilir.

4

Birleşimsel Devrelerin Birleşimsel Devrelerin ÇözümlenmesiÇözümlenmesi

1. Devrenin tüm çıkışlarını etiketlendir.Çıkış değerleri

sadece giriş değerlerine ya da

giriş değerlerine ve etiketlenmiş geçitlere bağlı olabilir.

2. Tüm geçitlerin çıktısını ifade eden boole işlevlerini bul.

3. 2. adımda bulunan işlevleri de kullanarak devrenin boole işlevini (giriş değerlerine bağlı olarak) bul.

Örn : Devre Çözümleme 1/2Örn : Devre Çözümleme 1/2

y1 = ab

y2 = a + b

Örn : Devre Çözümleme 2/2Örn : Devre Çözümleme 2/2

y6 = y1 + y3 = ab + c(a + b) = ab + ac + bc

y7 = y6’ = (ab + ac + bc)’ = (ab)’ (ac)’ (bc)’ = (a’ + b’)(a’ + c’)(b’ + c’) = a’b’ + a’c’ + b’c’

y8 = y4y7 = (a + b + c)(a’b’ + a’c’ + b’c’) = ab’c’ + a’bc’ + a’b’c

y9 = y5 + y8 = abc + ab’c’ + a’bc’ + a’b’c

Sonuç: f1 = y6 = ab + ac + bc

f2 = y9 = abc + ab’c’ + a’bc’ + a’b’c

Doğruluk çizelgesi de elde edilebilir!

y2 = a + b

y3 = cy2 = c(a + b)

y4 = y2 + c = a + b + c

y5 = cy1 = abc

Birleşimsel Devrelerin TasarımıBirleşimsel Devrelerin Tasarımı

• Devrenin tanımından gerekli giriş ve çıkış belirle ve isimlendir.

• Giriş ile çıkış değerleri arasındaki ilişkiyi gösteren doğruluk çizelgesini elde et.doğruluk çizelgesini elde et.

• Herbir çıkış için yalınlaştırılmış Boole işlevini bul.

• Devre şemasını çiz.

Kod DönüştürücüKod Dönüştürücü

• Sayısal sistemler farklı kodlar kullanabilirler.

• Bazen bir sistemin çıkışı diğer bir sistemin girişi olabilir. - Farklı kod kullanılıyor ise bu iki sistem arasın- Farklı kod kullanılıyor ise bu iki sistem arasın

- a kod dönüştürücü devresi yerleştirilir.

Kod dönüştürücü (code converter) farklı kodlar kullanan iki ikili sistemi uyumlu hale getiren bir devredir.

Sayısal Kod ÖrnekleriSayısal Kod Örnekleri

Onlu Rakam BCD Kodu Artık-3 Kodu 5’ten 2 Kodu

0 0000 0011 00011

1 0001 0100 11000

2 0010 0101 10100

3 0011 0110 01100

4 0100 0111 10010

5 0101 1000 010105 0101 1000 01010

6 0110 1001 00110

7 0111 1010 10001

8 1000 1011 01001

9 1001 1100 00101

Örn: BCD Örn: BCD ArtıkArtık--3 Kod Dönüştürücü3 Kod Dönüştürücü

• BCD kodunu Artık-3 koduna çeviren kod dönüştürücü devre şemasını çiziniz.

A →→→→ →→→→W

Kod Dönüştürücü

A →→→→

B →→→→

C →→→→

D →→→→

→→→→W

→→→→X

→→→→Y

→→→→Z

BCD ArtıkBCD Artık--3 Kod 3 Kod Dönüştürücü Dönüştürücü devamı..devamı..

Doğruluk Çizelgesi

BCD ArtıkBCD Artık--3 Kod 3 Kod Dönüştürücü Dönüştürücü devamı..devamı..

Yarım Toplayıcı (Half Adder)Yarım Toplayıcı (Half Adder)

YT

↓ ↓

x y

c ←

(elde)

↓s (toplam)

Yarım Toplayıcı Yarım Toplayıcı –– Devre ŞemasıDevre Şeması

Tam Toplayıcı (Full Adder)Tam Toplayıcı (Full Adder)

TT

↓s (toplam)

↓ ↓

c ←

(elde)

← z

(giriş eldesi)

x y

s (toplam)

Tam Toplayıcı Tam Toplayıcı –– Devre ŞemasıDevre Şeması

Tam Toplayıcı Tam Toplayıcı –– Devre Şeması 2Devre Şeması 2

YT

YT

Tam Toplayıcı Tam Toplayıcı –– Devre Şeması 2Devre Şeması 2

2 yarım toplayıcı ve 1 OR geçiti ile

İkili Toplayıcı (Binary Adder)İkili Toplayıcı (Binary Adder)

Örnek:

TT TT TT TT

Yayılma Gecikmesi (Propagation Delay)Yayılma Gecikmesi (Propagation Delay)

Girişlerden birinde çıkışın değişmesini gerektiren bir

değişiklik olduğunda, girişteki değişikliğin gerçekleştiği an

ile çıkıştaki değişikliğin gerçekleştiği an arasındaki süredir.

Örn:Örn: Yayılma GecikmesiYayılma Gecikmesi

a

ab

c

d

y = ab + a’(b + c)d’

1 0 1

1 0

0 1 0 1

0 1

1

0

0

Yayılma gecikmesindeki farklılıklar nedeni ile gürültü dediğimiz sinyaller oluşabilir.

Çok düzeyli devrelerde oluşma ihtimali daha yüksektir.

Şekil Yarımağan’dan alınmıştır.

y

d0

Elde Yayılma Gecikmesi Elde Yayılma Gecikmesi (Carry Propagate Delay)(Carry Propagate Delay)

İki ikili sayının toplamı sırasında, sayıların bitleriaynı anda hesaplama için hazırdır.

Ama, her bir TT devresi, diğer TT devresindenAma, her bir TT devresi, diğer TT devresindengelen eldeyi beklemek durumundadır. Buna eldeyayılması (carry propagation) denir.

Elde Yayılma GecikmesiElde Yayılma Gecikmesi

• Bir eldenin oluşabilmesi için bir AND, bir de OR geçidinden geçmesi gerekir.

• Eğer 4 TT var ise, C0 dan C4 e kadar 4x2 = 8 geçit seviyesi (gate level) vardır.

• 2n

Elde Yayılma GecikmesiElde Yayılma Gecikmesi

• Elde Yayılma süresi önemlidir, iki sayının toplama hızını belirler.

• Bunu azaltmak için• Bunu azaltmak için- Daha hızlı geçitler kullanmak.

- Karmaşıklığı arttırmak.

Elde Yayılma Süresini AzaltmaElde Yayılma Süresini Azaltma• İki yeni ikili değişken tanımlanır : Pi (carry propagate)

Gi (carry generate)

Elde Devre ŞemasıElde Devre Şeması

İki düzeyli bir devre elde edilir.

Devrenin karmaşıklığı arttı. Carry lookahead generator devresidir.

Tam Toplayıcı Tam Toplayıcı –– Devre Şeması Devre Şeması 33 Yarım Çıkarıcı (Half Substractor)Yarım Çıkarıcı (Half Substractor)

↓ ↓

x y

b ←

(ödünç alınan)

Doğruluk Tablosunu ve

d,b işlevlerini bulunuz..

↓d (fark)

Tam Çıkarıcı (Full Substractor)Tam Çıkarıcı (Full Substractor)

↓ ↓

x y

b ←

(ödünç alınan)

← z

(giriş ödünç alınan)

↓d (fark)

44bitlik Toplayıcı ve Çıkarıcı bitlik Toplayıcı ve Çıkarıcı ((44--bit adderbit adder--substractor) substractor)

Çıkarma işlemi, tümlerleri kullanarak toplamaişlemine dönüştürülebilir.

A-B = A + (B)2’

Hem çıkarma, hem toplama işlemini TT devreleriile gerçekleştirebiliriz.

4bitlik Toplayıcı ve 4bitlik Toplayıcı ve Çıkarıcı Çıkarıcı Devre ŞemasıDevre Şeması

TT TT TT TT

M = 0 toplayıcıM = 1 çıkarıcı

BCD ToplayıcıBCD Toplayıcı• BCD kodlu iki sayının toplamını gerçekleştirir.

Çıkış eldesi

3 2 1 0 3 2 1 0

BCD Toplayıcı Giriş eldesi

BCD Kod Sözcükleri

b3 b

2 b

1 b

0 a

3 a

2 a

1 a

0

Çıkış eldesi

3 2 1 0

Giriş eldesi

s3 s

2 s

1 s

0

BCD Kod Sözcüğü

4 bitlik ikili toplayıcıya benzer. Ama BCD kodunda 9-15 değerlerine karşılık gelen kodlar tanımsızdır.

BCD ToplayıcıBCD Toplayıcı

• Eğer A ve B sayılarının toplamı 10’dan küçükse:

S = A+B ve elde değeri C = 0 dır.

• Eğer A ve B’nin toplamı 9’dan büyükse :

S = A + B + 6 ve C = 1 olmalıdır.S = A + B + 6 ve C = 1 olmalıdır.

Bu durumda bir TT devresine daha ihtiyaç vardır.

A+B nin 9 dan büyük mü küçük mü olduğunu k göstergesi ile gösterelim.

3 2 1 0 3 2 1 0

3 2 1 0

4 Bit’lik Toplayıcı Giriş

eldesi

BCD Kod Sözcükleri

b3 b

2 b

1 b

0 a

3 a

2 a

1 a

0BCD Toplayıcı

BCD Toplayıcı BCD Toplayıcı -- Devre ŞemasıDevre Şeması

Çıkış

eldesi

Kullanılmaz

3 2 1 0 3 2 1 0

3 2 1 0

4 Bit’lik Toplayıcıc

0 0

s3 s

2 s

1 s

0

BCD Kod Sözcüğü

3 2 1 0

0

k

İkili Sayı Çarpma (Binary Multiplier)İkili Sayı Çarpma (Binary Multiplier)

• Ondalık sayıların çarpımı ile aynı mantığa dayanır.

İki Bitlik İkili Sayıların Çarpımıİki Bitlik İkili Sayıların Çarpımı

4 ve 3 Bitlik 4 ve 3 Bitlik İİki ki SSayının Çarpımıayının Çarpımı Karşılaştırma Devreleri 1/3Karşılaştırma Devreleri 1/3

• İki sayıyı karşılaştırır.

• Karşılaştırma sonucu 3 ikili sayı ile belirlenir. - Eşit mi?

- Büyük mü?

- Küçük mü?- Küçük mü?

Karşılaştırma Devreleri 2/3Karşılaştırma Devreleri 2/3

• Eşit mi ? - Sayıların tüm bitleri birbirine eşit ise.- Exclusive-NOR işlevi ile gerçekleştirilebilir.

A = A3A2A1A0A = A3A2A1A0

B = B3B2B1B0

xi = AiBi + Ai’Bi’ (i = 0,1,2,3)

(A = B) = x3x2x1x0

Karşılaştırma Devreleri Karşılaştırma Devreleri 33//33• Büyük mü ? Küçük mü?

- En ağırlıklı bit pozisyonundan karşılaştırılmaya başlanır.

- Eşitse bir sonraki pozisyondaki bitler (daha az ağırlıklı) karşılaştırılır.

- Karşılaştırma eşit olmayan bitlere kadar devam eder. - Karşılaştırma eşit olmayan bitlere kadar devam eder.

(A > B) = A3B3’ + x3A2B2’ + x3x2A1B1’ + x3x2x1A0B0’

(A < B) = A3’B3 + x3A2’B2 + x3x2A1’B1 + x3x2x1A0’B0

4 bitlik Karşılaştırma Devresi4 bitlik Karşılaştırma Devresi Kod Çözücüler (Decoders)Kod Çözücüler (Decoders)• n giriş, maksimum 2n çıkış.• nxm kod çözücüler (n-to-m line decoders)

• Örn : 3x8 decoder- Her bir çıkış, 3 giriş değişkeninin 1 mintermine (çarpım terimi) karşılık

gelir.

3x8 Kod Çözücü3x8 Kod Çözücü 2x4 Kod Çözücü2x4 Kod Çözücü

Etkinleştirme girdisine (E) sahip bir kod çözücü 2 türlü olabilir:• E = 1 durumunda çalışır (active-high decoder)

(E = 0 ise tüm çıktılar 0, öteki durumlarda sadece bir çıktının değeri 1’dir)• E = 0 durumunda çalışır (active-low decoder)

(E = 1 ise tüm çıktılar 1, öteki durumlarda sadece bir çıktının değeri 0’dır)

4x16 Kod Çözücü4x16 Kod Çözücü Tam Toplayıcının Kod Çözücü ile Tam Toplayıcının Kod Çözücü ile GerçekleştirimiGerçekleştirimi

n girişi, m çıkışı olan herhangi bir birleşimsel devrenx 2n kod çözücü ve m OR geçidi ile gerçekleştirilebilir!

S(x,y,z) = ∑ (1,2,4,7)S(x,y,z) = ∑ (1,2,4,7)

C(x,y,z) = ∑ (3,5,6,7)

Kodlayıcılar (Encoders)Kodlayıcılar (Encoders)• Kod çözücülerin (decoder) tersi işlemini yapar.• 2n veya daha az giriş, n çıkış.

Örn : 8x3 encoder : sadece bir giriş aktif.

z = D1 + D3 + D5 + D7

y = D2 + D3 + D6 + D7

x = D4 + D5 + D6 + D7

Öncelik Kodlayıcı (Priority Encoders)Öncelik Kodlayıcı (Priority Encoders)

• Aynı anda birden fazla giriş aktif ise, öncelikli giriş önem kazanır.

Örn : D3 en öncelikli. D3 = 1 olduğunda, diğer girişlere bakılmaz.Bir ya da daha fazla giriş 1 olduğunda V (valid indicator) = 1’dir.

0000, 1000 ( Do ) i ayırdedebiliriz.0000, 1000 ( Do ) i ayırdedebiliriz.

Öncelik KodlayıcıÖncelik Kodlayıcı-- Devre ŞemasıDevre Şeması Çoklayıcılar (Multiplexers)Çoklayıcılar (Multiplexers)

• Bir ya da daha fazla girişlerdeki bilgiyi, tek bir çıkışa yönlendirir. Data selector olarak ta bilinir.

Örn : 2x1 çoklayıcıÖrn : 2x1 çoklayıcı

4X1 Çoklayıcı4X1 Çoklayıcı

S1 ve S0, ilgili AND geçitini şeçmek için kullanılır.

Çoklu Bit SeçimiÇoklu Bit Seçimi

Boole İşlevlerinin Çoklayıcılar ile Boole İşlevlerinin Çoklayıcılar ile GerçekleştirimiGerçekleştirimi

F(x,y,z) = ∑(1,2,6,7)

ÖrnekÖrnek

F(A,B,C,D) = ∑(1,3,4,11,12,13,14,15)