Loogikaväravate uurija

klõpsa sisenditele ja vaata, kuidas signaalid läbi väravate voolavad

Interaktiivse simulatsiooni laadimine...

NAND üksi suudab iga ahela ehitada 🖖

NAND on funktsionaalselt täielik. NOT, AND ja OR saab täielikult NAND-kombinatsioonidest ehitada, mistõttu eelistavad paljud kiibid väikest primitiivsete väravate komplekti.

Iga värav on pisike jah/ei-otsus 🖖

Loogikavärav loeb oma sisendeid kui HIGH (1) või LOW (0) ja annab kindla reegli järgi ühe ainsa 1 või 0 — AND tahab mõlemat kõrget, OR vähemalt üht, XOR tahab, et need erineksid. Allolev tõeväärtustabel on värava täielik määratlus: iga sisendkombinatsioon koos oma väljundiga, ja rohkem polegi vaja teada. Kuhja piisavalt neid pisikesi otsuseid ja saad liiturid, mälu ning lõpuks terve protsessori.

Ka korrektne skeem võib hetkeks võbeleda 🖖

Signaalid ei jõua kohale hetkega — iga värav lisab väikese levimisviite ja kaks teed sama väljundini võivad olla eri pikkusega. Kui sisend muutub, võib väljund hetkeks näidata valet väärtust, enne kui see paika loksub; seda nimetatakse tõrkeks ehk hasardiks (glitch), kuigi tõeväärtustabel on täiesti õige. Jälgi ajastusriba: väljundi serv järgneb sisendi servale täpselt selle väravaviite võrra ja mitmeväravalistes skeemides liituvad need viited nähtavateks võidujooksudeks.

DIGITAALLOOGIKA — MILLINE EHITUSPLOKK TEEB TÖÖ ÄRA?

Millise loogikajuhtumiga on tegemist?

Iga digitaalskeem on tõeväärtustabel skeemi rüüs. Küsimus ei ole kunagi selles, mida üks väratielement teeb, vaid selles, millist tabelit te vajate: kahest bitist tehtud otsust, tervet loogikaperet ühest ainsast detailist, aritmeetikat koos ülekandega või lülitit, mis valib mitmest signaalist ühe. Need neli juhtumit katavad peaaegu kõik, mida algkursus küsib.

Üks otsus kahest bitist — vali värat tema veeru järgi Y = A ⊕ B
Käepärast on ainult üht tüüpi värat — NAND-ist piisab NOT A = NAND(A, A)
Aritmeetika, mitte otsus — summa on XOR, ülekanne on AND S = A ⊕ B, C = A ∧ B
Valimine, mitte ühendamine — kasuta multiplekserit Y = A·¬S + B·S

01

Üks otsus kahest bitist — vali värat tema veeru järgi

Mida te teate: Kaks sisendit, üks väljund ja reegel, mille saab kirja panna nelja reana. Vali värat, mille väljundveerg vastab soovitud reeglile.

Loogika: Y = A ⊕ B

Näidisarvutus: XOR, kus A = 1 ja B = 0, annab 1; sama värat annab 0 alati, kui mõlemad sisendid langevad kokku

Ava see juhtum: XOR erinev
Üks otsus kahest bitist — vali värat tema veeru järgi. Neli rida määravad väratit täielikult; esile tõstetud rida on sinu sisend. Kaks sisendit, üks väljund ja reegel, mille saab kirja panna nelja reana. Vali värat, mille väljundveerg vastab soovitud reeglile.
Neli rida määravad väratit täielikult; esile tõstetud rida on sinu sisend.

02

Käepärast on ainult üht tüüpi värat — NAND-ist piisab

Mida te teate: NAND on funktsionaalselt täielik. Iga teise värati saab kokku panna ainult tema koopiatest, ja koos sellega ka iga skeemi, mille suudad tõeväärtustabelina kirjeldada.

Loogika: NOT A = NAND(A, A)

