Top Banner
Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü Bölüm 1 : Temel Bilgiler Bölüm 1 : Temel Bilgiler Mantıksal Tasarım
23

Mantıksal Tasarım

Jan 11, 2016

Download

Documents

efrem

Mantıksal Tasarım. 1.1. Sayısal Sistemler.  Sayısal ( digital ) sistemler, kesikli ( discrete ) bilgi öğelerini işleyen elektronik sistemlerdir.  Sayısal sistemlerde, kesikli bilgi öğeleri imler ( signals ) ile gösterilir. İm gerilim ya da - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Mantıksal Tasarım

Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü

Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler

Mantıksal Tasarım

Page 2: Mantıksal Tasarım

Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü

Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler

1.1. Sayısal Sistemler

Sayısal (digital) sistemler, kesikli (discrete) bilgi öğelerini işleyen elektronik sistemlerdir. Sayısal sistemlerde, kesikli bilgi öğeleri imler (signals) ile gösterilir. İm gerilim ya da

akım gibi fiziksel bir niceliktir. Sayısal devrelerde kullanılan imlerin iki kesikli değeri

vardır. Bu nedenle sayısal devrelerde kullanılan imler ikili (binary) imler olarak anılır.

İki değerli elektronik imleri işleyen sayısal sistemelerin güvenilirliği, çok değerli örneksel (analog) imleri işleyen örneksel sistemlere göre çok daha yüksektir.

Sayısal bilgisayarlarda işlenen kesikli bilgi öğeleri ikili rakamlarla gösterilir. Ondalık sayılar ikili sayılara dönüştürülerek ya da diğer veri öğeleri gibi ikili kodlarla kodlanarak sayısal bilgisayarlarda işlenir ve saklanır.

Her sayısal devre giriş ve çıkışlarında ikili değerler bulunan ve ikili bir işlemi gerçekleştiren bir fiziksel devredir. Devrenin bir elektronik yapısı, bir de gerçekleştirdiği işlem vardır. Karmaşık sistemleri tasarlamak için, sistemin fiziksel yapısı yerine, işlevsel yapısı ile ilgilenilir. Başka bir deyişle, devre tasarımı fiziksel düzeyde değil, mantıksal düzeyde yapılır.

Page 3: Mantıksal Tasarım

Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü

Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler

Her sayı sisteminin bir tabanı vardır. b tabanlı sayı sisteminde 0 ile (b –1) arasındaki

b adet rakam kullanılır ve bu rakamlar yanyana yazılarak sayılar oluşturulur.

1.2. Sayı Sistemleri

Sayı : X = xn-1xn-2……x1x0

Sayının değeri: X = xn-1 bn-1 + xn-2 bn-2 + ……+ x1b1 + x0 b0 = xi bi

İnsanların düşünce sistemi onlu sayı sistemi üzerine kurulu olduğu için, onlu

sayıların değerini algılamak için yukarıdaki hesaplamaya gerek yoktur.

Sayısal işlemlerde, sayılar yanında, sayıların tümlerleri (complement) de kullanılır.

b’ye tümler. N, b tabanında n basamaklı pozitif bir tamsayı ise,

Eğer N 0 ise : N’b = bn – N

Eğer N = 0 ise : N’b = 0

(b - 1)’e tümler. N, b tabanında n basamaklı pozitif bir tamsayı ise,

N’b-1 = bn – N –1

Page 4: Mantıksal Tasarım

Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü

Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler

İkili sayı sisteminde sadece iki rakam vardır: 0 ve 1.

Basamakların ağırlıkları küçük olduğu için, ikili sayıların rakam sayısı büyük olur.

1.3. İkili Sayı Sistemi

İkili sayı sisteminde sayıların 1’e ve 2’ye olmak üzere iki tümleri vardır.

Örnek N = 101100100 (N’)1 = 010011011 (N’)2 = 010011100

Tamsayıların olduğu gibi kesirli sayıların da de 1’e ve 2’ye tümleri vardır.

n tamsayı, m de kesir rakamından oluşan bir ikili kesirli sayının 1’e ve 2’ye tümleri

