← Back to CoursesStemExpert
StemExpert
Expert · Handboek · 23. Digitale logica
StemExpert · Brecht Corbeel · schoolium.me
StemExpert
E23. Digitale logica
EExpert · deel E4 · Elektrotechniek en elektronica

Handboek · hoofdstuk 23Digitale logica

Van waarheidstabel tot stopdominant geheugen

Een processor bestaat uit poorten, geheugen en timingafspraken. Je vereenvoudigt functies, bouwt optellers en selecties en leert waarom een noodstop meer nodig heeft dan een softwarevoorwaarde.

9× uitleg5× uitgewerkt voorbeeld1× proef1× naslag1× verhaal1× het geheel1× code12 opdrachten in het werkboek± 11 lestijden
Een fysieke stop blijft werken wanneer de centrale computer geen nieuwe instructies uitvoert.
Een fysieke stop blijft werken wanneer de centrale computer geen nieuwe instructies uitvoert.
Na dit hoofdstuk
Uitleg · 23.1

Nul en één zijn afgesproken spanningsgebieden

1/19

Digitale logica gebruikt twee betekenisvolle toestanden, geen twee oneindig nauwkeurige spanningen. Een ingang accepteert laag onder VIL en hoog boven VIH; daartussen is de toestand niet gegarandeerd. Voedingsfamilie, temperatuur en belasting bepalen die grenzen. Een 3,3 V-Pi en een 5 V-Mega zijn niet zonder controle elektrisch compatibel.

Een zwevende CMOS-ingang kan willekeurig reageren en extra stroom trekken. Geef ongebruikte ingangen een geldig niveau en zorg voor pull-up/pull-down waar nodig. Een Booleaanse functie is een model van stabiele logische niveaus; draadbreuk en ruis horen bij de fysieke uitvoering.

Booleaanse abstractie
Uitleg · 23.2

Poorten en Booleaanse algebra

2/19

EN is 1 alleen wanneer alle ingangen 1 zijn; OF zodra minstens één 1 is; NIET keert om; XOF is 1 bij verschillende ingangen. We schrijven voor EN, voor OF en voor NIET. Het plusteken is hier geen gewone optelling: in Booleaanse algebra.

NEN en NOF zijn de ontkende EN en OF. Elk kan als universele bouwsteen worden gebruikt. De waarheidstabel legt betekenis vast onafhankelijk van gekozen poortfamilie.

ABENOFXOF
00000
01011
10011
11110
Uitgewerkt voorbeeld · 23.3

De Morgan en absorptie

3/19
Een logische functie stap voor stap.
Gegeven
  • F = A + AB; G = NIET(A EN B).
Gevraagd
  • Functie, toets en implementatie.
Oplossing
  1. 1
    F=A(1+B)=A·1=A. Als A=1 is F al 1; als A=0 maakt AB ook nul.
  2. 2
    De Morgan: . De vier invoercombinaties tonen dat 'niet beide' hetzelfde is als 'minstens één niet'.
  3. 3
    Ook . Pas een ontkenning toe op de volledige groep, niet op één losse letter.
Antwoord
Algebra kan poorten besparen en waarheidstabellen kunnen die vereenvoudiging exhaustief toetsen.
Klopt dit? Veiligheidsredundantie is geen logische overbodigheid: twee fysieke kanalen kunnen dezelfde logische informatie bevatten en toch fouten helpen detecteren.
Uitleg · 23.4

Waarheidstabel naar som van producten

4/19

Voor elke rij met uitgang 1 maak je een productterm met alle variabelen: een 0-ingang wordt ontkend, een 1-ingang rechtstreeks. De OF van die mintermen beschrijft precies de tabel. Een tabel met n ingangen heeft 2ⁿ rijen; voor kleine functies kan je iedere combinatie toetsen.

Bij drie ingangen en uitgang 1 op 011,100,101,110,111 volgt F = A + BC na vereenvoudiging. De eerste minterm onder A=0 vraagt B=C=1; alle A=1-rijen vallen samen tot A.

binaire rijvolgorde ABC
Uitleg · 23.5

Karnaugh: buren verschillen in één bit

5/19

