Järjendloogika

Järjendloogika (inglise keeles "sequential logic") on oluline osa digitaalelektroonikast, mis mängib võtmerolli automaatide teoorias ja digitaalsete süsteemide kavandamisel. Selles artiklis uurime põhjalikumalt, mis on järjendloogika, kuidas see toimib ja milline on selle tähtsus digitaalelektroonika valdkonnas.
Järjendloogika on tüüp loogikavooluringist, mille väljund sõltub nii praegusest sisendi väärtusest kui ka minevikus toimunud sisendite jadast, sisendajaloost. See erineb kombinatoorsest loogikast, mille väljund sõltub ainult hetkesisendist. Teisisõnu, järjendloogikal on olek (mälu), samas kui kombinatoorsel loogikal seda ei ole.
Järjendloogikat kasutatakse lõpliku olekumasina konstrueerimiseks, mis on kõikide digitaalsete vooluringide põhielement. Peaaegu kõikides praktilistes digitaalseadmetes on segunenud nii kombinatoorne kui ka järjendloogika. Tänapäeval on peaaegu kogu järjendloogika kellastatud ehk sünkroonne loogika.
Sünkroonses vooluringis, nagu elektrooniline ostsillaator nimega kell (või kellageneraator), genereerib korduvaid impulsse, mida nimetatakse kellasignaaliks, mis jaotatakse kõigile vooluringi mäluelementidele. Sünkroonse loogika põhiline mäluelement on triger. Iga trigeri väljund muutub ainult siis, kui seda põhjustab kellapulsatsioon, nii et loogikasignaalide muutused kogu vooluringis algavad samal ajal, regulaarsete ajavahemike järel, kellaga sünkroniseeritult.
Kõigi vooluringi salvestusmehhanismide (trigerite) väljundid mis tahes ajahetkel, nende sisaldatavad binaarsed andmed, moodustavad vooluringi oleku. Sünkroonse vooluringi olek muutub ainult kellapulssidel. Iga tsükkel määratakse järgmine olek praeguse oleku ja sisendisignaalide väärtuse järgi, kui kellapulss toimub.
Sünkroonne loogika.
Sünkroonse loogika peamine eelis on selle lihtsus. Andmeid töötlevad loogikaelemendid vajavad muutmiseks mõnda aega vastamiseks. See on nn levimise viivitus. Kellapulsside vaheline intervall peab olema piisavalt pikk, et kõik loogikaelemendid saaksid vastata muutustele ja nende väljundid stabiliseeruksid enne järgmist kellapulssi. Seda tingimust arvestades (teatud muude detailide ignoreerimisel) tagatakse vooluringi stabiilsus ja usaldusväärsus. See määrab sünkroonse vooluringi maksimaalse töökiiruse.
Sünkroonsel loogikal on ka puuduseid, näiteks maksimaalne võimalik kellakiirus sõltub vooluringis olevast kõige aeglasemast loogikateest, mida nimetatakse ka kriitiliseks teeks. Igasugune loogiline arvutus, lihtsast kõige keerulisemani, peab lõpule jõudma ühes kellatsüklis. Seega on loogikateed, mis lõpetavad arvutused kiiresti, suurema osa ajast kasutamata ja ootavad järgmist kellapulssi. Sünkroonsete vooluringide kiirendamiseks võib keerukaid toiminguid jagada mitmeks lihtsaks toiminguteks, mida saab teostada järjestikuste kellatsüklitega, tehnikat tuntakse kui torujuhtmeid.
Kellasignaal tuleb jaotada igale trigerile vooluringis. Kuna kell on tavaliselt kõrge sagedusega signaal, tarbib selle jaotamine suhteliselt suures koguses energiat ja eraldab palju soojust. Isegi need trigerid, mis midagi ei tee, tarbivad veidi energiat, tekitades sellega kiibil jääksoojuse. Aku toitel seadmetes on vaja lisaseadmeid ja tarkvara keerukust, et vähendada kella sagedust või ajutiselt kella välja lülitada, kui seadet ei kasutata aktiivselt, et säilitada kasutatav aku eluiga.
Asünkroonne järjendloogika.
Asünkroonset (kella- või isesüttivat) järjendloogikat ei sünkroniseerita kellasignaaliga; vooluringi väljundid muutuvad otse sisendsignaalide muutumise tulemusel. Asünkroonse loogika eelis on see, et see võib olla kiirem kui sünkroonne loogika, kuna vooluring ei pea kellasignaali ootama sisendite töötlemiseks. Seadme kiirust piiravad ainult loogikaväravate levimise viivitused.
Siiski on asünkroonne loogika disainimine keerulisem ja sellel on probleeme, mis ei esine sünkroonsetes konstruktsioonides. Peamine probleem on see, et digitaalsed mälu elemendid on tundlikud selle suhtes, millises järjekorras nende sisendsignaalid saabuvad; kui kaks signaali jõuavad trigerisse või lukku peaaegu samal ajal, sõltub vooluringi olek sellest, milline signaal jõuab väravani esimesena. Seetõttu võib vooluring minna vale olekusse, sõltuvalt loogikaväravate levimise viivituste väikestest erinevustest. Seda nimetatakse võidujooksu tingimuseks.
Asünkroonset järjendloogikat kasutatakse tavaliselt ainult mõnes kriitilises osas muude sünkroonsete süsteemide hulgas, kus kiirus on ülioluline, näiteks mikroprotsessorite ja digitaalsignaali töötlemise vooluringide osades.