en
,
of
, en niet
) weer bekijken en leren hoe deze in elektrische circuits
gebruikt worden.
In een circuit met miljarden transistors, of zelfs duizenden transistors, kunnen hardwareontwerpers niet aan elke individuele transistor denken. Net zoals programmeurs abstractie gebruiken, gebruiken hardware-architecten abstracties, waarin een groep transistors en andere circuitelementen als één object worden beschouwd. Wat voor soort objecten? Er zijn in principe twee soorten, een voor geheugen en een voor berekening.
Geheugen bestaat uit flip-flops. Een flip-flop is een circuit met twee stabiele toestanden: aan en uit. Een invoersignaal kan aangeven dat de flip-flop moet worden ingeschakeld, uitgeschakeld of gewijzigd, ongeacht de toestand op dat moment. Zodra dat gebeurt, blijft de flip-flop in de nieuwe status totdat hij een ander signaal krijgt. De uitvoer van de flip-flop is altijd gelijk aan zijn toestand op dat moment: aan als de flip-flop aan is, uit als hij uit is.
De circuits om berekeningen uit te voeren zijn interessanter dan de circuits voor geheugen. Ze berekenen
functies, net als
rapporteurs in Snap!. Omdat computers veel rekenen, denk je misschien dat de basiscircuitfuncties
optellen, aftrekken, vermenigvuldigen en delen zijn, maar dat is niet het geval. Natuurlijk zijn
er circuits om die dingen te doen, maar ze zijn gemaakt van logische poorten: circuits die
Boolean functies berekenen: en
, of
en niet
.
De reden dat Boolean functies als fundamenteel worden beschouwd, is dat hun invoeren en uitvoeren kunnen worden weergegeven met een enkele draad die het circuit in of uit gaat. Dat is niet zo voor rekenkundige functies. Als over een draad een spanning loopt, zeggen we dat er een waarde van 1 is, als er geen stroom over de draad loopt, is de waarde 0. Stel je wil met deze draden iets bouwen dat waardes kan optellen, dan je ervoor zorgen dat die opteller drie mogelijke uitvoerwaarden heeft. De mogelijke sommen zijn 0+0=0, 1+0=1 en 1+1=2, Dus de drie mogelijke uitvoerwaarden zijn 0, 1 en 2. Om dan het getal 2 uit te moeten drukken in binair zouden 2 uitvoerdraden nodig zijn, aangezien 2 in binair 10 is, dus een draad met een spanning en een draad zonder spanning. Als je daarentegen een spanning op een draad als Waar en geen spanning als Niet Waar beschouwt, dan kan de uitvoer van een Booleaanse functie van twee invoeren nog steeds alleen Waar of Niet Waar zijn, dus is slechts één uitvoerdraad nodig.
Je hebt een aantal voorbeelden gezien in Hoofdstuk 2 Les 3:
Keuzes maken met predikaten : EN
, OF
en NIET
:
en
.
Dit elektrische circuit toont een vereenvoudigde manier om de Boolean functie en
elektronisch te emuleren. De twee schakelaars bevinden zich in serie ;
als beide schakelaars zijn ingeschakeld, stroomt de stroom en gaat de gloeilamp aan.
invoeren | uitvoer | |
---|---|---|
A | B | A en B |
Niet Waar | Niet Waar | Niet Waar |
Niet Waar | Waar | Niet Waar |
Waar | Niet Waar | Niet Waar |
Waar | Waar | Waar |
invoeren | uitvoer | |
---|---|---|
A | B | A en B |
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
of
.
Dit elektrische circuit toont een vereenvoudigde manier om de Boolean functie
of
elektronisch te emuleren. De twee schakelaars staan parallel; als
een van de twee (of allebei) de schakelaars aan staan dan stroomt de stroom en gaat de
gloeilamp aan.
Net als voor de en
tabellen, zijn deze twee tabellen identiek behalve voor
Waar/Nietwaar en enen en nullen.
In normale taal betekent heeft het woord "of" twee betekenissen. Inclusieve of betekent "ten minste één van deze": Als het regent of koud is, heb je een jas nodig. (Als het regent en koud is dan heb je nog steeds een jas nodig). Exclusieve of betekent het een of het ander, maar niet allebei: Eet je groente of je krijgt geen toetje. (Het zou niet eerlijk zijn als je je groente at en nog steeds geen toetje kreeg.) In de informatica (en in wiskunde) betekent "of" op zichzelf altijd inclusieve of, zoals je kan zien in de waarheidstabel. Als je eigenlijk exclusieve of bedoelt, moet je dat zeggen.
invoeren | uitvoer | |
---|---|---|
A | B | A of B |
Niet Waar | Niet Waar | Niet Waar |
Niet Waar | Waar | Waar |
Waar | Niet Waar | Waar |
Waar | Waar | Waar |
invoeren | uitvoer | |
---|---|---|
A | B | A of B |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
niet
.
Dit elektrische circuit toont een vereenvoudigde manier om de Boolean functie
niet
elektronisch te emuleren. De schakelaar is praktisch een
circuitstopper: als de schakelaar aanstaat dan stroomt de stroom niet en
staat de lamp uit als de schakelaar uitstaat dan stroomt de stroom naar de lamp en gaat de
lamp aan.
invoer | uitvoer |
---|---|
A | niet A |
Niet Waar | Waar |
Waar | Niet Waar |
invoer | uitvoer |
---|---|
A | niet A |
0 | 1 |
1 | 0 |
In een computer worden Boolean functies geïmplementeerd in de fysieke circuits met behulp van logische poorten. (Één poort per functie) Logicacircuits worden vaak voorgesteld met tekeningen waarmee ingenieurs kunnen zien hoe de informatie door het circuit loopt. Het volgende diagram van een logicacircuit met twee poorten stelt de uitdrukking voor. Zie je hoe?
Waar
zijn?
EN
, OF
en NIET
bij de volgende vragen.
Waar
rapporteren?
(Waar) en
(Niet Waar)
? Wat rapporteert niet ((Waar) en (Niet Waar))
? In
uitdrukking II: Wat rapporteert (Waar) of (Niet Waar)
? Wat rapporteert
niet ((Waar) of (Niet Waar))
?
niet
((Waar) en (Niet Waar))
(rechts) aan het buitenste en
-blok?
(Waar)
en (Niet Waar)
(rechts) aan het buitenste of
-blok?
Waar
rapporteren? (W staat voor
Waar
en NW staat voor Niet Waar
.)