Sayısal Mantık Tasarımı

Sayısal Mantık Tasarımı
Bu sayfanın QR kodu

Boole cebiri, Karnaugh haritaları, birleşimsel ve sıralı devreler, flip-floplar, sayaçlar, yazmaçlar ve durum makinelerini; CDC, metastabilite, geçici mantık hataları, sentez ve statik zamanlamayla birleştiren ders notları.

Sayısal mantık, Boole ifadesinden gerçek devreye, oradan ardışıl davranış ve durum makinelerine uzanan bir tasarım zinciridir. Karnaugh sadeleştirmeleri, kombinasyonel bloklar, flip-floplar, sayaçlar ve yazmaçlar bu zincirin birbirini tamamlayan parçalarıdır. Daha yeni HDL terminolojisi tarihsel çekirdeği açıklığa kavuşturduğu ölçüde kullanılır.

Ünite 1: Sayı Sistemleri ve İkili Kodlar

1.1. Konumsal Sayı Sistemleri

Sayısal sistemlerde sayıların değeri yalnız kullanılan sembollere değil, bu sembollerin bulunduğu basamaklara da bağlıdır. Tabanı b olan konumsal bir sayı sistemi:

(dn ... d2 d1 d0 . d-1 d-2 ...)b

biçiminde gösterilebilir.

Sayının değeri:

N = sum(di x b^i)

ile bulunur.

Burada:

  • b: sayı sisteminin tabanı,
  • di: ilgili basamaktaki rakam,
  • i: basamak konumudur.

Bir tabanda kullanılabilecek rakamlar:

0 ... b-1

aralığındadır.

Örneğin onluk sistemde taban 10, ikili sistemde 2, sekizli sistemde 8, onaltılı sistemde 16'dır.

1.2. Basamak Ağırlığı

Bir sayının her basamağı:

di x b^i

ağırlığına sahiptir.

Örneğin:

65872_10

sayısında:

6 x 10^4
5 x 10^3
8 x 10^2
7 x 10^1
2 x 10^0

terimleri bulunur.

En sağdaki basamak en az anlamlı basamak, en soldaki basamak en çok anlamlı basamaktır.

İkili sayılarda bunlar sırasıyla:

LSB - Least Significant Bit
MSB - Most Significant Bit

olarak adlandırılır.

1.3. Kombinasyon Sayısı

Tabanı b olan sistemde n basamak:

b^n

farklı kombinasyon oluşturabilir.

İkili sistemde n bit:

2^n

farklı değer temsil eder.

Örneğin 8 bit:

2^8 = 256

farklı bit deseni oluşturur.

İşaretsiz gösterimde bu desenler:

0 ... 255

aralığını temsil edebilir.

1.4. Onluk Sayı Sistemi

Onluk sistemin tabanı:

10

ve rakamları:

0 1 2 3 4 5 6 7 8 9

şeklindedir.

Günlük yaşamda kullanılan sayı sistemidir.

1.5. İkili Sayı Sistemi

İkili sistemin tabanı:

2

ve rakamları:

0
1

olarak tanımlanır.

Sayısal elektronik için doğal gösterimdir çünkü iki kararlı mantık durumu doğrudan iki sembolle temsil edilebilir.

Örnek:

101101_2

onluk sistemde:

1 x 2^5 +
0 x 2^4 +
1 x 2^3 +
1 x 2^2 +
0 x 2^1 +
1 x 2^0
=
45_10

değerine eşittir.

1.6. Sekizli Sayı Sistemi

Sekizli sistemin tabanı:

8

ve rakamları:

0 1 2 3 4 5 6 7

şeklindedir.

Bir sekizli rakam tam olarak üç bit ile gösterilebilir:

0_8 = 000_2
1_8 = 001_2
...
7_8 = 111_2

Bu nedenle ikili-sekizli dönüşüm üçlü bit grupları üzerinden kolaylıkla yapılabilir.

1.7. Onaltılı Sayı Sistemi

Onaltılı sistemin tabanı:

16

ve rakamları:

0 1 2 3 4 5 6 7 8 9 A B C D E F

şeklindedir.

A = 10
B = 11
C = 12
D = 13
E = 14
F = 15

Bir onaltılı rakam dört bite karşılık gelir:

0_16 = 0000_2
...
F_16 = 1111_2

Bu nedenle işlemci yazmaçları, adresler ve bit maskeleri çoğu zaman onaltılı gösterimle yazılır.

1.8. Onluktan İkiliye Dönüşüm

Tamsayı bölümünde sayı art arda 2'ye bölünür. Kalanlar ters sırada okunur.

Örnek:

13 / 2 = 6 kalan 1
 6 / 2 = 3 kalan 0
 3 / 2 = 1 kalan 1
 1 / 2 = 0 kalan 1

Sonuç:

13_10 = 1101_2

1.9. İkiliden Onluya Dönüşüm

Her bit basamak ağırlığıyla çarpılır:

110101_2
=
1 x 2^5 +
1 x 2^4 +
0 x 2^3 +
1 x 2^2 +
0 x 2^1 +
1 x 2^0
=
53_10

1.10. İkili-onaltılı Dönüşüm

İkili sayı sağdan başlayarak dörderli gruplara ayrılır:

1011 1100 0110
   B    C    6

Dolayısıyla:

101111000110_2 = BC6_16

Ters dönüşümde her onaltılı rakam dört bit ile değiştirilir.

1.11. İkili-sekizli Dönüşüm

Bitler üçlü gruplara ayrılır:

101 110 011
 5   6   3

Dolayısıyla:

101110011_2 = 563_8

1.12. İkili Toplama

Temel kurallar:

0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10
1 + 1 + 1 = 11

1 + 1 işleminde:

toplam = 0
elde = 1

oluşur.

Bu davranış tam toplayıcı devresinin temelidir.

1.13. İki'nin Tümleyeni

Modern sayısal sistemlerde signed tamsayıların temel gösterimi ikinin tümleyenidir.

n bit signed aralık:

-2^(n-1) ... 2^(n-1)-1

olur.

8 bit için:

-128 ... 127

Bir bit deseninin ikinin tümleyeni:

  1. bütün bitleri tersle,
  2. sonuca 1 ekle

adımlarıyla elde edilir.

Örnek:

00001101     13
11110010     1'in tümleyeni
11110011     2'nin tümleyeni

Bu desen 8 bit signed gösterimde -13 değeridir.

1.14. İkili Çıkarma

Çıkarma toplama donanımı kullanılarak yapılabilir:

A - B
=
A + two_complement(B)

Örneğin:

7 - 3
=
7 + (-3)

biçiminde hesaplanabilir.

Bu özellik sayısal devre tasarımında ayrı bir büyük çıkarma donanımı yerine toplama ve tümleme yapılarının birlikte kullanılmasını sağlar.

1.15. İkili Çarpma

Temel bit çarpımları:

0 x 0 = 0
0 x 1 = 0
1 x 0 = 0
1 x 1 = 1

Çok basamaklı çarpım:

  • kısmi çarpım üretme,
  • kaydırma,
  • toplama

işlemleriyle gerçekleştirilebilir.

Örnek:

   1011
x   101
-------
   1011
  0000
 1011
-------
110111

1.16. İkili Bölme

İkili bölme:

  • karşılaştırma,
  • çıkarma,
  • kaydırma

işlemleri kullanılarak yapılabilir.

Tekrarlı çıkarma öğretici bir modeldir, ancak donanım bölücüler daha gelişmiş ardışıl veya paralel algoritmalar kullanabilir.

1.17. İkili Sayı ve İkili Kod Farkı

İkili sayı:

1010_2

gibi bir sayısal değerin taban-2 gösterimidir.

İkili kod ise bir sembol veya bilgiyi belirli kurala göre bit dizisiyle temsil eder.

Örneğin onluk 12 sayısı:

1100_2

ikili değerine sahiptir.

8421 BCD kodu ise:

0001 0010

şeklindedir.

Bu iki gösterim birbirine karıştırılmamalıdır.

1.18. BCD

BCD, her onluk rakamı ayrı dört bitlik kodla gösterir.

Örnek:

59_10

için:

5 -> 0101
9 -> 1001

dolayısıyla:

59_BCD = 0101 1001

olur.

Dört bit 16 kombinasyon oluşturmasına rağmen BCD yalnız:

0000 ... 1001

aralığındaki 10 deseni kullanır.

1.19. Alfanümerik Kodlar

Karakterler de bit dizileriyle kodlanır.

ASCII:

7 bit
128 kod noktası

tanımlar.

ASCII'nin kendisi 7 bitlik bir koddur. Tarihsel seri iletişim sistemlerinde ayrıca sekizinci bit eşlik biti olarak kullanılabilmiştir, ancak bu ASCII standardının zorunlu bir parçası değildir.

EBCDIC özellikle IBM ana bilgisayarlarında tarihsel ve güncel kullanım alanına sahip 8 bitlik karakter kodlama ailesidir.

Modern metin sistemlerinde temel standart Unicode'dur. Unicode kod noktaları UTF-8, UTF-16 ve UTF-32 gibi kodlama biçimleriyle saklanabilir.

1.20. İşaretli Sayı Gösterimleri: işaret-büyüklük, Birin ve İkinin Tümleyeni

İşaretli tam sayıları kodlamak için tarihsel olarak birden fazla yöntem kullanılmıştır.

İşaret-büyüklük (sign-magnitude) gösteriminde en anlamlı bit işareti, kalan bitler büyüklüğü temsil eder. Bu yapı sezgiseldir; ancak +0 ve -0 olmak üzere iki sıfır deseni üretir.

Bir'in tümleyeni (one's complement) negatif değeri pozitif desenin bütün bitlerini tersleyerek oluşturur. Bu gösterimde de iki sıfır bulunur.

İki'nin tümleyeni (two's complement) tek bir sıfır deseni sağlar ve aynı toplayıcı yapısının hem pozitif hem negatif değerlerde kullanılmasını kolaylaştırır. Bu nedenle modern genel amaçlı sayısal sistemlerde temel işaretli tamsayı gösterimidir.

n bit için:

işaretsiz aralık:
0 ... 2^n - 1

ikinin tümleyeni işaretli aralık:
-2^(n-1) ... 2^(n-1) - 1

Aynı bit deseni yorum türüne göre farklı sayı anlamına gelebilir. Örneğin 11111111 sekiz bit için işaretsiz yorumda 255, ikinin tümleyeninde -1 değeridir.

Bu nedenle bit deseni ile sayısal yorum aynı kavram değildir.

1.21. Carry ile Signed Overflow Ayrımı

Taşıma biti (carry), işaretsiz aritmetiğin taşmasını izlemek için yararlıdır. Signed overflow ise ikinin tümleyeni sınırları içinde sonucun temsil edilip edilemediğini gösterir.

Örneğin dört bit işaretli gösterimde:

0111 = +7
0001 = +1
-----------
1000

bit düzeyinde toplama yapılabilir; ancak +8 dört bit signed aralıkta temsil edilemez. Bu nedenle signed overflow oluşur.

İki pozitif sayının sonucu negatif işaretli görünüyorsa veya iki negatif sayının sonucu pozitif görünüyorsa overflow şüphesi vardır. Carry ve overflow aynı durum bayrağı değildir.

1.22. Gray Kodu

Gray kodunda ardışık kod sözcükleri yalnız bir bit değiştirir. Bu nedenle konum kodlayıcıları ve asenkron sayaç değerinin başka saat alanına aktarılması gibi durumlarda geçiş anındaki çoklu-bit belirsizliğini azaltmak için kullanılabilir.

İkili değerden Gray koda dönüşüm:

gray = binary XOR (binary >> 1)

Örneğin:

binary  000 001 010 011 100 101 110 111
gray    000 001 011 010 110 111 101 100

Gray kodu aritmetik yapmak için tasarlanmış bir sayı sistemi değildir; bir kodlama düzenidir.

1.23. Excess-3 ve Diğer Onluk Kodlar

Excess-3 (XS-3) kodunda her onluk rakama 3 eklenir ve sonuç dört bit ikili olarak kodlanır.

Örneğin:

0 -> 0011
5 -> 1000
9 -> 1100