Een Karnaughkaart plaatst kolommen in Gray-volgorde 00,01,11,10. Zo verschillen aangrenzende cellen slechts in één bit. Groepeer 1-cellen in rechthoeken van 1,2,4,8,… cellen; variabelen die in een groep wisselen verdwijnen uit de productterm. Overlap is toegestaan; de rand is periodiek.

Voor F = A+BC vormt de volledige onderste rij een groep van vier: A blijft. De kolom 11 vormt een groep van twee: BC blijft. Een diagonaal is geen buur en een groep van drie is geen geldig macht-van-tweegroep.

ABC000111100100101111onderste rij → A; kolom 11 → BC
De Gray-volgorde en randburen vormen de kern van de vereenvoudiging.
Uitgewerkt voorbeeld · 23.6

Karnaugh met randburen

6/19
Een logische functie stap voor stap.
Gegeven
  • Twee ingangen A,B; F=1 op 00 en 10, F=0 op 01 en 11.
Gevraagd
  • Functie, toets en implementatie.
Oplossing
  1. 1
    In de kaart verschillen de twee 1-cellen alleen in A. De gezamenlijke term is ¬B.
  2. 2
    Algebra: ¬A¬B + A¬B = (¬A+A)¬B = ¬B.
  3. 3
    Exhaustieve controle op vier combinaties voorkomt dat een verkeerde rijvolgorde een schijnbaar eenvoudige functie oplevert.
Antwoord
F is alleen de ontkenning van B.
Klopt dit? 'Don't care' mag alleen bij werkelijk ontoegankelijke of vrijgelaten toestanden; een storingsinput in Habitat is geen vrije keuze.
Uitleg · 23.7

Van vereenvoudiging naar hazards

7/19

Een poort heeft voortplantingsvertraging. In een vereenvoudigde functie kunnen twee paden tijdelijk verschillende informatie zien, ook als de ideale tabel geen uitgangswissel vraagt. Een korte glitch heet een hazard.

Bij F = AB + ¬AC en B=C=1 is F altijd 1. Wanneer A wisselt kunnen beide paden kort 0 zijn. De consensus-term BC kan die statische hazard in deze tweelaagsstructuur overbruggen. Algebraïsch is zij overbodig, temporeel kan zij nuttig zijn.

Een waarheidstabel bewijst stabiele combinatorische waarden, geen timingveiligheid. Stel data tijdig voor een klokflank vast en behandel veiligheidsuitgangen met passende componenten en systeemtests.

consensus behoudt de functie en kan glitches beperken
Uitgewerkt voorbeeld · 23.8

Volle opteller: som en overdracht

8/19
Een logische functie stap voor stap.
Gegeven
  • Bits A,B en carry-in Cin; totaal A+B+Cin in gewone rekenkundige betekenis.
Gevraagd
  • Functie, toets en implementatie.
Oplossing
  1. 1
    De sombit is 1 bij een oneven aantal 1-bits: S=A xor B xor Cin.
  2. 2
    De overdracht is 1 bij minstens twee enen: Cout=AB+(A xor B)Cin. Alternatief AB+ACin+BCin.
  3. 3
    Controle: bij 111 is gewone som3; S=1 en Cout=1 geven S+2Cout=3.
Antwoord
De waarheidstabel vormt een volledige test voor één bit.
Klopt dit? In een n-bit ripple-adder moet carry door meerdere trappen; de klokperiode moet die langste propagatie toelaten.
Uitleg · 23.9

De volledige optellertabel

9/19
ABCinSCout
00000
00110
01010
01101
10010
10101
11001
11111

Een half-adder heeft geen Cin: S=A xor B, C=AB. Een volle opteller ketent meerdere bits door Cout aan de volgende Cin te verbinden. Voor 4 bit geeft 0111+0001 =1000: carry moet drie lagere bits passeren.

Een ALU kiest tussen optellen, AND, XOR en andere functies. Dat combineert combinatorische datapaden met multiplexerselectie. Het resultaat wordt op de juiste klokflank in een register bewaard.

Uitleg · 23.10

Multiplexer: selectie is ook een logische functie

10/19