yandaki gibi tanımlanır: (N’)2 = 2n - N (N’)1 = 2n – N – 2-m

Örnekler: N (N’)1 (N’)2

100000 011111 100000

101011 010100 010101

100.000 011.111 100.000

110.011 001.100 001.101

Page 5: Mantıksal Tasarım

Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü

Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler

2’ye tümler bulma algoritması:

1. Sayının rakamları sağdan sola doğru taranır.

2. Sağdaki ilk 1 ile onun sağındaki 0’lar değiştirilmez.

3. Sağdaki ilk 1’in solunda kalan tüm rakamlar tek tek tümlenir (0’lar 1,

1’ler ise 0yapılır).

1.3.1. Çıkarma İşleminde Tümlerlerin Kullanılması Çıkarma işleminin 1’e tümler kullanılarak gerçekleştirilmesi:

M ve N iki pozitif tamsayı olmak üzere F = M – N işlemini gerçekleştirmek için:

1. N sayısının 1’e tümleri bulunur : (N’)1

2. M + (N’)1 toplama işlemi yapılır: T = M + (N’)1

eğer toplama işleminde son elde oluştuysa, elde atılır: F = T + 1

eğer toplama işleminde son elde oluşmadıysa: F = - (T’)1

Page 6: Mantıksal Tasarım

Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü

Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler

Çıkarma işleminin 2’ye tümler kullanılarak gerçekleştirilmesi:

M ve N iki pozitif tamsayı olmak üzere F = M – N işlemini gerçekleştirmek için:

1. N sayısının 2’e tümleri bulunur : (N’)2

2. M + (N’)2 toplama işlemi yapılır: T = M + (N’)2

eğer toplama işleminde son elde oluştuysa, elde atılır: F = T

eğer toplama işleminde son elde oluşmadıysa: F = - (T’)2

Sayısal sistemlerde 1’e tümlerin bulunması kolaydır. Çıkarma işleminin kolaylığı

açısından 1’e ya da 2’ye tümler kullanmanın birbirinden pek farlı olmadığını

söyleyebiliriz

1.4. Sekizli ve Onaltılı Sayı Sistemleri Onaltılı sayı sisteminin rakamları : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E ve F

İkili, sekizli ve onaltılı sayı sistemleri arası dönüşüm kolaylığı.

Page 7: Mantıksal Tasarım

Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü

Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler

1.5. İkili Kodlar İki alfabe (simgeler kümesi): Kaynak ve Kod alfabeleri. Sayısal sistemlerde kod alfabesi {0, 1} alfabesi.

Bir kaynak alfabesindeki her simgeye 0 ve 1 kod simgelerinden oluşan bir dizgi eşlendiğinde, bir ikili kod oluşturulmuş olur. Kaynak simgelerinin her birine eşlenen dizgilere ise kod sözcükleri denilir.

Kodun biricik çözülebilir olması. Değişmez/değişken uzunluklu kod.

Örnek 1.1. A = { , , , , , , , }

Kaynak Sim. K1 Kodu K2 Kodu K3 Kodu 000 000 000

001 100 001 010 110 011 011 010 111 100 011 101 101 111 100 110 101 110 111 001 010

Page 8: Mantıksal Tasarım

Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü

Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler

Kodlar

Sayısal Kodlar

Alfasayısal Kodlar

Ağırlıklı Kodlar

AğırlıksızKodlar

Özelliği Olan Kimi sayısal Kodlar Kendiliğinden Tümlenen Kodlar

Dönüşlü Kodlar – Gray Kodları

Yanlış Bulan Kodlar

Yanlış Düzelten Kodlar

Page 9: Mantıksal Tasarım

Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü

Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler

1.5.1. Sayısal – Alfasayısal Kodlar Kaynak alfabesi onlu rakamlardan, genelde sayılardan oluşan koda Sayısal Kod denir. Örnek : BCD (Binary Coded Decimal) kodu,

Kaynak alfabesinde rakamlar ve sayılar dışındaki simgeler de bulunan koda Alfasayısal Kod denir. Örnek: EBCDIC ve ASCII kodları.

