Kombinasyonel devreler: decoder, mux, full adder, PLA
Decoder, multiplexer, full adder ve ripple-carry toplayıcı, PLA ile her fonksiyonu kurmak. Kısa cevap ve izleme soruları için gereken her şey.
Geçen sayfada kapıları gördün. Bu sayfada onlardan kurulan, her işlemcide bulunan dört yapı taşını öğreneceksin: decoder, multiplexer, full adder ve PLA. Hepsi kombinasyonel (combinational) devredir: çıkış sadece şu anki girişlere bağlıdır, hiçbir şey hatırlamaz. Hatırlayan devreler (latch, register) 4. haftanın konusu.
Vizede bu yapılardan kısa cevap gelir: “giriş 101 ise hangi çıkış 1?”, “32-to-1 mux kaç select ister?”, “full adder’ın 1+1+0 çıkışı?”, “4-bit toplayıcının carry’lerini yaz”. LC-3’te de hepsini göreceksin: register seçimi decoder ile, ALU girişi mux ile, toplama toplayıcı ile yapılır.
Decoder
girişli bir decoder’ın çıkışı vardır. Girişi ikilik bir sayı olarak okur ve o numaralı çıkışı 1, geri kalan hepsini 0 yapar.
2-to-4 decoder
A1 A0 | D0 D1 D2 D3
0 0 | 1 0 0 0
0 1 | 0 1 0 0
1 0 | 0 0 1 0
1 1 | 0 0 0 1
D0 = A1'A0' D1 = A1'A0 D2 = A1A0' D3 = A1A0
Her çıkış bir AND kapısıdır ve tam olarak bir minterm’i üretir. Bu yüzden:
İPUCU · Decoder + OR = her fonksiyon. Bir fonksiyonun minterm listesi ise 3-to-8 decoder’ın D1, D2, D4, D7 çıkışlarını bir OR kapısına bağla. Bitti.
Nerede kullanılır? Komutun opcode’unu çözmek (hangi komut?), bellekte adres çözmek (hangi satır?), register dosyasında hangi register’a yazılacağını seçmek.
Multiplexer (mux)
Mux, veri girişinden birini seçip çıkışa geçirir. Hangisinin geçeceğine tane select hattı karar verir.
| Mux | Veri girişi | Select hattı |
|---|---|---|
| 2-to-1 | 2 | 1 |
| 4-to-1 | 4 | 2 |
| 8-to-1 | 8 | 3 |
| 32-to-1 | 32 | 5 |
2-to-1 mux’un denklemi:
4-to-1 mux bir 2-to-4 decoder ile dört AND kapısı ve bir OR kapısıdır: decoder select’i çözer, seçilen AND kapısı kendi veri girişini geçirir.
4-to-1 mux, I0..I3 = 1, 0, 0, 1
S1 S0 = 11 → I3 → çıkış 1
S1 S0 = 01 → I1 → çıkış 0
Mux ile fonksiyon kurmak
değişkenli bir fonksiyonu -to-1 mux ile kurabilirsin. İlk değişkeni select’e bağla. Tabloyu bu değişkenlere göre ikişer satırlık gruplara böl. Her grupta F, son değişkenin (C) cinsinden şu dört şeyden biridir: 0, 1, C, C’.
Örnek: , select = AB.
| AB | satırlar | F | girişe |
|---|---|---|---|
| 00 | m0 = 1, m1 = 0 | C = 0 iken 1 | |
| 01 | m2 = 0, m3 = 1 | C = 1 iken 1 | |
| 10 | m4 = 1, m5 = 1 | hep 1 | |
| 11 | m6 = 0, m7 = 0 | hep 0 |
Toplayıcılar
Half adder
İki biti toplar: , . Gelen carry’yi alamaz, bu yüzden sadece en sağ bitte işe yarar.
Full adder
Üç biti toplar: A, B ve sağdan gelen . İki çıkışı var: toplamın sağ biti S ve sola giden .
| A | B | Cin | Cout | S |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 | 1 |
| 0 | 1 | 0 | 0 | 1 |
| 0 | 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 0 | 1 |
| 1 | 0 | 1 | 1 | 0 |
| 1 | 1 | 0 | 1 | 0 |
| 1 | 1 | 1 | 1 | 1 |
Tabloyu ezberleme, üç biti topla: 1+1+1 = 3 = 11 → Cout = 1, S = 1. Denklemler:
S, tek sayıda 1 olduğunda 1’dir (odd parity). Cout, en az iki giriş 1 olduğunda 1’dir (majority).
Ripple-carry adder
bitlik iki sayıyı toplamak için full adder yan yana konur. Her birinin ‘u solundakinin ‘ine bağlanır. En sağdakinin ‘i 0’dır. Carry sağdan sola “dalgalanarak” (ripple) ilerler.
Çözümlü örnek: 0111 + 0101
carry in: 1 1 1 0
0 1 1 1 (7)
+ 0 1 0 1 (5)
---------
1 1 0 0 (12), Cout = 0
bit0: 1+1+0 = 10 → S=0, c=1
bit1: 1+0+1 = 10 → S=0, c=1
bit2: 1+1+1 = 11 → S=1, c=1
bit3: 0+0+1 = 01 → S=1, c=0
Bu toplayıcı unsigned ve 2’s complement için aynı devredir. 2’s complement’te 0111 + 0101 = 1100 olduğu için (iki pozitif → negatif) overflow vardır; bu, 2. haftadaki kuralın donanımdaki karşılığı. Çıkarma için B’nin her biti NOT’lanır ve en sağ = 1 yapılır: .
PLA (programmable logic array)
PLA, “her fonksiyonu SOP olarak kur” fikrinin hazır bir donanımıdır. İki katmanı var:
- AND dizisi (AND array): girişlerden ve tersinden çarpım terimleri üretir.
- OR dizisi (OR array): istenen terimleri her çıkışın OR kapısına bağlar.
Bağlantılar “programlanır”: hangi AND kapısının hangi OR’a gideceği seçilir. Bir terim birden fazla çıkış tarafından paylaşılabilir.
Örnek: , . Gereken farklı minterm’ler 0, 3, 5, 6. AND dizisinde 4 kapı yeter; m3’ün kapısı iki OR kapısına da bağlanır.
3 girişli tam bir PLA en fazla 8 farklı minterm üretir. girişte .
Combinational ve sequential farkı
| Combinational | Sequential | |
|---|---|---|
| Çıkış neye bağlı? | sadece şu anki girişe | girişe ve geçmişe (state) |
| Hafıza | yok | var |
| Örnekler | decoder, mux, adder, PLA | latch, flip-flop, register, FSM |
| Hafta | 3 | 4 |
Sık yapılan hatalar
| Yanlış düşünce | Doğrusu |
|---|---|
| Decoder’da birden fazla çıkış 1 olabilir | Her zaman tam bir çıkış 1 |
| 3-to-8 decoder 3 çıkışlı | 3 giriş, 8 çıkış |
| 32-to-1 mux 32 select ister | , yani 5 select |
| Mux select’i ile veri girişi aynı şey | Select seçer, veri geçer |
| Full adder 1+1+1: S=0, Cout=1 | 3 = 11 → S=1, Cout=1 |
| Cout = A⊕B⊕Cin | O S’nin formülü; Cout majority |
| 2’s complement için ayrı toplayıcı gerekir | Aynı devre, sadece overflow yorumu farklı |
| PLA’da her çıkış kendi terimlerini üretir | Terimler paylaşılır |
Kendini test et
Sınavdaki gibi İngilizce sorular. Önce kâğıt kalemle çöz, sonra cevabı aç.
A 3-to-8 decoder has input A2A1A0 = 110. Which output is 1?
Cevabı göster
Decoder girişi ikilik bir sayı olarak okur ve o numaralı çıkışı 1 yapar. 110 = 6 → D6 = 1, diğer yedi çıkış 0.
How many outputs does a decoder with 5 inputs have, and how many of them are 1 at the same time?
Cevabı göster
girişli decoder çıkışlıdır: . Her giriş kombinasyonu tam olarak bir çıkışı seçer.
Write the Boolean expression of output D2 of a 2-to-4 decoder with inputs A1 (MSB) and A0.
Cevabı göster
D2, girişler 10 iken 1 olur. Bu tek satırın minterm'i: A1 = 1 → A1, A0 = 0 → A0'. Yani D2 = A1·A0'. Her decoder çıkışı bir minterm'dir.
How many select lines does an 8-to-1 multiplexer need?
Cevabı göster
veri girişinden birini seçmek için select hattı gerekir. → 3.
An 8-to-1 mux has data inputs I0..I7 = 0, 1, 1, 0, 1, 0, 0, 1 and select S2S1S0 = 101. What is the output?
Cevabı göster
101 = 5 → çıkış I5. Listede sıfırdan say: I0=0, I1=1, I2=1, I3=0, I4=1, I5=0. Çıkış 0.
Write the output equation of a 2-to-1 multiplexer with data inputs A, B and select S (S = 0 selects A).
Cevabı göster
S = 0 iken S'A terimi A'yı geçirir, SB terimi 0 olur. S = 1 iken tersi. Bu ifadeyi devre okuma sorusunda görürsen 'bu bir mux' de.
Give S and Cout of a full adder for A = 1, B = 0, Cin = 1.
Cevabı göster
1 + 0 + 1 = 2 = 10 (ikilik). Sağdaki bit S = 0, soldaki bit Cout = 1. Formülle: S = 1⊕0⊕1 = 0, Cout = AB + ACin + BCin = 0 + 1 + 0 = 1.
Write the sum S and carry-out of a full adder as Boolean expressions of A, B and Cin.
Cevabı göster
S, girişlerden tek sayıda 1 olduğunda 1: Σm(1,2,4,7) = A⊕B⊕Cin. Cout, en az iki giriş 1 olduğunda 1: Σm(3,5,6,7) = AB + ACin + BCin (majority).
A 4-bit ripple-carry adder computes 1011 + 0110 with C0 = 0. Give the 4-bit sum, the final carry-out, and the carry into each bit (bit 3 to bit 0).
Cevabı göster
Sağdan: bit0: 1+0+0 = 1, c=0. bit1: 1+1+0 = 10 → 0, c=1. bit2: 0+1+1 = 10 → 0, c=1. bit3: 1+0+1 = 10 → 0, c=1.
Toplam 0001, dışarı 1. Bitlere giren carry'ler (bit3..bit0) 1 1 0 0. Kontrol: 11 + 6 = 17 = 1 0001.
Using a 3-to-8 decoder and one OR gate, which decoder outputs must be ORed to implement F(A,B,C) = A ⊕ B ⊕ C?
Cevabı göster
A⊕B⊕C, tek sayıda 1 olan satırlarda 1: 001, 010, 100, 111 → m1, m2, m4, m7. Decoder her minterm'i ayrı bir çıkışta üretir; bu dört çıkışı OR'lamak yeter.
Implement F(A,B,C) = Σm(1, 2, 6, 7) with a 4-to-1 mux whose select lines are A (MSB) and B. What goes on inputs I0, I1, I2, I3?
Cevabı göster
Tabloyu AB çiftlerine böl, her çiftte F'yi C cinsinden yaz.
AB = 00: m0 = 0, m1 = 1 → F = C. AB = 01: m2 = 1, m3 = 0 → F = C'. AB = 10: m4 = 0, m5 = 0 → F = 0. AB = 11: m6 = 1, m7 = 1 → F = 1.
A PLA implements F1 = Σm(0, 3) and F2 = Σm(3, 5, 6) of inputs A, B, C using minterms. How many AND gates are needed in the AND array?
Cevabı göster
PLA'da AND dizisi terimleri üretir, OR dizisi bunları çıkışlara bağlar. Bir terim birden fazla çıkışta paylaşılabilir. Gereken farklı minterm'ler: {0, 3, 5, 6}, yani 4 AND kapısı. m3 hem F1'e hem F2'ye bağlanır.
Doğrulama: Decoder, mux, full adder ve ripple-carry toplayıcı node ile simüle edildi; mux ve decoder ile kurulan fonksiyonlar tüm giriş kombinasyonlarında hedef tabloyla karşılaştırıldı (verify/SEN2201/03.mjs).