Logische schakelingen#

In werkelijkheid werkt een computer niet met de getallen 1 en 0. Het wordt gebruikt als representatie. De 1 en 0 staat voor aan of uit (stroom), voor wel of geen pit (cd). Dit is wat de computer kan begrijpen en om als mens te laten zien hoe de computer intern werkt, gebruiken we 0-en en 1-en. Om data te kunnen manipuleren en instructies uit te voeren gebruikt een computer elektrische schakelingen. Gezien dit niet de studie electric engineering is, gaan we aan de slag met logische schakelingen. Dit is enkel een representatie hoe de schakelingen van een computer werken op een logische niveau. Op deze manier hoeft er geen rekening mee gehoude worden of de stroomkring wel rond is, waar de batterij is, etc.

Drie belangrijke schakelingen.#

Het ontwerp van fysieke apparaten die altijd werken kan met behulp van maar 3 schakelingen: and, or en not.

Wat zijn mogelijke uitkomsten voor and, or en not? Dit kan uitgebeeld worden in waarheidstabellen. In dit soort tabellen wordt aangegeven wat de uitput is bij een gegeven input.

AND#

input

output

x

y

AND(x, y)

0

0

0

0

1

0

1

0

0

1

1

1

De output van AND is 1 als ALLE inputs gelijk aan zijn aan 1.

AND gate

OR#

input

output

x

y

OR(x, y)

0

0

0

0

1

1

1

0

1

1

1

1

De output van OR is 1 als MINSTENS één input gelijk is aan 1.

OR gate

NOT#

input

output

x

NOT(x)

0

1

1

0

De output van NOT is de omkering van de input.

NOT gate

Boolean Logica#

Bij Booelaanse logica maak je ook gebruik van 3 operatoren genaamd and , or en not en zijn er ook maar twee antwoorden mogelijk namelijk True of False. Dit wordt gebruikt binnen het programmeren om aan de computer uit te leggen welke instructies wel of niet uitgevoerd moeten worden. De and, or en not gaan we nog vaak terugzien.

Schakelingen#

Het ontwerp van fysieke apparaten die altijd werken

In een computer wordt elk bit gerepresenteerd door een voltage

  • 1 is 5 volt

  • 0 is 0 volt

Berekeningen zijn het bewust combineren van deze voltages.

ADDER circuit

Berekeningen#

Alle berekeningen zijn functies van bits, of booleaanse waarden

input

output

x

y

fn(x, y)

0

0

0

0

1

1

1

0

1

1

1

0

  • Boolean inputs x en y kunnen alleen 0 of 1 zijn (True of False)

  • Boolean functies kunnen alleen 0 of 1 (True of False) als output hebben

Logisim#

Logisim

  • Logisim voor het maken van de logische schakelingen

  • Moeilijk? Bedenk dat je niet meer dan AND, OR en NOT nodig hebt om alles te kunnen berekenen!

Schakelingen en connecties#

Logisim plain

Rails variant#

Logisim rails

Quiz#

Logisim quiz

  1. Dit circuit telt 8 logische schakelingen. Hoeveel schakelingen tel je voor

    • AND

    • OR

    • NOT

  2. Volg A omhoog. Voor welke x, y en c bits geeft A als output 1?

Oplossing#

input

output

x

y

c

output

gate

0

0

0

0

0

0

1

0

0

1

0

1

A

0

1

1

1

B

1

0

0

0

1

0

1

1

C

1

1

0

0

1

1

1

1

D

  1. Het circuit telt 4 AND, 1 OR en 3 NOT schakelingen

  2. Zie de waarheidstabel voor alle mogelijke uitkomsten

Bewering#

Met de bouwstenen AND, OR en NOT kan alles worden berekend!

Stap 1: Probeer

Probeer het probleem eerst op te lossen op papier. In het geval van schakelingen kan dit handig in een waarheidstabel. In zo’n tabel wordt voor elke mogelijke input een ouput aangegeven.

input

output

x

y

fn(x, y)

A

0

0

0

B

0

1

1

C

1

0

1

D

1

1

0

Stap 2: Plan

Zet de aanpak in papier.

Maak voor elke rij waar de output gelijk moet zijn aan 1 een AND circuit

input

output

x

y

fn(x, y)

A

0

0

0

B

0

1

1

C

1

0

1

D

1

1

0

B: (NOT x) AND y

C: x AND (NOT y)

Combineer daarna expressies met OR

((NOT x) AND y) OR (x AND (NOT y))

Stap 3: Uitvoeren

Nu er een plan is, kan deze uitgevoerd worden.

Zet de expressie voor B om naar een circuit

B: (NOT x) AND y

Minterm B

Zet de expressie voor C om naar een circuit

C: x AND (NOT y)

Minterm C

Combineer de expressies met OR

Minterm OR

Bewijs#

Dit bewijs dat alles met and, or en not berekend kan worden heeft de naam minterm expansion principe.

Het creeren van een logische schakeling loopt gelijk aan een methode voor programmeren. Namelijk eerst oplossingen proberen, als de oplossing is gevonden dan deze oplossing omzetten in stappen en vervolgens deze stappen omzetten naar een programmeer taal. Dit kan gezien worden als de drie p’s van programmeren.

De drie p’s van programmeren:

  • Probeer: Probeer het probleem op te lossen op papier.

  • Plan: Noteer de stappen die zijn gebruikt om het probleem op te lossen.

  • Programmeer: Vertaal de stappen naar een programmeer taal.

Een concreet voorbeeld#

Een less than or equal circuit <=

De output van fn(x,y) moet 1 zijn indien x <= y, anders 0

Stap 1: Proberen#

Maak een waarheidstabel

input

output

x

y

x <= y

A

0

0

1

B

0

1

1

C

1

0

0

D

1

1

1

Stap 2: Plan#

input

output

x

y

x <= y

A

0

0

1

B

0

1

1

C

1

0

0

D

1

1

1

Op basis van de waarheidstabel kan de volgende expressie worden afgeleid voor A, B en D (de outputs met waarde 1)

A: (NOT x) AND (NOT y)

B: (NOT x) AND y

C: x AND y

Combineer daarna expressies met OR

((NOT x) AND (NOT y)) OR ((NOT x) AND y) OR (x AND y)

Stap 3: Plan uitvoeren#

Op basis van de expressie

((NOT x) AND (NOT y)) OR ((NOT x) AND y) OR (x AND y)

kan het volgende circuit worden opgesteld

Minterm GTE function

Recept#

  1. Probeer: Check alle inputs en schrijf de uitkomsten in een waarheidstabel

  2. Plan: Stel de expressie op

  3. Uitvoeren: Zet de expressie om naar een circuit