Digitaalloogika

**Digitaalloogika** on andmetöötluse süsteem, mis põhineb Boole'i algebra loogikatehetel. Nende tehete ehk operatsioonide abil on võimalik realiseerida mitmesuguseid loogilisi funktsionaalseid seoseid. Niisugustes seostes on nii sõltumatutel muutujatel ‒ argumentidel ‒ kui ka neist sõltuvatel muutujatel ‒ funktsioonidel ‒ ainult kaks väärtust, kas 1 või 0 (tõene või väär).

Loogikafunktsioone saab esitada tõeväärtustabeli abil. Tõeväärtustabelis on kõikidele argumentide väärtuste kombinatsioonidele seatud vastavusse funktsiooni väärtus. Alltoodud tabelites on x1 ja x2 kõikvõimalike argumentide kombinatsioonid ning y-i väärtused on loogikafunktsiooni väärtused  .

Kui loogikafunktsioonil on n argumenti, siis on tal 2n võimalikku argumentide kombinatsiooni. Allpool on esitatud kahe argumendi x1 ja x2 loogikafunktsioonid tõeväärtustabeleina.

## Loogikatehted
Eksisteerib elementaarsete loogikafunktsioonide hulk, mille alusel on võimalik realiseerida ükskõik millist teist loogikafunktsiooni. Meid huvitab üks elementaarsete loogikafunktsioonide hulk, mis sisaldab kolme funktsiooni: konjunktsioon (loogiline korrutamine), disjunktsioon (loogiline liitmine) ja inversioon (eitus). Täielikku baasi moodustavaid elementaarsete loogikafunktsioonide hulki on veel, kuid selle teema juures ei ole need olulised.

### Konjunktsioon ehk loogiline korrutamine
Konjunktsiooni tähistamiseks kasutatakse erinevaid viise. Kõige ülemine on Boole’i algebra tähistus. Aritmeetilise korrutamise tehtemärgina võib kasutada korrutusmärki, kui on teada, et tegeldakse ainult Boole’i algebraga. Kirjandusest võib leida konjunktsiooni tähisena ka märki &.

y = x1 ^ x2

y = x1• x2

y = x1 & x2

Üldjuhul on tegemist n argumendiga funktsiooniga

y = x1 ^ x2 ^ x3 ^ ... ^ xn

Kui vähemalt ühe argumendi väärtus on 0, siis on ka funktsiooni väärtus 0, või funktsiooni väärtus on 1 ainult siis, kui kõigi argumentide väärtused on 1-d. Definitsioon ja tõeväärtustabel on kahe argumendiga funktsiooni jaoks, kuid reegel kehtib suvalise argumentide arvuga funktsiooni jaoks.

### Disjunktsioon ehk loogiline liitmine
Disjunktsiooni tähistamiseks on erinevad tähistused. Kõige ülemine on Boole’i algebra tähistus. Liitmismärki võib kasutada loogilise liitmise tähisena, kui on teada, et tegeldakse ainult Boole’i algebraga.

y = x1 V x2

y = x1 + x2

Üldjuhul on tegemist n argumendiga funktsiooniga

y = x1 V x2 V x3 V ... V xn

Kui vähemalt ühe argumendi väärtus on 1, on ka funktsiooni väärtus 1, või funktsiooni väärtus on 0 ainult siis, kui kõikide argumentide väärtused on 0-d. Definitsioon ja tõeväärtustabel on esitatud kahe argumendiga funktsiooni jaoks, kuid reegel kehtib suvalise argumentidega arvuga funktsiooni jaoks.

### Inversioon ehk eitus
Tegemist on unaarse funktsiooniga, millel on üks argument. Kasutatakse jällegi erinevaid tähistusviise. Kõige ülemine on Boole’i algebra tähistus.

y = ┐ x

y = x’

y = 

Funktsiooni väärtus on alati vastupidine argumendi väärtusele. Kui argument on 0, on funktsioon 1 ja kui argument on 1, on funktsioon 0.

