• Nem Talált Eredményt

Logikai áramkör-hálózatok

In document Informatikai alapok (Pldal 80-87)

3. Digitális technika

3.4. Logikai áramkör-hálózatok

A továbbiakban azt vizsgáljuk meg, hogyan tudunk logikai kapukból olyan komplexebb áramkört építeni, amely különböző feladatokat (például összeadást) tud végrehajtani. Tehát a logikai kapukból logikai kapuhálózatokat, vagyis egyszerűbben logikai hálózatokat építünk, különböző, a számítógépekben szükséges feladatokat ellátó alkotóelemek kialakítására.

A logikai hálózatoknak két különböző típusa van: kombinációs és szekvenciális hálózatok. A kombinációs hálózatoknál a kimenet értéke csak a bemeneti értékektől függ. Vagyis ha megváltozik a bemenet, rögtön megváltozik a kimenet is. Ezzel ellentétben a szekvenciális (más néven sorrendi) hálózatok memorizálási képességgel rendelkeznek, azaz megtartják az állapotukat. A kimenet értéke nem csak a bemeneti értékektől, hanem az előző állapottól is függ.

Egy egyszerű kombinációs hálózat a félösszeadó, amely két bináris változónak (tehát két bitnek) az összeadását tudja elvégezni (3.28. ábra). Az ábrán látható a műveletnek az igazságtáblázata. Két bemeneti változónk van (A és B) és két kimeneti érték: maga az eredmény (az összeg S – angolul sum) és az átvitel C – angolul carry). Ha megvizsgáljuk a két kimeneti függvényt, akkor észrevesszük, hogy az eredmény a KIZÁRÓ VAGY függvénynek, az átvitel az ÉS függvénynek felel meg. Most már könnyen elő tudjuk állítani az áramkörnek a tervrajzát a logikai kapuk segítségével. A kimenetek a bemenetek függvényében változnak, az igazságtáblázat szerint.

81 3.28. ábra. Félösszeadó

Mi természetesen nem csak egy bites számokat szeretnénk összeadni, hanem 4 bites, 8 bites, vagy akár 16 bites számokat is. Tehát olyan összeadót szeretnénk előállítani, amely a számítógép aritmetikai egységében helyezkedik el, és képes két, több számjegyű bináris számnak az összeadására. A 3.29. ábrán egy 1-bites teljes összeadóra látható példa. Azért mondjuk, hogy teljes, mert minden biten (kivéve a legkisebb helyi értékűt), három értéket kell összeadnia: az összeadandók (Ai, Bi) adott helyi értékhez tartozó egy-egy számjegyét és a kisebb helyi értékről érkező átvitelt (Ci – angolul carry). Természetesen ebben az esetben is el lehet készíteni az igazságtáblázatot (az ábra az i-edik pozícióra vonatkozik). Két kimenet van, az összeg és az átvitel a következő helyi érték felé. A Boole-algebra szabályait felhasználva fel tudjuk írni a kimenet függvényeit és ezek alapján logikai kapukkal össze tudjuk állítani az áramkört. Az előbb tárgyalt összeadókból már össze tudjuk állítani a 4-bites összeadót (3.30.

ábra).

3.29. ábra. Teljes összeadó

82 3.30 ábra. 4-bites összeadó

Vizsgáljunk meg egy másik áramkört, amire sokszor szükség van a számítógépben. Ez a dekódoló, amelyet ugyancsak kombinációs hálózattal lehet megvalósítani. Dekódolásra például a memóriáknál van szükség (3.31. ábra). A tároló egy-egy bit tárolására alkalmas cellákból áll (kis négyzetek az ábrán), amelyek mátrixszerűen vannak elhelyezve az áramkörön belül. Amikor megcímezzük a memóriát, az a cél, hogy lokalizálni tudjuk azt a cellát, amelyik a címnek megfelel. Ahhoz, hogy ki tudjuk választani a megfelelő sort és oszlopot, amelyeknek a kereszteződésénél ott van a keresett cella, szükségünk van egy sorcím- és egy oszlopcím-dekódoló áramkörre. (Látható bal oldalt a sorcím-oszlopcím-dekódoló, alul pedig az oszlopcím-oszlopcím-dekódoló.

Az egyszerűség kedvéért az az adatvonalak nincsenek feltüntetve.) A mi esetünkben 64 cellánk van, ezekhez tartozik 8 sor és 8 oszlop. A sor- illetve oszlopcím három-három bitből áll, amelyekből nyolc-nyolc kombinációt tudunk létrehozni. Ezekkel a kombinációkkal választjuk ki a megfelelő sort és a megfelelő oszlopot. Tehát a dekódoló áramkörnek az a szerepe, hogy a bemeneti kombinációnak megfelelően válasszon ki a kimenetek közül egyetlen egyet. A sorcím-dekódoló egy sort fog kiválasztani az oszlopcím dekódoló pedig egy oszlopot.