Bu kod tarihsel sayısal sistemlerde önem taşır ve kendi tümleyen özellikleri nedeniyle bazı onluk aritmetik tasarımlarında kullanılmıştır. Modern sistemlerde yaygın genel amaçlı sayı gösterimi değildir; BCD ve Gray gibi kodların neden "ikili sayı sistemi" ile aynı şey olmadığını anlamak için öğreticidir.

1.24. Sabit Noktalı Gösterim

Sabit noktalı (fixed-point) gösterimde ikili noktanın yeri tasarım sözleşmesiyle belirlenir.

Örneğin sekiz bitlik Q4.4 benzeri bir biçimde:

üst bitler  -> tam kısım
alt bitler  -> kesir kısım

olarak yorumlanabilir.

Donanım açısından bitler sıradan bir ikili sözcüktür; ölçek bilgisi tasarımın semantiğidir. Sabit nokta, kayan noktaya göre daha küçük ve öngörülebilir donanım maliyeti sağlayabilir; karşılığında dinamik aralık ve ölçek yönetimi tasarımcıya kalır.

1.25. Sayısal Tasarımı Doğruluk, Zamanlama ve Donanım Gerçekliğiyle Birlikte Okumak

Sayısal mantık tasarımı birbirinden bağımsız kapı sembollerini ezberleme dersi değildir. Temel düşünce soyutlama katmanlarının birbirine dönüşmesidir.

Bir sayı:

13_10

ikili sistemde:

1101_2

olarak gösterilir.

Bu bitler fiziksel olarak lojik seviyelerle temsil edilir.

Lojik seviyeler:

AND
OR
NOT
XOR

kapılarıyla işlenir.

Kapı ağı Boolean fonksiyonuna karşılık gelir.

Boolean fonksiyonları:

  • cebir,
  • K-haritası

ile sadeleştirilebilir.

Bu işlevler birleşerek:

toplayıcı
karşılaştırıcı
encoder
decoder
MUX
ALU

gibi birleşimsel blokları oluşturur.

Durum saklamak için:

latch
flip-flop

eklenir.

Bunlardan:

counter
register
register file

oluşturulur.

Sonuçta bilgisayar işlemcisinin temel veri yolu bileşenlerine ulaşılır.

Sayısal tasarımın ana zinciri:

Sayı gösterimi
    ↓
Boolean cebri
    ↓
Mantık kapıları
    ↓
Kombinasyonel mantık
    ↓
Sıralı mantık
    ↓
Yazmaçlar ve sayaçlar
    ↓
Veri yolu ve ALU
    ↓
İşlemci organizasyonu

şeklindedir.

1.26. Mekanik Hesaplama ile Bağlantı

Toplama, taşıma ve basamak durumlarının fiziksel mekanizmalarla nasıl gerçekleştirilebildiğini görmek için incelediğim FACIT Mekanik Hesap Makinesi, sayısal mantıktaki durum ve aritmetik kavramlarına elektronik olmayan tarihsel bir karşılaştırma sunar.

Ünite 2: İkili Mantık ve Mantık Kapıları

2.1. İkili Mantık

İkili mantıkta değişkenler iki değer alır:

0
1

Bunlar fiziksel devrede:

  • düşük/yüksek gerilim,
  • pasif/aktif,
  • yanlış/doğru

gibi anlamlara karşılık gelebilir.

Mantıksal 0 ve 1 doğrudan tek bir gerilim değeri değil, kullanılan lojik aile tarafından tanımlanan gerilim aralıklarıdır.

2.2. AND İşlemi

AND:

Z = A B

veya:

Z = A AND B

şeklinde gösterilir.

  • A: 0; B: 0; Z: 0
  • A: 0; B: 1; Z: 0
  • A: 1; B: 0; Z: 0
  • A: 1; B: 1; Z: 1

Çıkış yalnız bütün girişler 1 ise 1 olur.

2.3. OR İşlemi

OR:

Z = A + B

şeklinde yazılır.

  • A: 0; B: 0; Z: 0
  • A: 0; B: 1; Z: 1
  • A: 1; B: 0; Z: 1
  • A: 1; B: 1; Z: 1

En az bir giriş 1 ise çıkış 1 olur.

2.4. NOT İşlemi

NOT tek girişlidir:

Z = A'
  • A: 0; Z: 1
  • A: 1; Z: 0

Girişi tersler.

2.5. Anahtarlama Modeli

Mantık işlemleri anahtarlarla modellenebilir.

Seri anahtarlar:

A AND B

davranışına benzetilebilir. Akım yolunun oluşması için iki anahtarın da kapalı olması gerekir.

Paralel anahtarlar:

A OR B

davranışına benzetilebilir. Kollardan birinin kapanması akım yolunu oluşturabilir.

Bu model mantığı öğretmek için yararlıdır. Gerçek sayısal tümdevreler MOSFET veya başka aktif elektronik yapıların transistor düzeyindeki birleşimleriyle gerçekleştirilir.

2.6. Buffer

Tampon kapısı:

Y = A

işlevini gerçekleştirir.

Mantıksal değeri değiştirmez ancak fiziksel devrede:

  • sürme kapasitesi,
  • izolasyon,
  • fan-out,
  • sinyal bütünlüğü

için önemlidir.

2.7. Inverter

Tersleyici:

Y = A'

işlevini gerçekleştirir.

CMOS inverter sayısal elektronik için en temel transistor düzeyindeki devrelerden biridir.

2.8. NAND

NAND:

Y = (AB)'

işlevini verir.

NAND evrensel kapıdır. Her Boolean işlev yalnız NAND kullanılarak gerçekleştirilebilir.

2.9. NOR

NOR:

Y = (A + B)'

işlevini verir.

NOR da evrensel kapıdır.

2.10. XOR

Exclusive OR:

Y = A XOR B

girişler farklı olduğunda 1 üretir.

  • A: 0; B: 0; XOR: 0
  • A: 0; B: 1; XOR: 1
  • A: 1; B: 0; XOR: 1
  • A: 1; B: 1; XOR: 0

Boolean gösterim:

A XOR B = A'B + AB'

XOR:

  • toplama,
  • parity,
  • bit değiştirme

devrelerinde önemlidir.

2.11. XNOR

XNOR girişler aynı olduğunda 1 üretir:

A XNOR B = AB + A'B'

Bir bitlik eşitlik karşılaştırıcısının temelidir.

Ünite 3: Mantık Devrelerinin Analizi ve Sentezi

Kombinasyonel bir devre sentezlenirken önce girişlerin anlamı ve tanımsız bırakılabilecek durumlar belirlenir. Doğruluk tablosu Boole fonksiyonlarına dönüştürülür; sadeleştirme sonrasında işlev eşdeğerliği yeniden kontrol edilir. Daha az kapı sayısı tek başına daha iyi tasarım demek değildir: kritik yol gecikmesi, fan-out ve geçici tehlike olasılığı da hesaplanır. Seçilen gerçekleme, hedef teknoloji ve zamanlama gereksinimiyle birlikte değerlendirilmelidir.

3.1. Genel Mantık Devresi

Bir kombinasyonel devrenin çıkışları yalnız mevcut girişlerin fonksiyonudur:

Y = F(X)

Geçmiş durumun etkisi yoktur.

Bir devre:

  • lojik şema,
  • Boolean denklem,
  • doğruluk tablosu

ile eşdeğer biçimde ifade edilebilir.

3.2. Analiz

Analizde devre verilidir ve davranışı bulunur.

Temel sıra:

  1. giriş değişkenlerini belirle,
  2. ara düğümleri adlandır,
  3. her kapının denklemini yaz,
  4. çıkış denklemini çıkar,
  5. gerekiyorsa sadeleştir,
  6. doğruluk tablosunu oluştur.

Örneğin:

X = AB
Y = C'
Z = X + Y

ise:

Z = AB + C'

olur.

3.3. Sentez

Sentezde istenen davranış verilir ve devre oluşturulur.

Temel sıra:

  1. giriş ve çıkışları belirle,
  2. doğruluk tablosunu oluştur,
  3. Boolean fonksiyonunu çıkar,
  4. sadeleştir,
  5. kapılarla gerçekleştir.

3.4. Minterm

n değişkenli minterm her değişkeni bir kez içerir ve yalnız bir giriş kombinasyonunda 1 olur.

İki değişken için:

m0 = A'B'
m1 = A'B
m2 = AB'
m3 = AB

Bir doğruluk tablosunda çıkışın 1 olduğu satırların mintermleri OR işlemine alınarak kanonik SOP elde edilir.

Örnek:

F(A,B) = sum m(1,3)

eşdeğeri:

F = A'B + AB

olur.

3.5. Sum Of Products

SOP, çarpım terimlerinin toplamıdır:

F = A'BC + AB'C + ABC

AND kapılarıyla terimler oluşturulur, ardından OR ile birleştirilir.

3.6. Maxterm

Maxterm her değişkeni bir kez içeren toplam terimidir ve yalnız bir giriş kombinasyonunda 0 olur.

İki değişken için örnek maxtermler:

M0 = A + B
M1 = A + B'
M2 = A' + B
M3 = A' + B'

3.7. Product Of Sums

POS toplam terimlerinin çarpımıdır:

F = (A + B')(A' + C)

Doğruluk tablosunda çıkışın 0 olduğu satırlardan kanonik POS oluşturulabilir.

3.8. Kanonik ve Sadeleştirilmiş İfade

Kanonik ifade doğruluk tablosunun davranışını doğrudan temsil eder ancak minimum kapı sayısını garanti etmez.

Sadeleştirme amacı:

  • literal sayısını,
  • kapı sayısını,
  • kapı giriş sayısını,
  • gecikmeyi

azaltmaktır.

Gerçek donanım sentezinde yalnız cebirsel küçüklük değil:

  • zamanlama,
  • güç,
  • alan,
  • fan-out,
  • teknoloji kütüphanesi

de değerlendirilir.

3.9. Doğruluk Tablosundan Zamanlama Davranışına

Bir sayısal devrede mantıksal doğruluk ile zamanlama doğruluğu ayrı incelenmelidir. Kombinezonsal devrede çıkış yalnız mevcut girişlere bağlıdır; ardışıl devrede ise önceki durum da sonuca katılır. Bu nedenle bir flip-flop, sayaç veya durum makinesi yalnız doğruluk tablosuyla tam açıklanamaz; saat ve zamanlama koşulları da gerekir.

Boole cebirinde sadeleştirme, devrenin işlevini değiştirmeden kapı sayısını veya mantık derinliğini azaltmayı amaçlar. Karnaugh haritasında komşuluk ikinin kuvvetleri büyüklüğündeki gruplarla kurulur ve kenarlar birbirine komşu kabul edilir. En büyük grupları seçmek çoğu zaman daha sade ifade verir, fakat bütün gerekli 1 hücrelerinin kapsandığı denetlenmelidir.

Toplama devrelerinde yarım toplayıcı yalnız iki biti, tam toplayıcı ise önceki basamaktan gelen taşıma girişini de işler. Çok bitli ripple-carry toplayıcıda taşımanın basamaklar boyunca yayılması gecikmenin temel nedenidir. Daha gelişmiş taşıma yapıları bu kritik yolu azaltmayı hedefler.

Ardışıl tasarımda setup ve hold süreleri, saat kenarı çevresinde girişin kararlı kalması gereken aralıkları tanımlar. Bu koşulların ihlali metastabilite riskini doğurabilir. Farklı saat alanları arasında tek bitlik denetim işaretleri için senkronlayıcı zincirleri kullanılabilir; çok bitli veri veya yüksek hızlı akışta ise yalnız bitleri ayrı ayrı senkronlamak tutarlı bir sözcük garantisi vermez.

Bir sonlu durum makinesinde durum kodlaması, geçiş mantığı ve çıkış mantığı ayrı okunmalıdır. Moore modelinde çıkış yalnız duruma, Mealy modelinde durumla birlikte girişe de bağlıdır. Bu ayrım hem tepki zamanını hem de olası geçici çıkış davranışlarını etkiler.

Ünite 4: Boole Cebri

4.1. Temel Yapı

Boole cebri iki değerli mantığın cebirsel temelidir.

Değerler:

0
1

Temel işlemler:

AND
OR
NOT

4.2. Kimlik Kuralları

A + 0 = A
A . 1 = A

