SAYISAL DEVRE TASARIMI EEM122 Ref. Morris MANO & Michael D. CILETTI SAYISAL TASARIM 4. Baskı BÖL-1B Fatih University- Faculty of Engineering- Electric and Electronic Dept.
İŞARETLİ SAYILAR Bilgisayar gibi dijital sistemler hem pozitif hem de negatif sayılar kullanmaktadır. İşaretli ikili sayılar, hem işaret hem de büyüklüğünü ihtiva eder İşaret bir sayının ya negatif yada pozitif olduğunu gösterir. Büyüklük sayının değerini gösterir.
İŞARETLİ SAYILAR İkili sayılarda işaretli tamsayıları göstermenin 3 formu vardır: İşaret-büyüklük (az kullanılır) 1 e tümleyeni 2 e tümleyeni (çok kullanılır) İşaretli ikili sayıda en soldaki bit işaret bitidir. Bu bize sayının pozitif (işaret bit = 0) mi yoksa negatif (işaret bit = 1) mi olduğunu söyler
İşaret-Büyüklük Formu En soldaki rakam işaret rakamını geriye kalan ise büyüklük rakamını gösterir. Büyüklük rakamları hem pozitif hem de negatif sayılar için doğru ikilidir. Örnek: +25 onluk sayı ve -25 onluk sayı 000110010011001 10011001 8 rakamlı işaretli ikili olarak ifade edilir. İşaret-büyüklük formunda bir negatif sayı, kendisine karşılık gelen pozitif sayıyla aynı büyüklüktedir. Fakat işaret rakamı 0 dan ziyade 1 dir.
1 e Tümleyen Formu 1 e tümleyendeki pozitif sayılar, pozitif işaret-büyüklükteki gibi aynı yolla gösterilir. Negatif sayılar, karşılığı olan pozitif sayıların 1 e tümleyenleridir. Örnek: +25 onluk sayı : -25 onluk sayısı ise 000110010011001 111001101100110 olarak ifade edilir.
2 ye Tümleyen Formu 2 ye tümleyen formundaki pozitif sayılar pozitif-işaret-büyüklük ve 1 e tümleyen formunda olduğu gibi aynı yolla ifade edilir. Negatif sayılar, karşılık gelen pozitif sayının 2 e tümleyenidir. Örnek: +25 onluk sayısı : -25 onluk sayısı ise 000110010011001 111001111100111 Şeklinde ifade edilir.
İşaretli Sayıların Ondalık Değeri İşaret-büyüklük gösterimi: Pozitif ve negatif sayılar işaret biti hariç ikili sayı eşdeğer ondalık bularak belirlenir.işaret biti son işareti belirleyecektir. İşaret-büyüklük örn: bu sayıların ondalık değerler (İşaret-büyüklük ifadesi) 1) 10010101 2) 01110111 Büyüklük Büyüklük 2 6 2 5 2 4 2 3 2 2 2 1 2 0 2 6 2 5 2 4 2 3 2 2 2 1 2 0 0 0 1 0 1 0 1 1 1 1 0 1 1 1 = 16+4+1 = 21 = 64+32+16+4+2+1 = 119 işaret = 1 negatif işaret = 0 pozitif Böylece: 10010101 = -21 Böylece: 01110111 = 119
İşaretli Sayıların Ondalık Değeri İşaretli 1 e tümleyen sayıların ondalık değer hesaplaması En büyük basamaktaki rakam eksi ile çarpılır. Daha sonra Pozitif: 1 olan tüm bit pozisyonlarında ağırlıkları toplayarak belirlenir. Negatif: 1 olan tüm ağırlıkları toplayarak, ve sonuca 1 ilave edilerek belirlenir.
İşaretli Sayıların Ondalık Değeri 1 e tümleyen (örnek) Örn: İşaretli 1 e tümleyen şeklinde verilen aşağıdaki sayıların ondalık değeri nedir? 1) 00010111 2) 11101000-2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0-2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 0 0 0 1 0 1 1 1 1 1 1 0 1 0 0 0 = 16+4+2+1 = +23 = (-128)+64+32+8 = -24 Böylece: 00010111 = +23 Böylece: 11101000 = -23 +1
İşaretli Sayıların Ondalık Değeri 2 ye tümleyen: Yöntem pozitif ve negatif sayılar için aynıdır İlk basamaktaki rakam eksi ile çarpılır. Bütün basamaklardaki rakamlar ağırlıklarıyla çarpılarak toplanır. 1 e tümleyendeki gibi negatif sayılara 1 ekleme durumu yoktur.
İşaretli Sayıların Ondalık Değeri 2 ye tümleyen (Örnekli) Örn.: Aşağıda 2 ye tümleyen olarak ifade edilmiş sayıların onluk değerini bulun. 1) 01010110 2) 10101010-2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0-2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 = 64+16+4+2 = +86 = (-128)+32+8+2 = -86 Böylece: 01010110 = +86 Böylece: 10101010 = -86
İşaretli Tamsayıların sınırı. İkili bir dizi büyüklüğü aralığı biti (n) 'nin sayısına bağlıdır. Toplam kombinasyonlar = 2 n 8 bit = 256 farklı sayı 16 bit = 65,536 farklı sayı 32 bit = 4,294,967,296 farklı sayı 2 ye tümleyen işaretli sayılar için; Sınır = -(2 n- 1 ) den +(2 n- 1-1) Burada bir işaretli bit ve n-1 büyüklük var. ex: Negatif Sınır Pozitif Sınırı 4 bit -(2 3 ) = -8 (2 3-1) = +7 8 bit -(2 7 ) = -128 (2 7-1) = +127 16 bit -(2 15 ) = -32,768 (2 15-1) = +32767
İşaretli Sayılarla Aritmetik İşlemler. Bilgisayar sistemlerinde işaretli sayıları temsil eden en yaygın form olarak 2 ye tümleyen formu kullanıldığından aritmetik işlemler konusunu bu gösterim şekline sınırlayacağız. Toplama Çıkartma Çarpma (çoklu toplama olarak aynı) Bölme (sürekli çıkarma ile aynı)
Toplama 2 işaretli sayı eklendiğinde 4 olgu ortaya çıkabilir Her iki sayı pozitiftir. Negatif bir sayı daha büyük şiddetteki pozitif bir sayı. Pozitif bir sayı daha büyük şiddetteki negatif sayı. Her iki sayı negatiftir.
Her iki sayı pozitif : Toplama ex: 00000111 7 +00000100 +4 00001011 11 Toplamı pozitiftir ve bu nedenle gerçek (tümlenmemiş-uncomplemented)) ikili olduğu. Negatif bir sayı daha büyük şiddetteki pozitif bir sayı. : ex: 00001111 15 Elde biti atılır Nihai elde biti atılır. +11111010 + -6 1 00001001 9 Bu nedenle, toplamı pozitif ve gerçek (uncomplemented) ikili bulunmaktadır.
Toplama Her iki sayı negatif: ex: 11111011-5 +11110111 + -9 Elde 1 11110010-14 biti Nihai elde biti atılır.toplamı negatiftir, ve bu nedenle de 2 tümleyen formundadır. Pozitif bir sayı daha büyük şiddetteki negatif bir sayı; ex: 00010000 16 +11101000 + -24 11111000-8 Toplamı negatiftir. ve bu nedenle de 2 tümleyen formundadır.
Taşma durumu : Toplama İki sayı ilave edildiği ve toplamı temsil etmek üzere gerekli bit sayısı iki sayıdaki bit sayısını aştığında taşmayla sonuçlanır. Taşma durumunda işaret biti ve sayının büyüklüğü hatalıdır. Taşma sadece her iki sayıda + veya olduğunda oluşur. ex: 01111101 01111101 125 +00111010 + 58 10110111 183 Yanlış işaret Yanlış Büyüklük
Toplama Aynı anda iki sayı toplanır. Bilgisayar sayı dizelerini toplar. Bir seferde iki sayı toplanır: Örn: işaretli sayıları topla: 01000100, 00011011, 00001110, ve 00010010 68 01000100 + 27 + 00011011 İlk iki sayıyı topla 95 01011111 1. toplam + 14 + 00001110 3.sayı toplama ekle. 109 01101101 2. toplam + 18 + 00010010 4.sayı toplama ekle. 127 01111111 Final toplam
Çıkarma Çıkarma toplamanın özel bir durumdur. Çıkarma eksilen terimin işaretinin tersine çevrildiği bir toplama işlemidir. Bir sayının işareti 2 ye tümleyeni alındığında tersine döner. Bu durumda çıkarma işleminde eksilen terimin 2 ye tümleyenei alınıp toplama işlemi yapılır. (En büyük basamakta elde çıkarsa atılır)
Çıkarma ex: Aşağıdaki çıkarma işlemlerini yapınız: (a) 00001000 00000011 (b) 00001100 11110111 (c) 11100111 00010011 (d) 10001000-11100010 (a) 00001000 8 (b) 00001100 12 +11111101 + -3 +00001001 + 9 100000101 5 00010101 21 (c) 11100111-25 (d) 10001000-120 +11101101 + -19 +00011110 + 30 11101010011010100-44 10100110-90
Çarpma Bilgisayarlarda çarpma işlemi toplama kullanılarak elde edilir. 2 temel yöntem vardır: Direkt toplama Parçalı çarpma
Direkt Toplama Çarpılanı çarpan sayısı kez kendisiyle toplarız. Örneğin, 8x3 = 8+8+8 = 24 Dezavantajı Uzun süren işlem
Parçalı Çarpma İki sayı çarpıldığında tümleyeni alınmamış gerçek formlarında olmak zorundadırlar. Çarpan ve çarpılanın işaretlerine göre çarpım sonucunun işareti belirlenir: İşaretler aynı ise çarpımın sonucu pozitiftir. İşaretler farklı ise çarpımın sonucu negatiftir.
Parçalı Çarpma 1. aşama: İşaret belirleme 2. aşama: Negatif sayıları tümleyensiz haline çevirme. 2 ye tümleyeni alınır 01010011 (Çarpılan) 11000101 (Çarpan) 00111011 (Çarpanın 2 ye tümleyeni) 01010011 (çarpılan) 11000101 (çarpan) Çarpılan + Çarpan - Çarpım -
Parçalı Çarpma 3. aşama: En küçük basamaktan başlayarak parçalı çarpımları yapın. Her parçalı çarğımı bir basamak sola kaydırın 4. aşama: Parçalı çarpımları toplayın 01010011 (Çarpılan) 11000101 (Çarpan) 1010011 x 0111011 1010011 + 1010011. 11111001 + 0000000. 011111001 + 1010011. 1110010001 + 1010011. 100011000001 + 1010011. 1001100100001 + 0000000. 1001100100001
Parçalı Çarpma 5. aşama: 1. aşamada bulunan işaret negatifse sonucun 2 ye tümleyenini alın. 6. aşama: Başına işaret biti ekleyin (pozitifse 0, negatifse 1) 01010011 (Çarpılan) 11000101 (Çarpan) 1001100100001 (çarpma sonucu) 0110011011111 (2 ye tümleyeni) Başına işaret biti ekleyince 10110011011111
Bölme Bölme işleminde bölünen, bölen, bölüm ve kalan vardır. Bölünen Bölen = bölüm Bölme işlemi tekrarlanan çıkarma işlemi ile yapılır. Çıkarma da toplama ile yapılabildiğinden bölme işlemi toplama ile yapılır.
Bölme Bölümün işareti bölünen ve bölenin işaretine göre belirlenir İşaretler aynı ise bölüm pozitiftir. İşaretler farklı ise bölüm negatiftir. Bölme işleminde sayılar tümleyensiz formlarında olmak zorundadırlar.
Bölme 1. aşama: İşaret belirleme 01100100 (Bölünen) 00011001 (Bölen) Bölünen + Bölen + Bölüm +
Bölme 2. aşama: 2 ye tümleyen formunu kullanarak böleni bölünenden çıkartınız ve bölüme bir ekleyiniz Eğer kalan pozitifse 3. aşamaya geçiniz Eğer kalan sıfır veya negatifse bölme işlemi bitmiştir. 01100100 (bölünen) 00011001 (bölen) 01100100 + 11100111 (2 ye tümleyeni) 101001011 Bölüm = 00000000+00000001 = 00000001 Note: Çıkan elde atılır
Bölme 3. aşama: böleni kalandan çıkartınız ve bölüme 1 ekleyiniz Bu kalan pozitifse işlemi bu kalan üstünde tekrarlayınız. Kalan sıfır veya negatifse bölme işlemi bitmiştir. 01100100 (bölünen) 00011001 (bölen) 01001011 + 11100111 (2 ye tümleyeni) 100110010 Bölüm = 00000001+00000001 = 00000010 00110010 + 11100111 (2 ye tümleyeni) 100011001 Bölüm = 00000010+00000001 = 00000011 Sonuç sıfır veya negatif olduğunda durun Bölüm = 4 00011001 + 11100111 (2 ye tümleyeni) 100000000 Bölüm = 00000011+00000001 = 00000100
The Dijital ital Kodlar
Binary Coded Decimal (BCD) BCD kullanıcı ile bilgisayar arasında arayüz olarak kullanılan ve data işlemeyi kolaylaştıran bir kodlamadır. 8421 tipi BCD nin çok bilinen bir versiyonudur. BCD kodlama aşağıdaki durumlarda iyi bir arayüz olarak kullanılır: Klavye girdileri Sayısal okuyucular
Binary Coded Decimal Rakam 0 1 2 3 4 5 6 7 8 9 BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 Not: 1010, 1011, 1100, 1101, 1110, ve 1111 kombinasyonları BCD de kullanılmaz Onluktan BCD ye (a) 35 001101010101 (b) 170 0001011100000000 BCD den Onluğa (a) 100001100110 86 (b) 1001010001110000 0000 9470
BCD Toplama BCD ikili olarak kodlanmış bir onluk sayıdır. Aritmetik operasyonlarda onluk sayı gibi davranılır. Aşağıda belirtilen birkaç düzeltme kuralı uygulanmak şartıyla: İki BCD rakamı basit ikilik toplama yapar gibi toplayın. Eğer 4-bit toplamı 9 dan küçük veya eşitse sonuç doğrudur. Eğer 4-bit toplamı 9 dan büyükse veya bir elde biti oluşmuşsa sonuç yanlıştır.düzeltmek için sonuca 6 (0110) ekleyin. Eğer 6 eklendiğinde bir elde biti oluşursa bunu bir sonraki 4-bitlik BCD ye ekleyin.
BCD Toplama Örn: Aşağıdaki BCD toplamaları yapın (a) 0101 5 (b)00100011 0011 23 + 0010 +2 + 00010101 0101 +15 0111 7 001110001000 38 1 (c) 1000 8 (d) 000110000100 184 +100101 +9 +010101110110 +576 Toplam 10001 0110111110101010 + 6 + 0110 01100110 Doğru toplam 10111 17 0111011000000000 760
Gray Kodu Gray kodunda basamak değeri yoktur ve aritmetik bir kod değildir. Gray kodunda ardışık rakamlar arasında sadece tek bir bit değişikliği vardır. Bu özellik şaft pozisyonu enkoderleri gibi uygulamalarda faydalıdır.
Gray Kodu Onluk İkilik Gray Kodu 0 0000 0000 1 0001 0001 2 0010 0011 3 0011 0010 4 0100 0110 5 0101 0111 6 0110 0101 7 0111 0100 8 1000 1100 9 1001 1101 10 1010 1111 11 1011 1110 12 1100 1010 13 1101 1011 14 1110 1001 15 1111 1000
Gray Kodu İkilikten Gray koduna çevrim En büyük basamak direkt aktarılır. Soldan sağa giderken her bit sağındaki bite eklenerek gray karşılığı bulunur. Ekleme sırasında oluşan eldeler atılır. Örn: 10110 2 yi Gray koduna çeviriniz 1 + 0 + 1 + 1 + 0 İkilik 1 1 1 0 1 Gray
Gray Kodu Gray den ikiliğe çevrim En büyük basamak biti direkt aktarılır. Üretilen her ikilik biti bir sonraki basamaktaki gray biti ile toplanır ve sonucu ikilik bit olarak yazılır. Çıkan elde bitleri atılır. Örn: Gray kodundaki 11011 i ikiliğe çevirin 1 1 0 1 1 Gray + + + + 1 0 0 1 0 İkilik
ASCII ASCII kodlamasında 7-bit ile gösterilen 128 karakter ve sembol vardır. En büyük biti her zaman 0 olan 8-bit kod olarak da düşünülebilir. (00h-7Fh) 00h-1Fh (ilk 32) kontrol karakterleri (00-31) 20h-7Fh grafik semboller (Gösterilebilen veya yazdırılabilen semboller) (32-127)
ASCII kod tablosu
İkilik Depolama ve Register İkilik hücre: İkilik hücre iki kararlı ikilik bilgiyi (0 ve 1) saklama yeteneğine sahip bir cihazdır. Hücre girişi bir uyarım sinyali alır ve çıkışını 0 veya 1 olarak ayarlar. Register: Register n bit ikilik bilgiyi depolayabilen n adet dijital depolama elemanı grubudur. Register Bilgi Transferi : Büyük sistemler modüler yaklaşım kullanılarak tasarlanır. Büyük sayısal sistemlerde her bir alt sistem kendi görevini yürütür ve registerlar bu sistemlerde temel bir parçadır. Alt sistemler arası bilgi transferi registerlar vasıtası ile yapılır.
İkilik Depolama ve Register
İkilik Depolama ve Register Registerlar üzerinde ikilik aritmetik işlemler
İkilik Mantık İkilik mantık iki değerden birisine sahip değişkenleri alır ve üzerlerinde mantıksal karşılığı olan operasyonlar yürütür. İkilik değişkenlerden (x,y,z,...a,b,c,..),...a,b,c,..) ve bir ikilik operasyon setinden oluşur. Her değişken iki değerden birine sahip olabilir (Doğru/Yanlış), (Evet/Hayır), (1/0) Üç temel operasyon vardır: VE, VEYA, DEĞİL VE:z=x VE y yada x.y yada xy; Z sadece x ve y doğru olduğunda doğrudur VEYA:z=x yada x+y; Z değişkenlerden herhangi birisi doğru ise doğrudur DEĞİL: z=x DEĞİL,x ; tersini alma işlemidir Mantık operasyonu bir matematik operasyonu değildir Doğruluk tabloları giriş değişkenlerinin bütün kombinasyonları için çıkış değişkeninin aldığı değerleri listeler
Mantık Kapıları Mantık kapıları bir veya daha fazla giriş üzerinde mantık operasyonları yapan elektronik devrelerdir.
Mantık Kapıları Kapılar için giriş ve çıkış sinyalleri