Sayısal Kod Örnekleri: Onlu Rakam BCD Kodu Artık-3 Kodu 5’ten 2 Kodu 0 0000 0011 00011 1 0001 0100 11000 2 0010 0101 10100 3 0011 0110 01100 4 0100 0111 10010 5 0101 1000 01010 6 0110 1001 00110 7 0111 1010 10001 8 1000 1011 01001 9 1001 1100 00101

Page 10: Mantıksal Tasarım

Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü

Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler

Alfasayısal Kod Örnekleri

Karakter EBCDIC Kodu 7-bit ASCII Kodu

0 1111 0000 011 0000 1 1111 0001 011 0001 .… …………. ………… A 1100 0001 100 0001

B 1100 0010 100 0010 .… …………. ………… a 1000 0001 110 0001 b 1000 0010 110 0010 .… …………. ………… blank 0100 0000 010 0000 + 0100 1110 010 1011

Page 11: Mantıksal Tasarım

Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü

Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler

Ağırlıklı Kodlar Örnekler: 8 4 2 1 ağırlıklı kod (BCD)

4 3 2 1 ağırlıklı kodlar

8 4 -2 -1 ağırlıklı kod..vb

Ağırlıksız Kodlar Örnekler: Artık-3 (Excess-3) Kodu

5’ten 2 (2-out-of-5) Kodu

Kendiğinden Tümlenen Kodlar Örnekl: Artık-3 (Excess-3) Kodu

Ağırlılı bir kodun kendiğinden tümlenen kod olma koşulu : wi = 9 (gerek fakat yeter olmayan koşul)

Buna göre örneğin (8 4 2 1), (4 2 2 1), (2 4 2 1), (4 3 11), (5 2 11), (4 4 -2 -1) ağırlılı kendiliğinden tümlenen kodlar oluşturulabilir.

Page 12: Mantıksal Tasarım

Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü

Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler

Dönüşlü Kodlar (Cyclic codes)

Dönüşlü Kod Örnekleri

Onlu Rak. K4 Kodu K5 Kodu K6 Kodu0 0000 000 0001 0001 010 0012 0011 011 0113 0010 001 0104 0110 101 1105 0100 111 1116 1100 110 1017 1101 100 1008 10019 1000

Gray Kodları

Dönüşlü kodların bir altsınıfı. Aynı zamanda yansıtılmış (reflected) kodlardır. Gray kodları, genel olarak 0 ile (2n – 1) arasındaki sayıları kodlamak için kullanılan n bit’lik kodlardır.

Page 13: Mantıksal Tasarım

Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü

Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler

2-bit’lik 3-bit’lik 4-bit’lik Onlu Sayı Gray Kodu Gray Kodu Gray Kodu 0 00 000 0000 1 01 001 0001 2 11 011 0011 3 10 010 0010 4 110 0110 5 111 0111 6 101 0101 7 100 0100 8 1100 9 1101 10 1111 11 1110 12 1010 13 1011 14 1001 15 1000

2, 3 ve 4 bit’lik Gray Kodları

Page 14: Mantıksal Tasarım

Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü

Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler

İkili sayılarla Gray kodları arasındaki dönüşüm algoritmik olarak yapılabilir Gray kodlarının ikili sayılara, ikili sayıların da Gray kodlarına

dönüştürülmesini sağlayan algoritmalar

N, değeri 0 ile (2n – 1) arasında değişen bir onlu sayı olsun.

N’nin ikili karşılığını B = bn-1bn-2 … b2b1b0 ile gösterelim.

N’ye eşlenen n bit’lik Gray kod sözcüğünü de

G = gn-1gn-2 … g2g1g0 ile gösterelim.

Gray Kod Sözcüklerinin İkili Sayılara Dönüştürülmesi

Gray Kod sözcüğü soldan sağa doğru taranır:

Eğer gi’nin solundaki 1’lerin sayısı çift ise : bi = gi

Eğer gi’nin solundaki 1’lerin sayısı tek ise : bi = gi’

Not : Sıfır çift sayı olarak alınır.

İkili Sayıların Gray Kod Sözcüklerine Dönüştürülmesi

gi = bi bi+1 0 i n - 2

gn-1 = bn-1