Een 2-naar-1-multiplexer kiest A wanneer S=0 en B wanneer S=1: . EN-poorten laten het gekozen pad door; OF combineert. Een decoder doet de omgekeerde adresverdeling: een binair adres activeert één van meerdere lijnen.

Een 4-naar-1-mux heeft twee selectiebits; elk datapad krijgt een minterm. Deze bouwstenen maken datakeuze in een processor mogelijk. Een muxselectie die tijdens een overdracht wisselt kan een glitch geven; registreer de keuze waar timing dat vereist.

ABS (keuze)&A·¬S&B·S≥1Y¬SSYkeuzesignalen S en ¬S naar beide EN-poorten
De datalijnen en selectielabels hebben verschillende functies; dezelfde waarheidstabel kan met meerdere poortnetwerken worden gemaakt.
Uitgewerkt voorbeeld · 23.11

Register, teller en klokfrequentie

11/19
Een logische functie stap voor stap.
CLKDQ012345678910t (ms)
Het tijdsdiagram laat zien dat D tussen klokflanken mag veranderen zonder Q onmiddellijk te veranderen.
Gegeven
  • Vier D-flipflops vormen een binaire teller; één verhoging per stijgende klokflank op 1 kHz.
Gevraagd
  • Functie, toets en implementatie.
Oplossing
  1. 1
    Iedere D-flipflop neemt D over op de actieve flank en houdt Q vast tussen flanken. De volgende tellerwaarde is (huidige+1) modulo16.
  2. 2
    Bit0 wisselt elke klokflank en heeft frequentie500 Hz; bit1 250 Hz, bit2 125 Hz, bit3 62,5 Hz.
  3. 3
    Na16 flanken is de teller terug op nul. Reset en enable zijn afzonderlijke voorwaarden; een teller hoeft niet bij iedere klok te verhogen.
Antwoord
De vier bits representeren16 toestanden en delen frequenties door machten van twee.
Klopt dit? Een ripplecounter heeft onderlinge vertraging; voor coherent adresgebruik is een synchroon ontwerp of geregistreerde uitlezing nodig.
Uitleg · 23.12

Latch en flipflop zijn geen synoniemen

12/19

Een latch is niveaugevoelig: bij actieve enable kan de uitgang de ingang volgen. Een D-flipflop is flankgevoelig: hij neemt de waarde op de actieve klokflank over. Registers zijn bundels opslagbits; een schuifregister verplaatst die bits op iedere gekozen flank.

Setup-tijd vraagt dat D vóór de flank stabiel is, hold-tijd erna. Een asynchroon signaal kan die voorwaarden schenden en metastabiliteit veroorzaken. Een twee-flipflopsynchronisator vermindert de kans dat die onbepaalde toestand doorwerkt; hij levert geen wiskundige garantie van nul risico en synchroniseert geen willekeurige meerbitsbus atomair.

Toshiba beschrijft de synchronisator. De noodstop-energieweg mag niet eerst wachten op een Pi-klok of een gewone monitor-synchronisator.

D-opslag op een geldige actieve flank
Uitleg · 23.13

Van poorten naar een processor

13/19

Een processor combineert een datapad (registers, ALU, multiplexers) met een besturing. Een program counter selecteert een instructie; een instructieregister houdt haar vast; decodering bepaalt welke registers en ALU-functie worden gebruikt. De klok ordent de stappen.

Een eenvoudige cyclus is ophalen, decoderen, uitvoeren en resultaat opslaan. Een toevoeging R1←R1+R2 laat de ALU twee registers lezen en schrijft de som terug. Instructies zijn bitpatronen die de hardware betekenis geeft; software verandert de opeenvolging, niet het elementaire principe van de poorten.

Een microcontroller voegt geheugen en perifere circuits toe. Timers, ADC en communicatie kunnen zelfstandig werken terwijl de CPU een andere instructie uitvoert. Dat verklaart waarom PWM in i25 niet door een herhaalde Pythonaanroep gemaakt wordt.

vereenvoudigde uitvoerketen
Uitgewerkt voorbeeld · 23.14

Combinatorisch verzoek is nog geen veilige herstart

