Looginen xor. Monimutkaisempia logiikkaelementtejä. XOR-toiminnan ominaisuudet


Operaattori Syntaksi Kuvaus
JA A JA B Yhteys: Jos A ja B ovat tosia, niin totta. Muuten - Väärin
TAI A TAI B Disjunktio: Jos jokin operandi on tosi, niin tosi. Muuten - Väärin
EI EI A Kielteisyys: Jos A on epätosi, se on totta. Muuten - Väärin
XOR A XOR B Poikkeus: Jos A on tosi tai B on tosi, niin - Tosi. Muuten - Väärin
EQV A EQV B Vastaavuus: Jos A:lla on sama arvo kuin B:llä, se on tosi. Muuten - Väärin
IMP A IMP B Merkitys: Jos A on tosi ja B on epätosi, niin epätosi. Muuten - totta

Boolen operaattorin operandi voi olla mikä tahansa kelvollinen lauseke, jolla on Boolen tulos, sekä luku, joka voidaan muuntaa Boolen arvoksi.

Loogisen toiminnon tulos on Boolean-tyyppinen arvo (tai Nolla, jos ainakin yksi operandeista on Nolla).

Looginen operaattori AND

Syntaksi:
Operandi_1 JA Operandi_2


AND-operaattori suorittaa looginen yhteys.

Tämän toiminnon tulos on tosi vain, kun molemmat operandit ovat tosi, muuten epätosi.


Totuustaulukko


AND-operaattoria voidaan käyttää useille operandeille:


(5 3) JA (5=6) tulos on epätosi


Operandien lukumäärästä riippumatta loogisen AND-operaation tulos on True vain, jos kaikki lausekkeen operandit arvioivat arvoksi True. Kaikissa muissa tapauksissa tulos on epätosi. Huomaa, että operandit on suljettu suluissa. VBA arvioi ensin jokaisen suluissa olevan operandin arvon ja sitten koko lausekkeen.

Looginen operaattori TAI

Syntaksi:
Operandi_1 TAI Operandi_2


OR-operaattori tekee looginen disjunktio.

Tämän toiminnon tulos on tosi, jos ainakin yksi operandeista on tosi, muuten epätosi.


Totuustaulukko


OR-operaattoria voidaan käyttää useille operandeille:


(5 3) TAI (5=6) tulos on tosi


Operandien lukumäärästä riippumatta loogisen TAI-operaation tulos on aina True, jos ainakin yksi lausekkeen operandeista on True. Muuten tulos on väärä.

AND- ja OR-operaattorit voidaan yhdistää:


((5 3)) TAI (5=6) tulos on tosi

Looginen operaattori EI

Syntaksi:
EI Operandi


NOT-operaattori tekee loogista kieltämistä.

NOT-operaattori käyttää vain yhtä operandia.


Totuustaulukko


AND OR NOT -operaattorit voidaan yhdistää:


((5 3)) TAI EI (5=6) tulos on tosi

Looginen operaattori XOR

Syntaksi:
Operandi_1 XOR Operandi_2


XOR-operaattori tekee looginen poikkeus.

Tämän toiminnon tulos on True, jos operandilla on eri arvot, muussa tapauksessa False.


Totuustaulukko


((5 3)) TAI EI (5=6) XOR (5=5) tulos on epätosi

Looginen operaattori EQV

Syntaksi:
Operandi_1 EQV Operandi_2


EQV-operaattori on operaattori looginen vastaavuus.

Tämän toiminnon tulos on True, jos operandeilla on samat arvot, muussa tapauksessa False.


Totuustaulukko


((5 3)) TAI EI (5=6) EQV (5=5) tulos on tosi

Looginen operaattori IMP

Syntaksi:
Operandi_1 IMP Operandi_2


IMP-operaattori suorittaa loogisen toimenpiteen seurauksia.


Totuustaulukko


((5 3)) TAI EI (5=6) IMP (5=5) tulos on tosi


IMP-looginen operaattori on kaikista loogisista operaattoreista vähiten intuitiivinen. Onneksi sen käyttötarve tulee vastaan ​​melko harvoin.

Usein he turvautuvat ns. ongelman pohtimiseen osoittaakseen yksikerroksisten perceptronien rajalliset kyvyt ongelmia ratkaistaessa. XOR – yksinomainen OR.

Tehtävän ydin on seuraava. Looginen funktio XOR annetaan - poissulkeva OR. Se on kahden argumentin funktio, joista kukin voi olla nolla tai yksi. Se ottaa arvon , kun yksi argumenteista on yhtä suuri kuin yksi, mutta ei molempia, muuten . Ongelma voidaan havainnollistaa käyttämällä yksikerroksista, yhden neuronin, kahden sisäänmenon järjestelmää, kuten alla olevassa kuvassa.