Näidisarvutus: NAND(1, 1) = 0. Kui sisendid kokku ühendada, siis NAND(A, A) = NOT A; sellest edasi annavad kaks NAND-i kokku AND-i

Ava see juhtum: NAND universaalne
Käepärast on ainult üht tüüpi värat — NAND-ist piisab. Kokkuühendatud sisenditega NAND on inverter, ja just sellele nipile on kõik ülejäänu ehitatud. NAND on funktsionaalselt täielik. Iga teise värati saab kokku panna ainult tema koopiatest, ja koos sellega ka iga skeemi, mille suudad tõeväärtustabelina kirjeldada.
Kokkuühendatud sisenditega NAND on inverter, ja just sellele nipile on kõik ülejäänu ehitatud.

03

Aritmeetika, mitte otsus — summa on XOR, ülekanne on AND

Mida te teate: Kahe biti liitmine annab kahebitise vastuse. Madalam bitt on A XOR B ja kõrgem, ülekanne, on A AND B.

Loogika: S = A ⊕ B, C = A ∧ B

Näidisarvutus: 1 + 1 annab summa = 0 ja ülekande = 1 ehk kahendkujul 10 — ainus neljast reast, kus ülekanne käivitub

Ava see juhtum: poolliitja 1+1
Aritmeetika, mitte otsus — summa on XOR, ülekanne on AND. Mõlemad väratid saavad samad kaks sisendit: XOR annab summabiti, AND ülekande. Kahe biti liitmine annab kahebitise vastuse. Madalam bitt on A XOR B ja kõrgem, ülekanne, on A AND B.
Mõlemad väratid saavad samad kaks sisendit: XOR annab summabiti, AND ülekande.

04

Valimine, mitte ühendamine — kasuta multiplekserit

Mida te teate: Kaks andmesisendit ja valikuliin. Väljund kopeerib selle sisendi, millele valik osutab, ja eirab teist täielikult.

Loogika: Y = A·¬S + B·S

Näidisarvutus: A = 0, B = 1, S = 1 → väljund = 1, sest väljund = A·(NOT S) + B·S

Ava see juhtum: MUX valik
Valimine, mitte ühendamine — kasuta multiplekserit. Valikuliin juhib ühe sisendi väljundisse ja blokeerib teise. Kaks andmesisendit ja valikuliin. Väljund kopeerib selle sisendi, millele valik osutab, ja eirab teist täielikult.
Valikuliin juhib ühe sisendi väljundisse ja blokeerib teise.
Allikad (1)