14/19
Een logische functie stap voor stap.
noodstop 2 kanalen+ grensbewakingveiligheidsmodulevergrendeling/resetcontactbewakingenergiecontactengevaarlijke takactuatorPi: verzoek/statusPi kan stop niet overbruggenfeedback contacten
De veiligheidsmodule onderbreekt fysiek de gevaarlijke energietak, onafhankelijk van het softwareverzoek.
Gegeven
  • Gezonde noodstop/grenzen H=1, softwareverzoek R=1; simpele uitgang Y=HR. Noodstop wordt ingedrukt en losgelaten.
Gevraagd
  • Functie, toets en implementatie.
Oplossing
  1. 1
    Bij indrukken H=0, Y=0. De software kan ondertussen vast op R=1 blijven staan.
  2. 2
    Na loslaten H=1 wordt Y direct weer1. De AND-poort vergeet de stop en veroorzaakt automatisch herstart.
  3. 3
    Introduceer een vergrendeling q=1 na stop en bij opstart. Alleen een geldige handmatige resetflank met R=0 en gezonde voorwaarden maakt q=0.
Antwoord
Het station vereist toestand naast combinatorische vrijgave.
Klopt dit? Een vastgehouden reset is geen nieuwe flank; herstel van voeding of communicatie is geen toestemming tot herstart.
Code · 23.15

Stopdominant geheugen exhaustief toetsen

15/19

Dit functionele model bewijst de bedoelde logica, niet de betrouwbaarheid van een zelfgebouwde veiligheidsmodule. q=1 is vergrendeld. Gezond=False heeft altijd voorrang; reset vraagt een menselijke flank, gezonde voorwaarden en afwezig verzoek. Start daarna vraagt opnieuw een verzoek.

Pythonlogica.py27 regelsDownload
# logica.py — exhaustieve combinatorische tests en functioneel latchmodelfrom itertools import productdef opteller(a,b,c):    return a^b^c, (a and b) or ((a^b) and c)for a,b,c in product((0,1),repeat=3):    s,co = opteller(a,b,c)    assert s + 2*co == a+b+cprint("volle opteller: alle 8 combinaties correct") def stap(q, gezond, aanvraag, resetflank):    stop = not gezond    reset_ok = resetflank and gezond and not aanvraag    # stopdominant; q=1 betekent vergrendeld    qnieuw = stop or (q and not reset_ok)    uit = gezond and aanvraag and not qnieuw    return bool(qnieuw),bool(uit) q = True  # opstart vergrendeldscenario = [(1,0,1),(1,1,0),(0,1,0),(1,1,1),(1,0,1),(1,1,0)]for k,(goed,aan,reset) in enumerate(scenario):    q,y = stap(q,goed,aan,reset)    print(k,"gezond",goed,"aanvraag",aan,"resetflank",reset,"slot",int(q),"uit",int(y))assert q is False and y is Truefor q,goed,aan,reset in product((False,True),repeat=4):    qn,y = stap(q,goed,aan,reset)    assert goed or (qn and not y)print("stop heeft voorrang in alle 16 toestand/invoercombinaties")
volle opteller: alle 8 combinaties correct
0 gezond 1 aanvraag 0 resetflank 1 slot 0 uit 0
1 gezond 1 aanvraag 1 resetflank 0 slot 0 uit 1
2 gezond 0 aanvraag 1 resetflank 0 slot 1 uit 0
3 gezond 1 aanvraag 1 resetflank 1 slot 1 uit 0
4 gezond 1 aanvraag 0 resetflank 1 slot 0 uit 0
5 gezond 1 aanvraag 1 resetflank 0 slot 0 uit 1
stop heeft voorrang in alle 16 toestand/invoercombinaties
Proef · 23.16

Poorten testen met stabiele laagspanningsingangen

16/19
Onderzoeksvraag
Een demonstratie koppelt waarheidstabel en elektrische grenzen.
Materiaal
  • logica-IC op passende laagspanning
  • schakelaars met pull-up/pull-down
  • led met weerstand
  • logic analyzer