Merkitään yksi syöte arvolla ja toinen merkillä, jolloin niiden kaikki mahdolliset yhdistelmät koostuvat neljästä tason pisteestä. Alla oleva taulukko näyttää vaaditun tulon ja lähdön välisen suhteen, jossa tuloyhdistelmät, joiden pitäisi tuottaa nolla tulos, on merkitty ja yksi lähtö on merkitty ja .

Pisteet Merkitys Merkitys Vaadittu tulos
0 0 0
1 0 1
0 1 1
1 1 0

Yksi neuroni kahdella sisäänmenolla voi muodostaa päätöspinnan mielivaltaisen suoran muodossa. Jotta verkko toteuttaisi yllä olevassa taulukossa määritellyn XOR-toiminnon, viiva on sijoitettava siten, että pisteet ovat viivan toisella puolella ja pisteet toisella puolella. Yritettyämme piirtää tällaisen suoran viivan alla olevaan kuvaan olemme vakuuttuneita, että tämä on mahdotonta. Tämä tarkoittaa, että riippumatta siitä, mitkä arvot painotuksille ja kynnyksille on määritetty, yksikerroksinen hermoverkko ei pysty toistamaan XOR-funktion esittämiseen vaadittavaa tulo-lähtösuhdetta.

XOR-funktio muodostuu kuitenkin helposti kaksikerroksisesta verkosta ja monella tapaa. Tarkastellaanpa yhtä näistä menetelmistä. Modernisoidaan kuvassa oleva verkko lisäämällä toinen piilotettu neuronikerros:

Huomaa, että tämä verkko annetaan sellaisenaan, ts. voimme olettaa, että hänet on jo koulutettu. Nuolien yläpuolella olevat numerot osoittavat synaptisten painojen arvot. Aktivointifunktiona käytämme yksittäistä hyppytoimintoa, jonka kynnysarvo on seuraava kaavio:

Sitten tällaisen hermoverkon toiminnan tulos voidaan esittää seuraavan taulukon muodossa:

Pisteet Merkitys Merkitys Vaadittu tulos
0 0 0 0 0 0
1 0 1 1 0 1
0 1 1 0 1 1
1 1 0 0 0 0

Kumpikin ensimmäisen kerroksen kahdesta neuronista muodostaa mielivaltaisen suoran muodossa olevan päätöspinnan (jakaa tason kahteen puolitasoon), ja lähtökerroksen neuroni yhdistää nämä kaksi ratkaisua muodostaen päätöspinnan nauhan muoto, joka muodostuu ensimmäisen kerroksen neuronien yhdensuuntaisista suorista viivoista:

Tässä artikkelissa XOR-ongelman ratkaisemiseen käytetty neuroverkko on primitiivinen eikä hyödynnä täysimääräisesti monikerroksisten verkkojen ominaisuuksia. On selvää, että monikerroksisilla hermoverkoilla on suurempi esitysvoima kuin yksikerroksisilla vain epälineaarisuuden läsnä ollessa. Ja tässä verkossa käytetään kynnyksen lineaarista aktivointitoimintoa. Tällaista verkkoa ei voi kouluttaa esimerkiksi backpropagation-algoritmilla.

Sähköpiiriä, joka on suunniteltu suorittamaan jotain loogista toimintoa tulodatalle, kutsutaan logiikkaelementiksi. Tulotiedot esitetään tässä eritasoisten jännitteiden muodossa, ja lähdön loogisen toiminnan tulos saadaan myös tietyn tason jännitteen muodossa.

Tässä tapauksessa operandit syötetään - logiikkaelementin sisääntuloon vastaanotetaan korkean tai matalan jännitteen muodossa olevia signaaleja, jotka olennaisesti toimivat syöttötietoina. Siten korkean tason jännite - looginen 1 - osoittaa operandin todellista arvoa ja matalan tason jännite 0 - väärää arvoa. 1 - TOSI, 0 - EPÄTOSI.

Looginen elementti- elementti, joka toteuttaa tiettyjä loogisia suhteita tulo- ja lähtösignaalien välillä. Logiikkaelementtejä käytetään yleensä tietokoneiden loogisten piirien ja diskreettien automaattisten valvonta- ja ohjauspiirien rakentamiseen. Kaikentyyppisille loogisille elementeille niiden fyysisestä luonteesta riippumatta on tunnusomaista tulo- ja lähtösignaalien diskreetit arvot.