## Loogikaelemendid
**Loogikaelemendid** (inglise k *logic gate*) kujutavad endast [elektroonilisi loogikalülitusi, mis realiseerivad loogikafunktsioone. Seejuures vastavad loogilistele väärtustele pingenivoo väärtused. Elektronarvutis vastab loogilisele 1-le teatud pingenivoo (näiteks +2,8 V kuni +5 V) ja loogilisele väärtusele 0 vastab teine pingenivoo (näiteks 0–0,4 V). Kõik vahepealsed väärtused on määramatud ja seega keelatud arvuti korrektse funktsioneerimise korral.

Kahendsüsteem ja loogikafunktsioonid sobivad arvuti realiseerimiseks paremini kui näiteks kümnendsüsteem, sest tehniliselt on oluliselt lihtsam eraldada usaldusväärselt kahte nivood kui kümmet nivood.

==Loogikaelementide liigid==
* [JA-loogikaelement ehk NING-loogikaelement (*AND gate*)
* VÕI-loogikaelement (*OR gate*)
* EI-loogikaelement (*NOT gate*)
* VÕI-EI-loogikaelement (*NOR gate*)
* JA-EI-loogikaelement ehk NING-EI-loogikaelement (*NAND gate*)

### JA-element (AND)

Tähistame loogilisele väärtusele 1 vastavat kõrget pingenivood tähega H ja loogilist väärtust 0 kirjeldavat pingenivood tähistame tähega L (nagu seda kirjanduses valdavalt tehakse). 
Seega eelnevalt toodud näite korral tähistab H kõiki pingenivoosid +2,8-st kuni +5 voldini ja vastavalt L kõiki pingenivoosid 0-st kuni +0,4 voldini.

Kahe sisendiga JA-loogikaelement realiseerib kahe argumendiga konjunktsiooni. Suurema arvu argumentidega konjunktsiooni realiseerimiseks on vaja ka suurema arvu sisenditega loogikaelementi.

### VÕI-element (OR)

Kahe sisendiga VÕI-loogikaelement realiseerib kahe argumendiga disjunktsiooni. Suurema arvu argumentidega disjunktsiooni realiseerimiseks on vaja suurema arvu sisenditega loogikaelementi.

### EI-element (NOT)

EI-loogikaelement realiseerib loogikafunktsiooni eitust.
Erinevalt eelnevatest loogikaelementidest, kus võib üldjuhul olla n-sisendit, on EI-loogikaelemendil ainult üks sisend.

Mainitud kolm loogikaelementi (JA- VÕI-, EI-) võimaldavad kombineeritult realiseerida
füüsilisel infokandjal igasuguseid loogikafunktsioone.

### VÕI-EI-loogikaelement (NOR)

Selle loogikaelemendiga realiseeritakse disjunktsiooni eitust (loogilise liitmise eitust).
Loogikaskeemides tähistatakse seda nagu VÕI-loogikaelementi, millele on lisatud eituse tunnusena väike ring. Sellist elementi võib vaadelda koosnevana kahest loogikaelemendist.

### JA-EI-loogikaelement (NAND)

JA-EI-loogikaelemendiga realiseeritakse konjunktsiooni eitust (loogilise korrutamise eitust). Loogikaskeemides tähistatakse seda nagu JA-loogikaelementi, millele on lisatud eituse tunnusena väike ring. Seda elementi võib vaadelda koosnevana kahest loogikaelemendist.

## Loogikaelementide valmistamise tehnoloogiad
On palju võimalusi loogikaelementide valmistamiseks. 
# 1930. aastatel valmistas Bell Laboratories loogikaelemente releede baasil. 
# 1940. aastatel valmistati arvuti ENIAC, kus kasutati elektronlampe.
# 1950. aastatel, kui arenes pooljuhtdioodide ja bipolaartransistoride tootmine, muutsid need arvutid kiiremaks ja väiksemaks
# 1960. aastatel osati juba dioode, transistore ning teisi komponente valmistada ühel kristallil ja sündisid esimesed integraallülitused (mikroskeemid).

Mikroskeemid moodustavad perekondi, mille elemendid on ühilduvate elektriliste parameetritega ja neid saab kasutada koos loogikaskeemide koostamisel. Eri perekondade komponendid võivad olla mitteühilduvad toitepinge, sisend- ja väljundnivoode poolest.

Edukaim bipolaarne tehnoloogia oli **[[TTL]]** *(Transistor-Transistor Logic)*, kus voolu juhtiva kanali moodustavad mõlemat tüüpi pooljuhid. 1990. aastatest alates on TTL-tehnoloogiad asendatud valdavalt väljatransistoride *(Meta-Oxide Semiconductor Field-Efect Transistor*, lühendina **[[MOSFET]]**, veelgi lühemalt kasutatakse **MOS**) unipolaarsete tehnoloogiatega. Väljatransistoris moodustab voolu juhtiva kanali ühte tüüpi pooljuht.

Algusaastatel oli **MOS**-tehnoloogia aeglasem, kuid väiksema voolutarbega ja suure pakkimise tihedusega kristalli pinnal. Praeguseks on need raskused ületatud ja suured mikroskeemid valmistatakse **[[CMOS]]**-tehnoloogias *(Complementary *'MOS*')*, kus samal kristalli pinnal on valmistatud nii n-kanaliga kui ka p-kanaliga väljatransistore. Väljatransistoride puhul juhitakse voolu juhtivat kanalit elektriväljaga.

## CMOS-loogikaelementide liigid
### EI-loogikaelement
EI-loogikaelement koosneb kahest järjestikku ühendatud eri tüüpi kanaliga väljatransistorist.

Üleval (+VD) on p-kanaliga väljatransistor ja all (GND) on n-kanaliga välja transistor.

Kui sisend x on kõrgel nivool H, siis juhib voolu alumine transistor ja väljund on madalal nivool L. Kui aga sisend x on madalal nivool, juhib voolu ülemine transistor ja väljund y on kõrgel nivool H. Seega on väljundi väärtus vastupidine sisendiga väärtustele ja realiseeritud on EI-funktsioon.

Kui sisend × on kas L või H, siis voolu ei tarbita, sest toitepinge (+VD) ja nulli nivoo GND vahel puudub voolu juhtiv kanal. Olukord muutub, kui toimub üleminek madalalt nivoolt L kõrgele nivoole H. Ülemisele transistorile hakkab voolu juhtiv kanal kaduma ja samal ajal hakkab alumisel transistoril voolu juhtiv kanal tekkima. Seega tekib hetkeline voolu tee toitepingelt (+VD nulli nivoole GND ja vool IDG ei ole võrdne nulliga. Ümberlülitumisel hetkel t1 tekib voolu hüpe. Igasugune voolu tarbimine põhjustab soojenemist. Kui tõsta arvuti taktsagedust tuleb ümberlülitusi tihedamalt, ja seega eraldub ka soojust. Selleks et mikroskeemid ei sulaks liiga kõrge temperatuuri tõttu, on vaja jahutust .

### JA-EI loogikaelement

JA-EI loogikaelement realiseerib konjunktsiooni eitust. Väljund on kõrgel nivool (1) siis, kui vähemalt ühe sisendi nivoo on madalal (0) ja vastavalt väljund on madalal nivool (0), kui kõik sisendid on kõrgel nivool (1).

JA-EI-elemendi käitumise näitena on vaadeldud kahe sisendiga loogikaelementi, kuid sisendite arv võib olla suurem: valmistatakse kuni kaheksa sisendiga loogikaelemente.

Näitena on toodud JA-EI-loogikaelemendi sisemine struktuur transistoride tasemel. Loogikaelemendi ülemises osas on ühendatud kaks p-kanaliga transistori (T1 ja T2) rööbiti ja alumises osas on kaks n-kanaliga transistori järjest (T3 ja T4)

Lülitite mudelina on vaadeldud kahte kombinatsiooni. Esiteks on mõlemad sisendid kõrgel nivool. Transistorid T3 ja T4, mis on n-kanaliga, on sellisel juhul avatud ja läbi nende on ka väljund y madalal nivool. Ülemised transistorid T1 ja T2 on kinni. Teiseks on vaadeldud juhtu, kus x1 on madalal nivool ja x2 on kõrgel nivool. Nüüd on T1 avatud ja läbi tema on väljund y kõrgel nivool. Samas on T3 kinni ja ühendus GND-nivoole on katkestatud. Kui nüüd vahetada x1 ja x2 väärtused, vahetavad transistorid T1 ja T2 ning T3 ja T4 vastavalt oma olekud ja väljund on endiselt kõrgel nivool. Kui x1 ja x2 mõlemad on madalal nivool, on paralleelselt avatud T1 ja T2 ning väljund y on kõrgel nivool. Samas on T3 ja T4 suletud ja ühendus GND-nivoole puudub.

Voolu tarbimisega on sama olukord kui EI-loogikaelemendi juures. Kui sisendite väärtused ei muutu, ei ole ka toitepinge VD ja nulli nivoo GND vahel voolu juhtivat kanalit, sest teel on alati mõni transistor kinni. Olukord muutub, kui toimub sisendite väärtuste muutus. Lülituse ajal muudavad transistorid oma olekut ja hetkeliselt tekib tee VD ja GND vahel ning tarbitakse voolu kuni uue olukorra fikseerumiseni.


Pilt:JA-EI lülitite mudelina.png|JA-EI lülitite mudel
Pilt:JA-EI lülitite mudelina.v2.png|JA-EI lülitite mudel teisiti