Page 15: Mantıksal Tasarım

Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü

Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler

1.5.2. Yanlış Bulan Kodlar (Error Detecting Codes) Yanlış bulan kodların biçimsel tanımını verebilmek için önce “kod sözcükleri arası uzaklık” ve “kodun en küçük uzaklığı” kavramlarını tanımlamak gereklidir.

İki kod sözcüğünün uzaklığı : kod sözcüklerinin birinden diğerini elde etmek için değiştirilmesi gerekli bit sayısına eşittir.

Bir kodun en küçük uzaklığı: n kod sözcüğünden oluşan bir kodda n(n - 1) / 2 sözcük çiftinin her biri için bir uzaklık değeri vardır. Kodun en küçük uzaklığı, sözcük çiftlerinin uzaklıklarının enküçüğüne eşittir.

1-yanlış bulan kod: sözcüklerinden herhangi birinde bir bit bozulduğunda mutlaka geçersiz bir kod sözcüğü elde edilen kod. Bir kodun 1-yanlış bulan kod olması için gerek ve yeter koşul en küçük uzaklığının 2 olmasıdır

n-yanlış bulan kod: sözcüklerinden herhangi birinde en çok n bit bozulduğunda mutlaka geçersiz bir kod sözcüğü elde edilen kod. Bir kodun n-yanlış bulan kod olması için gerek ve yeter koşul en küçük uzaklığının n+1 olmasıdır.

Page 16: Mantıksal Tasarım

Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü

Bölüm 1 : Temel BilgilerBölüm 1 : Temel BilgilerYanlış bulma özelliği bulunmayan bir kodu 1-yanlış bulan bir koda dönüştürmek için en çok kullanılan yöntem, n bit’lik kod sözcüklerine bir eşlik (parity) bit’i ekleyerek (n + 1) bit’lik bir kod oluşturmaktır. BCD kod sözcüklerine bir eşlik bit’i eklenerek oluşturulan 1-yanlış bulan kodlar

Çift Eşlik Bit’li Tek Eşlik Bit’li Onlu Rakam BCD Kodu BCD Kodu

0 00000 00001 1 00011 00010

2 00101 00100 3 00110 00111 4 01001 01000 5 01010 01011 6 01100 01101 7 01111 01110 8 10001 10000 9 10010 10011

Page 17: Mantıksal Tasarım

Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü

Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler

1.5.3. Yanlış Düzelten Kodlar (Error Correcting Codes) n-yanlış düzelten kod: kodun herhangi bir sözcüğündeki bit’lerden en çok n tanesi

bozulduğunda, hangi bit’lerin yanlış olduğu bulunup düzeltilebilen kod.

Bir kodun n-yanlış düzelten bir kod olması için gerekli ve yeterli olan koşul,

kodun en küçük uzaklığının (2n + 1) olmasıdır. Buna göre:

1-yanlış düzelten kodun en küçük uzaklığı 3,

2-yanlış düzelten kodun en küçük uzaklığı 5,

3-yanlış düzelten kodun en küçük uzaklığı 7,

………………..

n-yanlış düzelten kodun en küçük uzaklığı 2n + 1

olmalıdır.

Page 18: Mantıksal Tasarım

Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü

Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler

Haming Kodları Haming kodları, herhangi bir kodun sözcüklerine belirli sayıda eşlik bit’i ekleyerek oluşturulan 1-yanlış düzelten kodlardır.

Haming yöntemi uygulandığında n bit’ten oluşan veri grubuna p eşlik bit’i eklenerek n + p uzunluğunda genişletilmiş bir sözcük oluşturulur.

her eşlik bit’inin denetimi yapıldığında, p bit uzunluğunda bir denetim sayısı elde edilir. Bu sayı sözcüğün doğru/yanlış olduğunu; eğer sözcük yanlış ise yanlışın hangi konumda olduğunu gösterir. Bunun için denetim sayısının en az (n+p+1) farklı değerinin olması ve 2p n+p+1 eşitsizliğinin sağlanması gerekir.

Bu eşitsizliğe göre Haming yönteminde: 1 veri bit’ine 2 eşlik bit’i 2 veri bit’ine 3 eşlik bit’i