Logiikkaelementeillä on yksi tai useampi tulo ja yksi tai kaksi (yleensä käänteistä toisilleen) lähtöä. Loogisten elementtien lähtösignaalien "nollien" ja "ykkösten" arvot määräytyvät elementin suorittaman loogisen toiminnon sekä toistettavien tulosignaalien "nollien" ja "ykkösten" arvoista. riippumattomien muuttujien rooli. On olemassa alkeellisia loogisia toimintoja, joista mikä tahansa monimutkainen looginen funktio voidaan muodostaa.

Elementtipiirin suunnittelusta riippuen sen sähköisistä parametreista tulon ja lähdön loogisilla tasoilla (korkeat ja matalat jännitetasot) on samat arvot korkealle ja matalalle (tosi ja epätosi) tiloille.

Perinteisesti logiikkaelementit valmistetaan erityisten radiokomponenttien - integroitujen piirien - muodossa. Loogiset operaatiot, kuten konjunktio, disjunktio, negaatio ja modulo-lisäys (AND, OR, NOT, XOR) ovat perusoperaatioita, jotka suoritetaan loogisten porttien päätyypeille. Seuraavaksi tarkastellaan kutakin tämäntyyppistä logiikkaelementtiä tarkemmin.

Looginen elementti "AND" - konjunktio, looginen kertolasku, AND


"AND" on looginen elementti, joka suorittaa konjunktion tai loogisen kertolaskutoiminnon syöttötiedolle. Tällä elementillä voi olla 2-8 (tuotannossa yleisimmät ovat "AND"-elementit, joissa on 2, 3, 4 ja 8 tuloa) sisääntuloa ja yksi lähtö.

Loogisten elementtien "AND" symbolit eri tulojen määrällä on esitetty kuvassa. Tekstissä looginen elementti "AND", jossa on tietty määrä tuloja, on merkitty "2I", "4I" jne. - "AND"-elementti, jossa on kaksi tuloa, neljä tuloa jne.


Elementin 2I totuustaulukko osoittaa, että elementin lähtö on looginen vain, jos loogiset ovat samanaikaisesti ensimmäisessä ja toisessa sisääntulossa. Muissa kolmessa mahdollisessa tapauksessa tulos on nolla.

Länsi-kaavioissa I-elementin kuvakkeen sisääntulossa on suora ja lähdössä pyöristetty viiva. Kotimaisissa kaavioissa - suorakulmio, jossa on symboli "&".

Looginen elementti "OR" - disjunktio, looginen lisäys, OR


"OR" on looginen elementti, joka suorittaa disjunktio- tai loogisen summausoperaation syöttödatalle. Se, kuten "I"-elementti, on saatavana kahdella, kolmella, neljällä jne. sisääntulolla ja yhdellä lähdöllä. Loogisten elementtien "OR" symbolit erilaisilla tulomäärillä on esitetty kuvassa. Nämä elementit on merkitty seuraavasti: 2OR, 3OR, 4OR jne.


"2OR"-elementin totuustaulukko osoittaa, että loogisen ilmestymiseksi ulostulossa riittää, että looginen on ensimmäisessä sisääntulossa TAI toisessa sisääntulossa. Jos kahdessa sisääntulossa on yhtä aikaa loogisia, myös lähtö on yksi.

Länsi-kaavioissa "OR"-elementin kuvakkeella on pyöristetty sisääntulo ja pyöristetty, terävä tuloste. Kotimaisissa kaavioissa on suorakulmio, jossa on symboli "1".

Logiikkaelementti "NOT" - negaatio, invertteri, EI

"EI" on looginen elementti, joka suorittaa loogisen negaatiotoiminnon syöttödatalle. Tätä elementtiä, jolla on yksi lähtö ja vain yksi tulo, kutsutaan myös invertteriksi, koska se itse asiassa invertoi (kääntelee) tulosignaalin. Kuvassa on loogisen elementin "EI" symboli.

Invertterin totuustaulukko osoittaa, että korkea tulopotentiaali tuottaa alhaisen lähtöpotentiaalin ja päinvastoin.

Länsimaisissa kaavioissa "EI"-elementtikuvake on kolmion muotoinen, jonka lähdössä on ympyrä. Kotimaisissa kaavioissa on suorakulmio, jossa on symboli “1”, jonka lähdössä on ympyrä.

Looginen elementti "NAND" - konjunktio (looginen kertolasku) negaatiolla, NAND

"AND-NOT" on looginen elementti, joka suorittaa loogisen summausoperaation syötetiedolle ja sitten loogisen negaatiooperaation, jonka tulos lähetetään ulostuloon. Toisin sanoen se on pohjimmiltaan "AND"-elementti, jota täydentää "NOT"-elementti. Kuvassa on loogisen elementin “2AND-NOT” symboli.