3.31. ábra. Dekódolók alkalmazása

83 Most nézzük meg, hogy áramkörileg, hogy lehet egy dekódolót kialakítani. A 3.32. ábrán látható egy 8-ból 1-es dekódoló. Három bemenete van (A0, A1, A2) és a belőlük létrehoztató kombinációknak megfelelően nyolc kimenete. A lényeg az, hogy a kimenetek közül mindig csak egyetlen egy aktív (van 1-esen), mégpedig az, amit a bemenetre alkalmazott sorszámmal kiválasztunk. Ebben a példában, ha a bemenet 110 (decimálisan 6), akkor a nyolc kimenet közül csak a 6-os (D6) sorszámú van 1-esen, a többi 0. Az implementációhoz ÉS kapukra és inverterekre van szükségünk. (Természetesen, ha az igazságtáblázatot felírnánk, akkor a Boole-algebra szabályainak megfelelően, az egyenleteket is ki lehetne fejteni, és akkor ezekből adódik a kapukból való megvalósítás.)

3.32. ábra. 8-ból 1 dekódoló

A számítógépben vannak még más, igen hasznos kombinációs hálózatok is. Ilyen a multiplexer és a demultiplexer. A multiplexernek az a lényege, hogy több bemenetből kiválaszt egyet, aminek az értékét az egyetlen kimenetre továbbitja. A demultiplexer ennek az ellentéte, a bemeneti értéket átirányítja valamelyik kimenetre.

Az előbbiek mind kombinációs hálózatok voltak, amelyeknél a kimenet csak a bemenetnek a függvénye. A másik csoportba tartoznak a szekvenciális hálózatok, amelyek megtartják az állapotukat, és a kimeneti érték már nem csak a bemeneti értéktől, hanem az aktuális állapottól is függ. Mitől marad meg a kimeneti érték? Nagyon egyszerű: rendelkeznek visszacsatolással, és a visszacsatolás megtartja a kimeneti értéket. Nézzünk meg két invertert, tehát két NEM kaput, amelyeket úgy kapcsolunk össze, hogy a másodiknak a kimenetét visszahozzuk az elsőnek a bemenetére (3.33. ábra). Feltételezzük, hogy ez a kimenet 1-es, tehát az első kapu bemenetén 1-es van, az negálva 0, a második kapu bemenete tehát 0-át kap, a kimenet 1-esen van, és az 1-est visszacsatoljuk a bemenetre, tehát nem kell semmit csinálni, mert megmarad az állapota.

Ezt a két kaput úgy is fel lehet rajzolni, ahogy az alsó ábrán láthatjuk. Q a kapunak az állapotát jelenti, ami lehet 0 vagy 1, a az állapot negáltját jelenti. Ahhoz, hogy vezérelni tudjunk egy ilyen áramkört, vezérlő bemenetekre is szükség van. Ilyen vezérlő bemenet a SET és a RESET (3.34. ábra). A SET 1-esre, a RESET pedig 0-ra állítja a Q kimenetet. Tehát ha ezekre a bemenetekre impulzust (rövid ideig tartó 1-est) adunk, akkor át tudjuk billenteni az áramkört az egyik állapotából az ellenkező állapotába. Hogyha az S bemenetre kap impulzust, akkor a Q kimenete 1-re billen át, ha az R-re kap impulzust, akkor a kimenete 0-ra billen át. Egy ilyen billenő áramkör (angolul flip-flop) egy bit tárolására alkalmas. Történetesen az ábrán látható flip-flop NOR kapukból van megvalósítva, de lehet ilyet kialakítani NAND kapukból is, sőt lehet olyat is csinálni, amelynél az átbillenés egy órajel impulzus (clock) hatására történik meg.

Ez utóbbiakat szinkron áramköröknek nevezzük, amelyeknél nincs órajel azok aszinkron áramkörök.

