• Nem Talált Eredményt

Bináris számok kivonása

In document Az ábrák listája (Pldal 89-96)

A táblázatok listája

4. Bináris számok kivonása

Ha már kivonás, akkor nézzük ennek is az elméletét. A bináris számok kivonása az összeadáshoz hasonlóan a helyi értékeken elvégzett műveletből és az átvitel/áthozat kezeléséből áll. Míg az összeadásnál egy helyi értéken átvitel keletkezik, amit „átviszünk” a következő helyi értékre, addig a kivonásnál, ha a kivonandó nagyobb, mint az az érték, amiből ki szeretnénk vonni, akkor „kölcsönveszünk”, „áthozunk” egy helyi értéknyit a következő, magasabb helyi értékről. Ezért itt „áthozat”-ról, „borrow”-ról (melynek jelentése kölcsön) beszélünk. Nézzünk is rögtön egy példát.

242 1111 0010

-125 -0111 1101

117 0111 0101

Jobbról haladva a kivonandó bitpárosok:

0. 0- → 2- → 1 és keletkezik áthozat 1

1 1

1.

1-0

→ 1-1

→ 0 van áthozat és nem keletkezik 0

2.

→ 0 van áthozat és keletkezik 0

4.

1-1

→ 3-2

→ 1 van áthozat és keletkezik 1

5.

1-1

→ 3-2

→ 1 van áthozat és keletkezik 1

6.

1-1

→ 3-2

→ 1 van áthozat és keletkezik 1

7.

1-0

→ 1-1

→ 0 van áthozat és nem keletkezik 0

Korábban gyakran tapasztaltam, hogy a hallgatók könnyen megértik az egy helyi értéken keletkező átvitel szükségességét, ha a 2 összeadandó szám összege nagyobb, mint a számrendszer alapszáma. Ugyanakkor nem szokott magától értetődő lenni az az eset, amikor 0-ból kivonunk 1-et, illetve az, hogy ilyenkor miért és hol/honnan keletkezik az ún. áthozat. Ezért nézzük a bitpárok kivonását. Kiindulásként, mint korábban az összeadásnál, 2 bit kivonására is felírhatunk egy igazságtáblát (lásd ).

4-29. táblázat - 4-29. táblázat

Amikor egy helyi értékes számrendszerben egy kisebb számból kivonunk egy nagyobbat, nem tudjuk elvégezni a műveletet és leírni a maradékot, csak ha a kisebb számot egy helyi értékkel megnöveljük. Vegyük ezt az esetet a jól ismert tízes számrendszerben.

Ha például a 2-ből kivonunk 5-öt, akkor -3-ot kapunk, és valósában ezzel a negatív számmal kell valamit kezdenünk.

Ha felírjuk a fenti 242-öt és a kivonandó 125-öt a jól ismert kettes alapú polinom alakban, akkor a következőt kapjuk:

Vizsgáljuk meg a legalacsonyabb és az azt megelőző helyi értéken a kivonást, vagyis nézzük az alábbi részletet:

A pirossal kiemelt részt írhatnánk a következő módon is (most csak egyszer és csak a példa kedvéért):

Amit csináltunk, az az, hogy az első hatványon lévő tag együtthatójából „elvettünk” (kölcsönvettünk), és az eggyel alacsonyabb hatványkitevőjű, a 0. hatványon lévő tag együtthatójához adtunk (persze helyiérték-helyesen, amivel ez az együttható kettő lett). Azt beláthatjuk, hogy a kisebbítendő polinom értéke ezzel nem változott, viszont a korábban „kisebb számból kell kivonni egy nagyobbat” helyzet megváltozott, hiszen ezen a helyi értéken most már (pozitív maradékot adóan), a kisebbítendőből kivonható a kivonandó. Azt a polinom-átrendezést, amikor kölcsönvettünk a magasabb helyi érték együtthatótól, áthozatnak, vagy borrow-nak nevezzük. De ezt ilyen részletesen nem szoktuk leírni, csak fejben megjegyezzük, hogy a következő helyi értéken mostantól az együttható eggyel kevesebb.

A 0-s helyi értéken elvégezzük a most már elvégezhető kivonást (102 – 1 = 210 – 1 = 1, ami jól látjuk, hogy azt jelenti: kettőből kivonunk egyet tehát az eredmény egy lesz). Ezután a nem módosított alakú polinomnál az 1-es helyi értéken elvégezzük az áthozat műveletét (1–1=0), és a keletkező részeredményből csak ezután lehet az eredeti kivonást is elvégezni (0–0=0), és így tovább. A következő 2 bitpár (a 0-val kezdve jobbról a számozást), a kettes és hármas helyi értékűek azért érdekesek, mert itt kétszer is továbbadjuk az áthozat-igényünket, amit csak a negyedik kisebbítendő helyi érték tud kiszolgálni, bár itt is keletkezik majd áthozat, ami, mint igény, egészen a hetedik bitpár kivonásáig tart.