Ülesanne täielikult lahendatud

  1. Vaid NAND-elementidest ehitatud poolliitmik ja miks viis on alampiir 8 sammu

    Kiibitehas müüb teile ainult ühte ja ainust komponenti: kahe sisendiga NAND-elementi. Ehitage tööriistas valiku Poolliitmik all kujutatud poolliitmik — üks summabitt, üks ülekandebitt — mitte millestki muust. Mitu NAND-elementi selleks kulub ja kust te teate, et olete leidnud kõige odavama lülituse?

    A B & G1 & G2 & G3 & G4 S & G5 C
    1. Alustage NOT-elemendist, mis on odavaim tehe, mida NAND-element teha suudab. Ühendage selle mõlemad sisendid sama juhtmega. Element küsib: „kas mõlemad neist on kõrged?“, ja kuna mõlemad sisendid on A, vastab see alati, kui A seda ei tee.

    2. AND-element maksab ühe võrra rohkem. NAND ongi juba AND, mille vastus on peapeale pööratud, seega pöörake see tagasi: suunake väljund NOT-elementi, mis sammu 1 kohaselt on teine kokkuühendatud jalgadega NAND-element. OR-element nõuab kolme, inverteerides mõlemat sisendit enne NAND-elementi, mis on De Morgani seadus tagurpidi loetuna.

    3. XOR-element on see, mis osutab vastupanu. Nõks seisneb vaheliikme ühekordses arvutamises ja selle rakendamises kordamööda kummagi sisendi vastu. Nimetage seda C-ks ning suunake see NAND-elementi A vastu ja uuesti B vastu.

    4. Avaldage D. Selle sisu on „mitte korraga A ja (mitte A või mitte B)“. Selle osa „A ja mitte-A“ ei saa kunagi tõene olla, mistõttu see langeb välja ning järelejäänu on lühike. E on sama lause, kus tähed on omavahel vahetatud.

    5. Viimane NAND-element ühendab need. De Morgani seadus muudab kahe eituse NAND-tehte tavaliseks OR-elemendiks ning OR-tehe avaldistest „A, kuid mitte B“ ja „B, kuid mitte A“ ongi see, mida XOR tähendab. Neli elementi summabiti jaoks.

    6. Nüüd ülekanne. See on A AND B, mille hinnaks rehkendasite sammus 2 kaks elementi — kuid neist kahest esimene on C ning C asub juba juhtmel just ehitatud XOR-elemendi keskel. Lugege seda kolmandat korda ja ühendage see iseendaga.

    7. Niisiis viis, mitte kuus. Poole sellest oled just kokku pannud: sammu 2 järgi vajab ülekanne eraldi 2 lüli, sammu 5 järgi summa 4 lüli ning sammus 6 märkasime, et neil on täpselt üks ühine lüli, seega 2 + 4 − 1 = 5. Väide, et vähem kui viiest ei piisa, vajab eraldi tõestust, mida sellel lehel ei ole. See tulemus saadakse kahe sisendiga kuni kuuest NAND-lülist koosnevate võrkude ammendava läbivaatamise teel, mis on arvutus, mitte matemaatiline argument.

    8. Elementide arv ei ütle aja kohta midagi. Jälgige ülekannet: elemendist G1 otse elementi G5, kahe elemendi sügavuselt. Summa peab läbima elemendi G2 või G3 ja seejärel G4, seega on see kolme elemendi sügavune. Loendage teekonnad sisendist A summani — need pole isegi ühepikkused.

    Vastus

    Viis NAND-elementi ja viis on alampiir. Seadke tööriist valikule Poolliitmik parameetritega A = 1 ja B = 1 ning see ütleb summabitiks saab 0 ja ülekandebitiks 1. Jälgige seda rida skeemil: C = 0, seejärel D = E = 1, seejärel S = 0 ning ülekandeelement, mis võrdleb C-d iseendaga, annab tulemuseks 1. C arvutatakse üks kord ja seda loetakse kolm korda — see ongi kogu kokkuhoid.

    Sammu 8 sügavustel on tagajärg, mida tõetabel ei suuda näidata. Lähenege tehtele 1 + 1 selle kohal olevast reast, kui A on juba kõrge ja B on tõusmas. Ülekanne tõuseb kõrgeks kahe elemendi viite järel; summa ei lange enne kolmandat. Ühe täieliku elemendiviite vältel näitavad mõlemad väljundviigud väärtusi 1 ja 1, mis ülekanne-ja-summana on kahendkujul 11, ning liitmik väidab korraks, et 1 + 1 = 3. Taktiga juhitav kiip ei näe seda kunagi, sest taktperiood valitakse pikemaks kui loogikalülituse aeglaseim teekond. Selle valimine liiga lühikeseks tähendabki ajastusviga.

Näiteülesanded

  • XOR erinev - XOR A=1 B=0 -> 1: tõene, kui sisendid erinevad
  • NAND universaalne - NAND(1,1) = 0 — NAND pöörab AND-i ümber ja sellest saab ehitada kõik teised loogikaväravad
  • poolliitja 1+1 - Poolliitja 1+1: Sum=0 Carry=1 — sama ülekanne levib läbi iga protsessori
  • MUX valik - Multiplekser: S=1 suunab sisendi B väljundisse, sõltumata A-st