VeiligheidDit is een oefencircuit op laagspanning; sluit het niet aan op een echte noodstopenergieweg.
Werkwijze
  1. 1Lees VIL/VIH en voedingsgrenzen uit de datasheet van het gebruikte IC.
  2. 2Geef alle ingangen een vast niveau; meet alle combinaties van EN, OF en XOF.
  3. 3Vergelijk gemeten waarden met waarheidstabel; observeer vervolgens contactdender via de analyzer.
  4. 4Test een D-flipflop met een gekende klok en stabiele data ruim vóór/na de flank.
Waarneming
Stabiele ingangcombinaties volgen de tabel; een mechanische schakelaar kan meerdere snelle flanken veroorzaken.
Verklaring
De Booleaanse tabel abstraheert spanning en tijd. Pullweerstanden, ontdendering en timing maken de uitvoering bruikbaar.
Verhaal · 23.17

Een veiligheidsrelais bewaakt ook zijn eigen contacten

17/19

Een veiligheidsfunctie kan niet alleen steunen op een ideale AND-poort. Vastgelaste contacten, draadbreuk, kruissluiting en een vastgehouden reset veranderen de feitelijke toestand. Een geschikte veiligheidsmodule combineert signaalverwerking met bewaakte contacten en startvoorwaarden.

De Pilz PNOZ s2-handleiding onderscheidt automatisch en bewaakt handmatig starten en geeft feedbackkringen. Die bron leert vooral dat reset en onverwachte herstart expliciet ontworpen worden. Habitat kiest hier de functionele eisen; componentselectie en aansluiting vragen de toepasselijke veiligheidsbeoordeling en fabrikantvoorschriften.

noodstop 2 kanalen+ grensbewakingveiligheidsmodulevergrendeling/resetcontactbewakingenergiecontactengevaarlijke takactuatorPi: verzoek/statusPi kan stop niet overbruggenfeedback contacten
De Pi leest status en vraagt werking, maar krijgt geen pad om een fysieke stop te overbruggen.
Naslag · 23.18

Logica, tijd en veiligheidsvoorwaarden

18/19
De Morgan
symboolbetekeniseenheid
Booleaanse ingangen1
som van volle opteller
symboolbetekeniseenheid
sombit1
2-naar-1-multiplexer
symboolbetekeniseenheid
selectiebit1
stopdominante vergrendeling
symboolbetekeniseenheid
vergrendeld1
GrensBetekenis
VIL/VIHgegarandeerde logische spanningsgebieden
setup/holddata stabiel vóór en na actieve flank
resetflanknieuwe handmatige actie, geen blijvend hoog signaal
opstartvergrendeld tot geldige reset
Het geheel · 23.19

Het geheel: logische eisen worden fysiek getoetst

19/19

f24 en i27 koppelden input en programma. Hier zie je dat programma's op poorten en geheugen draaien. e34 beschrijft algoritmen; e37 embedded communicatie. e46 onderzoekt fouten, terwijl e45 eisen traceerbaar maakt. Dezelfde waarheidstabel ondersteunt specificatie, simulator en testplan.

Van ingang naar actuator.

Software gebruikt logische keuzes.

Poortfunctie is niet hetzelfde als fouttolerantie.

Habitat

Functionele eisen: gevaarlijke energietak heeft hardwarematige vrijgave, stopdominante vergrendeling, vergrendelde opstart, bewaakte menselijke resetflank met aanvraag uit, geen herstart door loslaten/voedingsherstel, feedback van energiecontacten en onafhankelijke thermische grens. De Pi kan geen stop overbruggen. Ventilatie/levensondersteuning krijgt een risicogestuurde veilige toestand; 'alle energie uit' is daarvoor niet automatisch veilig. Dit is geen claim van een gecertificeerde poortschakeling.

Samenvatting

In het kort

Begrippen

Wat je nu kent

combinatorische logica
Uitgang volgt huidige invoer zonder opgeslagen toestand.
sequentiële logica
Uitgang hangt ook van opgeslagen toestand af.
Karnaughkaart
Gray-geordende kaart waarin buren slechts één bit verschillen.
hazard
Korte ongewenste uitgangsovergang door verschillen in propagatievertraging.
stopdominant
Gelijktijdige stop en reset resulteren in stop.
Aan de slag in het werkboek12 opdrachten, van oefenen tot uitdagen