4 veri bit’ine 3 eşlik bit’i 8 veri bit’ine 4 eşlik bit’i

16 veri bit’ine 5 eşlik bit’i 32 veri bit’ine 6 eşlik bit’i 64 veri bit’ine 7 eşlik bit’i eklemek gerekir.

Page 19: Mantıksal Tasarım

Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü

Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler

BCD Haming kodu

Konum 1 2 3 4 5 6 7

Bit p1 p2 b1 p3 b2 b3 b4

D d3d2d1 Anlamı

0 0 0 0 Yanlış yok

1 0 0 1 1. konumdaki bit yanlış

2 0 1 0 2. konumdaki bit yanlış

3 0 1 1 3. konumdaki bit yanlış

4 1 0 0 4. konumdaki bit yanlış

5 1 0 1 5. konumdaki bit yanlış

6 1 1 0 6. konumdaki bit yanlış

7 1 1 1 7. konumdaki bit yanlış

p1 eşlik bit’i: 1, 3, 5 ve 7. konumların

p2 eşlik bit’i: 2, 3, 6 ve 7. konumların

p3 eşlik bit’i: 4, 5, 6 ve 7. konumların

eşlik bit’i olmalıdır.

Page 20: Mantıksal Tasarım

Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü

Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler

Onlu B C D H a m i n g K o d u Rakam p1 p2 b1 p3 b2 b3 b4

0 0 0 0 0 0 0 0

1 1 1 0 1 0 0 1

2 0 1 0 1 0 1 0

3 1 0 0 0 0 1 1

4 1 0 0 1 1 0 0

5 0 1 0 0 1 0 1

6 1 1 0 0 1 1 0

7 0 0 0 1 1 1 1

8 1 0 1 0 0 0 0

9 0 0 1 1 0 0 1

Page 21: Mantıksal Tasarım

Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü

Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler

BCD Hamming Kodu Uygulama Örneği

Gönderilen Doğru Sözcük: 1 1 0 0 1 1 0

Alınan Yanlış Sözcük: 1 1 0 1 1 1 0

Denetim sayısı = d3d2d1 = 100 0 olduğu için kod sözcüğü yanlıştır.

Denetim sayısının değeri 4 olduğu için 4. konumdaki bit düzeltilerek doğru sözcük bulunur.

p1 eşlik denetimi : 1 – 3 – 5 - 7. konumlaradaki 1 sayısı 2’dir : d1= 0

p2 eşlik denetimi : 2 – 3 – 6 - 7. konumlaradaki 1 sayısı 2’dir : d2 = 0

p3 eşlik denetimi : 4 – 5 – 6 - 7. konumlaradaki 1 sayısı 3’dir : d3 = 1

Page 22: Mantıksal Tasarım

Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü

Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler

7 bit’lik Haming Kodu bir yanlışın düzeltilmesini sağlar. Bu koda bir sekizinci eşlik

biti ekleyerek 2 yanlış bulan, 1-yanlış düzelten bir kod oluşturmak mümkündür.

8 bit’lik kod sözcüğü örneği: p1 p2 d1 p3 d2 d3 d4 p

1 0 0 1 1 0 0 1

2-Yanlış Bulan, 1-Yanlış Düzelten Kod

2-yanlış bulan, 1-yanlış düzelten 8 bit’lik kodda yanlış bulma/düzeltme

süreci nasıl gerçekleşir?

Page 23: Mantıksal Tasarım

Mantıksal Tasarım – Prof.Dr. Ünal Yarımağan – HÜ Bilgisayar Mühendisliği Bölümü

Bölüm 1 : Temel BilgilerBölüm 1 : Temel Bilgiler

p eşlik denetimi

olumlu olumsuz

1 yanlış var

D = d3d2d1 denetim

sayısını hesapla

0 ya da 2 yanlış var

D = d3d2d1 denetim

sayısını hesapla

D = 0D = 0

2 yanlış var

düzeltilemez

evet evet hayır

Yanlış yok 8. bit (p) yanlış

düzelt

D. konumdaki

bit yanlış

düzelt

Başlangıç

Son

hayır