NAND-portin totuustaulukko on AND-portin totuustaulukon vastakohta. Kolmen nollan ja yhden sijasta on kolme ykköstä ja nolla. NAND-elementtiä kutsutaan myös "Schaeffer-elementiksi" matemaatikko Henry Maurice Schaefferin kunniaksi, joka pani ensimmäisen kerran merkille sen merkityksen vuonna 1913. Merkitään "I", vain ympyrä lähdössä.

Looginen elementti "OR-NOT" - disjunktio (looginen lisäys) negaatiolla, NOR

"OR-NOT" on looginen elementti, joka suorittaa loogisen summausoperaation syöttötiedolle ja sitten loogisen negaatiooperaation, jonka tulos lähetetään ulostuloon. Toisin sanoen tämä on "OR"-elementti, jota täydentää "EI"-elementti - invertteri. Kuvassa on loogisen elementin “2OR-NOT” symboli.


TAI-portin totuustaulukko on TAI-portin totuustaulukon vastakohta. Suuri lähtöpotentiaali saadaan vain yhdessä tapauksessa - molempiin tuloihin kohdistetaan samanaikaisesti matalat potentiaalit. Se on merkitty "OR", vain ympyrä lähdössä osoittaa inversion.

Logiikkaportti "exclusive OR" - lisäys modulo 2, XOR

"Exclusive OR" on looginen elementti, joka suorittaa loogisen summausoperaation modulo 2 tulodatalle, jolla on kaksi tuloa ja yksi lähtö. Usein näitä elementtejä käytetään ohjauspiireissä. Kuvassa on tämän elementin symboli.

Länsimaisissa piireissä kuva on kuin "OR", jossa on ylimääräinen kaareva nauha tulopuolella, kotimaisissa se on kuin "OR", vain "1": n sijaan kirjoitetaan "=1".


Tätä loogista elementtiä kutsutaan myös "erittäisyydeksi". Korkea jännitetaso on lähdössä vain silloin, kun signaalit tulossa eivät ole samat (yksi on yksi, toinen on nolla tai yksi on nolla ja toinen on yksi), vaikka sisääntulossa olisi kaksi ykköstä samaan aikaan lähtö on nolla - tämä on ero "TAI":sta. Näitä logiikkaelementtejä käytetään laajasti summaimissa.

Bitti on tiedon määrän vähimmäismittayksikkö, koska se tallentaa yhden kahdesta arvosta - 0 (epätosi) tai 1 (tosi). False ja True käännetään venäjäksi valheeksi ja totuudeksi. Toisin sanoen yksi bittisolu voi olla vain yhdessä tilassa kahdesta mahdollisesta kerrallaan. Haluan muistuttaa, että bittisolun kaksi mahdollista tilaa ovat 1 ja 0.
Bittien käsittelyyn on olemassa tiettyjä toimintoja. Näitä operaatioita kutsutaan loogisiksi tai Boolen operaatioiksi, ja ne on nimetty yhden matemaatikoista George Boolen (1815-1864) mukaan, joka osallistui tämän tieteenalan kehitykseen.
Kaikkia näitä operaatioita voidaan soveltaa mihin tahansa bittiin riippumatta siitä, onko sen arvo 0 (nolla) vai 1 (yksi). Alla on loogiset perusoperaatiot ja esimerkkejä niiden käytöstä.

Looginen JA toiminta

JA merkintä: &

Looginen JA-operaatio suoritetaan kahdelle bitille, kutsutaan niitä a:ksi ja b:ksi. Loogisen JA-operaation tulos on 1, jos a ja b ovat yhtä kuin 1, ja kaikissa muissa (muissa) tapauksissa tulos on 0. Katsomme loogisen operaation totuustaulukkoa ja .

a (bittinen 1) b (bitti 2) a(bitti 1) & b(bitti 2)
0 0 0
0 1 0
1 0 0
1 1 1

Looginen TAI -toiminto

TAI nimitys: |

Looginen TAI-toiminto suoritetaan kahdelle bitille (a ja b). Loogisen TAI-operaation tulos on 0, jos a ja b ovat 0 (nolla), ja kaikissa muissa (muissa) tapauksissa tulos on 1 (yksi). Katsomme loogisen operaation OR totuustaulukkoa.

a (bittinen 1) b (bitti 2) a(bitti 1) | b (bitti 2)
0 0 0
0 1 1
1 0 1
1 1 1

Loogisen toiminnan poissulkeva TAI (XOR).