242 1111 0010

-125 -0111 1101

117 0111 0101

4.1. „Félkivonó”

Lássunk neki a tervezésnek ugyanúgy, mint azt az összeadónál tettük. A ban felírtuk a félkivonó igazságtábláját.

(Emlékeztetőül: a félkivonó csak a kisebbítendőt és a kivonandót kezeli bemenetként, és az eredményt, valamint az áthozatot adja kimenetként.)

4-30. táblázat - 4-30. táblázat

X

Avatott szemmel rögtön látjuk, hogy az eredményt egy kizáró vagy kapuval könnyen megvalósíthatjuk, hiszen ez éppen az ő igazságfüggvénye, vagyis:

A az XY, vagyis egy és kapu igazságfüggvényét tartalmazza:

4-32. táblázat - 4-32. táblázat

Ha az X bemenetet negáljuk, akkor a következő, a ban szereplő igazságtáblához jutunk:

bit Y bit Y

1 0 0

1 1 1

0 0 0

0 1 0

Ez pedig éppen a keresett Bout-t adja, vagyis:

Fentiek alapján a félkivonó kapcsolási rajza a látható.

429. ábra

-4.2. Teljes kivonó

Ha azt gondoljuk, hogy 2 félkivonóból összerakható egy teljes kivonó, mint korábban a teljes összeadónál láttuk, akkor megérzéseink helyesek, ahogy a is mutatja.

430. ábra

-És újra itt a régi dilemma, hogy hogyan lehetne kevesebb típusú tokból megoldani a kapcsolást, persze csak úgy, hogy a működési logika ne változzék. Elsőként vizsgáljuk meg a vagy kaput, mint korábban tettük ezt az összeadásnál. Vajon biztosan lehetünk-e abban, hogy a vagy kapu kimenetére sohasem érkezik 2 db 1-es?

A B1-es áthozat csak akkor ad egyet, ha X=0 és Y=1, a B2-es áthozat pedig csak akkor, ha Z1=0 és Bin=1, azaz van Bin és Z1 nem igaz. Z1 pontosan akkor hamis, ha a bemenetek (X és Y) azonosak, ami ellentmond az X=0, Y=1 első feltételünknek.

Ha ebben a „szofisztikus” érvelésben nem vagyunk biztosak, akkor mindig rendelkezésre áll a jó öreg kibővített igazságtábla, amibe (mint belső jeleket) a B2 bemeneteit is felvesszük és szorgalmasan és főleg pontosan kitöltjük (lásd ).

Az a kérdés tehát, hogy B1 és B2 egyszerre lehet-e 1-es. A táblázatban pirossal jelöltük, ahol a B1 igaz, kékkel pedig, ahol a B2 igaz. Látható, hogy ez egyszerre nem teljesülhet, tehát a vagy kapu kiváltható egy xor kapuval.

Mi a helyzet a negációval, amiből kettő is van az áramkörünkben?

A (ún. ekvivalenciatáblázat) megmutatja, hogy nand kapukkal szinte minden kaput meg lehet valósítani. A táblázatból látszik, hogy egy nand kapuból könnyen lehet a bemenetek összeköttetésével invertert készíteni, valamint az és kapukat lecserélhetjük 2 sorba kötött nand kapura.

Tegyük meg, és máris csak 2 típusú kapuval kell dolgoznunk. A szerint akár a xor kapu is kiváltható lenne nand kapuval, azonban 2 db xor kaput kiváltani 10 db nand kapuval már mélyen sérti a tervezői jó ízlést, úgyhogy marad a nand kapuk használata az and kapuk és az inverterek helyett.

431. ábra

-Az új kapcsolásunk tehát a szerinti:

432. ábra

-4.3. A teljes kivonó áramköri megvalósítása

Tehát kell a már jól ismert 74LS136-os IC, ami 4 db xor kaput tartalmaz, valamint 2 db 74LS08-as IC-ből 6 db nand kapu a teljes megépítéshez. Ha megterveztük a huzalozást, a szerinti eredményre jutunk, ahol sárgával a komponensoldalt, pirossal a forrasztási oldalt, szürkével egy szabadon írható ún. felirat maszkot jelöltünk.

433. ábra

-Ha a beültetendő alkatrészeket is feltüntetjük, akkor kapcsolásunk szerint néz ki.

434. ábra

-Kapcsolásunkon elhelyezhetünk néhány kapcsolót, mellyel a bemenet vezérelhető, és néhány ledet, amivel pedig láthatóvá válik a kimenet.

In document Az ábrák listája (Pldal 89-96)