84 3.33. ábra. Szekvenciális logikai áramkör

3.34. ábra. Flip-flop áramkör

Nagyon fontos alkotóelemei a processzornak a regiszterek, amelyek a processzoron belül az adatok tárolására szolgálnak. Egy regisztert több billenő áramkörből tudunk kialakítani. Tipikus értékek a 8-bites, 16-bites, 32-bites, 64-bites regiszterek. A 3.35. ábrán látható egy 4-bites adatregiszter, amely D (Data) típusú billenő áramkörökből van megépítve. (Több fajta billenő áramkör létezik, a már említett RS-en és D-n kívül van D-G, T, JK típus is.) Amikor a regiszter az órajel bemenetére (CLK) impulzust kap, akkor a bemenetén (Data Input) lévő érték bekerül a billenő áramkörökbe és ott marad a kimenetén (Data Output), tehát eltárolja az adatot. Vannak olyan regiszterek is, amelyek léptetni tudják a benne lévő adatot. Például az alsó ábra mutat egy 4-bites léptető regisztert, amelynek a tartalma mindig egy pozícióval jobbra tolódik, amikor üt az órajel. Minden egyes flip-flop a hozzá bal oldalinak a volt állapotát veszi fel, az elsőbe pedig a soros bemeneten lévő érték kerül. Ilyen áramkörökre szükség van például szorzás és osztás műveleteknél, mivel a szorzás összeadások és eltolások, az osztás pedig kivonások és eltolások sorozata.

3.35. ábra. Regiszterek

85 Végezetül nézzünk meg egy szekvenciális áramkörfajtát, amelyre ugyancsak szükség van a számítógépekben, ez a számláló (3.36. ábra). A számláló egy olyan regiszter, amely egy impulzus hatására mindig megnöveli, eggyel a tartalmát. Az ábra jobboldalán látható egy 4-bites számlálónak az igazságtáblázata. 0000-ból indul a számolás, ez a kezdő állapot, és mindegyik, a C bemenetre érkező impulzus hatására a tartalma növekszik: 0001 lesz, majd 0010 és így tovább. A legmagasabb szám decimálisan kifejezve a 15-ös lesz, tehát ez egy 16 állapotú, úgynevezett modulo 16-os számláló. Sokszor az ilyen logikai áramköröknek a működését idődiagramokkal írjuk le. Ebben az esetben az idődiagramokon látható, hogy amikor az órajel 1-ből 0-ba megy át, akkor történik meg a számláló tartalmának a változása. Ez egy szinkron számláló (mindegyik flip-flop azonos órajelet kap), de lehet építeni aszinkron számlálót is.

3.36. ábra. Számláló

3.5. Ellenőrző kérdések

1. Mi a különbség az analóg és a digitális technika között?

2. Melyek és miből állnak az analóg-digitális átalakítás lépései?

3. Miért használjuk a Boole-algebrát a logikai áramkörök tervezésében?

4. Adja meg a NEM kapu (inverter) szimbólumait, függvényét és igazságtáblázatát!

5. Adja meg a két bemenetű ÉS kapu szimbólumait, függvényét és igazságtáblázatát!

6. Adja meg a két bemenetű VAGY kapu szimbólumait, függvényét és igazságtáblázatát!

7. Adja meg a két bemenetű NEM-ÉS kapu szimbólumait, függvényét és igazságtáblázatát!

8. Adja meg a két bemenetű NEM-VAGY kapu szimbólumait, függvényét és igazságtáblázatát!

9. Adja meg a két bemenetű KIZÁRÓ VAGY kapu (antivalencia) szimbólumait, függvényét és igazságtáblázatát!

10. Milyen típusai vannak a logikai hálózatoknak és mi a jellemzőjük?

11. Mire jó a billenő áramkör (flip-flop)? Miért tudja megtartani az állapotát?

12. Mi a regiszter és milyen logikai elemekből épül fel?

86 Felhasznált irodalom

[1] Grosz Imre: Élő Digitronika (Fejezetek a digitális elektronikából), BMF, 2005.

[2] www.freeimages.com

[3] Raymond E. Frey: Lecture Notes for Digital Electronics, Univ. of Oregon, 2000.

[4] Kovács M., Knapp G., Ágoston Gy., Budai A.: Bevezetés a számítástechnikába, LSI, 2002.

87

In document Informatikai alapok (Pldal 80-87)