XOR-merkintä: ^
Looginen poissulkeva TAI-toiminto suoritetaan kahdelle bitille (a ja b). Loogisen XOR-operaation tulos on 1 (yksi), jos yksi biteistä a tai b on 1 (yksi), muuten tulos on 0 (nolla). Tarkastelemme loogisen operaation poissulkevan OR:n totuustaulukkoa.

a (bittinen 1) b (bitti 2) a(bitti 1) ^ b(bitti 2)
0 0 0
0 1 1
1 0 1
1 1 0

Looginen toiminta EI (ei)

Merkintä EI: ~
Loogista toimintoa EI suoriteta yhdelle bitille. Tämän loogisen operaation tulos riippuu suoraan bitin tilasta. Jos bitti oli nollatilassa, NOT tulos on yhtä suuri kuin yksi ja päinvastoin. Katsomme loogisen operaation NOT totuustaulukkoa.

a (bittinen 1) ~a (bitin negaatio)
0 1
1 0

Muista nämä 4 loogista operaatiota. Näitä loogisia operaatioita käyttämällä voimme saada minkä tahansa mahdollisen tuloksen. Lue tarkemmin loogisten operaatioiden käytöstä C++:ssa.

Käytännössä yleisimmin käytetyt kaksisyötteiset elementit ovat "exclusive OR". Kuvassa Kuvassa 1 on tavanomainen graafinen merkintä elementistä ilman inversiota ja sen tilataulukko. Yksinkertaisesti sanottuna tämän elementin olemus tiivistyy seuraavaan: lähtösignaali ilmestyy vain, kun tulojen loogiset tasot eivät ole samat.

Kaavio pulssin reunan ja rajan tunnistamiseksi

Tässä piirissä käytetään kolmea XOR-porttia viivyttämään pulsseja. DD1.4 - summaus. Lähtöpulsseilla on vakaat etureunat ja laskevat reunat. Kunkin lähtöpulssin kesto on kolminkertainen kunkin kolmen elementin kytkentäviiveeseen. Lähtöpulssien reunojen välinen aikaväli on yhtä suuri kuin tulopulssin kesto. Tämä laite myös kaksinkertaistaa tulosignaalin taajuuden.

On toinenkin mielenkiintoinen ominaisuus nimeltä "Exclusive OR". Jos johonkin tuloon syötetään vakio "0", elementin lähdössä oleva signaali toistaa tulosignaalin, ja jos vakio "0" muutetaan vakioksi "1", lähtösignaali olla jo tulosignaalin inversio.

Joskus tulee välttämättömäksi hankkia "yksinomainen TAI"-portti yksittäisistä standardeista loogisista porteista. Esimerkki on "exclusive OR" -elementtipiiri, joka on toteutettu neljälle 2-AND-NOT-elementille. Kuvassa 3 on XOR-piiri sen neljässä tilassa. Tämä näyttää kaikki mahdolliset logiikkatasot jokaisessa käytetyssä 2-NAND-portissa.

Tällaiset elementit sisältyvät kaavioon. Tässä piirissä "Exclusive OR" -elementti on valmistettu neljästä 2-AND-NOT -elementistä, jotka sisältyvät yhteen K561LA7-mikropiirin pakkaukseen.

Diskreetti signaaligeneraattori erotaajuudella

Ohjainpiiri on esitetty kuvassa 4. Tässä eksklusiivinen OR-logiikkaelementti on myös toteutettu neljälle 2-AND-NOT-elementille.

Suorakaiteen muotoiset pulssit putoavat muotoilijan tuloihin 1 ja 2 (katso kaaviot 1 ja 2), jotka eroavat toistotaajuudesta. Loogisiin elementteihin DD1.1-DDI.4 perustuva solmu kertoo nämä signaalit. Lähtöpulssisignaali (kuvaaja 3) elementistä DD1.4 syötetään integrointipiiriin R3, C1, joka muuntaa sen kolmiomaiseksi signaaliksi (kuvaaja 4), jonka taajuus on yhtä suuri kuin tulosignaalien taajuuksien ero, ja op. -amp DA1 muuntaa vastaanotetun signaalin neliöaaltoksi (katso aikataulu 5). Vastus R1 säätelee lähtösignaalin positiivisten ja negatiivisten puoliaaltojen kestoa. Erittäin mielenkiintoinen kaava. Radiosuunnittelijalla on ajateltavaa. Esimerkiksi kolmannessa kaaviossa esitetty signaali on siniaallon PWM-signaali.
Tietenkin "yksinomaisten OR" -elementtien käyttöalue on paljon laajempi. Olen esittänyt täällä mielestäni radioamatööreille mielenkiintoisemman.