4.3. Baskınlık

A + 1 = 1
A . 0 = 0

4.4. Idempotent Kuralları

A + A = A
A . A = A

4.5. Tamamlayıcı

A + A' = 1
A . A' = 0

4.6. Çift Tümleme

(A')' = A

4.7. Değişme

A + B = B + A
AB = BA

4.8. Birleşme

A + (B + C) = (A + B) + C
A(BC) = (AB)C

4.9. Dağılma

A(B + C) = AB + AC

Boolean cebrinde ayrıca:

A + BC = (A + B)(A + C)

eşitliği geçerlidir.

4.10. Yutma

A + AB = A
A(A + B) = A

4.11. De Morgan

(AB)' = A' + B'
(A + B)' = A'B'

De Morgan kuralları NAND/NOR dönüşümlerinin temelidir.

4.12. NAND ile Gerçekleştirme

Örneğin:

F = AB + CD

De Morgan ile:

F = ((AB)'(CD)')'

biçimine dönüştürülerek iki seviyeli NAND-NAND ağıyla gerçekleştirilebilir.

4.13. NOR ile Gerçekleştirme

POS biçimi:

F = (A + B)(C + D)

uygun tersleme ile NOR-NOR ağına dönüştürülebilir.

Ünite 5: Karnaugh Haritaları

Karnaugh haritasında gruplama yapılırken bitişik hücrelerin tek bit farklılığı taşıdığı doğrulanır; kenardan sarma komşuluğu da dikkate alınır. Birlikleri mümkün olduğunca büyük güç-iki gruplarla kapsamak ortak terimleri azaltır, ancak seçilen tüm gerekli birler kapsanmış olmalıdır. Birden fazla asgari çözüm varsa gecikme ve tehlike davranışı karşılaştırılır. Elde edilen ifadenin doğruluk tablosuyla eşdeğerliği son kontroldür.

5.1. K-haritasının Amacı

Karnaugh haritası az sayıda değişkenli Boolean fonksiyonlarını görsel komşuluk kullanarak sadeleştirir.

K-haritası doğruluk tablosunun yeniden düzenlenmiş biçimidir.

Temel amaç:

  • komşu mintermleri birleştirmek,
  • değişen değişkenleri elemek,
  • daha az literal içeren ifade elde etmektir.

5.2. Gray Düzeni

Hücreler normal binary sayma sırasıyla değil Gray kod sırasıyla yerleştirilir:

00
01
11
10

Bu sayede komşu hücreler yalnız bir değişkende farklı olur.

5.3. İki Değişkenli K-haritası

Dört hücre içerir:

2^2 = 4

İki komşu 1 birleştirildiğinde bir değişken elenir.

Örneğin:

A'B + AB = B

5.4. Üç Değişkenli K-haritası

Sekiz hücre içerir:

2^3 = 8

Kenarlar da birbirine komşudur.

Bu nedenle ilk ve son sütun fiziksel olarak uzakta çizilmiş olsa da mantıksal komşudur.

5.5. Dört Değişkenli K-haritası

Dört değişkenli Karnaugh haritasında Gray kod düzeni ve ikinin kuvveti büyüklüğündeki gruplarla Boole ifadesinin sadeleştirilmesi
Karnaugh haritası sadeleştirmesi

On altı hücre içerir:

2^4 = 16

Satır ve sütunların her ikisi de Gray kod düzenindedir.

5.6. Gruplama Kuralları

Gruplar:

1, 2, 4, 8, 16, ...

hücre içermelidir.

Tercih:

  • mümkün olan en büyük grup,
  • bütün 1 hücrelerini kapsama,
  • gereksiz grup sayısını azaltma.

Gruplar gerektiğinde örtüşebilir.

5.7. SOP Sadeleştirmesi

SOP elde etmek için 1 hücreleri gruplanır.

Grup içinde değişmeyen değişkenler sonuç teriminde kalır.

Örneğin dört hücreli bir grupta iki değişken değişiyorsa bu iki değişken elenir.

5.8. POS Sadeleştirmesi

POS için 0 hücreleri gruplanır.

Sonuç maxterm biçiminde yazılır.

5.9. Don't-care Durumları

Bazı giriş birleşimleri sistemde hiç oluşmuyorsa veya çıkışı önemsizse:

X

ile gösterilebilir.

Don't-care hücresi sadeleştirmeyi iyileştiriyorsa 0 veya 1 gibi kullanılabilir, gerekmiyorsa kullanılmayabilir.

5.10. K-haritasının Sınırı

İki, üç ve dört değişkenli fonksiyonlarda çok kullanışlıdır.

Değişken sayısı büyüdükçe görsel yöntem zorlaşır. Büyük devrelerde mantık minimizasyonu ve teknoloji eşleme işlemleri EDA sentez araçlarıyla otomatik yapılır.

K-haritası buna rağmen mantık sadeleştirmenin temelini anlamak için önemini korur.

Ünite 6: Birleşimsel Devre Tasarımı

6.1. Tasarım Adımları

Bir birleşimsel devre için:

  1. problemi tanımla,
  2. giriş ve çıkışları belirle,
  3. doğruluk tablosunu oluştur,
  4. çıkış fonksiyonlarını yaz,
  5. sadeleştir,
  6. devreyi çiz,
  7. doğrula.

Bu sıra:

  • toplayıcı,
  • çıkarıcı,
  • karşılaştırıcı,
  • kodlayıcı,
  • kod çözücü,
  • çoklayıcı

gibi yapıların tamamına uygulanabilir.

6.2. Yarım Toplayıcı

İki bit toplar:

A
B

Çıkışlar:

S
C

Doğruluk tablosu:

  • A: 0; B: 0; S: 0; C: 0
  • A: 0; B: 1; S: 1; C: 0
  • A: 1; B: 0; S: 1; C: 0
  • A: 1; B: 1; S: 0; C: 1

Denklemler:

S = A XOR B
C = AB

6.3. Tam Toplayıcı

Tam toplayıcı:

A
B
Cin

girişlerini toplar.

Çıkışlar:

S
Cout

Toplam:

S = A XOR B XOR Cin

Elde:

Cout = AB + Cin(A XOR B)

şeklinde yazılabilir.

6.4. Tam Toplayıcının Yarım Toplayıcılardan Kurulması

Birinci yarım toplayıcı:

S1 = A XOR B
C1 = AB

İkinci yarım toplayıcı:

S = S1 XOR Cin
C2 = S1 Cin

Son elde:

Cout = C1 + C2

olur.

6.5. Paralel Toplayıcı

Elde ileri bakışlı toplayıcıda üretme ve yayma işaretleri adımlarının ve durum değişimlerinin gösterimi
Elde ileri bakışlı toplayıcıda üretme ve yayma işaretleri

n bitlik sayılar için n tam toplayıcı zincirlenebilir.

Basit ripple-carry yapısında:

Cout(i) -> Cin(i+1)

bağlantısı bulunur.

Sorun, elde gecikmesinin bitler boyunca yayılmasıdır.

Bit genişliği arttıkça hız için:

  • carry-lookahead,
  • carry-select,
  • prefix adder

gibi daha gelişmiş yapılar kullanılabilir.

6.6. İki'nin Tümleyeniyle Çıkarma

Çıkarma:

A - B
=
A + B' + 1

olduğundan toplayıcı devresi hem toplama hem çıkarma için kullanılabilir.

Kontrol biti SUB:

B_i XOR SUB
Cin = SUB

şeklinde uygulanırsa:

SUB = 0 -> A + B
SUB = 1 -> A + B' + 1

elde edilir.

6.7. Ripple-carry Gecikmesi ve Hızlı Taşıma Fikri

Dört bitlik ripple-carry toplayıcıda taşıma bitinin sırayla yayılması ve toplam bitlerinin oturma süresi
Ripple-carry taşıma yayılımı

Çok bitli paralel toplayıcı, tam toplayıcıların art arda bağlanmasıyla kurulabilir. En basit yapıda bir basamağın taşıması sonraki basamağın taşıma girişini sürer.

C0 -> FA0 -> C1 -> FA1 -> C2 -> FA2 -> ...

Bu ripple-carry yapısı işlevsel olarak doğrudur; fakat en anlamlı bitin sonucu, önceki basamaklardaki taşıma zincirinin yayılmasını bekleyebilir.

Taşıma üretme ve taşıma yayma kavramları:

G_i = A_i B_i
P_i = A_i XOR B_i
C_(i+1) = G_i + P_i C_i

gibi ifade edilerek taşımanın bazı kısımları paralel hesaplanabilir. Carry-lookahead ve benzeri yapılar aritmetik tanımı değiştirmez; kritik yolu azaltmak için devre yapısını değiştirir.

6.8. Toplayıcı-çıkarıcı

Aynı n bitlik toplayıcı, bir kontrol biti ile toplama ve çıkarma için ortak kullanılabilir.

SUB = 0:
B' = B
Cin = 0

SUB = 1:
B' = NOT(B)
Cin = 1

Böylece:

A + B

ve:

A + NOT(B) + 1 = A - B

aynı taşıma zinciri üzerinden gerçekleştirilebilir.

6.9. BCD Toplamada Düzeltme

Bir BCD basamağı yalnız 0000 ile 1001 arasındaki kodları kullanır. Dört bitlik ikili toplama sonucu 1001 değerini aşarsa veya basamak taşıması oluşursa sonuç geçerli BCD aralığına döndürülmelidir.

Klasik düzeltme:

sonuca 0110 ekle

işlemidir.

Bu örnek, "aritmetik devre" ile "kod semantiği" arasındaki farkı gösterir: aynı dört bitlik toplayıcı fiziksel olarak çalışsa da BCD sonucu için ek kodlama kuralı gerekir.

6.10. Karşılaştırıcı

İki ikili sayının:

A > B
A = B
A < B

ilişkilerini üretir.

Bir bit için:

EQ = A XNOR B
GT = AB'
LT = A'B

Çok bitli karşılaştırmada en anlamlı bitten başlanır.

İlk farklı yüksek basamak sonucu belirler.

6.11. Kaskat Karşılaştırıcı

Daha geniş sayıları karşılaştırmak için küçük karşılaştırıcı bloklar zincirlenebilir.

Alt blok:

  • eşit,
  • büyük,
  • küçük

bilgisini üst basamaklara taşır.

Güncel HDL sentezinde karşılaştırma çoğunlukla doğrudan:

A > B
A == B

ifadeleriyle yazılır ve sentez aracı uygun devreyi oluşturur.

Ünite 7: Kodlayıcılar ve Kod Çözücüler

7.1. Kodlayıcı

Kodlayıcı, aktif giriş hattını daha kısa ikili kodla temsil eder.

Örneğin 4-to-2 kodlayıcı:

D0 -> 00
D1 -> 01
D2 -> 10
D3 -> 11

Basit kodlayıcı aynı anda yalnız bir girişin aktif olduğunu varsayar.

7.2. Öncelikli Kodlayıcı

Birden fazla giriş aynı anda aktif olabiliyorsa priority kodlayıcı kullanılır.

Örneğin:

D3 > D2 > D1 > D0

önceliği tanımlanmış olabilir.

Birden fazla giriş 1 olduğunda en yüksek öncelikli giriş kodlanır.

Genellikle ayrıca:

valid

çıkışı bulunur.

7.3. BCD Kodlayıcı

On giriş hattının birini 4 bit BCD koduna dönüştürebilir:

0 ... 9
↓
0000 ... 1001

7.4. Kod Çözücü

Kod çözücü, n bitlik giriş koduna göre en fazla:

2^n

çıkıştan birini etkinleştirir.

7.5. 2-to-4 Kod Çözücü

Girişler:

A1 A0

çıkışlar:

Y0 Y1 Y2 Y3

Aktif-high durumda:

Y0 = A1'A0'
Y1 = A1'A0
Y2 = A1A0'
Y3 = A1A0

7.6. 3-to-8 Kod Çözücü

Üç giriş:

A2 A1 A0

sekiz minterm üretir.

Bu nedenle kod çözücü aynı zamanda minterm üreteci olarak düşünülebilir.

7.7. Enable Girişi

Birçok kod çözücü:

EN

girişine sahiptir.

Enable aktif değilse kod çözücü çıkışları pasif kalır.

Bu özellik:

  • daha büyük kod çözücü kurmak,
  • bellek seçmek,
  • çevre birimi adreslemek

için kullanılır.

7.8. Entegre Devre Örnekleri

74xx ailesindeki:

74138
74147
74148
74154

gibi devreler tarihsel eğitim ve laboratuvar örnekleridir.

Bu entegreleri tanımak mantık işlevini anlamak için yararlıdır, ancak güncel tasarımda aynı işlev:

  • FPGA,
  • CPLD,
  • ASIC,
  • programlanabilir lojik

içinde doğrudan sentezlenebilir.

Ezberlenmesi gereken temel konu parça numarası değil, işlevsel mantıktır.

7.9. Kod Dönüştürücü ve Gösterge Kod Çözücü

Kod dönüştürücü, aynı bilgiyi bir kod ailesinden başka bir kod ailesine eşler.

Örnekler:

binary -> Gray
Gray -> binary
BCD -> seven-segment

Bu devrelerin tasarımında giriş kodunun kullanılmayan kombinasyonları önemlidir. Kullanılmayan desenler gerçek sistemde asla oluşmayacaksa don't-care olarak sadeleştirmede kullanılabilir; oluşma ihtimali varsa tanımlı güvenli bir çıkış verilmelidir.

7.10. Yedi Parçalı Gösterge

Yedi parçalı (seven-segment) gösterge a...g olarak adlandırılan ışık elemanlarının farklı kombinasyonlarıyla rakam üretir.

BCD-to-seven-segment kod çözücü:

BCD digit
   ↓
decoder
   ↓
a b c d e f g

şeklinde çalışır.

Ortak anot ve ortak katot gösterge türlerinde aktif seviye farklı olabilir. Bu nedenle doğruluk tablosu yalnız "hangi segment yanacak?" bilgisini değil, çıkışların aktif-high mı aktif-low mu olduğunu da açıkça belirtmelidir.

Çok haneli göstergelerde segment hatları ortaklaştırılıp haneler sırayla etkinleştirilerek zaman çoklama yapılabilir. Bu durumda tarama frekansı, sürücü akımı ve görev çevrimi fiziksel tasarımın parçasıdır.

Ünite 8: Çoklayıcılar, Demultiplexer ve Üç Durumlu Mantık

8.1. Multiplexer

Multiplexer, birçok veri girişinden birini seçim girişlerine göre tek çıkışa aktarır.

2^n veri girişli MUX için:

n

seçim biti gerekir.

8.2. 2-to-1 Multiplexer

Girişler:

D0
D1
S

Çıkış:

Y = S'D0 + SD1

olur.

8.3. 4-to-1 Multiplexer

İki seçim biti:

S1 S0

dört girişten birini seçer.

  • S1: 0; S0: 0; Y: D0
  • S1: 0; S0: 1; Y: D1
  • S1: 1; S0: 0; Y: D2
  • S1: 1; S0: 1; Y: D3

8.4. Çok Bitli Multiplexer

İki adet 4 bit veri yolu:

A[3:0]
B[3:0]

tek 4 bit çıkışa seçilebilir.

Aynı seçim biti her bit konumundaki MUX'u kontrol eder.

Bu yapı işlemci veri yollarında çok yaygındır.

8.5. Multiplexer ile Boolean İşlev

MUX veri seçicisi olmasının yanında genel Boolean fonksiyon gerçekleştirmek için de kullanılabilir.

Seçim girişleri değişkenlerden bazılarına bağlanır, veri girişleri:

0
1
X
X'

gibi değerlerle doldurulur.

Bu yöntem fonksiyonu doğrudan MUX üzerinden gerçekler.

8.6. Demultiplexer

Demultiplexer tek veri girişini seçim hatlarına göre çok sayıda çıkıştan birine yönlendirir.

2 çıkışlı örnek:

Y0 = S'D
Y1 = SD

"Tekilleyici" tarihsel Türkçe kaynaklarda görülebilir. Güncel mühendislik kullanımında demultiplexer, demux veya çoktan dağıtıcı ifadeleri daha yaygındır.

8.7. Üç Durumlu Çıkış

Üç durumlu çıkış:

0
1
Z

durumlarını alabilir.

Z yüksek empedans durumudur.

Bu durumda eleman ortak hattı etkin biçimde sürmez.

8.8. Üç Durumlu Buffer

Enable aktifken:

Y = A

Enable pasifken:

Y = Z

olur.

Ortak veri yolunda birden fazla kaynak bulunuyorsa aynı anda yalnız bir sürücünün etkin olması gerekir.

İki kaynağın aynı anda zıt değer sürmesi elektriksel çatışmaya ve yüksek akıma yol açabilir.

8.9. Güncel Kullanım

Üç durumlu sürücüler:

  • PCB veri yolları,
  • harici bellek arabirimleri,
  • iki yönlü I/O

için önemlidir.

FPGA ve ASIC iç mantığında büyük üç durumlu ağlar çoğunlukla MUX ağlarına dönüştürülür.

Ünite 9: Eşlik Devreleri ve Aritmetik Mantık Birimi

9.1. Eşlik

Parity basit hata sezme yöntemidir.

Çift eşlik: Veri ve parity biti birlikte değerlendirildiğinde 1 sayısı çift olur.

Tek eşlik: Toplam 1 sayısı tek olur.

9.2. Eşlik Üretimi

XOR işleminin önemli özelliği:

A XOR B XOR C ...

sonucunun bitler içindeki tek/çift 1 sayısına bağlı olmasıdır.

Dört bit için çift eşlik biti:

P = A XOR B XOR C XOR D

gibi üretilebilir.

9.3. Eşlik Denetimi

Alıcı aynı XOR işlemini veri ve parity biti üzerinde uygular.

Beklenen parity koşulu bozulmuşsa hata sezilir.

Parity:

  • tek sayıda bit hatasını sezer,
  • çift sayıda bazı hataları kaçırır,
  • hata konumunu belirlemez,
  • tek başına hata düzeltmez.

Bu nedenle basit hata sezme mekanizmasıdır.

9.4. Aritmetik Mantık Birimi

ALU, işlemcinin aritmetik ve bit düzeyi mantık işlemlerini yapan temel veri yolu bileşenidir.

Girişler:

A
B
operation
carry-in

Çıkışlar:

F
flags

9.5. Aritmetik İşlemler

Basit ALU:

A + B
A - B
A + 1
A - 1

gibi işlemleri yapabilir.

9.6. Mantık İşlemleri

A AND B
A OR B
A XOR B
NOT A

gibi işlemler bulunabilir.

9.7. İşlem Seçimi

Aritmetik ve mantık bloklarının sonuçları ayrı üretilebilir ve MUX ile seçilebilir:

A, B
 ├─ Aritmetik birim ─┐
 ├─ Mantık birimi ───┼─ MUX -> F
 └─ Karşılaştırıcı ──┘

Kontrol girişleri yapılacak işlevi belirler.

9.8. Durum Bayrakları

Bir ALU işlemi sonucunda tipik bayraklar:

  • zero,
  • carry,
  • negative/sign,
  • overflow,
  • parity

olabilir.

Her ISA aynı bayrakları aynı anlamla kullanmaz.

9.9. Sıfır Bayrağı

Sonuç:

F = 0

ise etkin olur.

Bit düzeyinde bütün sonuç bitlerinin NOR işlemiyle üretilebilir.

9.10. İşaret Bayrağı

İki'nin tümleyeni signed sonuç için en anlamlı bit negatiflik göstergesi olarak kullanılabilir:

N = F[n-1]

9.11. Carry

Unsigned toplamada en üst basamaktan çıkan eldeyi ifade eder.

Çıkarma sırasında carry/borrow yorumunun kesin anlamı kullanılan mimariye göre değişebilir.

9.12. Overflow

Signed aritmetik taşmasıdır.

Carry ile aynı şey değildir.

İki'nin tümleyeninde iki aynı işaretli operand toplanıp sonuç ters işaretliyse overflow oluşur.

9.13. Parity Bayrağı

Bazı mimariler sonuç bitlerinin parity bilgisini bayrakta tutar.

Bu özellik evrensel değildir ve modern ISA'ların hepsinde bulunmaz.

9.14. Sayısal Mantıktan Yapay Zekâ Hızlandırıcılarına

Yapay zekâ hızlandırıcısı da sonunda sayısal devredir. Matris çarpımı, konvolüsyon veya attention gibi yüksek seviyeli işlemler donanımda Boole cebri, yazmaç, toplayıcı, çarpıcı, çoklayıcı ve bellek yapılarının düzenlenmesiyle gerçeklenir. Bu nedenle sayısal mantık ile yapay zekâ arasındaki bağ modelin öğrenme kuramından değil, hesabın fiziksel devreye indirgenmesinden gelir.

Sinir ağlarında yoğun kullanılan temel işlem çarp-topla biçimindedir:

acc = acc + w * x

Bir katmanda aynı işlem binlerce veya milyonlarca kez yinelenebilir. Genel amaçlı işlemci bunu komut akışıyla yürütürken, alana özgü hızlandırıcı çok sayıda çarp-topla birimini veri akışına göre yan yana yerleştirebilir. Böylece sorun yalnız “daha hızlı çarpıcı” yapmak değil, verinin hangi sırayla hangi birime ulaşacağını tasarlamak haline gelir.

Systolic array yaklaşımında veri, düzenli işlem elemanları arasında ritmik biçimde ilerler. Her eleman yerel çarpma-toplama yapar; ağırlık ve etkinleştirmeler mümkün olduğunca yeniden kullanılır. Burada dersin temel kavramları açıkça görülür:

register
+ combinational arithmetic
+ control
+ local data movement

Yüksek seviyedeki tensör işlemi, çok sayıda küçük ve deterministik sayısal devrenin eşzamanlı davranışına dönüşür.

Bit genişliği tasarım kararını doğrudan etkiler. INT8 gibi düşük hassasiyetli aritmetik, aynı yonga alanında daha fazla işlem birimi veya daha küçük bellek sağlayabilir. Ancak sayısal aralık ve hata bütçesi değişir. Doyum, işaret, yuvarlama ve taşma davranışı; yalnız elektronik ayrıntı değil, model çıktısını etkileyen sistem parametreleridir. Bu nedenle nicemleme kazancı doğruluk ölçümüyle birlikte değerlendirilir.

Aktivasyon fonksiyonları da donanım açısından farklı maliyetler üretir. Toplama ve karşılaştırma ile yaklaşık gerçeklenebilen bir fonksiyonla yüksek doğrulukta üstel veya bölme gerektiren bir fonksiyon aynı devre maliyetine sahip değildir. Hızlandırıcı tasarımında algoritma ile devre birbirinden bağımsız seçilemez.

Bellek en kritik sınırlardan biridir. Ağırlıkların büyük bölümü harici bellekten sürekli taşınıyorsa aritmetik birimler bekleyebilir ve enerji tüketiminin önemli kısmı veri hareketine gider. Bu nedenle SRAM tamponları, register file, bankalama ve veri yeniden kullanımı AI hızlandırıcılarında merkezi tasarım konularıdır. Sayısal mantık dersi bu yapıları tek başına tasarlamak için yeterli değildir; fakat hızlandırıcının hangi temel yapı taşlarından oluştuğunu açıklar.

FPGA tabanlı çıkarım da aynı bağın başka bir örneğidir. Modelin belirli operatörleri, sabit veri yolu ve pipeline ile gerçeklenebilir. FPGA'nın esnekliği, işlemci komutlarını çalıştırmasından değil, sayısal devre yapısının uygulamaya göre yeniden kurulabilmesinden gelir.

Dolayısıyla sayısal mantık yapay zekânın matematiksel temelini oluşturmaz. Yapay zekâ hesabının fiziksel olarak paralel, düşük gecikmeli ve enerji sınırlı devrelerde nasıl gerçeklenebildiğinin alt katmanını oluşturur.

Ünite 10: Sıralı Mantık Devreleri

10.1. Sıralı Mantık

Birleşimsel devrede:

Y = F(X)

Sıralı devrede:

Q(next) = F(Q, X)
Y = G(Q, X)

olur.

Çıkış veya sonraki durum geçmiş durumdan etkilenir.

Bellek özelliği geri besleme ve saklama elemanlarıyla oluşturulur.

10.2. Durum

Bir sıralı devrenin gelecekteki davranışını etkileyen saklanmış bilgiye durum denir.

Durum bitleri:

  • latch,
  • flip-flop,
  • register

ile tutulabilir.

10.3. Latch

Latch seviye duyarlı saklama elemanıdır.

Enable aktif olduğu sürece giriş değişimlerini izleyebilir.

10.4. SR NOR Latch

Aktif-high SR NOR latch:

  • S: 0; R: 0; Q(next): Önceki durum
  • S: 1; R: 0; Q(next): 1
  • S: 0; R: 1; Q(next): 0
  • S: 1; R: 1; Q(next): Geçersiz/yasak

S=R=1 durumu klasik NOR latch için geçersizdir.

10.5. SR NAND Latch

NAND tabanlı SR latch genellikle aktif-low girişlidir.

Bu nedenle giriş isimleri:

S'
R'

biçiminde gösterilebilir.

Aktif seviyenin ne olduğu sembolden ve devreden okunmalıdır.

10.6. Gated Latch

Enable sinyali eklenerek latch'in ne zaman girişe tepki vereceği kontrol edilir.

Bu yapı senkron sistemlere geçişi anlamak için önemlidir.

10.7. Flip-flop

Flip-flop tipik olarak saat kenarında durum değiştirir.

Temel türler:

  • SR,
  • D,
  • T,
  • JK.

10.8. SR flip-flop

Saat olayında S ve R girişlerine göre durum değiştirir.

Klasik tasarımda S=R=1 yasak durumdur.

10.9. D flip-flop

D flip-flop:

Q(next) = D

denklemine sahiptir.

Tek veri girişi olduğundan yasak giriş kombinasyonu yoktur.

Modern senkron tasarımın en yaygın saklama elemanlarından biridir.

10.10. T flip-flop

T:

T = 0 -> durumu koru
T = 1 -> durumu değiştir

Davranış:

Q(next) = T XOR Q

olarak yazılabilir.

Sayaçlarda doğal kullanım alanına sahiptir.

10.11. JK flip-flop

JK:

  • J: 0; K: 0; Q(next): Q
  • J: 0; K: 1; Q(next): 0
  • J: 1; K: 0; Q(next): 1
  • J: 1; K: 1; Q(next): Q'

SR'nin yasak durumunu:

J = K = 1

için toggle davranışıyla ortadan kaldırır.

10.12. Saat Kenarı

Pozitif kenar:

0 -> 1

Negatif kenar:

1 -> 0

geçişidir.

Flip-flop tasarımına göre yalnız belirlenen kenarda yeni giriş örneklenir.

10.13. Setup ve Hold

Aktif saat kenarı çevresindeki setup ve hold penceresi ile veri geçişinin zamanlamasını gösteren flip-flop diyagramı
Setup ve hold zamanlaması

Bir flip-flopun doğru çalışması için giriş:

  • aktif saat kenarından belirli süre önce kararlı olmalı,
  • kenardan belirli süre sonra da kararlı kalmalıdır.

Bu süreler:

setup time
hold time

olarak adlandırılır.

İhlal edilirse metastability riski oluşur.

10.14. Master-slave flip-flop

Tarihsel master-slave yapı iki seviye duyarlı latch'i ardışık kullanarak girişin bir saat fazında alınmasını, diğer fazda çıkışa aktarılmasını sağlar.

Kenar tetiklemeyi anlamak için öğretici bir yapıdır.

Modern standart hücre kütüphanelerinde gerçek flip-flop iç yapısı teknolojiye bağlıdır.

10.15. Asenkron preset/clear Girişleri

Birçok flip-flop veri ve saat girişlerinden bağımsız çalışan asenkron kurma/silme girişlerine sahiptir. Bu girişler saat kenarı beklemeden çıkış durumunu zorlar.

Tipik kullanım alanı:

başlangıç durumu oluşturma
hata sonrası güvenli duruma alma
özel kontrol dizileri

Asenkron girişlerin aktif seviyesi semboldeki baloncuk veya veri sayfasıyla doğrulanmalıdır.

Asenkron resetin bırakılması da zamanlama problemidir. Saat kenarına çok yakın bırakılan bir reset, recovery/removal benzeri zaman gereksinimlerini ihlal edebilir. Bu nedenle modern senkron tasarımda sık kullanılan ilke:

asenkron assert
senkron deassert

şeklindedir; gerçek uygulama hedef teknoloji ve sistem gereksinimine göre seçilir.

10.16. Karakteristik Tablo ve Uyarma Tablosu

Bir flip-flop için iki farklı tablo türü birbirine karıştırılmamalıdır.

Karakteristik tablo:

mevcut durum + giriş
-> sonraki durum

Uyarma (excitation) tablosu:

mevcut durum + istenen sonraki durum
-> gerekli giriş

Durum makinesi sentezinde özellikle JK, T veya SR flip-flop kullanıldığında uyarma tablosu sonraki durum bitlerinden gerekli giriş denklemlerini çıkarmaya yardım eder.

D flip-flopta ilişki doğrudandır:

D = Q(next)

10.17. Clock-to-Q, Recovery ve Removal

Setup/hold kadar önemli başka zamanlama parametreleri de vardır.

clock-to-Q, aktif saat kenarından sonra flip-flop çıkışının yeni değere ulaşma gecikmesidir. Senkron kritik yol hesabında kaynak flip-flopun Tcq gecikmesi kombinasyonel yol gecikmesine eklenir.

Asenkron set/reset girişlerinde recovery ve removal, kontrol sinyalinin saat kenarına göre güvenli bırakılma ve uygulanma sınırlarını tanımlar.

Bu nedenle "flip-flop saat kenarında anında değişir" ifadesi fiziksel donanım için yalnız ideal modeldir.

Ünite 11: Senkron Sayıcı Tasarımı

Üç bitlik ripple sayıcıda her tutucunun bir öncekinin düşen kenarında değişmesi: frekans 2, 4, 8 bölünür ve 3 den 4 e geçişte 010 ve 000 geçici durumları görülür
Ripple sayıcı zaman diyagramı

11.1. Sayaç

Sayaç her saat olayında önceden belirlenmiş durum dizisini izleyen sıralı devredir.

Üç bit binary sayaç:

000
001
010
011
100
101
110
111
000
...

dizisini izler.

11.2. Mod

Bir sayacın tekrar etmeden önce geçtiği farklı durum sayısı:

modulus

olarak adlandırılır.

n bitlik tam binary sayaç:

mod 2^n

yapısındadır.

11.3. Asenkron Sayaç

Ripple counter'da bir flip-flopun çıkışı sonrakinin saat girişini sürer.

Avantaj:

  • basit devre.

Dezavantaj:

  • propagation delay basamaklar boyunca birikir,
  • ara geçici durumlar oluşabilir.

11.4. Senkron Sayaç

Bütün flip-floplar aynı saat işaretini kullanır.

Sonraki durum giriş mantığıyla hesaplanır.

Bu nedenle yüksek hızlı sayım için daha uygundur.

11.5. Sayaç Tasarım Adımları

Senkron sayaç tasarımı:

  1. durumları belirle,
  2. durum diyagramını çiz,
  3. durum tablosunu oluştur,
  4. kullanılacak flip-flop türünü seç,
  5. uyarma gereksinimlerini belirle,
  6. K-haritalarıyla sadeleştir,
  7. devreyi oluştur.

11.6. Durum Diyagramı

İki bit ileri sayaç:

00 -> 01 -> 10 -> 11 -> 00

durum geçişlerine sahiptir.

11.7. Durum Tablosu

  • Q1: 0; Q0: 0; Q1(next): 0; Q0(next): 1
  • Q1: 0; Q0: 1; Q1(next): 1; Q0(next): 0
  • Q1: 1; Q0: 0; Q1(next): 1; Q0(next): 1
  • Q1: 1; Q0: 1; Q1(next): 0; Q0(next): 0

11.8. T flip-flop Uyarımı

T flip-flop için:

  • Q: 0; Q(next): 0; T: 0
  • Q: 0; Q(next): 1; T: 1
  • Q: 1; Q(next): 0; T: 1
  • Q: 1; Q(next): 1; T: 0

Dolayısıyla:

T = Q XOR Q(next)

olarak düşünülebilir.

11.9. D flip-flop Uyarımı

D flip-flop en basit uyarma ilişkisine sahiptir:

D = Q(next)

Bu nedenle modern senkron durum makinesi sentezinde D flip-flop modeli çok doğaldır.

11.10. JK Uyarım Tablosu

  • Q: 0; Q(next): 0; J: 0; K: X
  • Q: 0; Q(next): 1; J: 1; K: X
  • Q: 1; Q(next): 0; J: X; K: 1
  • Q: 1; Q(next): 1; J: X; K: 0

X don't-care değeridir.

11.11. Geri Sayıcı

İki bit geri sayaç:

11 -> 10 -> 01 -> 00 -> 11

gibi davranabilir.

Tasarım adımları ileri sayıcıyla aynıdır. Yalnız hedef durum dizisi değişir.

11.12. İleri-geri Sayaç

Kontrol girişi:

UP_DOWN

ile bir devre:

ileri
geri

sayım arasında seçilebilir.

11.13. Entegre Sayaçlar

74xx ailesindeki sayaç entegreleri klasik laboratuvar örnekleridir.

Güncel sistemlerde sayaçlar çoğu zaman:

  • FPGA HDL kodu,
  • mikrodenetleyici timer/counter çevre birimi,
  • ASIC mantığı

içinde gerçekleştirilir.

11.14. Ring ve Johnson Sayıcılar

Bir ring sayıcı, bir kaydırma yazmacındaki bit desenini çevrimsel olarak dolaştırır. Tek-seçimli (one-hot) yapı kullanılırsa n flip-flop ile n kolay çözülen durum elde edilir.

Johnson sayıcıda son bitin tümleyeni girişe geri beslenir. n flip-flop ile ideal olarak 2n durumluk bir dizi elde edilebilir.

Bu yapılar ikili sayaç kadar bit-verimli değildir; ancak durum çözümleme mantığı basitleşebilir.

11.15. Programlanabilir Mod ve Terminal Count

Bir sayaç yalnız 2^n durumun tamamını kullanmak zorunda değildir.

Mod-m tasarımda:

0 ... m-1

aralığı izlenir ve sonra başlangıç durumuna dönülür.

Kullanılmayan bit desenleri için toparlanma davranışı tanımlamak önemlidir. Bir tekil hata veya güç açılış durumu sayacı kullanılmayan bir duruma sokarsa tasarım:

illegal state -> known valid state

geçişi tanımlayabilir.

Terminal count / carry çıkışı daha geniş sayaçların kademeli kurulmasında veya belirli sayım değerinde başka bloğu etkinleştirmede kullanılabilir.

11.16. Frekans Bölme ile Zamanlama Doğruluğunu Ayırmak

İkili sayacın her biti ideal olarak önceki bite göre frekansı ikiye bölen bir davranış gösterir.

Ancak ripple sayacın ara çıkışları aynı anda değişmez. Birden fazla bit birleştirilip kod çözülecekse geçiş sırasında kısa yanlış kombinasyonlar görülebilir.

Bu nedenle frekans bölme, durum kodlama ve zamanlama güvenilirliği aynı tasarım sorunu değildir. Senkron sayaçlar ortak saat nedeniyle çok bitli durumun değerlendirilmesini daha öngörülebilir kılar.

Ünite 12: Yazmaçlar

12.1. Yazmaç

Register, ortak kontrol edilen flip-flop grubudur.

n bitlik register:

n bit

saklar.

Örneğin 8 bit register:

Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0

çıkışlarına sahiptir.

12.2. Paralel Yazmaç

Bütün bitler aynı saat olayında yüklenir:

D7...D0
↓
Q7...Q0

Bu işleme paralel yükleme denir.

12.3. Load Enable

Register yalnız LOAD=1 olduğunda yeni veri alabilir:

LOAD = 0 -> Q(next) = Q
LOAD = 1 -> Q(next) = D

Her bit için MUX yaklaşımı:

Dff_input = LOAD ? D : Q

şeklinde düşünülebilir.

12.4. Üç Durumlu Çıkışlı Yazmaç

Bir yazmaç ortak veri yolunu:

OE = 1

olduğunda sürer.

Pasif durumda:

Z

çıktısı verir.

Aynı veri yolunda yalnız bir kaynak etkin tutulmalıdır.

12.5. Kaydırma Yazmacı

Shift register saatle birlikte bitleri bir konum kaydırır.

Temel türler:

  • SISO,
  • SIPO,
  • PISO,
  • PIPO.

12.6. Seri Giriş Paralel Çıkış

SIPO:

serial in
   ↓
[FF] -> [FF] -> [FF] -> [FF]
                   ↓
             paralel çıkışlar

seri veriyi zaman içinde toplar ve paralel biçimde okunabilir hale getirir.

12.7. Paralel Giriş Seri Çıkış

PISO paralel veriyi tek seri hat üzerinden bit bit göndermek için kullanılır.

Bu yapı:

  • pin sayısını azaltma,
  • seri iletişim,
  • I/O genişletme

uygulamalarında kullanılabilir.

12.8. Seri Giriş Seri Çıkış

SISO bir dijital gecikme hattı gibi düşünülebilir.

Bir bit her saat olayında bir kademe ilerler.

12.9. İki Yönlü Kaydırma

Kontrol girişine göre:

sağa kaydır
sola kaydır

işlemleri yapılabilir.

Universal shift register ayrıca:

  • paralel yükleme,
  • durumu koruma

işlevlerini de birleştirebilir.

12.10. Aritmetik Kaydırma

Signed ikinin tümleyeni sayıda aritmetik sağa kaydırma işaret bitini koruyacak biçimde gerçekleştirilir.

Lojik sağa kaydırmada ise soldan sıfır girer.

Bu fark aritmetik işlemlerde önemlidir.

Ünite 13: Yazmaç Dizileri ve Belleğe Geçiş

13.1. Yazmaç Dizisi

Register array, birden çok yazmacın ortak veri ve seçim mantığıyla bir araya getirilmesidir.

Örneğin:

4 x 4

ifadesi:

4 adet yazmaç
her biri 4 bit

anlamına gelebilir.

Toplam saklama kapasitesi:

4 x 4 = 16 bit

olur.

13.2. Okuma ve Yazma

Temel işlemler:

write:
R[address] <- data
read:
data <- R[address]

şeklindedir.

Her yazmaç için ayrı RD ve WR hattı kullanmak yazmaç sayısı büyüdükçe verimsiz olur.

Bu nedenle:

  • ortak okuma/yazma kontrolü,
  • adres seçim hatları,
  • kod çözücü

kullanılır.

13.3. Adres Seçimi

N adet yazmaç için gereken adres biti:

ceil(log2 N)

kadardır.

Örneğin 16 yazmaç:

4 bit

adresle seçilebilir.

13.4. X 4 Yazmaç Dizisi

Dört adet 4 bit yazmaç:

R0
R1
R2
R3

ortak 4 bit veri yoluna bağlanabilir.

İki adres biti:

A1 A0

dört yazmaçtan birini seçer.

13.5. Kapasite Genişletme

İki adet:

8 x 4

yazmaç dizisi uygun seçim mantığıyla:

16 x 4

kapasiteye genişletilebilir.

Burada yazmaç sayısı artar, sözcük genişliği değişmez.

13.6. Sözcük Genişliği Genişletme

İki adet:

4 x 8

yapı paralel bağlanarak:

4 x 16

oluşturulabilir.

Burada adres sayısı aynı kalır, her yazmacın bit genişliği artar.

13.7. Boyutlandırma İlkesi

Bellek yapılarında iki ayrı büyüklük vardır:

sözcük sayısı
sözcük genişliği

Örneğin:

1024 x 8

bellek:

1024 sözcük
8 bit/sözcük

anlamına gelir.

Toplam kapasite:

8192 bit
=
1024 bayt

olur.

13.8. Adres Kod Çözücüyü

n adres biti:

2^n

satırdan birini seçebilir.

Bu nedenle register array ve RAM organizasyonu kod çözücü kavramının doğrudan uygulamasıdır.

13.9. Register File

İşlemci içindeki yazmaç dizileri güncel terminolojide çoğunlukla register file olarak adlandırılır.

Modern register file:

  • birden çok okuma portu,
  • bir veya daha fazla yazma portu

içerebilir.

Örneğin iki kaynak ve bir hedef kullanan ALU komutu için:

2 read ports
1 write port

doğal bir düzenlemedir.

13.10. Yazmaç Dizisinden Belleğe

Küçük register array ile büyük RAM arasındaki temel düşünce aynıdır:

adres
↓
seçim
↓
saklama hücresi
↓
okuma/yazma veri yolu

Fark:

  • hücre teknolojisi,
  • port sayısı,
  • kapasite,
  • gecikme,
  • enerji,
  • fiziksel düzen

gibi ayrıntılardadır.

Bu nedenle sayı sistemlerinden başlayan ders zinciri sonunda gerçek işlemci veri yollarına ulaşır:

bit
↓
kapı
↓
Boolean fonksiyonu
↓
birleşimsel devre
↓
flip-flop
↓
register
↓
register file
↓
ALU ve veri yolu
↓
işlemci

13.11. Bellek Terminolojisi: Sözcük, Hücre, Adres ve Yollar

Bellekte en küçük fiziksel saklama birimi teknolojiye göre değişebilir; mantıksal modelde ise veri çoğunlukla sözcükler (words) hâlinde adreslenir.

Örneğin:

4096 x 16

organizasyonu:

4096 adreslenebilir sözcük
16 bit / sözcük
toplam 65536 bit
12 adres biti
16 veri biti

anlamına gelir.

Temel dış arayüz üç kavramla okunabilir:

adres yolu
veri yolu
kontrol sinyalleri

Adres "hangi konum?", veri "hangi bitler?", kontrol ise "oku/yaz/etkinleştir" sorularını taşır.

13.12. Uçucu ve Kalıcı Bellek

Uçucu (volatile) bellek güç kesildiğinde saklanan durumu kaybeder. SRAM ve DRAM bu gruptadır.

Kalıcı (non-volatile) bellek güç olmadan bilgiyi koruyabilir. ROM türevleri, EEPROM ve flash gibi teknolojiler bu sınıfa girer.

Mantıksal işlev ile fiziksel teknoloji ayrılmalıdır. Örneğin hem ROM hem RAM adreslenebilir sözcük dizisi olarak görülebilir; hücre yapısı, yazma yöntemi, gecikme ve dayanıklılık farklıdır.

13.13. SRAM ve DRAM

SRAM hücresi bistabil devreye dayanır ve güç varken yenileme gerektirmez. DRAM hücresi kapasitif yük sakladığı için periyodik yenileme gerektirir.

Genel trade-off:

SRAM:
düşük erişim gecikmesi
yüksek hücre alanı

DRAM:
yüksek yoğunluk
yenileme gereksinimi

şeklindedir.

Bu ayrım işlemci register file, önbellek ve ana bellek hiyerarşisini anlamak için temel bir köprüdür.

13.14. ROM, PROM, EPROM, EEPROM ve Flash

ROM ailesi tarihsel olarak sabit veya seyrek değişen bilgiyi saklamak için kullanılmıştır.

mask ROM   -> üretimde tanımlı
PROM       -> kullanıcı tarafından bir kez programlanabilir
EPROM      -> ultraviyole ile silinebilen tarihsel yapı
EEPROM     -> elektriksel silme/yazma
flash      -> bloklar hâlinde silme/yazmaya uygun kalıcı bellek

Modern sistemde gerçek programlama algoritması ve ömür özellikleri teknolojiye özeldir; bu adlandırmaların hepsi aynı elektriksel davranışa sahip değildir.

13.15. Bellek Genişletme

Kapasite iki eksende büyütülebilir:

Sözcük sayısını artırmak:

2 adet 1K x 8
-> seçim mantığıyla
2K x 8

Sözcük genişliğini artırmak:

2 adet 1K x 8
-> paralel veri yollarıyla
1K x 16

Bu iki işlem farklı adres ve veri yolu bağlantıları gerektirir.

13.16. Programlanabilir Lojik Diziler

PROM, PLA, PAL ve GAL tarihsel olarak Boole fonksiyonlarının programlanabilir AND/OR düzlemleri üzerinden gerçekleştirilmesini öğretmek için güçlü modellerdir.

Kavramsal ayrım:

PROM:
sabit AND / programlanabilir OR

PLA:
programlanabilir AND / programlanabilir OR

PAL:
programlanabilir AND / daha sınırlı OR

GAL:
yeniden programlanabilir PAL-benzeri tarihsel aile

Gerçek ticari mimariler aile ve üreticiye göre ayrıntıda değişebilir. Buradaki değer, programlanabilir bağlantı fikrini ve SOP/POS ifadelerinin donanıma nasıl eşlenebildiğini anlamaktır.

13.17. CPLD ve FPGA'ya Geçiş

Modern programlanabilir mantık, klasik sigorta dizilerinden çok daha gelişmiş kaynaklar içerir.

Bir FPGA tipik olarak:

LUT
flip-flop
carry chain
routing
block RAM
clock resources
DSP blocks
I/O resources

gibi bileşenlerden oluşur.

Bir LUT, giriş kombinasyonlarını küçük bir doğruluk tablosu gibi saklayarak genel Boole fonksiyonu gerçekleştirebilir. Örneğin belirli FPGA ailelerinde altı girişli LUT'lar yaygındır; ayrıntı hedef mimariye bağlıdır.

Sentez aracı HDL'deki davranışı bu fiziksel kaynaklara eşler. Bu nedenle:

Boolean ifade
-> RTL
-> sentez
-> LUT / carry / register / memory kaynakları

aynı soyutlama zincirinin farklı düzeyleridir.

13.18. Reset Seçimi de Kaynak Eşlemesini Etkiler

Programlanabilir donanımda her yazmaca reset eklemek otomatik olarak daha güvenli tasarım anlamına gelmez.

Reset yüksek fan-out kontrol ağı oluşturabilir, yerleşim ve yönlendirmeyi zorlaştırabilir, bazı kaydırma yazmacı veya bellek kaynaklarının doğal çıkarımını engelleyebilir ve alan/güç/frekans sonuçlarını etkileyebilir.

Bu nedenle reset gereksinimi durum bazında belirlenmeli; kontrol yolu ile veri yolu ihtiyaçları aynı kabul edilmemelidir.

13.19. Gecikme ve Throughput Ayrımı

Sayısal mantıkta bir devrenin en uzun birleşimsel yolu saat periyodunu sınırlar; ardışıl devrelerde ek yazmaçlar yolu bölerek çalışma frekansını artırabilir, ancak tek bir verinin girişten çıkışa ulaşması için gereken çevrim sayısını da artırabilir. Yayılım gecikmesi, setup/hold süreleri, saat kayması ve pipeline doluluk oranı ayrı ayrı değerlendirilmelidir. FPGA veya ASIC üzerinde elde edilen yüksek frekans, her koşulda daha düşük uçtan uca gecikme anlamına gelmez.

  • Boru hattı derinliğinin tek bir işlemin gecikmesi ile toplam çıktı hızına farklı etkilerinin ayrılması.
  • Kritik yol kısalırken register ve kontrol maliyetinin hesaba katılması.
  • Dijital blokların yalnız fonksiyonel değil zamanlama bütçesiyle birlikte doğrulanması.

Ünite 14: Durum Makineleri

101 örüntüsünü çakışmalı bulan Mealy ve Moore makinelerinin zamanlaması: Mealy çıkışı son 1in çevriminde, Moore çıkışı bir çevrim sonra gelir
Mealy ve Moore örüntü algılayıcı zamanlaması

14.1. Durum Tablosu Modeli

Sonlu durumlu ardışıl bir devre şu bağıntılarla temsil edilebilir:

next_state = f(current_state, input)
output     = g(current_state, input)

Bu ifade Mealy modelini gösterir. Moore tipi çıktıda ise:

output = g(current_state)

ilişkisi kullanılır.

Tipik tasarım adımları şöyledir:

  1. durumları belirle,
  2. geçişleri tanımla,
  3. durum diyagramını veya durum tablosunu oluştur,
  4. durum kodlamasını seç,
  5. sonraki durum ve çıkış mantığını türet,
  6. erişilebilir ve istisnai durumları doğrula.

Durum ataması; mantık karmaşıklığını, anahtarlama davranışını ve gerçeklemeyi etkiler. İkili, one-hot ve Gray benzeri kodlamalar farklı ödünleşimlere sahiptir.

14.2. Genişletilmiş Durum Tabloları

Genişletilmiş bir tablo; mevcut durum, giriş, sonraki durum, çıkışlar ve seçilen saklama elemanının gerektirdiği flip-flop uyarım değerlerini birlikte içerebilir. D flip-floplarda sonraki durum bitleri doğrudan D girişlerine karşılık gelir. JK veya T flip-floplarda ise uyarım denklemlerinin ayrıca türetilmesi gerekir.

14.3. Durum Makinesi Sentezi ve Erişilemeyen Durumlar

Senkron bir sonlu durum makinesi, durum saklamayı sonraki durum ve çıkış mantığından ayırır. Moore çıktıları yalnız duruma bağlıdır; Mealy çıktıları mevcut girişlere de doğrudan bağlı olabilir.

Sağlam bir tasarım akışı şu biçimdedir:

gereksinimler
-> durumların tanımlanması
-> geçiş tablosu
-> durum kodlama
-> sonraki durum/çıkış denklemleri
-> zamanlama doğrulaması

Kullanılmayan durum kodlamaları otomatik olarak göz ardı edilmemelidir. Güvenlik açısından önemli mantık devrelerinde her geçersiz durumdan bilinen güvenli bir duruma toparlanma geçişi tanımlanabilir.

Sayaç tasarımı da aynı ilkeye dayanır. Dalgalı sayaçlarda zamanlama kademeler boyunca yayılır; senkron sayaçlarda ise sonraki durum ortak bir saat altında hesaplanır ve yüksek saat hızlarında davranışı çözümlemek daha kolaydır.

Ünite 15: Elektriksel Lojik Gerçekliği ve Lojik Aileleri

Boole cebrinde 0 ve 1 soyut değerlerdir. Fiziksel devrede ise bu değerler belirli gerilim ve akım aralıklarıyla temsil edilir. Gerçek sayısal tasarım, mantıksal doğruluk ile elektriksel uygunluğu birlikte sağlamalıdır.

15.1. Giriş ve Çıkış Eşikleri

Bir lojik aile veri sayfasında tipik olarak şu sınırlar bulunur:

VIL(max) -> girişin kesin 0 kabul edildiği en yüksek gerilim
VIH(min) -> girişin kesin 1 kabul edildiği en düşük gerilim

VOL(max) -> çıkış 0 iken garanti edilen en yüksek gerilim
VOH(min) -> çıkış 1 iken garanti edilen en düşük gerilim

VIL(max) ile VIH(min) arasındaki bölge güvenilir mantık seviyesi olarak yorumlanmamalıdır.

15.2. Gürültü Marjı

Basitleştirilmiş gürültü marjları:

NMH = VOH(min) - VIH(min)
NML = VIL(max) - VOL(max)

şeklinde tanımlanabilir.

Pozitif marj, sürücünün garanti ettiği seviye ile alıcının talep ettiği eşik arasında tolerans bulunduğunu gösterir.

15.3. Fan-out Artık Yalnız "Kaç Kapı" Sorusu Değildir

Tarihsel TTL devrelerde fan-out çoğunlukla çıkış ve giriş akımlarının oranıyla açıklanır.

Modern CMOS'ta statik giriş akımı çok küçük olabilir; fakat giriş kapasitansı ve anahtarlama akımı yüksek hızda önemli hâle gelir.

Bu nedenle gerçek sürme kapasitesi:

DC akım sınırı
+
kapasitif yük
+
kenar süresi
+
hedef frekans

birlikte değerlendirilmelidir.

15.4. Akım Kaynaklama ve Akım Yutma

Çıkış 1 seviyesindeyken yük yönüne akım sağlamak source, çıkış 0 seviyesindeyken akımı toprağa çekmek sink davranışı olarak adlandırılır.

İki yön için garanti edilen akımlar aynı olmayabilir. LED veya çoklu yük gibi uygulamalarda yalnız voltaj seviyesi değil çıkış akım yeteneği de veri sayfasından kontrol edilmelidir.

15.5. Yayılım Gecikmesi

Bir kapının çıkışı giriş değiştiği anda ideal olarak değişmez.

tPLH -> low-to-high çıkış gecikmesi
tPHL -> high-to-low çıkış gecikmesi

Birden fazla kapı seri bağlandığında yol gecikmesi birikir.

15.6. Güç Tüketimi ve Anahtarlama

CMOS mantıkta statik güç düşük olabilir; ancak anahtarlama sırasında kapasitif düğümler şarj/deşarj edilir.

Basitleştirilmiş dinamik güç eğilimi:

P_dynamic ∝ C × V² × f

olarak okunabilir.

15.7. TTL, CMOS ve ECL'yi Tarihsel Bağlamda Okumak

TTL, CMOS ve ECL; sayısal elektroniğin farklı hız, güç, gerilim ve üretim trade-off'larını temsil eden önemli lojik aileleridir.

ECL doygunluğa gitmeyen bipolar yapılarla yüksek hız hedeflemiştir. TTL uzun süre genel amaçlı 5 V mantığın temel ailesi olmuştur. CMOS ise düşük statik güç, yüksek yoğunluk ve gerilim ölçeklenebilirliği nedeniyle modern sayısal tümleşik devrelerin temel teknolojisi hâline gelmiştir.

CMOS tek bir elektrik standardı değildir. HC, HCT, AHC, LVC ve başka ailelerin eşikleri, besleme aralıkları, hızları ve sürme yetenekleri farklıdır. Parça seçimi gerçek veri sayfasına göre yapılmalıdır.

15.8. Açık Kollektör ve Açık Drenç Çıkışlar

Açık kollektör (open-collector) veya açık drenç (open-drain) çıkış, çıkışın yalnız bir yönde aktif sürülmesine izin verir; diğer seviye harici pull-up ile oluşturulur.

Bu yapı paylaşımlı hatlar, wired-AND benzeri davranış ve seçili seviye dönüştürme senaryolarında kullanılabilir.

Normal push-pull CMOS çıkışları doğrudan birbirine bağlamak aynı şey değildir ve çatışan sürücüler yüksek akım oluşturabilir.

15.9. Üç Durumlu Çıkış

Üç durumlu sürücü:

0
1
Z

durumlarına sahiptir.

Z yüksek empedans demektir; lojik üçüncü değer değildir. Hat sürücüsünün elektriksel olarak devreden ayrılmasını ifade eder.

Paylaşımlı harici veri yollarında yararlıdır. FPGA iç mantığında ise HDL'deki üç durumlu yapılar çoğunlukla multiplexer ağına sentezlenir; gerçek tri-state davranışı genellikle I/O sınırında bulunur.

15.10. Yüzen ve Yavaş CMOS Girişleri

CMOS girişi açıkta bırakılmamalıdır. Belirsiz seviyede veya çok yavaş geçiş yapan giriş, gereksiz güç tüketimine ve kararsız davranışa yol açabilir.

Kullanılmayan girişler veri sayfasının önerdiği sabit mantık seviyesine bağlanmalıdır.

15.11. Schmitt-trigger Girişi

Gürültülü girişte tek eşikli karşılaştırıcının sekmesi ve histerezisli Schmitt tetikleyicinin temiz geçişleri
Schmitt tetikleyici histerezisi

Schmitt-trigger giriş iki farklı eşik kullanarak histerezis oluşturur. Bu yapı yavaş veya gürültülü girişlerin tek, temiz mantık geçişine dönüştürülmesine yardımcı olabilir.

Schmitt-trigger metastabiliteyi ortadan kaldıran bir saat alanı geçiş çözümü değildir; elektriksel giriş temizleme ile senkronizasyon farklı problemlerdir.

15.12. Seviye Uyarlama

Farklı besleme gerilimlerindeki lojik aileler doğrudan bağlanmadan önce:

VOH/VOL
VIH/VIL
absolute maximum
input tolerance
output current

koşulları kontrol edilmelidir.

Genel gerilim kuralları parça özelliklerinin yerini tutmaz. Gerektiğinde özel level-shifter kullanılmalıdır.

15.13. RTL Sonucunu Donanım Gerçeğine Bağlamak

İşlevsel simülasyonda doğru görünen bir tasarım zamanlama, metastabilite veya reset bırakma koşulları nedeniyle donanımda farklı davranabilir. Bu nedenle truth table ve RTL simülasyonu yalnız ilk doğrulama katmanıdır.

Saat alanı geçişlerinde tek bitli kontrol, çok bitli veri ve sayaç aktarımı aynı yöntemle ele alınmaz. CDC analizi, zamanlama kısıtları ve sentez sonrası raporlar tasarımın hangi varsayımlarla güvenli olduğunu gösterir. Asenkron girişler için metastabilitenin tamamen yok edilemeyeceği, yalnız olasılığının yönetilebildiği unutulmamalıdır.

FPGA/ASIC örneklerinde hedef aile, saat frekansı ve kullanılan primitive belirtilmelidir. Böylece genel sayısal mantık ilkeleri ile üreticiye özgü kaynak kullanımı birbirinden ayrılır.

Ünite 16: Multivibratörler, Darbe Şekillendirme ve Asenkron Girişler

555 zamanlayıcı kararsız çok titreşimlisinde kondansatörün 1/3 ile 2/3 Vcc arasında dolup boşalması: yüksek süre ln 2 çarpı R1 artı R2 çarpı C, alçak süre ln 2 çarpı R2 çarpı C; 584 Hz ve yüzde 59,5 görev çevrimi
555 kararsız çok titreşimli devre

Multivibratör, geri beslemeli anahtarlama yapılarının kararlı durum sayısına göre sınıflandırıldığı tarihsel fakat öğretici bir kavramdır.

16.1. Bistabil Yapı

Bistabil devrenin iki kararlı durumu vardır. Latch ve flip-flop ailesi bu davranışın sayısal sistemdeki temel örnekleridir.

16.2. Monostabil Yapı

Monostabil (tek kararlı) devrenin bir kararlı, bir geçici durumu vardır.

Bir tetikleme geldiğinde çıkış belirli süre geçici durumda kalır ve sonra kendiliğinden kararlı duruma döner.

Kullanım örnekleri:

tek atım üretme
minimum darbe genişliği oluşturma
kenardan kontrollü tetik üretme

Süre fiziksel devrede RC, özel zamanlayıcı veya sayısal sayaçla oluşturulabilir.

16.3. Astabil Yapı

Astabil devrenin kararlı durumu yoktur; iki durum arasında kendiliğinden salınır ve periyodik işaret üretir.

Basit RC osilatörleri eğitimde yararlı olsa da modern yüksek doğruluklu senkron sistem saatinin kristal osilatör, PLL/MMCM veya özel clock kaynağı gibi zamanlama özellikleri tanımlı yapılardan üretilmesi gerekir.

16.4. Anahtar Sıçraması

Mekanik anahtar tek fiziksel basışta ideal bir 0 -> 1 geçişi üretmeyebilir.

ideal:
____|‾‾‾‾

gerçek:
____|_|‾|_|‾‾‾

Bunu doğrudan sayaç saatine vermek tek basışın birden fazla olay sayılmasına neden olabilir.

Debounce yöntemleri Schmitt-trigger + RC, SR latch, senkron örnekleme veya belirli süre kararlılık doğrulaması gibi tekniklerle uygulanabilir.

16.5. Asenkron Dış Sinyali Saat Alanına Alma

Buton, sensör, interrupt veya başka bir saat alanından gelen işaret yerel saate göre asenkron olabilir.

Tek bit kontrol için sık kullanılan yapı:

async input
   ↓
FF1
   ↓
FF2
   ↓
synchronous domain

şeklindeki senkronizer zinciridir.

İlk flip-flop metastabil olabilir; sonraki kademe metastabilitenin çözülmesi için süre kazandırır. Bu yapı olasılığı azaltır, matematiksel olarak sıfıra indirmez.

Çok bitli veri için her biti ayrı iki flip-flopla senkronize etmek tutarlı bir sözcük garantisi vermez. Handshake, Gray sayaç, asynchronous FIFO veya başka protokoller gerekir.

16.6. Clock Gating Yerine Clock Enable

Mantıksal bir koşulu doğrudan AND kapısıyla saate bağlamak kısa veya bozuk saat darbeleri üretebilir.

FPGA ve ASIC tasarımında dedicated clock-enable yapıları, clock-gating cell'leri ve üretici tarafından tanımlanmış clock kaynakları tercih edilir.

Darbe üretmek ile güvenilir saat dağıtmak aynı problem değildir.

16.7. Saat Alanı Geçişi, Metastabilite ve Reset Tasarımı

Metastabilite riskini ve iki flip-flop eşzamanlayıcıyı gösteren bilimsel animasyon
Metastabilite ve eşzamanlayıcı

Senkron sayısal tasarımda bütün sinyallerin aynı saat alanına ait olduğu varsayımı tehlikelidir. Asenkron veya başka saat alanından gelen tek bitlik bir sinyal doğrudan flip-flop zincirine bağlandığında metastabilite riski doğar. İki kademeli eşzamanlayıcı, tek bitlik kontrol sinyalleri için yaygın bir çözümdür; çok bitli veri için handshake, gray code sayaç veya asenkron FIFO gibi protokoller gerekir.

Reset de yalnız "tüm bitleri sıfırla" işlemi değildir. Reset'in hangi saat alanında nasıl bırakıldığı, clock kararlı olmadan serbest bırakılıp bırakılmadığı ve dış dünyadan gelen reset sinyalinin metastabilite üretip üretmediği incelenmelidir.

RTL simülasyonunda görünmeyen saat alanı geçiş sorunları gerçek donanımda aralıklı hatalara dönüşebilir. Bu nedenle CDC/RDC denetimleri ve zamanlama kısıtları, işlevsel simülasyonu tamamlayan ayrı doğrulama katmanlarıdır.

16.8. Geçici Mantık Hataları (Hazard), Sentez ve Statik Zamanlama

Doğruluk tablosu bir devrenin mantıksal olarak hangi sonucu üretmesi gerektiğini gösterir; gerçek donanımda ise kapı ve bağlantı gecikmeleri sıfır değildir. Aynı Boolean işlevi gerçekleştiren iki devre bu nedenle geçiş anlarında farklı davranış gösterebilir.

16.9. Geçici Mantık Hatası (Hazard)

Statik-1 hazard ve uzlaşı terimi adımlarının ve durum değişimlerinin gösterimi
Statik-1 hazard ve uzlaşı terimi

Bir giriş değiştiğinde farklı mantık yollarındaki yayılma gecikmeleri geçici bir yanlış darbe üretebilir. Bu durum hazard olarak adlandırılır.

mantıksal olarak: 1 -------- 1
gerçek geçiş:     1 ---0---- 1

Statik hazard, çıkışın teorik olarak aynı değerde kalması gerekirken kısa süreli değişmesidir. Dinamik hazard ise çıkışın tek geçiş yerine birkaç kez salınmasıdır. Senkron tasarımda her geçici darbe doğrudan hata üretmeyebilir; ancak darbeyi örnekleyen başka saat alanı veya asenkron kontrol hattı varsa sonuç kritik olabilir.

16.10. RTL ile Sentezlenmiş Devre Aynı Gösterim Değildir

RTL, istenen saatli davranışı tanımlar. Sentez aracı bu davranışı kapılar, çoklayıcılar, yazmaçlar ve hedef teknoloji hücreleriyle gerçekleştirir. Aynı RTL farklı optimizasyon hedefleri veya FPGA/ASIC teknolojileri altında farklı netlist üretebilir.

Bu nedenle:

RTL simülasyonu
!=
sentezlenmiş mantık
!=
yerleştirme-yönlendirme sonrası zamanlama

İşlevsel simülasyon mantıksal doğruluğu sınar; fiziksel zamanlama ise gerçek yol gecikmelerini ayrı olarak doğrular.

16.11. Statik Zamanlama Analizi

Kritik yol, saat periyodu ve zamanlama boşluğu
Statik zamanlama ve kritik yol

Senkron bir yol için temel kısıt yaklaşık olarak:

Tclk >= Tcq + Tcomb + Tsetup + Tskew

şeklinde okunabilir. Burada kaynak flip-flopun clock-to-Q gecikmesi, birleşimsel yol gecikmesi, hedef flip-flopun setup gereksinimi ve saat dağıtım farkı birlikte bütçelenir.

Hold koşulu farklıdır; yeni verinin hedef yazmacın önceki veriyi güvenli biçimde örneklemesinden önce ulaşmaması gerekir. Frekansı düşürmek setup ihlalini azaltabilir, fakat hold problemini otomatik olarak çözmez.

16.12. Sentez Kısıtı bir Tasarım Girdisidir

Saat periyodu, giriş/çıkış gecikmeleri ve yanlış/multicycle yollar gibi kısıtlar tanımlanmadığında sentez ve zamanlama araçları tasarımın gerçek sözleşmesini bilemez. "Sentezlendi" sonucu bu nedenle "hedef frekansta güvenilir çalışır" sonucuyla eş anlamlı değildir.

Sayısal tasarımın doğrulanması üç ayrı soruyu cevaplamalıdır:

  1. Mantıksal işlev doğru mu?
  2. Saat alanları ve resetler güvenli mi?
  3. Fiziksel yol gecikmeleri hedef zaman bütçesine uyuyor mu?

16.13. Asenkron Girişte Metastabilite ve Olay Kaybı

Farklı saat alanlarından veya harici devrelerden gelen bir dijital giriş, alıcı flip-flop'un kurulum ve tutma sürelerini ihlal edebilir. Bu durumda çıkış bir süre kararlı mantık düzeyine yerleşmeyebilir; metastabilite bütünüyle ortadan kaldırılabilen bir yazılım hatası değildir. Aynı saat alanında ardışık iki flip-flop ile senkronizasyon, çözülme için ek zaman tanıyarak metastabilitenin sonraki mantığa yayılma olasılığını azaltır. Ancak iki flip-flop çözümü dar darbelerin mutlaka algılanacağını garanti etmez.

Darbe genişliği alıcı saatine göre kısaysa geçişler örnekleme anları arasında kaybolabilir. Tek bitlik kalıcı durum aktarımı için iki aşamalı senkronlaştırıcı uygundur; kısa olay aktarımı için toggle tabanlı olay kodlama veya istek–onay el sıkışması gerekebilir. Birden fazla bitin bağımsız senkronlaştırılması ise atomik bir veri sözcüğü oluşturmaz: alıcı eski ve yeni bitleri karıştırabilir. Gray kodlu sayaç, asenkron FIFO veya el sıkışmalı veri aktarımı ancak kullanım varsayımları sağlandığında seçilir.

Doğrulama, yalnız işlevsel simülasyonda ideal saatlerle yapılmamalıdır. Saat oranları, faz kayması, darbe genişliği, yeniden başlatma davranışı ve kabul edilebilir olay kaybı/tekrarı sınırları tasarım sözleşmesine dahil edilmelidir. İki kademeli senkronlaştırıcıların güvenilirliği olasılıksal MTBF yaklaşımıyla değerlendirilebilir; sıfır risk garanti edildiği belirtilmemelidir.

Ünite 17: Analog-Sayısal Sınır, ADC ve DAC

Sayısal mantık ikili semboller üzerinde çalışır; fiziksel dünya ise çoğu zaman sürekli gerilim, akım, sıcaklık, basınç veya ses büyüklükleri üretir. Bu iki alan arasındaki sınır analog-sayısal dönüştürücü (ADC) ve sayısal-analog dönüştürücü (DAC) yapılarıyla kurulur.

17.1. ADC'nin Üç Kavramsal Adımı

Bir ADC davranışı üç temel fikirle okunabilir:

örnekleme
↓
kuantalama
↓
kodlama

Örnekleme analog büyüklüğün belirli zamanlarda ölçülmesidir. Kuantalama ölçülen değerin sınırlı sayıda sayısal seviyeden birine eşlenmesidir. Kodlama seçilen seviyenin bit deseni olarak dışarı verilmesidir.

n bit ideal ADC en fazla 2^n sayısal kod üretebilir.

Tam ölçek aralığı Vref ile ifade edilen ideal bir dönüştürücüde yaklaşık adım büyüklüğü:

LSB ≈ Vref / 2^n

olarak düşünülebilir.

Gerçek ADC'de ofset, kazanç hatası, doğrusal olmama, gürültü ve örnekleme saatinin belirsizliği gibi ek etkiler vardır.

17.2. DAC

Dört bitlik R-2R merdiven DA çeviricide çıkışın Vref çarpı kod bölü 16 olması: 1011 kodu için 3,4375 V, bit ağırlıkları 2,5, 0,625 ve 0,3125 V
R-2R merdiven DAC basamak çıkışı

DAC, bit desenini analog seviyeye dönüştürür.

digital code
   ↓
weighted conversion
   ↓
analog voltage/current

Merdiven direnç ağı, akım kaynakları veya kapasitif yapılar farklı fiziksel gerçekleştirim örnekleridir.

17.3. Ardışık Yaklaştırma Fikri

Ardışık yaklaştırmalı ADC nin bit bit ikili aramayla giriş gerilimini bulması ve son kod
Ardışık yaklaştırmalı ADC

Ardışık yaklaştırmalı ADC, bitleri büyükten küçüğe doğru deneyerek analog girişe yaklaşır.

bir bit dene
↓
iç DAC ile analog karşılık üret
↓
karşılaştır
↓
biti tut veya temizle
↓
sonraki bite geç

Bu yapı; yazmaç, DAC, karşılaştırıcı ve kontrol mantığının birlikte çalıştığı iyi bir sayısal sistem örneğidir.

17.4. Dersler Arası Sınır

ADC/DAC'ın bit kodu, kontrol durumu ve ardışık yaklaştırma mantığı sayısal mantıkla ilgilidir.

Örnekleme devresi, karşılaştırıcı analog performansı, referans devresi ve transistor/op-amp düzeyi gerçekleştirim ise Elektronik I ve II: Analog ve Sayısal Devre Temelleri kapsamında daha ayrıntılı incelenmelidir.

Kaynakça

  • AMD. 7 Series FPGAs Configurable Logic Block User Guide (UG474). Rev. 1.9, 2025. https://docs.amd.com/r/en-US/ug474_7Series_CLB/
  • AMD. UltraFast Design Methodology Guide for FPGAs and SoCs (UG949). 2026.1. https://docs.amd.com/r/en-US/ug949-vivado-design-methodology/
  • Brendan Gregg. Systems Performance: Enterprise and the Cloud. Pearson Education, 2014.
  • Chris Fregly. AI Systems Performance Engineering. O’Reilly Media, 2025.
  • Ekiz, Hüseyin. Mantık Devreleri: Sayısal Elektronik. 3. bs., Değişim Yayınları, 2003. ISBN 9758289136.
  • IEEE. IEEE Std 1800-2023: SystemVerilog — Unified Hardware Design, Specification, and Verification Language. IEEE, 2023. https://standards.ieee.org/ieee/1800/7743/
  • John F. Wakerly. Digital Design: Principles and Practices. Pearson, 2005.
  • M. Morris Mano; Michael D. Ciletti. Digital Design. Pearson, 2012.
  • Norman P. Jouppi et al. “In-Datacenter Performance Analysis of a Tensor Processing Unit.” Proceedings of ISCA, 2017. https://doi.org/10.1145/3079856.3080246
  • Texas Instruments. Implications of Slow or Floating CMOS Inputs. Rev. E, 2021. https://www.ti.com/lit/an/scba004e/scba004e.pdf
  • Texas Instruments. Understanding and Interpreting Standard-Logic Data Sheets. Rev. C, 2016. https://www.ti.com/lit/an/szza036c/szza036c.pdf
  • Vivienne Sze et al. “Efficient Processing of Deep Neural Networks: A Tutorial and Survey.” Proceedings of the IEEE, 105(12), 2017. https://doi.org/10.1109/JPROC.2017.2761740
İçindekiler