2016.03.15.
DIGITÁLIS TECHNIKA I Dr. Lovassy Rita Dr. Pődör Bálint
BINÁRIS SZÁMRENDSZER
Óbudai Egyetem KVK Mikroelektronikai és Technológia Intézet 5. ELŐADÁS
1
2
BEVEZETŐ ÁTTEKINTÉS A 6. előadás témája a digitális rendszerekben központi szerepet játszó számrendszerek és aritmetikák.
Áttekintjük a digitális technikában használatos számrendszereket, az aritmetikai műveletek elvégzésének szabályait és célszerű algoritmusait, valamint az egyes számrendszerek közti áttérések algoritmusait is.
1. Számrendszerek 2. Bináris számok 3. Aritmetikai műveletek bináris számokkal
A digitális rendszerekben, célszerűségi okokból a 2-es (bináris) számrendszer terjedt el.
A jelen és a következő előadáshoz kapcsolódó jegyzetrészek: Rőmer jegyzet 146-160 old., 179-181 old. Zsom jegyzet I, 19-49 old., 297-299 old. Gál könyv 132-145 old., 167-201 old. Az előadások ezen könyvek megfelelő fejezetein alapulnak.
Mindezek sokféle digitális funkcionális egység működésének alapjait képezik.
3
HELYÉRTÉK
318 = 3 ⋅100 + 1 ⋅10 + 8 ⋅1 318 = 3 ⋅10 + 1⋅10 + 8 ⋅10 2
1
4
BINÁRIS SZÁMRENDSZER Szám helyértéke
11010110( 2 ) =
0
1 ⋅ 27 + 1 ⋅ 2 6 + 0 ⋅ 25 + 1 ⋅ 2 4 + 0 ⋅ 23 + 1 ⋅ 2 2 + 1 ⋅ 21 + 0 ⋅ 2 0
Szám alaki értéke
Számjegyek: 0,1
Számjegyek: 0,1,2,3,4,5,6,7,8,9
318 = 300 + 10 + 8
Számrendszer alapja: 10
A számítástechnika és a digitális technika a bináris számrendszerre épül
Szám valódi értéke Decimális számrendszer 5
6
1
2016.03.15.
10-ES ÉS 2-ES SZÁMRENDSZER
HEXADECIMÁLIS SZÁMRENDSZER
Pl. 2009 tízes számrendszerbeli alakja azért ez, mert
14 FB = 1⋅163 + 4 ⋅16 2 + F ⋅161 + B ⋅160
2009 = 2x103 + 0x102 + 0x101 + 9x100
= 1 ⋅ 4096 + 4 ⋅ 256 + 15 ⋅16 + 11 ⋅1
kettes számrendszerbeli alakja 111 1101 01112, mert
= 5371(10)
2009 = 1x210 + 1x29 + 1x28 + 1x27 + 1x26 + 0x25 + 1x24 + 1x23 + 0x22 + 0x21 + 1x20
Számjegyek: 0, 1,..., 9, A, B, C, D, E, F
Hexadecimális rendszerben pedig $7D9 Megkülönböztető jelölés $, pl. $14FB 7
8
SZÁMRENDSZEREK ÉS SZÁMJEGYEIK
ÁTSZÁMÍTÁS KÉT SZÁMRENDSZER KÖZÖTT Egy természetes szám átírása egyik számrendszerből a másikba: a számot elosztjuk az új rendszer alap-számával, és a maradékokat jobbról balra haladva leírjuk.
Megnevezés Alap Számjegyek ——————————————————————— Bináris (duális) 2 0,1 Ternális 3 0,1,2 Tetrális 4 0,1,2,3 Kvintális 5 0,1,2,3,4 Oktális 8 0,1,2,3,4,5,6,7 Decimális 10 0,1,2,3,4,5,6,7,8,9 Duodecimális 12 0,1,2,3,4,5,6,7,8,9,a,b Hexadecimális 16 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
Pl.
2009 = 2x1004 + 1, 502 = 2x251 + 0, 125 = 2x62 + 1, 31 = 2x15 +1, 7 = 2x3 + 1, 1 = 2x0 + 1. Tehát
9
10-ESBŐL 2-ESBE VALÓ ÁTALAKÍTÁS ALGORITMUSA
1004 = 2x502 + 0, 251 = 2x125 + 1, 62 = 2x31 + 0 , 15 = 2x7 + 1, 3 = 2x1 + 1,
111 1101 1001 10
POZITÍV ÉS NEGATÍV BINÁRIS SZÁMOK • A bináris szám éppen úgy mint egy decimális szám, lehet pozitív vagy negatív. • A számítógépekben az előjel ábrázolása 0 és 1 szimbólumokkal valósul meg. • A plusznak 0, a mínusznak 1 felel meg. • Ez az ún, előjelbit, mely után következik a szám abszolút értéke.
A 10-esből 2-esbe való átalakítás algoritmusa így is megfogalmazható (a kapott számjegyeket jobbról balra kell leírni): Ismételd Ha a szám páratlan, írj le 1-et, és vonj ki a számból 1-et, különben írj le 0-t oszd el a számot 2-vel amíg a szám nem 0 11
2
2016.03.15.
1-ES KOMPLEMENS (1-es kiegészítős számábrázolás)
2-ES KOMPLEMENS (2-es kiegészítős számábrázolás)
•Ha egy n-bites pozitív szám (egész szám) szimbolikus jelölése
N P = 0 an − 2 an −3 ...a1a0
•A pozitív számok ábrázolása azonos a két előbbi számábrázolással. Egy n-bites pozitív szám (egész szám) szimbolikus jelölése
M P = 0 an − 2 an − 3 ...a1a0
az azonos abszolút értékű negatív számé
az azonos abszolút értékű negatív számé pedig a következő összeg eredménye
N Q = 1 a n − 2 a n −3 ...a1 a 0
M Q = 1 a n − 2 a n −3 ...a1 a 0 + 1
POZITÍV ÉS NEGATÍV NÉGYBITES BINÁRIS SZÁMOK ÁBRÁZOLÁSA
2-ES SZÁMRENDSZER ELŐNYEI Az áramköri megvalósítás szempontjából előnyös, hogy a leképezéséhez csak két stabil állapot szükséges, így kétállapotú elemekkel: relékkel, tranzisztorokkal, mágnesezhető elemekkel könnyen leképezhető. A két egymástól távol eső stabil állapot következtében viszonylag érzéketlen a fellépő zavarokkal szemben, illetve azok könnyen elháríthatók. A digitális technika természetes számrendszere – a kétértékű megvalósításból adódóan is – a kettes számrendszer. Ehhez jól illeszkedik a hexadecimális számrendszer. Ebben a technikában a tízes számrendszer használata, néhány kivételtől (pl. decimális számlálók) eltekintve nehézkes, és 16 sok helyen indokolatlan.
SZÁMRENDSZEREK KÖZÖTTI ÁTVÁLTÁS
2-ES SZÁMRENDSZER ELŐNYEI: MATEMATIKAI SZEMPONTOK A bináris számrendszer matematikai szempontból is előnyös.
három bináris számjegy megfeleltethető egyetlen oktális számjegynek négy bináris számjegy egy hexadecimálisnak Oktális és hexadecimális átváltás során, kézenfekvő közbenső műveletként bináris számrendszerbe átváltani.
Az aritmetikai műveletek igen egyszerűen hajthatók végre, és igen egyszerű a logikai ítéletalkotás is. Ugyanazok a számjegyek használhatók fel mind az aritmetikai, mind a logikai műveletekhez.
17
18
3
2016.03.15.
BINÁRIS ÖSSZEADÁS
FÉLÖSSZEADÓ (HALF-ADDER)
Két bináris számjegy A + B = C, S alakú bináris összeadása: S - eredeti helyértéken mutatkozó összeg (sum vagy magyarul summa), C - következő helyértékre való átvitel (carry). Igazságtábla és logikai függvények: ‗ ‗ A B S C S = AB + AB = A ⊕ B —————————— 0 0 0 0 C=AB 0 1 1 0 1 0 1 0 Megvalósító elem: 1 1 0 1 félösszeadó
Feladata két bit összeadása
S
A FÖ
C
B S: összeg, sum
C: maradék, átvitel, carry 19
20
BINÁRIS/HEXADECIMÁLIS ÖSSZEADÁS
BINÁRIS ÖSSZEADÁS: FÉLÖSSZEADÓ —
BIN
—
S = AB + AB = A ⊕ B A B
C=AB
• •
Félösszeadó: két bemenet és két kimenet. Két bináris számjegyet tud összeadni, előállítja az összeget és átvitelt. Nem veszi figyelembe a kisebb helyértékről jövő átvitelt.
=1
S
&
C
félösszeadó
DEC
10001111 11001011 +1 0 1 0 1 1 0 1 ___________ 101111000
203 173 _____ 376
Az összeadás hasonló a 10-e számrendszerbelihez: két számjegyet és az előző helyértékről származó maradékot kell összeadni. Az összeg egyes helyértékén lévő számot le kell írni, a kettes helyértéken lévőt tovább kell vinni.
21
22
TELJES ÖSSZEADÓ
TELJES ÖSSZEADÓ (FULL ADDER)
Funkciója két bit és az előző helyi értékből származó maradék (átvitel) összeadása
A B Cin
S TÖ Cout
i
Ai Bi Ci-1 Si Ci
0 1 2 3 4 5 6 7
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
0 1 1 0 1 0 0 1
0 0 0 1 0 1 1 1
A teljes összeadónak három bemenete, a két operandus, és az alacsonyabb helyértékről érkező átvitel (Ai, Bi és Ci-1) és két kimenete, az összeg és az átvitel (Si és Ci) van. 3
Si = Σ (1,2,4,7) 3
Ci = Σ (3,5,6,7) 23
24
4
2016.03.15.
AZ ÖSSZEGFÜGGVÉNY (Si) (4) (2) (1) i
Sii Ai Bi Ci-1 D
0
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 1 1 1
0 0 1 1
0 1 0 1
1 0 0 1
1 2 3 4 5 6 7
TELJES ÖSSZEADÓ EGY LEHETSÉGES MEGVALÓSÍTÁSA
„sakktábla” Szimmetrikus függvény
Ci-1
Di 0
Si
0
1 2
1
3
0 6
0
Ai
1
Ai ⊕ Bi ⊕ Ci-1
Ai ⊕ Bi
1
7
(Ai + Bi) Ci-1
Bi
1 4
0
Ai + Bi 5
AiBi AiBi + (Ai + Bi) Ci-1 26
25
DECIMÁLIS SZÁMJEGYEK BINÁRIS KÓDOLÁSA
KÉT 4-BITES SZÁM ÖSSZEADÁSA Soros átvitel terjedés (ripple carry adder)
A B
Cin
A B
A B
Cin
TÖ
TÖ Cout
A1 B1
A2 B2
A3 B3
S
Q3
Cout
Cin
Cout
S
Adat be- és kivitel: tízes számrendszer.
B Cin
Cout
Q1
Q2
A
FÖ
TÖ S
Információ ábrázolás és feldolgozás: tiszta bináris (és 1-es, valamint 2-es komplemens) kód.
A0 B0
10-es számrendszer egyes számjegyei (a 10 szimbólum, 0, 1, ... 9) kifejezése bináris kóddal:
S
Q0
binárisan kódolt decimális kód Binary Coded Decimal (BCD)
Carry flag 27
28
PSZEUDOTETRÁDOK AZONOSÍTÁSA A KARNAUGH TÁBLÁN
NORMÁL BCD KÓD Természetes kód - Minden számjegyhez a 4-bites bináris kódját rendeli - Természetes helyérték: 8 4 2 1
C Minimalizálás után Érvényes kódszavak
P=AB +AC
d = 8a4 + 4a3 + 2a2 +1a0 Hibajelző:
B
A hat nem megengedett kombináció (1010, ... 1111) neve pszeudotetrád.
1
1
1
1
1
1
A
B
Nem használt, illetve érvénytelen kódszavak 29
A
D
A C
& 1 & 30
5
2016.03.15.
BCD ÖSSZEADÁS: +6 KORREKCIÓ
BCD (8421) ÖSSZEADÁS
789 + 213 —— 1002
Példa: decimális 427 + 131 —— 558
BCD 0100 0010 0111 + 0001 0011 0001 ———————— 0101 0101 1000
Mivel egyetlen helyértéken sem volt az összeg 9-nél nagyobb, ezért korrekcióra nem volt szükség
31
0111 1000 1001 + 0010 0001 0011 ———————— 1001 1001 1100 + 0110 +6 korrekció ———————— 1001 1010 0010 + 0110 +6 korrekció ———————— 1010 0000 0010 + 0110 +6 korrekció ———————— 1 0000 0000 0010 32
6