Sayısal Mantık Tasarımı
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 notlarım Boole ifadesinden gerçek devreye, oradan ardışıl davranış ve durum makinelerine geçişi izliyordu. Karnaugh sadeleştirmeleri, kombinasyonel bloklar, flip-floplar, sayaçlar ve yazmaçlar aynı tasarım zincirinin birbirini tamamlayan parçalarıdır. Daha sonraki HDL terminolojisini yalnız tarihsel çekirdeği açıklamaya yardımcı olduğu ölçüde ekledim.
Ünite 1: Sayı Sistemleri ve İkili Kodlar
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 ...)bbiç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-1aralığındadır.
Örneğin onluk sistemde taban 10, ikili sistemde 2, sekizli sistemde 8, onaltılı sistemde 16'dır.
Basamak ağırlığı
Bir sayının her basamağı:
di x b^iağırlığına sahiptir.
Örneğin:
65872_10sayısında:
6 x 10^4
5 x 10^3
8 x 10^2
7 x 10^1
2 x 10^0terimleri 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 Bitolarak adlandırılır.
Kombinasyon sayısı
Tabanı b olan sistemde n basamak:
b^nfarklı kombinasyon oluşturabilir.
İkili sistemde n bit:
2^nfarklı değer temsil eder.
Örneğin 8 bit:
2^8 = 256farklı bit deseni oluşturur.
İşaretsiz gösterimde bu desenler:
0 ... 255aralığını temsil edebilir.
Onluk sayı sistemi
Onluk sistemin tabanı:
10ve rakamları:
0 1 2 3 4 5 6 7 8 9şeklindedir.
Günlük yaşamda kullanılan sayı sistemidir.
İkili sayı sistemi
İkili sistemin tabanı:
2ve rakamları:
0
1olarak 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_2onluk 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_10değerine eşittir.
Sekizli sayı sistemi
Sekizli sistemin tabanı:
8ve 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_2Bu nedenle ikili-sekizli dönüşüm üçlü bit grupları üzerinden kolaylıkla yapılabilir.
Onaltılı sayı sistemi
Onaltılı sistemin tabanı:
16ve 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 = 15Bir onaltılı rakam dört bite karşılık gelir:
0_16 = 0000_2
...
F_16 = 1111_2Bu nedenle işlemci yazmaçları, adresler ve bit maskeleri çoğu zaman onaltılı gösterimle yazılır.
Onluktan ikiliye 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 1Sonuç:
13_10 = 1101_2İ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İkili-onaltılı dönüşüm
İkili sayı sağdan başlayarak dörderli gruplara ayrılır:
1011 1100 0110
B C 6Dolayısıyla:
101111000110_2 = BC6_16Ters dönüşümde her onaltılı rakam dört bit ile değiştirilir.
İkili-sekizli dönüşüm
Bitler üçlü gruplara ayrılır:
101 110 011
5 6 3Dolayısıyla:
101110011_2 = 563_8İkili toplama
Temel kurallar:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10
1 + 1 + 1 = 111 + 1 işleminde:
toplam = 0
elde = 1oluşur.
Bu davranış tam toplayıcı devresinin temelidir.
İki'nin tümleyeni
Modern sayısal sistemlerde signed tamsayıların temel gösterimi iki'nin tümleyenidir.
n bit signed aralık:
-2^(n-1) ... 2^(n-1)-1olur.
8 bit için:
-128 ... 127Bir bit deseninin iki'nin tümleyeni:
- bütün bitleri tersle,
- sonuca 1 ekle
adımlarıyla elde edilir.
Örnek:
00001101 13
11110010 1'in tümleyeni
11110011 2'nin tümleyeniBu desen 8 bit signed gösterimde -13 değeridir.
İ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.
İ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İ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.
İkili sayı ve ikili kod farkı
İkili sayı:
1010_2gibi 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_2ikili değerine sahiptir.
8421 BCD kodu ise:
0001 0010şeklindedir.
Bu iki gösterim birbirine karıştırılmamalıdır.
BCD
BCD, her onluk rakamı ayrı dört bitlik kodla gösterir.
Örnek:
59_10için:
5 -> 0101
9 -> 1001dolayısıyla:
59_BCD = 0101 1001olur.
Dört bit 16 kombinasyon oluşturmasına rağmen BCD yalnız:
0000 ... 1001aralığındaki 10 deseni kullanır.
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.
Ünite 2: İkili Mantık ve Mantık Kapıları
İkili mantık
İkili mantıkta değişkenler iki değer alır:
0
1Bunlar 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.
AND işlemi
AND:
Z = A Bveya:
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.
OR iş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.
NOT işlemi
NOT tek girişlidir:
Z = A'- A: 0; Z: 1
- A: 1; Z: 0
Girişi tersler.
Anahtarlama modeli
Mantık işlemleri anahtarlarla modellenebilir.
Seri anahtarlar:
A AND Bdavranışına benzetilebilir. Akım yolunun oluşması için iki anahtarın da kapalı olması gerekir.
Paralel anahtarlar:
A OR Bdavranışı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.
Buffer
Tampon kapısı:
Y = Aiş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.
Inverter
Tersleyici:
Y = A'işlevini gerçekleştirir.
CMOS inverter sayısal elektronik için en temel transistor düzeyindeki devrelerden biridir.
NAND
NAND:
Y = (AB)'işlevini verir.
NAND evrensel kapıdır. Her Boolean işlev yalnız NAND kullanılarak gerçekleştirilebilir.
NOR
NOR:
Y = (A + B)'işlevini verir.
NOR da evrensel kapıdır.
XOR
Exclusive OR:
Y = A XOR Bgiriş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.
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
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.
Analiz
Analizde devre verilidir ve davranışı bulunur.
Temel sıra:
- giriş değişkenlerini belirle,
- ara düğümleri adlandır,
- her kapının denklemini yaz,
- çıkış denklemini çıkar,
- gerekiyorsa sadeleştir,
- doğruluk tablosunu oluştur.
Örneğin:
X = AB
Y = C'
Z = X + Yise:
Z = AB + C'olur.
Sentez
Sentezde istenen davranış verilir ve devre oluşturulur.
Temel sıra:
- giriş ve çıkışları belirle,
- doğruluk tablosunu oluştur,
- Boolean fonksiyonunu çıkar,
- sadeleştir,
- kapılarla gerçekleştir.
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 = ABBir 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 + ABolur.
Sum of Products
SOP, çarpım terimlerinin toplamıdır:
F = A'BC + AB'C + ABCAND kapılarıyla terimler oluşturulur, ardından OR ile birleştirilir.
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'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.
Kanonik ve sadeleştirilmiş ifade
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.
Ünite 4: Boole Cebri
Temel yapı
Boole cebri iki değerli mantığın cebirsel temelidir.
Değerler:
0
1Temel işlemler:
AND
OR
NOTKimlik kuralları
A + 0 = A
A . 1 = ABaskınlık
A + 1 = 1
A . 0 = 0Idempotent kuralları
A + A = A
A . A = ATamamlayıcı
A + A' = 1
A . A' = 0Çift tümleme
(A')' = ADeğişme
A + B = B + A
AB = BABirleşme
A + (B + C) = (A + B) + C
A(BC) = (AB)CDağılma
A(B + C) = AB + ACBoolean cebrinde ayrıca:
A + BC = (A + B)(A + C)eşitliği geçerlidir.
Yutma
A + AB = AA(A + B) = ADe Morgan
(AB)' = A' + B'(A + B)' = A'B'De Morgan kuralları NAND/NOR dönüşümlerinin temelidir.
NAND ile gerçekleştirme
Örneğin:
F = AB + CDDe Morgan ile:
F = ((AB)'(CD)')'biçimine dönüştürülerek iki seviyeli NAND-NAND ağıyla gerçekleştirilebilir.
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ı
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.
Gray düzeni
Hücreler normal binary sayma sırasıyla değil Gray kod sırasıyla yerleştirilir:
00
01
11
10Bu sayede komşu hücreler yalnız bir değişkende farklı olur.
İ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Üç değişkenli K-haritası
Sekiz hücre içerir:
2^3 = 8Kenarlar da birbirine komşudur.
Bu nedenle ilk ve son sütun fiziksel olarak uzakta çizilmiş olsa da mantıksal komşudur.
Dört değişkenli K-haritası
On altı hücre içerir:
2^4 = 16Satır ve sütunların her ikisi de Gray kod düzenindedir.
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
1hücrelerini kapsama, - gereksiz grup sayısını azaltma.
Gruplar gerektiğinde örtüşebilir.
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.
POS sadeleştirmesi
POS için 0 hücreleri gruplanır.
Sonuç maxterm biçiminde yazılır.
Don't-care durumları
Bazı giriş birleşimleri sistemde hiç oluşmuyorsa veya çıkışı önemsizse:
Xile gösterilebilir.
Don't-care hücresi sadeleştirmeyi iyileştiriyorsa 0 veya 1 gibi kullanılabilir, gerekmiyorsa kullanılmayabilir.
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ı
Tasarım adımları
Bir birleşimsel devre için:
- problemi tanımla,
- giriş ve çıkışları belirle,
- doğruluk tablosunu oluştur,
- çıkış fonksiyonlarını yaz,
- sadeleştir,
- devreyi çiz,
- 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.
Yarım toplayıcı
İki bit toplar:
A
BÇıkışlar:
S
CDoğ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 = ABTam toplayıcı
Tam toplayıcı:
A
B
Cingirişlerini toplar.
Çıkışlar:
S
CoutToplam:
S = A XOR B XOR CinElde:
Cout = AB + Cin(A XOR B)şeklinde yazılabilir.
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 CinSon elde:
Cout = C1 + C2olur.
Paralel toplayıcı
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.
İki'nin tümleyeniyle çıkarma
Çıkarma:
A - B
=
A + B' + 1olduğ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' + 1elde edilir.
Karşılaştırıcı
İki ikili sayının:
A > B
A = B
A < Biliş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.
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 == Bifadeleriyle yazılır ve sentez aracı uygun devreyi oluşturur.
Ünite 7: Kodlayıcılar ve Kod Çözücüler
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 -> 11Basit kodlayıcı aynı anda yalnız bir girişin aktif olduğunu varsayar.
Ö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.
BCD kodlayıcı
On giriş hattının birini 4 bit BCD koduna dönüştürebilir:
0 ... 9
↓
0000 ... 1001Kod çözücü
Kod çözücü, n bitlik giriş koduna göre en fazla:
2^nçıkıştan birini etkinleştirir.
2-to-4 kod çözücü
Girişler:
A1 A0çıkışlar:
Y0 Y1 Y2 Y3Aktif-high durumda:
Y0 = A1'A0'
Y1 = A1'A0
Y2 = A1A0'
Y3 = A1A03-to-8 kod çözücü
Üç giriş:
A2 A1 A0sekiz minterm üretir.
Bu nedenle kod çözücü aynı zamanda minterm üreteci olarak düşünülebilir.
Enable girişi
Birçok kod çözücü:
ENgiriş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.
Entegre devre örnekleri
74xx ailesindeki:
74138
74147
74148
74154gibi 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.
Ünite 8: Çoklayıcılar, Demultiplexer ve Üç Durumlu Mantık
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:
nseçim biti gerekir.
2-to-1 multiplexer
Girişler:
D0
D1
SÇıkış:
Y = S'D0 + SD1olur.
4-to-1 multiplexer
İki seçim biti:
S1 S0dö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
Ç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.
Multiplexer ile Boolean iş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.
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.
Üç durumlu çıkış
Üç durumlu çıkış:
0
1
Zdurumlarını alabilir.
Z yüksek empedans durumudur.
Bu durumda eleman ortak hattı etkin biçimde sürmez.
Üç durumlu buffer
Enable aktifken:
Y = AEnable pasifken:
Y = Zolur.
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.
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
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.
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 Dgibi üretilebilir.
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.
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
flagsAritmetik işlemler
Basit ALU:
A + B
A - B
A + 1
A - 1gibi işlemleri yapabilir.
Mantık işlemleri
A AND B
A OR B
A XOR B
NOT Agibi işlemler bulunabilir.
İş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.
Durum bayrakları
Bir ALU işlemi sonucunda tipik bayraklar:
- zero,
- carry,
- negative/sign,
- overflow,
- parity
olabilir.
Her ISA aynı bayrakları aynı anlamla kullanmaz.
Sıfır bayrağı
Sonuç:
F = 0ise etkin olur.
Bit düzeyinde bütün sonuç bitlerinin NOR işlemiyle üretilebilir.
İşaret bayrağı
İki'nin tümleyeni signed sonuç için en anlamlı bit negatiflik göstergesi olarak kullanılabilir:
N = F[n-1]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.
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.
Parity bayrağı
Bazı mimariler sonuç bitlerinin parity bilgisini bayrakta tutar.
Bu özellik evrensel değildir ve modern ISA'ların hepsinde bulunmaz.
Ünite 10: Sıralı Mantık Devreleri
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.
Durum
Bir sıralı devrenin gelecekteki davranışını etkileyen saklanmış bilgiye durum denir.
Durum bitleri:
- latch,
- flip-flop,
- register
ile tutulabilir.
Latch
Latch seviye duyarlı saklama elemanıdır.
Enable aktif olduğu sürece giriş değişimlerini izleyebilir.
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.
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.
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.
Flip-flop
Flip-flop tipik olarak saat kenarında durum değiştirir.
Temel türler:
- SR,
- D,
- T,
- JK.
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.
D flip-flop
D flip-flop:
Q(next) = Ddenklemine sahiptir.
Tek veri girişi olduğundan yasak giriş kombinasyonu yoktur.
Modern senkron tasarımın en yaygın saklama elemanlarından biridir.
T flip-flop
T:
T = 0 -> durumu koru
T = 1 -> durumu değiştirDavranış:
Q(next) = T XOR Qolarak yazılabilir.
Sayaçlarda doğal kullanım alanına sahiptir.
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 = 1için toggle davranışıyla ortadan kaldırır.
Saat kenarı
Pozitif kenar:
0 -> 1Negatif kenar:
1 -> 0geçişidir.
Flip-flop tasarımına göre yalnız belirlenen kenarda yeni giriş örneklenir.
Setup ve hold
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 timeolarak adlandırılır.
İhlal edilirse metastability riski oluşur.
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.
Ünite 11: Senkron Sayıcı Tasarımı
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.
Mod
Bir sayacın tekrar etmeden önce geçtiği farklı durum sayısı:
modulusolarak adlandırılır.
n bitlik tam binary sayaç:
mod 2^nyapısındadır.
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.
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.
Sayaç tasarım adımları
Senkron sayaç tasarımı:
- durumları belirle,
- durum diyagramını çiz,
- durum tablosunu oluştur,
- kullanılacak flip-flop türünü seç,
- uyarma gereksinimlerini belirle,
- K-haritalarıyla sadeleştir,
- devreyi oluştur.
Durum diyagramı
İki bit ileri sayaç:
00 -> 01 -> 10 -> 11 -> 00durum geçişlerine sahiptir.
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
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.
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.
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.
Geri sayıcı
İki bit geri sayaç:
11 -> 10 -> 01 -> 00 -> 11gibi davranabilir.
Tasarım adımları ileri sayıcıyla aynıdır. Yalnız hedef durum dizisi değişir.
İleri-geri sayaç
Kontrol girişi:
UP_DOWNile bir devre:
ileri
gerisayım arasında seçilebilir.
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.
Ünite 12: Yazmaçlar
Yazmaç
Register, ortak kontrol edilen flip-flop grubudur.
n bitlik register:
n bitsaklar.
Örneğin 8 bit register:
Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0çıkışlarına sahiptir.
Paralel yazmaç
Bütün bitler aynı saat olayında yüklenir:
D7...D0
↓
Q7...Q0Bu işleme paralel yükleme denir.
Load enable
Register yalnız LOAD=1 olduğunda yeni veri alabilir:
LOAD = 0 -> Q(next) = Q
LOAD = 1 -> Q(next) = DHer bit için MUX yaklaşımı:
Dff_input = LOAD ? D : Qşeklinde düşünülebilir.
Üç durumlu çıkışlı yazmaç
Bir yazmaç ortak veri yolunu:
OE = 1olduğunda sürer.
Pasif durumda:
Zçıktısı verir.
Aynı veri yolunda yalnız bir kaynak etkin tutulmalıdır.
Kaydırma yazmacı
Shift register saatle birlikte bitleri bir konum kaydırır.
Temel türler:
- SISO,
- SIPO,
- PISO,
- PIPO.
Seri giriş paralel çıkış
SIPO:
serial in
↓
[FF] -> [FF] -> [FF] -> [FF]
↓
paralel çıkışlarseri veriyi zaman içinde toplar ve paralel biçimde okunabilir hale getirir.
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.
Seri giriş seri çıkış
SISO bir dijital gecikme hattı gibi düşünülebilir.
Bir bit her saat olayında bir kademe ilerler.
İki yönlü kaydırma
Kontrol girişine göre:
sağa kaydır
sola kaydırişlemleri yapılabilir.
Universal shift register ayrıca:
- paralel yükleme,
- durumu koruma
işlevlerini de birleştirebilir.
Aritmetik kaydırma
Signed iki'nin 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ş
Yazmaç dizisi
Register array, birden çok yazmacın ortak veri ve seçim mantığıyla bir araya getirilmesidir.
Örneğin:
4 x 4ifadesi:
4 adet yazmaç
her biri 4 bitanlamına gelebilir.
Toplam saklama kapasitesi:
4 x 4 = 16 bitolur.
Okuma ve yazma
Temel işlemler:
write:
R[address] <- dataread:
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.
Adres seçimi
N adet yazmaç için gereken adres biti:
ceil(log2 N)kadardır.
Örneğin 16 yazmaç:
4 bitadresle seçilebilir.
4 x 4 yazmaç dizisi
Dört adet 4 bit yazmaç:
R0
R1
R2
R3ortak 4 bit veri yoluna bağlanabilir.
İki adres biti:
A1 A0dört yazmaçtan birini seçer.
Kapasite genişletme
İki adet:
8 x 4yazmaç dizisi uygun seçim mantığıyla:
16 x 4kapasiteye genişletilebilir.
Burada yazmaç sayısı artar, sözcük genişliği değişmez.
Sözcük genişliği genişletme
İki adet:
4 x 8yapı paralel bağlanarak:
4 x 16oluşturulabilir.
Burada adres sayısı aynı kalır, her yazmacın bit genişliği artar.
Boyutlandırma ilkesi
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 8bellek:
1024 sözcük
8 bit/sözcükanlamına gelir.
Toplam kapasite:
8192 bit
=
1024 baytolur.
Adres kod çözücüyü
n adres biti:
2^nsatırdan birini seçebilir.
Bu nedenle register array ve RAM organizasyonu kod çözücü kavramının doğrudan uygulamasıdır.
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 portdoğal bir düzenlemedir.
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 yoluFark:
- 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şlemciSayısal Tasarımın Bütünsel Çerçevesi
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_10ikili sistemde:
1101_2olarak gösterilir.
Bu bitler fiziksel olarak lojik seviyelerle temsil edilir.
Lojik seviyeler:
AND
OR
NOT
XORkapı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
ALUgibi birleşimsel blokları oluşturur.
Durum saklamak için:
latch
flip-flopeklenir.
Bunlardan:
counter
register
register fileoluş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.
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.
Saat alanı geçişi, metastabilite ve reset tasarımı
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.
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.
Geçici mantık hatası (hazard)
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---- 1Statik 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.
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.
Statik zamanlama analizi
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.
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:
- Mantıksal işlev doğru mu?
- Saat alanları ve resetler güvenli mi?
- Fiziksel yol gecikmeleri hedef zaman bütçesine uyuyor mu?
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.
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 * xBir 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 movementYü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.
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.
Kaynakça
- IEEE. IEEE Std 1800-2012 SystemVerilog. IEEE, 2013. Kaynak
- 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
- 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