OPGAVEN BIJ HET VAK INLEIDING DIGITALE TECHNIEK MET UITWERKINGEN



Vergelijkbare documenten
Inleiding Digitale Techniek

Opgaven. en uitwerkingen bij het boek Digitale Techniek. Jesse op den Brouw

Inleiding Digitale Techniek

VOORBLAD SCHRIFTELIJKE TOETSEN

Inleiding Digitale Techniek

Inleiding Digitale Techniek

Opdracht week 4 INLDIG 1

Informatica 2. Met uitwerkingen n.a.v. document van Elvire Theelen in Luc bijgewerkt door Peter van Diepen

EE1410: Digitale Systemen BSc. EE, 1e jaar, , vragencollege 1

Uitwerkingen Rekenen met cijfers en letters

2 Elementaire bewerkingen

2 Elementaire bewerkingen

Inleiding Digitale Techniek

Rekenen met cijfers en letters

Antwoorden vragen en opgaven Basismodule

Faculteit Elektrotechniek - Capaciteitsgroep ICS Tentamen Schakeltechniek. Vakcodes 5A010/5A050, 19 januari 2004, 9:00u-12:00u

Rekenen aan wortels Werkblad =

Jan Genoe KHLim. Reken schakelingen. Jan Genoe KHLim

Praktisch bestaan er enkele eenvoudige methoden om een decimaal getal om te zetten naar een binair getal. We bespreken hier de twee technieken.

Faculteit Elektrotechniek - Leerstoel ES Tentamen Schakeltechniek. Vakcode 5A050, 19 januari 2005, 14:00u-17:00u

Faculteit Elektrotechniek - Leerstoel ES Tentamen Schakeltechniek. Vakcode 5A050, 19 januari 2005, 14:00u-17:00u

Faculteit Elektrotechniek - Leerstoel ES Tentamen Schakeltechniek. Vakcode 5A050, 17 november 2004, 9:00u-12:00u

THEORIE TALSTELSELS. 1 x 10 0 = 1 (een getal tot de macht 0 = 1) 8 x 10 1 = 80 2 x 10 2 = x 10 3 = Opgeteld: 9281d(ecimaal)

Proeftentamen Digitale technieken

1 Rekenen met gehele getallen

4,7. Praktische-opdracht door een scholier 1959 woorden 1 juni keer beoordeeld

Basisvaardigheden algebra. Willem van Ravenstein Den Haag

Inleiding Digitale Techniek

Logische functies. Negatie

Antwoorden zijn afgedrukt!!!!!!!

Studentnummer:... Opleiding:...

Hexadecimale en binaire getallen

Inleiding Digitale Techniek

Faculteit Elektrotechniek - Capaciteitsgroep ICS Tentamen Schakeltechniek. Vakcodes 5A010/5A050, 26 november 2003, 14:00u-17:00u

De wissel-eigenschap voor vermenigvuldigen Vermenigvuldigen kan in omgekeerde volgorde gebeuren, want voor ieder paar getallen a enbgeldt: a b=b a.

Willem van Ravenstein

3.1 Haakjes wegwerken [1]

Wouter Geraedts Processen & Processoren

b) Geef het schema van een minimale realisatie met uitsluitend NANDs en inverters voor uitgang D.

Les A-03 Binaire en hexadecimale getallen

Memoriseren: Een getal is deelbaar door 10 als het laatste cijfer een 0 is. Of: Een getal is deelbaar door 10 als het eindigt op 0.

Logische schakelingen

Digitale technieken Deeltoets II

Alles op de kop. Dobbelsteen D02i werkt precies andersom! Johan Smilde

8.1 Herleiden [1] Herleiden bij vermenigvuldigen: -5 3a 6b 8c = -720abc 1) Vermenigvuldigen cijfers (let op teken) 2) Letters op alfabetische volgorde

Wiskunde klas 3. Vaardigheden. Inhoudsopgave. 1. Breuken Gelijksoortige termen samennemen Rekenen met machten Rekenen met wortels 4

Project Digitale Systemen

Hoofdstuk 6: Digitale signalen

Hoofdstuk 20. Talstelsels

logische schakelingen & logica

Machten, exponenten en logaritmen

1. REGELS VAN DEELBAARHEID.

b) Teken op de bijlage welke lampjes van het klokje branden om 19:45:52. Schrijf eronder hoe je dit bepaald/berekend hebt. (3p)

8.1 Herleiden [1] Herleiden bij vermenigvuldigen: -5 3a 6b 8c = -720abc 1) Vermenigvuldigen cijfers (let op teken) 2) Letters op alfabetische volgorde

talstelsels F. Vonk versie

vrijdag 20 januari 2006 Blad 1 tijd: uur achternaam: voorletters: identiteitsnummer: opleiding:

Breuken met letters WISNET-HBO. update juli 2013

Getalformaten, timers en tellers

Breuksplitsen WISNET-HBO NHL. update juli 20014

Deeltoets Digitale technieken

Processoren. Marc Seutter & David N. Jansen 12 November 2013

1 Rekenen in eindige precisie

Elementaire rekenvaardigheden

5.1 Herleiden [1] Herhaling haakjes wegwerken: a(b + c) = ab + ac (a + b)(c + d) = ac + ad + bc + bd (ab) 2 = a 2 b 2

logische schakelingen & logica antwoorden

Talstelsels, getalnotaties en Ascii code

Zomercursus Wiskunde. Katholieke Universiteit Leuven Groep Wetenschap & Technologie. September 2008

Vergelijkingen met breuken

1.3 Rekenen met pijlen

Het grondtal van het decimaal stelsel is 10. Voorbeeld: het getal Poorten De tellereenheid Mevr. Loncke 1

Logische algebra. 1. Wat zijn Booleaanse variabelen? 2. Bewerkingen op Booleaanse variabelen. 2.1 Inversie. 2.2 Product

Magidoku s en verborgen symmetrieën

EXACT- Periode 1. Hoofdstuk Grootheden. 1.2 Eenheden.

6.1 Kwadraten [1] HERHALING: Volgorde bij berekeningen:

3.2 Basiskennis De getallenlijn Symbolen, tekens en getallen. 92 Algebra. Inhoofdstuk1zijnaandeordegeweest: Het=teken. =staat.

Wouter Geraedts Processen & Processoren

1.1 Rekenen met letters [1]

Inleiding Digitale Techniek. Week 7 Schuifregisters Jesse op den Brouw INLDIG/

Proeftentamen in1211 Computersystemen I (NB de onderstreepte opgaven zijn geschikt voor de tussentoets)

Wortels met getallen en letters. 2 Voorbeeldenen met de (vierkants)wortel (Tweedemachts wortel)

slides12.pdf December 14,

scc = b) CD AB

Het Land van Oct. Marte Koning Frans Ballering. Vierkant voor Wiskunde Wiskundeclubs

Binair Binair = tweewaardig Beperkt aantal mogelijke waarden (discreet aantal in amplitude) Wij zijn gewoon aan decimaal (tiendelig)

Exact periode = 1. h = 0, Js. h= 6, Js 12 * 12 = 1,4.10 2

Onthoudboekje rekenen

Tentamen Computersystemen

= (antwoord )

Examencursus. wiskunde A. Rekenregels voor vereenvoudigen. Voorbereidende opgaven VWO kan niet korter

Logische Schakelingen

1 Delers 1. 3 Grootste gemene deler en kleinste gemene veelvoud 12

Proeftentamen in1211 Computersystemen I (Opm: de onderstreepte opgaven zijn geschikt voor de tussentoets)

Hoofdstuk 4. Digitale techniek

3.1 Kwadratische functies[1]

Zomercursus Wiskunde. Module 1 Algebraïsch rekenen (versie 22 augustus 2011)

Rekenen met computergetallen

Hoofdstuk 1 : REKENEN

IMO-selectietoets I woensdag 5 juni 2013

Toets Digitale Systemen 01/06/2006, uur

4.1 Negatieve getallen vermenigvuldigen [1]

Transcriptie:

OPGAVEN BIJ HET VAK INLEIDING DIGITALE TECHNIEK MET UITWERKINGEN J.E.J. op den Brouw De Haagse Hogeschool Opleiding Elektrotechniek 28 maart 25 J.E.J.opdenBrouw@hhs.nl

Week.. Ontwerp een omschakelbare buffer/not..2. Hoe kan je van een NAND een NOT maken?.3. Hoe kan je van een NOR een NOT maken?.4. Bepaal de waarheidstabel van een EXOR waarvan één ingang geïnverteerd is..5. De beschrijving van een AND is: de uitgang is als alle ingangen zijn. Hoe zou de beschrijving zijn als er van de en wordt uitgegaan?.6. Hoeveel verschillende functies zijn er te maken met twee variabelen?.7. Een automatische kolomboor heeft twee eindmelders: één aan de bovenkant en één aan de onderkant. Een melder kan open zijn (boor is daar niet) of gesloten zijn (boor is daar wel). Zie figuur. eindmelder boor eindmelder Hoeveel combinaties van open en gesloten zijn mogelijk? Welke combinatie komt nooit voor? Stel een tabel op met alle mogelijkheden en geef aan met een paar woorden wat de mogelijkheden inhouden..8. Een elektrisch schema met schakelaars kan ook als een digitaal systeem worden gezien. Een bekende schakeling is de zogenaamde wisselschakeling die veel bij trappen voorkomt. Hieronder het schakelschema. S S2 L schakelaar in rust: schakelaar geactiveerd: lamp uit: lamp brandt: Vraag: geef de waarheidstabel van de wisselschakeling. Opgaven INLDIG 2 / 55

.9. In de voorgaande slides werd één ingang de AND en OR steeds afwisselend met een of verbonden, of werden de ingangen gewoon of geïnverteerd verbonden. Probeer het zelf eens met de EXORpoort... Probeer hetzelfde met een EXNOR... Hoe kan je een EXOR eenvoudig in een EXNOR omzetten?.2. Probeer zelf eens de eenvoudigste vorm te vinden van de volgende functies: a b y a b y.3. Maak een buffer, NAND, NOR en EXNOR met behulp van NANDs. a b y.4. Gegeven de functie: y = a b + a b Ontwerp deze functie met alleen NANDs..5. Gegeven onderstaande schakeling. Bepaal f als functie van x en y. x b a f y c.6. Gegeven de volgende functie: f = (a + b) (c + d) Ontwerp met alleen NORs..7. Gegeven de waarheidstabel: a b y Ontwerp de bijbehorende schakeling met alleen NANDs. Ontwerp de bijbehorende schakeling met alleen NORs. Dit mogen ook poorten zijn met meer dan twee ingangen. Opgaven INLDIG 3 / 55

Week 2 2.. Zet om van binair naar decimaal: 2 2 2 2 2.2. Zet om van decimaal naar binair: 25 28 27543 2.3. Met tien vingers kan je ook van t/m 23 tellen door binaire codering te gebruiken. Een is dan een gebogen vinger en een is een gestrekte vinger. Waarom levert het getal 32 toch problemen op in het dagelijks gebruik? 2.4. Zet om van hexadecimaal naar decimaal: 3FF 6 4D52 6 CAFE 6 2.5. Zet om van decimaal naar hexadecimaal: 255 575 32768 2.6. Hoeveel unieke adressen zijn mogelijk met IPv6? 2.7. Hoeveel unieke IPv6adressen zijn er mogelijk per vierkante meter aardoppervlakte? 2.8. Zet de volgende binaire breuken om in decimale breuken:, 2, 2 2.9. Zet de volgende decimale breuken om in een binaire breuken:,75,3,8 2.. Zet de volgende getallen om:,7 hex F,3C 6 dec 3F,EA 6 bin, 2 hex 2.. Hoewel zelden toegepast, komt in de praktijk ook het octale of achttallig talstelsel voor. Hierbij worden alleen de cijfers t/m 7 gebruikt. Wat is de decimale waarde van 377 8 en 27 8? Wat is de binaire waarde van deze twee octale getallen? 2.2. In een bepaald talstelsel blijkt het getal 4 gelijk te zijn aan het kwadraat van 5. In welk talstelsel staan deze getallen geschreven? Opgaven INLDIG 4 / 55

2.3. Op de planeet Mars is een getal ontdekt in een onbekend talstelsel. Na veel puzzelen komen de onderzoekers er achter dat het marsiaanse getal 234 overeenkomt met aardse getal 23. In welk talstelsel zijn de marsiaanse getallen genoteerd? 2.4. Een gebruiker probeert het decimale getal 653 op te slaan in 8 bits. Helaas is het getal te groot; een deel wordt niet opgeslagen. Welk getal staat er in de 8 bits na invoer? 2.5. Geef een algemene uitdrukking voor de verzameling getallen die opgeslagen in n bits het getal M oplevert met M 2 n. 2.6. Hoeveel bits zijn er nodig om een 8cijferig decimaal getal op te slaan? 2.7. Hoeveel bits zijn er nodig om de decimale getallen 365, 24, 7987 en 7689 op te slaan? 2.8. Hoeveel procent van de codecombinaties van een tweecijferig BCDgetal kan nuttig worden gebruikt? En bij driecijferig? 2.9. Ontwerp een schakeling die een (zuiver) 3bits binaire code omzet in een 3bits Graycode. Hint: EXOR rules. 2.2. Ontwerp een schakeling die een 3bits Graycode omzet in een (zuiver) 3bits binaire code. EXOR rules again? 2.2. Laat zien dat het eenvoudig is om in de ASCIIcode hoofdletters te veranderen in kleine letters (en andersom). 2.22. Met een 7segment decoder kunnen de cijfers t/m 9 worden gedecodeerd voor aansturing van een 7segment display. De zes niet gebruikte combinaties kunnen toch zinvol worden gebruikt voor het afbeelden van A t/m F zodat ook hexadecimale cijfers kunnen worden afgebeeld. Hoe zouden die letters op en 7segment display er uit zien? 2.23. Ontwerp een schakeling voor segment B. 2.24. Ontwerp een schakeling voor segment A indien don t cares worden meegenomen. Opgaven INLDIG 5 / 55

Week 3 3.. Gegeven dat a =, b = en c =. Werk de volgende functies uit. De waarde van d is niet gegeven. s = (a + b) (b + c) s = (a + b) (c + d) s = b (c + d (c + a)) 3.2. Laat zien dat de regel x + x y = x klopt. 3.3. Laat zien dat de regel x + x y = x + y klopt. 3.4. Gegeven de functie: s = x (y + z y) + z y Bepaal de mintermvorm van deze functie. Bepaal de waarheidstabel van deze functie. 3.5. Gegeven een functie van drie variabelen waarvoor geldt dat de functie voor xyz = en xyz = don t care is en dat de functie een geeft als x = terwijl z =. Geef de waarheidstabel. 3.6. Probeer zelf op te lossen: ab c ab F F c ab c F 3.7. Gegeven de functies: f x,y,z = m(,,2,6) f a,b,c = m(,2,5,6,7) f s2,s,s = m(,3,6) + d(,2) Stel de Karnaughdiagrammen op en geef de functies. Teken de bijbehorende schakelingen met NOT, AND en OR. 3.8. Ontwerp een majority gate. Dit is een schakeling met drie ingangen en één uitgang. De uitgang is als de meerderheid van de ingangen is, anders is de uitgang. Opgaven INLDIG 6 / 55

3.9. Probeer zelf op te lossen: ab cd x 3 x 2 S A x x ab cd x 3 x 2 S A x x 3.. Gegeven twee 4x multiplexers. Deze worden aangesloten volgens onderstaand schema. Bepaal de waarheidstabellen. X X X X 3 mux 4x S X X 3 mux 4x C Y Z Y Z Opgaven INLDIG 7 / 55

Week 4 4.. Tel de volgende binaire getallen op: + + + 4.2. Toon aan dat: c out = c in (a b) + c in (a + b) = a b + a c in + b c in 4.3. Toon aan dat: c out = a b + a c in + b c in = a b + c in (a b) 4.4. Als de functies van s en c out vanuit de en zouden worden gemaakt, wordt de functie dan kleiner (minder poorten)? 4.5. Hieronder is de full adder die eerder is besproken nog eens afgebeeld, maar nu is de bingang aan een logische gekoppeld. Vereenvoudig het schema ( minimaliseer b weg ). Doe hetzelfde voor b is logisch. c in a = = s c out 4.6. Ontwerp volgens de bekende oplossingsstructuur van digitale systemen een 2x2bit vermenigvuldiger. 4.7. Ontwerp een schakeling die test of twee nietnegatieve 4bit getallen gelijk zijn. 4.8. Ontwerp een 4x4 bit carry save multiplier (tip: uiteraard heeft iemand dat allang gedaan). 4.9. Hoeveel optellers zijn er nodig voor een 5x3bit vermenigvuldiger? Hoe breed zijn de optellers? Opgaven INLDIG 8 / 55

Week 5 5.. Reken om van decimaal naar 8bit 2 s complement: +5, 5,, 64, +25, 25 5.2. Reken uit in 2 s complement en let daarbij op overflow en tekenuitbreiding: + + + + 5.3. Geef het decimale equivalent van de volgende hexadecimale 2 s complement getallen: FFFF 6 53BA 6 CB 6 7EA3 6 5.4. Wat zijn de kleinste en grootste decimale waarden van een hexadecimaal 2 s complement getal van 8 cijfers? 5.5. Schrijf als hexadecimale 2 s complement getallen met vier cijfers: F 6 6 6 7A 6 CB 6 35B 6 D73 6 5.6. Negatieve getallen in BCDformaat worden weergegeven in s complement. Dit is rekenkundig te doen door het BCDgetal af te trekken van 9...9 en daarna er bij op te tellen (uiteraard met een BCDopteller). Dit aftrekken van 9...9 is het zogenaamde 9 s complement. Het voordeel van hiervan is dat per kolom niet geleend hoeft te worden. Ontwerp een digitale schakeling waarin een aangeboden BCDcijfer wordt afgetrokken van 9. Stel een waarheidstabel op, minimaliseer de functies m.b.v. Karnaughdiagrammen en teken de schakeling van de functies met poorten naar eigen keuze. 5.7. Een nadeel van 2 s complement is dat het bereik asymmetrisch is, bijvoorbeeld 8 t/m +7. Is het mogelijk om met een 4bit FA toch +8 op te tellen bij een getal? Motiveer je antwoord. 5.8. Het probleem van BCDgetallen is dat er per BCDdigit zes binaire codecombinaties niet gebruikt worden. De bekende excess3code is een methode om snellere BCDoptellers te maken. Van elke BCDcijfer kan het excess3cijfer worden gemaakt door bij het BCDcijfer 3 op tellen dus 4 () wordt dan 7 (). Ontwerp een digitale schakeling voor de BCDtoexcess3 encoder. Wat gebeurt er als je alle bits van de (geldige) excess3codecijfer inverteert? Opgaven INLDIG 9 / 55

Week 6 6.. Gegeven onderstaand schema. Van één full adder is gegeven: t P (min) (FA) = 2 ns, t P (max) (FA) = 5 ns. Bepaal de minimale en maximale vertragingstijd van deze 4bit fulladder. 6.2. En hoe zit het met die tijden als op b 3 b 2 b b = wordt geplaatst? 6.3. Wat is de periodetijd van 33,3 MHz? En 3,4 GHz? Wat is de frequentie van 2 ns? En 4,67 µs? 6.4. Op enkele slides zijn het SRlatch met overheersende set en reset behandeld. De don t cares waren dan ingevuld als en en als en. Het zijn twee don t cares, dus er zijn vier combinaties mogelijk. Ontwerp SRlatches voor de twee overgebleven combinaties. Zijn de ontwerpen zinvol? 6.5. Gegeven de onderstaande schakeling. Realiseert deze schakeling een goedwerkend geheugenelement? A B Z 6.6. Is het mogelijk om een SRlatch te maken met de onderstaande SRcombinaties? Motiveer je antwoord. SR = SR = SR = SR = onthouden niet gebruikt reset set 6.7. Vul het eerder gegeven timingdiagram in maar nu voor een SRlatch met overheersende reset. 6.8. In het symbool van een SRlatch komt de uitgang Z voor. Dat suggereert dat dit de inverse is van Z. Is dat voor elke combinatie van S en R? Opgaven INLDIG / 55

6.9. Onderstaande schakeling lijkt op een gated Dlatch. Is dit een correct werkende gated Dlatch? Motiveer je antwoord. D Z EN 6.. Een tweedeler is een schakeling die op commando van een enablepuls geacht wordt één maal van uitgangswaarde te veranderen. Als de uitgang is wordt dit en omgekeerd. Is een tweedeler te maken met één latch en poorten? En met twee latches en poorten? 6.. Op één van de slides staat dat voor een masterslave flipflop moet gelden t P (max) (NOT) + t h (Zlatch) < t P (min) (Ylatch) Toon dit aan met een timingdiagram en verklaar deze. 6.2. Een gated Dlatch voldoet aan de volgende functie: Z nieuw = EN Z oud + EN D en kan worden gebouwd met behulp van een multiplexer. EN D MUX Z D EN Z Toon aan dat dataoverdracht niet betrouwbaar verloopt. Hint: bekijk de situatie Z =, D = en EN gaat van. 6.3. Probeer een double edgetriggered Dflipflop te ontwerpen. Dit is een flipflop die op beide flanken reageert. 6.4. Een Tflipflop is een flipflop die van stand (waarde) verandert onder besturing van een stuursignaal T. Het (steeds weer) veranderen van stand wordt toggelen genoemd. Ontwerp deze Tflipflop, er mag uiteraard niet geschakeld worden in de kloklijn. 6.5. Eerder is een ontwerp van een schuifregister aan bod gekomen. Deze schakeling schuift (althans op tekening) naar rechts. Ontwerp nu een schuifregister dat zowel rechtsom als linksom kan schuiven (gebruik een stuursignaal). Opgaven INLDIG / 55

6.6. De functie van een JKflipflop is Q n+ = J n Q n + K n Q n Toon dit aan met behulp van een Karnaughdiagram. 6.7. Van een latch zijn gegeven t su (ENtoZ) = 5 ns, t h (ENtoZ) = ns. De klok loopt op 5 MHz en heeft een duty cycle van 5%. Wat is de tijd dat D stabiel moet blijven? 6.8. Maak van een edgetriggered Dflipflop met asynchrone preset en clear een SRlatch. Opgaven INLDIG 2 / 55

Uitwerking opgave.. Eerst maar eens een inventarisatie van de signalen. Een ingangssignaal moet óf onveranderd worden doorgelaten óf geïnverteerd worden. Er is een signaal nodig dat de data kan aanleveren. De keuze tussen doorlaten of inverteren moet met een tweede signaal gedaan worden, een zogenaamd stuursignaal. Natuurlijk is er één uitgang. Het datasignaal noemen we a, het stuursignaal noemen we m (van mode). De uitgang noemen we f. We maken een keuze in de besturing: signaal a wordt onveranderd doorgelaten als m = en geïnverteerd als m =. De functie is als volgt te schrijven: f = a als m = a als m = De waarheidstabel en de functie zijn eenvoudig op te stellen en af te leiden. m a f a doorgeven a inverteren De functie levert twee enen die niet te combineren zijn: s m, a = a m + a m = a m De omschakelbare buffer/not is de bekende EXORfunctie! Uitwerking opgave.2. Een NAND kan je op twee manieren schakelen als een NOT (of inverter). De functie van de NAND is f = x y. Een mogelijkheid is de signalen x en y met elkaar te verbinden (we noemen het signaal nu a). Een andere mogelijkheid is om één ingang aan een logische te verbinden (de andere ingang noemen we nu ook a). Aldus x = a,y = a f = a a = a x = a,y = f = a = a a f a f Uitwerking opgave.3. Een NOR kan je op twee manieren schakelen als een NOT (of inverter). De functie van de NOR is f = x + y. Een mogelijkheid is de signalen x en y met elkaar te verbinden (we noemen het signaal nu a). Een andere mogelijkheid is om één ingang aan een logische te verbinden (de andere ingang noemen we nu ook a). Aldus x = a,y = a f = a + a = a x = a,y = f = a + = a a f a f Opgaven INLDIG 3 / 55

Uitwerking opgave.4. In onderstaande waarheidtabel is de functie gegeven van een EXOR waarvan één ingang (y) geïnverteerd wordt aangeboden. x y De verkregen functie is die van de EXNOR. = f x y y f = x y Uitwerking opgave.5. De AND is als volgt met en te beschrijven: De uitgang is logisch als één of meer ingangen logisch zijn. Een andere is: De uitgang is logisch als de ene ingang logisch is óf de andere ingang logisch is óf beide ingangen logisch zijn. In beide gevallen is duidelijk de term of te lezen: vanuit de en gezien is het een ORfunctie. Uitwerking opgave.6. Met twee variabelen kunnen vier combinaties gemaakt worden. Dat levert o.a. de bekende AND en ORfuncties op. Maar er zijn meer functies te maken: NAND, NOR, EXOR en NOT. In feite kunnen de vier functiewaarden de combinaties t/m aannemen. Met twee variabelen zijn dus zestien functies te maken. Uitwerking opgave.7. Er zijn twee eindmelders, we noemen ze E T (top) en E B (bottom). Elk van deze melders kan óf open óf gesloten zijn, per melder dus twee mogelijkheiden. In totaal zijn er vier mogelijkheden of combinaties. Eén combinatie komt in de praktijk (hopelijk) niet voor. We stellen een tabel op om wat meer duidelijkheid te krijgen. E T E B positie boor open open boor is tussen de melders open gesloten boor is beneden gesloten open boor is boven gesloten gesloten kan niet voorkomen Het mag duidelijk zijn dat de situatie van twee gesloten eindmelders niet voor kan komen. Dit duidt op een systeemfout. Opgaven INLDIG 4 / 55

Uitwerking opgave.8. We stellen een tabel op voor open en gesloten schakelaars en voor gedoofde of brandende lamp. We stellen een identieke tabel op maar nu vervangen we de termen open en gedoofd met een en de termen gesloten en brandt met. S S 2 L open open gedoofd open gesloten brandt gesloten open brandt gesloten gesloten gedoofd S S 2 L Te zien is dat de schakeling de EXORfunctie realiseert. Uitwerking opgave.9. De functie van de EXOR is f = x y. Aan ingang x wordt de variabele a gekoppeld en aan ingang b worden achtereenvolgens de waarden,, a en a gekoppeld. Hierdoor vereenvoudigd de functie f. Zie onderstaande tabel. x = a,y = f = a = a x = a,y = f = a = a x = a,y = a f = a a = x = a,y = a f = a a = Uitwerking opgave.. De functie van de EXNOR is f = x y. Aan ingang x wordt de variabele a gekoppeld en aan ingang b worden achtereenvolgens de waarden,, a en a gekoppeld. Hierdoor vereenvoudigd de functie f. Zie onderstaande tabel. x = a,y = f = a = a x = a,y = f = a = a x = a,y = a f = a a = x = a,y = a f = a a = (Zoooooo, deze uitwerking lijkt wel heel erg op die van opgave.9.) Uitwerking opgave.. Een EXOR omzetten naar een EXNOR kan op twee manieren: inverteren van de uitgang van een EXOR of inverteren van één ingang van een EXOR (maakt niet uit welke ingang). Opgaven INLDIG 5 / 55

Het kan ook met behulp van de schakelalgebra bewezen worden. f = x y de functie met één geïnverteerde ingang = xy + x y uitschrijven in AND, OR en NOT = xy + x y dubbele inverse verwijderen = xy x y DeMorgan toepassen = (x + y) (x + y) DeMorgan toepassen = xx + xy + xy + yy uitvermenigvuldigen = + xy + xy + reductie inversen = xy + xy de EXNORfunctie = x y geschreven als een NOTEXORfunctie De eerste en de laatste functie zijn resp. een EXOR met één geïnverteerde ingang en een EXOR met geïnverteerde uitgang. Uitwerking opgave.2. Bij de linker waarheidstabel valt op dat de uitgang y is als ingang a is. De uitgang is ook als ingang b is. De functie voor deze tabel is y = a + b. Merk op dat dit de tabel is van een NANDpoort. Bij de middelste waarheidstabel valt op dat de uitgang y is als ingang a is. De uitgang is ook als ingang b is. De functie voor deze tabel is y = a + b. De rechter tabel levert een als a en b is. Daarnaast levert de tabel een als a en b is. Deze twee (uitgangs)enen zijn niet te combineren tot een kleinere functie. Merk op dat dit de tabel van een EXORpoort is. Uitwerking opgave.3. In deze opgave moet een aantal functies worden gerealiseerd met alleen NANDS. De buffer is natuurlijk te realiseren met twee NANDs geschakeld als inverters. De NAND is te maken met één NAND (echt waar!). De NOR en de EXNOR verdienen wat meer aandacht. De NOR is te schrijven als y = a + b = a b waarbij diverse NANDs geschakeld zijn als inverter. De EXNOR is wat lastiger: y = a b = a b = a b + a b = a b a b De schema s zijn in onderstaande figuur getekend. Opgaven INLDIG 6 / 55

a a y y b buffer NAND a y a b y b NOR EXNOR Uitwerking opgave.4. De functie is met behulp van De Morgen eenvoudig om te zetten in NANDs: y = a b + a b = a b a b De termen a en b kunnen gemaakt worden met een NAND geschakeld als inverter. Er zijn in totaal dan vijf NANDpoorten nodig. Zie het schema hieronder. a y b Uitwerking opgave.5. Hieronder is nogmaals de schakeling opgebouwd met vier NANDpoorten gegeven. Bij de interne knooppunten zijn de variabelen a, b en c geplaatst. D.m.v. een waarheidstabel met de functiewaarden van alle uitgangen kan de functie van f bepaald worden. x y a b c f x y a b c f Dit is de functie van een EXOR. Deze schakeling werd in de jaren 7 van de vorige eeuw vaak gebruikt want het was te bouwen met één 74 TTLIC. Opgaven INLDIG 7 / 55

Uitwerking opgave.6. Een ANDORconstructie is eenvoudig naar een NORNORconstructie om te zetten door één keer De Morgan toe te passen: f r = (a + b) (c + d) = a + b + c + d Het ANDORschema en het NORNORschema zijn hieronder weergegeven. a b a b f f c d c d Uitwerking opgave.7. Snel is te zien dat de functie logisch is als a = en/of b =. In formulevorm y = a + b. De formule is om te schrijven naar NANDs en NORs. y = a + b = a b y = a + b = a + b realisatie met NANDs realisatie met NORs De termen a en b kunnen gemaakt worden met een NAND of een NOR geschakeld als inverter. Zie de schema s hieronder. a b y a b y Opgaven INLDIG 8 / 55

Uitwerking opgave 2.. De getallen zijn om te zetten naar decimale equivalenten door alle 2machten te noteren waarvan het corresponderende bit een is en de en te negeren: 2 = 2 3 + 2 2 + 2 + 2 2 = 2 5 + 2 4 + 2 + 2 = 8 + 4 + 2 + = 32 + 6 + 2 + = 5 = 5 2 = 2 6 + 2 5 + 2 4 + 2 3 + 2 2 + 2 + 2 = 64 + 32 + 6 + 8 + 4 + 2 + = 27... 2 = 2 5 + 2 3 + 2 + 2 8 + 2 7 + 2 5 + 2 2 + 2 = 32768 + 892 + 24 + 256 + 28 + 32 + 4 + = 4245 Uitwerking opgave 2.2. De getallen worden van decimaal naar binair omgezet door herhaald de delen door 2 en rest na deling te noteren. Dit gaat door tot het gehele deel geworden is. Daarna kan het binaire equivalent uitgelezen worden door de resten na deling van onder naar boven te noteren. 25 2 = 2 2 = 5 2 2 = 6 5 2 = 2 6 2 = 3 2 2 = 3 2 = 2 = 2 = Dus 25 is gelijk aan 2 en is gelijk aan 2. 28 2 = 64 27543 2 = 377 64 2 = 32 377 2 = 6885 32 2 = 6 6885 2 = 3442 6 2 = 8 3442 2 = 72 8 2 = 4 72 2 = 86 4 2 = 2 86 2 = 43 2 2 = 43 2 = 25 2 = 25 2 = 7 7 2 = 53 53 2 = 26 26 2 = 3 3 2 = 6 6 2 = 3 3 2 = 2 = Opgaven INLDIG 9 / 55

Dus 28 is gelijk aan 2 en 27543 is gelijk aan 2. Uitwerking opgave 2.3. Deze leggen we niet uit.... Uitwerking opgave 2.4. Het uitrekenen geschiedt door de cijfers uit de hexadecimale getallen te schrijven als een 6 macht met in de exponent de positie van het cijfer (beginnend bij voor het meest rechtse hexadecimale cijfer) vermenigvuldigd met het corresponderende cijfer uit het hexadecimale getal. Let er op dat de hexadecimale cijfers A t/m F omgezet moeten worden naar de getallen t/m 5. 3FF 6 = 3 6 2 + 5 6 + 5 6 4D52 6 = 4 6 3 + 3 6 2 + 5 6 + 2 6 = 3 256 + 5 6 + 5 = 4 496 + 3 256 + 5 6 + 2 = 768 + 24 + 25 = 6384 + 3328 + 8 + 2 = 23 = 9794 CAFE 6 = 2 6 3 + 6 2 + 5 6 + 4 6 = 2 496 + 256 + 5 6 + 4 = 5966 Uitwerking opgave 2.5. 255 6 = 5 5 (F) 575 6 = 3562 3 (D) 5 6 = 5 (F) 3562 6 = 222 (A) 222 6 = 3 4 (E) 3 6 = 3 (D) Dus 255 is gelijk aan FF 6 en 575 is gelijk aan DEAD 6. Het hexadecimale equivalent van 32768 is 8 6. Dit is een macht van 2 (2 5 ). Uitwerking opgave 2.6. IPv6adressen zijn 28 bits groot. Aangezien elk bit een of een kan zijn, is het aantal adressen 2 28. Dat zijn 34.282.366.92.938.463.463.374.67.43.768.2.455 verschillende adressen. Zie http://en.wikipedia.org/wiki/ipv6_address. Leuk om te weten: het hele IPv4adressenbereik kan 2 96 keer in het IPv6adressenbereik. Dat is 79.228.62.54.264.337.593.543.95.336 keer. Uitwerking opgave 2.7. Voor het gemak gaan we ervan uit dat de aarde een bol is (dat is het namelijk niet). Onze aarde heeft een diameter van 6.37 km, dat is 6.37. m. De oppervlakte van een bol is Opgaven INLDIG 2 / 55

O = 4πr 2. Invullen en uitrekenen levert een opppervlakte van 5.64.47.99.788 m 2. Nu het aantal adressen delen door de oppervlakte, dat levert 667.35.99.959.828.999.55.555 IPv6 adressen per vierkante meter. We schrijven het even in machten om de grootte te overzien: 6,67 23. Dat is waarschijnlijk wel genoeg voor de komende tijd. Op de website https: //sagenb.kaist.ac.kr:866/home/pub/4/ (let op: geeft certificaatwaarschuwing) zijn nog meer interessante gegevens te vinden. Uitwerking opgave 2.8. Binaire breuken omzetten naar het decimale equivalent gaat op dezelfde wijze als het omzetten van gehele getallen, alleen zijn de machten nu negatief. Het gewicht van het eerste cijfer rechts van de komma is 2 = 2 en het tweede cijfer is 2 2 = 4 etc. Uiteraard worden alleen die machten genoteerd waarvoor het cijfer in het getal staat., 2 = 2 + 2 4, = 2 + 2 2 + 2 3 + 2 4 + 2 5 + 2 6 + 2 7 + 2 8 = 2 + = 6 2 + 4 + 8 + 6 + 32 + 64 + 28 + 256 =,5 +,625 =,5 +,25 + +,7825 +,39625 =,5625 =,9969375 Overigens het het slimmer om gebruik te maken van de gelijkheid, 2 = 2, 2 zodat het antwoord berekend kan worden met 8 of 256. Uitwerking opgave 2.9. Het omzetten van een decimale breuk naar het binaire equivalent wordt gerealiseerd door de decimale breuk te vermenigvuldigen met 2, het gehele getal te noteren ( of ) en de procedure te herhalen met de fractie totdat het resultaat van een vermenigvuldiging, oplevert. Zie hieronder.,75 2 =,5,3 2 =,6,5 2 =,,6 2 =,2,,2 2 =,4,4 2 =,8,8 2 =,6,6... Het getal,75 is gelijk aan, 2. Het getal,6 leidt tot de repeterende binaire breuk,... 2 wat inhoudt dat,6 niet exact kan worden weergegeven in het binaire stelsel! Dit geldt trouwens voor veel eindige decimale breuken. In de rechter berekening zijn de getallen,3,,2,,3 en,8 te zien, die zijn uiteraard ook niet exact weer te geven. Op eenzelfde wijze levert de omzetting van,8 het binaire getal,... 2 op. Uitwerking opgave 2.. Het getal is zo basaal, dat schrijven we direct op: B 6. Opgaven INLDIG 2 / 55

De decimale breuk kan eerst omgezet worden naar een binaire breuk en dan omgezet worden naar een hexadecimaal equivalent. Maar het kan sneller door het direct uit te rekenen als hexadecimale breuk:,7 6 =,2 B,2 6 = 3,2 3,2 Het getal,7 is equivalent met B,B3333... 6. Merk op dat het getal niet exact is weer te geven in het hexadecimale talstelsel. Het getal F,3C 6 naar decimaal omzetten gaat op de gebruikelijke manier. F,3C 6 = 6 + 5 6 + 3 6 + 2 6 2 = 6 + 5 + 3 6 + 2 256 = 3 +,875 +,46875 = 3,234375 Uitschrijven van een hexadecimaal getal als binair getal is eenvoudig weg alle hexadecimale cijfers vervangen door de bijbehorende 4bits binaire code: 3F,EA 6 =.,. 2 Let op de plaats van de punten en de komma. Leidende en volgende nullen zouden kunnen worden weggelaten. Bij het omzetten van het binaire getal, 2 moeten het gehele deel en de fractie eerst geschreven worden in veelvouden van vier bits, een hexadecimaal cijfer moet immers geschreven worden met precies vier bits. We breiden beide delen uit: het gehele deel krijgt voorlopende nullen, de fractie krijgt volgende nullen:, 2. Het getal is nu op te splitsen in delen van precies vier bits:., 2 en is direct te schrijven als het hexadecimale getal 36,DC 6. Uitwerking opgave 2.. In het octale (achttallig) talstelsel worden de cijfers t/m 7 gebruikt. Het omzetten van een octaal getal naar een decimaal getal geschiedt op de zelfde wijze als bij binaire en hexadecimale getallen. 377 8 = 3 8 2 + 7 8 2 + 7 8 27 8 = 8 2 + 2 8 2 + 7 8 = 3 64 + 7 8 + 7 = 64 + 2 8 + 7 = 92 + 56 + 7 = 64 + 6 + 7 = 255 = 87 Octale getallen bestaan uit acht verschillende cijfers. Acht is een macht van 2 (2 3 = 8) en dat houdt in dat een octaal getal eenvoudig is om te zetten in een binair getal en dus ook in een hexadecimaal getal. Opgaven INLDIG 22 / 55

In de programmeertaal C begint een octaal getal met een, dus 377 is 377 8 (255 ). Het toegangsrechtensysteem bij bestandssystemen onder Linux kan worden aangepast en weergegeven d.m.v. octale getallen. Zie http://linuxcommand.org/lts7.php. Onder Linux is het commando od (octal dump) beschikbaar om bestanden octaal (en hexadecimaal) weer te geven. Zie http://en.wikipedia.org/wiki/od_(unix). In de datacommunicatiewereld wordt niet gesproken van een byte maar een octet. Uitwerking opgave 2.2. Het getal 4 in onbekende talstelsel is gelijk aan het kwadraat van 5 in dit stelsel. Dus 4 x = (5 x ) 2. Daaruit volgt 4 x + x = (5 x ) (5 x ) Nu het een en ander herschrijven en vervolgens uitrekenen: 4x + = 25 4x = 24 x = 6 Het getal 4 staat in het zestallig (hexaal?) talstelsel. Uitwerking opgave 2.3. Het marsiaanse getal 234 is geschreven in het xtallig stelsel en dit getal is gelijk aan 23. Dan geldt 234 x = 23. We schrijven het marsiaanse getal uit in machten van x en stellen dit gelijk aan het decimale getal 23. 234 x = 2 x 2 + 3 x + 4 x = 2 x 2 + 3 x + 4 = 23 Deze vergelijking kan worden omgewerkt naar een tweedegraads vergelijking 2x 2 + 3x 9 = Oplossen met de ABCformule levert twee antwoorden op: x = 7 en x 2 = 8,5. Een grondtal moet een geheel getal groter dan 2 zijn waardoor x 2 afvalt. De marsiaanse getallen zijn in het 7tallig stelsel geschreven. Uitwerking opgave 2.4. Het getal 653 moet worden omgeslagen in acht bits. De vraag is natuurlijk hoe je zo n getal Zie http://www.wiskundeonline.nl/lessen/kw_bewijs_abc_formule.htm 2 Strikt genomen hoeft het grondtal geen geheel getal en/of positief te zijn. Je kan ook getallen weergeven met het grondtal 2 or π. Zie http://en.wikipedia.org/wiki/noninteger_representation Opgaven INLDIG 23 / 55

kan invoeren als het in acht bits moet worden opgeslagen, maar de Ccompiler doet dat. De bewerking is 653 mod 2 8 = 4 of 4 653 (mod 2 8 ) Onderstaande code is een implementatie in C die continue tekens inleest totdat een nietcijfer wordt ingevoerd. Met deze code is het goed mogelijk een getal in te voeren dat te groot is om in het resultaat opgeslagen te worden. #include <stdio.h> /* for getchar et al. */ int main(void) { unsigned char res; /* 8bit unsigned */ int x; /* 6bit signed */ } res = ; /* clear intermediate result */ x = getchar(); /* get a character */ while (isdigit(x)) { /* if it is a digit... */ res = res* + (x''); /* mult. prev. by, add new digit */ x = getchar(); /* get next character */ } printf("%d\n", res); return ; Uitwerking opgave 2.5. Onderstaande uitdrukkingen geven het verband aan. x M (mod 2 n ) x = k 2 n + M met k N Uitwerking opgave 2.6. Het aantal bits dat nodig is om een 8cijferig decimaal getal op te slaan, is eenvoudig te bepalen door de 2log van 8 te nemen en het antwoord af te ronden naar het eerst hogere gehele getal (er bestaan immers alleen hele bits). Dus 8 n = = 26,575 = 27 log 2 Natuurlijk kunnen er met 27 bits meer dan 8 getallen gemaakt worden. Uitwerking opgave 2.7. Om het aantal bits dat nodig is om een specifiek decimaal getal op te slaan uit te rekenen moet de 2log van het getal vermeerderd met uitgerekend worden. Natuurlijk moet weer worden afgerond naar het eerst hogere gehele getal. Opgaven INLDIG 24 / 55

log (365 + ) n 365 = = 8,5 = 9 log 2 log (24 + ) n 24 = =, = log 2 log (7987 + ) n 7987 = = 2,96 = 3 log 2 log (7689 + ) n 7689 = = 7,43 = 8 log 2 Concept Op http://www.exploringbinary.com/numberofbitsinadecimalinteger/ is een uitgebreid verhaal te vinden. Uitwerking opgave 2.8. Een tweecijferig BCDgetal gebruikt combinaties ( t/m 99). Hiervoor zijn acht bits nodig, vier bits per BCDcijfer. Het aantal nuttige combinaties is 256 %. Dat is ongeveer 39%. Een driecijferig BCDgetal heeft 496 % codecombinaties, dat is ongeveer 24%. Uitwerking opgave 2.9. Eerst maar eens een waarheidstabel opstellen voor de omzetter. De ingangen staan als normaal binaire telcode gerangschikt, de uitgangen stellen de bijbehorende Graycode voor. Daar kunnen de functies voor de Graybits worden bepaald. b 2 b b д 2 д д Na enig rekenwerk volgt: д = b b д = b 2 b д 2 = b 2 = b 2 Het mag duidelijk zijn dat de functies uit EXORpoorten bestaan. De functie voor д 2 is als EXOR geschreven waarbij één ingang aan een logische gekoppeld is. Uitbreiding naar meer bits is dus eenvoudig: voor bit д i geldt: д i = b i+ b i De vertragingstijd is slechts één poortvertraging, onafhankelijk van het aantal bits. Zie onderstaande figuur. Opgaven INLDIG 25 / 55

b 2 b b b 2 b b = = = = = g 2 g g g 2 g g Uitwerking opgave 2.2. Op vergelijkbare wijze als in opgave 2.9 kan ook deze opgave worden opgelost. De ingangen stellen nu de Graycode voor, de uitgangen stellen de bijbehorende normale binaire code voor. Zie onderstaande tabel. д 2 д д b 2 b b Na enig rekenwerk volgt: b = д 2 д д = b д b = д 2 д = b 2 д b 2 = д 2 = д 2 Het mag duidelijk zijn dat de functies uit EXORpoorten bestaan. De functie voor д 2 is als EXOR geschreven waarbij één ingang aan een logische gekoppeld is. Uitbreiding naar meer bits is dus eenvoudig: voor bit д i geldt: b i = b i+ д i Let er op dat dit een cascade of serieschakeling van EXORpoorten oplevert omdat bij de functie voor b i de waarde van b i+ nodig is, die moet dan wel bekend zijn. Bij een groot aantal bits levert dit een aanzienlijke vertragingstijd op. Zie onderstaande figuur. g 2 g g g 2 g g = = = = = b 2 b b b 2 b b Uitwerking opgave 2.2. Uit de ASCIItabel blijkt dat de hoofdletters oplopend worden gecodeerd vanaf code 4 6. De A is 4 6, B is 42 6 etc. Voor de kleine letters geldt dat deze ook oplopend gecodeerd zijn maar dan vanaf 6 6, dus a is 6 6, b is 62 6 etc. Het verschil tussen een hoofdletters en een bijbehorende kleine letter is 2 6. Opgaven INLDIG 26 / 55

Om een hoofdletter te veranderen in een kleine letter moet bij de code van de hoofdletter 2 6 worden opgeteld, bij het veranderen van een kleine letter in een hoofdletter moet er 2 6 worden afgetrokken. Nu is 2 6 hetzelfde als 2 of 2 5. Je kan dus ook het 6 e bit van de ASCIIcode aanpassen: een levert een hoofdletter op, een levert een kleine letter op. Dat alles mag natuurlijk alleen in het ASCIIbereik van de letters. In de programmeertaal C kan je eenvoudig bewerkingen doen op characters (tekens). Zie het voorbeeld hieronder. #include <stdio.h> int main(void) { } char A, a, B, b, Negen, negen; A = 'A'; b = 'b'; negen = '9'; a = A + x2; /* a = 'a' */ B = b x2; /* B = 'B' */ Negen = negen + x2; /* Negen = 'Y' */ printf("%c %c,%c %c,%c %c\n", A, a, B, b, Negen, negen) ; return ; In C zijn de functies toupper() en tolower() beschikbaar voor de conversie tussen kleine letters en hoofdletters. Uitwerking opgave 2.22. Hieronder is een afbeelding te zien van alle 6 hexadecimale cijfers. Merk op dat de A als hoofdletter is geschreven, het is niet mogelijk om een kleine a te maken. De b is als kleine letter te zien, want een hoofdletter B is niet te onderscheiden van een 8. De C zou ook als kleine letter kunnen worden uitgevoerd, maar meestal wordt gekozen voor de hoofdletter. De d is weer als kleine letter geschreven, een hoofdletter D is niet te onderscheiden van een. De E wordt als hoofdletter geschreven, een kleine letter e kan wel maar is te hoog. De F kan alleen als hoofdletter geschreven worden. Merk trouwens het subtiele verschil tussen de 6 en de b op. Opgaven INLDIG 27 / 55

Uitwerking opgave 2.23. Dit is een opdracht tijdens het practicum. Zie aldaar. Uitwerking opgave 2.24. Hieronder is de tabel opgezet voor segment A waarbij wordt uitgegaan dat een segment brandt bij een logische. Natuurlijk moet alleen voor de eerste tien combinaties een of een in de tabel worden gezet, de andere zes combinaties komen niet voor en die waarden voor A kunnen gespecificeerd worden als don t cares. Dit kan je zien in kolom A. Snel is te zien dat A logisch is als x 3 logisch is, althans voor de combinaties x 3 x 2 x x = {,}, de overige combinaties zijn als don t care gespecificeerd. Door deze don t cares als logisch te beschouwen is snel te zien dat A = als x 3 =. Dit is te zien in de kolom A. Dat levert ongetwijfeld een schakeling op met minder poorten dan wanneer de don t cares als logische nullen waren beschouwd. Door goed naar de tabel te kijken zien we ook dat A = als x = én we zien dat A = als x =. Hiermee zijn alle enen afgedekt. Resumerend wordt de functie voor A A = x 3 + x + x x 3 x 2 x x A A Opgaven INLDIG 28 / 55

Uitwerking opgave 3.. Gegeven dat a =, b = en c =. De waarde van d is niet gegeven. s = (a + b) (b + c) s = (a + b) (c + d) s = b (c + d (c + a)) = ( + ) ( + ) = ( + ) ( + d) = ( + d ( + )) = () ( + ) = () (d) = ( + d ()) = = d = ( + d ) = = = d = = d Natuurlijk kunnen sommige stappen samengenomen worden. Zo kan (+) direct geschreven worden als. Uitwerking opgave 3.2. Onderstaande is het bewijs voor de stelling x + x y = x. x + x y = x + x y = x ( + y) = x = x Uitwerking opgave 3.3. Onderstaande is het bewijs voor de stelling x +x y = x +y. Het maakt gebruik van de stelling in opgave 3.2. x + x y = x + x y + x y = x + (x + x) y = x + y = x + y Uitwerking opgave 3.4. De functie omwerken naar een som van mintermen gaat als volgt: s x,y,z = x (y + z y) + z y = x y + x y z + y z = x y (z + z) + x y z + (x + x) y z = x y z + x y z + x y z + x y z + x y z = x y z + x y z + x y z + x y z In deze functie is x de meest significante en z de minst significante variabele. De som van mintermen en de waarheidstabel zijn als volgt: Opgaven INLDIG 29 / 55

s x,y,z = x y z + x y z + x y z + x y z = m 3 + m 5 + m 6 + m 7 = m(3,5,6,7) x y z s Uitwerking opgave 3.5. De tabel: x y z s don t care x = en z = x = en z = don t care Uitwerking opgave 3.6. Hieronder de Karnaughmappen met omrandingen. Bij twee diagrammen zijn meerdere oplossingen mogelijk die leiden tot een minimale functie. Eén diagram kan niet vereenvoudigd worden. ab c F ab c F F = a b + a b + a c F = a b + a b + b c ab c F F = a b c + a b c + a b c + a b c Opgaven INLDIG 3 / 55

ab c F ab c F F = a b + a b + a c F = a b + a b + b c Uitwerking opgave 3.7. We vullen de functie f x,y, z = m(,,2,6) in een Karnaughdiagram in. Op de plaatsen van de mintermen,, 2 en 6 wordt een ingevuld, de overige plaasten zijn logisch. Zie het Karnaughdiagram linksonder. In dit diagram zijn ook de plaatsen van de mintermen aangegeven met een indexcijfer. Het Karnaughdiagram is rechtsonder nog een keer getekend maar nu zijn de omrandingen zichtbaar. De functie kan vereenvoudigd worden tot f x,y, z = x y + y z. xy xy f z f z 2 3 6 7 4 5 De tweede functie is f a,b,c = m(,2,5,6,7) en wordt ingevuld in een Karnaughdiagram, zie linksonder. Rechtsonder is het diagram omrand. De vereenvoudigde functie is f a,b,c = b c + b c +a c. In deze uitwerking is gekozen om minterm 7 samen te nemen met minterm 5, maar is ook mogelijk om minterm 7 samen te nemen met minterm 6. In dat geval wordt de term a c vervangen door a b. ab ab f c f c 2 3 6 7 4 5 We vullen de functie f s2, s, s = m(,3,6) + d(,2) in een Karnaughdiagram in. Merk op dat twee functiewaarden als don t care zijn gespecificeerd. We vullen hiervoor een minteken ( dash ) in. Zie het Karnaughdiagram linksonder. Bij het uitwerken van het Karnaughdiagram worden de don t cares meegenomen als logische enen. Hierdoor wordt de functie het meest eenvoudig. De functie is f s2, s, s = s 2 + s s. s s 2 s s 2 s f f s 2 3 6 7 4 5 Hieronder zijn de schema s gegeven van de functies in AND, OR en NOTpoorten. De Opgaven INLDIG 3 / 55

schema s zijn direct uit de functies getekend. x y z f b c a f s s s 2 f Uitwerking opgave 3.8. Een majority gate is een schakeling waarbij de uitgang logisch is als de meerderheid van de ingangen logisch is, anders is de uitgang logisch. Dat houdt in dat een majority gate altijd een oneven aantal ingangen heeft, in dit geval drie. De uitgang wordt logisch als er twee of drie ingangen logisch zijn, anders wordt de uitgang logisch. We noemen de ingangen x, y en z en de uitgang M. De tabel is als volgt te construeren waarna het Karnaughdiagram getekend kan worden en de functie kan worden afgeleid. x y z M enen een een 2 enen een 2 enen 2 enen 3 enen xy z M M x,y,z = x y + x z + y z De functie is ook wel te verklaren: de functie moet een logische geven als twee uitgangen logisch zijn. Elk van de producttermen wordt logisch als de twee bijbehorende variabelen logisch zijn. Als drie variabelen logisch zijn, zijn alle producttermen logisch. In alle andere gevallen is de uitgang logisch. Een geoefende lezer ziet in deze functie de carry outfunctie van de full adder. Hieronder zijn twee schema s weergegeven. Links is het schema gebouwd in de ANDORvorm, rechts het schema in de NANDNANDvorm. De rechter variant is eenvoudig te vinden door één keer De Morgan toe te passen op de bovenstaande functie. x y x y z M z M Opgaven INLDIG 32 / 55

Uitwerking opgave 3.9. Hieronder zijn de Karnaughdiagrammen nogmaals getekend, maar nu met omrandingen. ab cd x 3 x 2 S A x x De functie voor het linker Karnaughdiagram is S = a cd + acd + abc + abc. Het is trouwens verleidelijk om de vier enen in het midden van het diagram samen te nemen tot de term bd. Maar zoals te zien is, worden deze enen afgedekt door de overige vier omrandingen. De functie voor het rechter Karnaughdiagram is A = x + x + x 3 x 2 + x 3 x 2. Hier zijn twee omrandingen van acht mintermen te zien. Die leveren per omranding een term van slechts één variabele op. ab cd x 3 x 2 S A x x De functie voor het linker Karnaughdiagram is S = ad + bd + abd. Merk op dat de variabele c in deze functie niet voorkomt. De functie van het rechter Karnaughdiagram is A = x 2 + x 3 x + x x. Uitwerking opgave 3.. Een multiplexer kan gezien worden als een schakeling die een somvanmintermen kan nabootsen. Een multiplexer met stuuringangen s en s en dataingangen i, i, i 2 en i 3 heeft de logische functie F = s s i + s s i + s s i 2 + s s i 3 waarbij F natuurlijk de uitgang is. In de twee multiplexerschakelingen wordt s verbonden met Y en s verbonden met Z. Aan de dataingangen worden nu logische constanten ( en ), X of X aangeboden. Kijken we naar functie S dan zien we dat i wordt verbonden met X, i en i 2 met X en i 3 met X. De functie voor S is dan S = Y ZX + YZX + YZ X + YZX. We kunnen de functie herschrijven zodat X vooraan staat in de termen. Kijken we naar functie C dan zien we dat i wordt verbonden met, i en i 2 met X en i 3 met. De functie voor S is dan C = Y Z + YZX + Y ZX + YZ. We kunnen de functie herschrijven Opgaven INLDIG 33 / 55

als C = YZ + XYZ + XYZ. Concept Hieronder zijn de waarheidstabellen gegeven van beide functies. Een geoefend lezer ziet in S de functie voor het sombit van een fulladder en in C de carryoutbit van een fulladder. Merk op dat de volgorde van de variabelen in de tabel afwijkt van wat gebruikelijk is; variabele X is nu het minst significant. Op deze manier kunnen de functiewaarden van C en S goed vergeleken worden met de aan de dataingangen aangeboden waarden van,, X en X. Y Z X C S Opgaven INLDIG 34 / 55

Uitwerking opgave 4.. Hieronder de optelling mét carry s. De eerste optelling levert een overflow op omdat het antwoord niet in zeven bits past. carry s getal A + + + getal B ) resultaat Uitwerking opgave 4.2. Het bewijs is niet zo moeilijk. Er wordt gebruik gemaakt van een absorptiewet en de commutatieve wetten. c out = c in (a b) + c in (a + b) = c in a b + c in a + c in b = a (c in b + c in ) + c in b = a (b + c in ) + c in b = a b + a c in + b c in Uitwerking opgave 4.3. Dit is wel een lastige opgave. Van cruciaal belang is dat de term a b uitgebreid moet worden naar a b + a b. Daarna kan de absorptiewet worden toegepast. Zie hieronder. c out = a b + c in (a b) = a b + c in a b + c in a b = a b + a b + c in a b + c in a b = (a + c in a) b + a (b + c in b) = (a + c in ) b + a (b + c in ) = a b + c in b + a b + a c in = a b + a c in + b c in Uitwerking opgave 4.4. Als de functies van s en c out vanuit de en zouden worden gemaakt, levert dat net zulke grote functies op als wanneer ze vanuit de en zouden worden gemaakt. Dat is ook niet zo verwonderlijk. Voor s geldt dat (vanuit de en gezien) het aantal en oneven moet zijn, dus dat geldt dan ook voor de en. Voor c out geldt dat (weer vanuit de en gezien) het aantal en twee of meer moet zijn en ook dat geldt dan natuurlijk voor de en. Uitwerking opgave 4.5. Hieronder is het schema gegeven met daarin interne signaalnamen. Opgaven INLDIG 35 / 55

c in a = x y = z s c out De ingang waar de constante aan verbonden is herkennen we als de bingang van een fulladder. Deze ingang koppelen we ook nog eens aan de constante en rekenen beide schakelingen door. De functies voor b = x = a = a y = a = z = x c in s = c in x c out = y + z = a c in = c in a = a c in De functies voor b = x = a y = a z = x c in s = c in x c out = y + z = a = a = a c in = c in a = a + c in In de functies aan de linkerkant herkennen we de functies van een halfadder. Uitwerking opgave 4.6. De vermenigvuldiger vermenigvuldigt twee unsigned getallen van twee bits met elkaar. De rekenkundige functie is dan M = A B waarbij A samengesteld is uit de bits a en a en B uit b en b. Een 2x2 bits vermenigvuldiging levert een antwoord van maximaal vier bits dus M is samengesteld uit de bits m 3, m 2, m en m. De grootste waarde van M is trouwens 9, want A = 3 en B = 3 levert M = 3 3 = 9 op. We stellen een waarheidstabel op met a, a, b en b op als ingangen en m 3, m 2, m en m als de uitgangen. a a b b m 3 m 2 m m a a b b m 3 m 2 m m Snel is te zien dat de functie voor m 3 een ANDconstructie is van alle ingangen zodat m 3 = a a b b. De functie voor m is ook redelijk snel te ontdekken: m = als a = én b = dus m = a b. Voor de andere twee functies stellen een Karnaughdiagram op. Opgaven INLDIG 36 / 55

a a b b m 2 m a a b b De vier functies voor deze schakeling zijn: m 3 = a a b b m 2 = a b b + a a b m = a a b + a b a + a a b + a b b m = a b Het bijbehorende schema met AND, OR en NOTpoorten is hieronder gegeven: m 3 a a b m 2 b m m Uitwerking opgave 4.7. Als geldt dat twee getallen A = a 3 a 2 a a en B = b 3 b 2 b b aan elkaar gelijk zijn, dan moeten cijfers op identieke posities binnen de getallen aan elkaar gelijk zijn: A = B a 3 = b 3 a 2 = b 2 a = b a = b Opgaven INLDIG 37 / 55

Het testen of twee bits gelijk zijn kan met de EXNORfunctie. De schakelfunctie is: E = a 3 b 3 a 2 b 2 a b a b of, m.b.v. De Morgan: E = (a 3 b 3 ) + (a 2 b 2 ) + (a b ) + (a b ) Uitwerking opgave 4.8. Hieronder is het schema gegeven van 4x4 carry save multiplier. Bij een normale multiplier wordt het optellen uitgevoerd met carry ripple adders waarbij de carry steeds wordt doorgegeven aan de hogere macht van dezelfde opteller. Bij de carry save multiplier wordt de carry van een bit full adder circuit doorgegeven aan de hogere macht van de volgende 4bit opteller. Er zijn nu wel meer rijen nodig, maar minder kolommen. Uitwerking opgave 4.9. Voor een 5x3bit vermenigvuldig zijn twee 5bit optellers, tenminste als de optellers worden uitgevoerd als carry ripple adders. Opgaven INLDIG 38 / 55

Uitwerking opgave 5.. De getallen moeten omgerekend worden naar binaire equivalenten. Van negatieve getallen moet eerst de positieve variant worden omgerekend. Van de getallen +5 en 5 kan direct het binaire equivalent worden uitgerekend (althans van +5). Het getal +5 als binair getal is 2. Let hierbij op de leidende om het getal positief te houden. Het getal staat nu in 4 bits genoteerd, we moeten het dus aanvullen met meer nullen (het getal is immers positief). Dat levert het binaire getal 2 op. Dit staat nu al in 2 s complement. Het getal 5 moet bepaald worden volgens de flipbit, addone methode. We weten al hoe +5 in 8bits formaat geschreven wordt. (+5) flip bits + ( 5) Het getal 5 geschreven in 8 bits 2 s complement is 2. Eerst moet het getal + omgezet worden in het binaire stelsel (we laten dat als oefening voor de lezer). Dat levert het binaire getal 2. Let hierbij op de leidende om het getal positief te houden. Dit getal staat al in 8bits formaat, dus aanvullen is niet nodig. Omzetten naar de negatieve variant: (+) flip bits + ( ) Het getal geschreven in 8 bits 2 s complement is 2. Het getal 64 moet omgezet worden naar 2 s complement. Daarvoor moet eerst de positieve variant 64 omgezet worden naar binair (dat laten we weer over als oefening voor de lezer). Dit levert het getal 2 op (let hierbij op de leidende om het getal positief te houden. Het getal is al in 8 bits genoteerd, er is geen tekenuitbreiding nodig. Omzetten naar de negatieve variant: (+64) flip bits + ( 64) Het getal 64 geschreven in 8 bits 2 s complement is 2. Het getal +25 is volgens de bekende procedure om te zetten naar het binaire equivalent 2. Uitbreiden naar 8 bits levert 2 op. Opgaven INLDIG 39 / 55

Van het getal 25 wordt alleen het antwoord gegeven: 2. Uitwerking opgave 5.2. Bij deze opgave moet een aantal optellingen en aftrekkingen worden gedaan. Optellingen kunnen direct uitgevoerd worden d.m.v. de bekende kolomsgewijze optelling. Aftrekkingen kunnen worden omgezet in optellingen door bekende vergelijking A B = A + ( B) Hiervoor is wel de negatieve representatie van B nodig. Dit kan eenvoudig in de 2 s complementrepresentatie. Daarnaast moet een aantal getallen met meer bits worden geschreven zodat de op te tellen getallen evenveel bits hebben. Dat kan d.m.v. tekenuitbreiding. De eerste optelling is +. Het eerste getal is positief, het tweede getal is negatief. De getallen kunnen direct opgeteld worden. De tweede optelling is +. Beide getallen zijn negatief en kunnen direct worden opteld. carry s getal A + + getal B ) ) resultaat De linker optelling levert een negatief getal op. Er is geen overflow want de op te tellen getallen hebben verschillend teken. De uitgaande carry is. De tweede optelling levert een overflow op. De op te tellen getallen zijn beide negatief en het antwoord is positief. De uitgaande carry is en moet genegeerd worden. Aan de uitgaande carry is niet te zien of er overflow is opgetreden. Hierna volgen twee aftrekkingen namelijk en. De aftrekkingen kunnen worden omgezet in optellingen door het getal dat moet worden afgetrokken om te zetten in de negatieve representatie van het originele getal. Omzetten gaat heel eenvoudig met de procedure flip bits, add zoals uitgelegd is in opgave 5.. Het getal wordt dan en het getal wordt. carry s getal A + + getal B ) ) resultaat De uitgaande carry s moeten weer genegeerd worden. De linker optelling levert geen overflow op, de rechter optelling levert wel een overflow. Het betreft hier nu twee negatieve getallen die opgeteld een positief getal opleveren. De volgende optelling is +. Hierin is één van de getallen maar in vier bits geschreven en moet worden uitgebreid naar zes bits. Het getal begint met een (negatief) en er moeten dan twee en voor gezet worden. De optelling wordt dan +. Daarna volgt een aftrekking met de getallen. Het eerste getal moet uitgebreid worden met een, het is immers negatief. Het betreft hier een aftrekking dus het tweede getal moet Opgaven INLDIG 4 / 55

omgezet worden in de negatieve representatie van het originele getal en levert dan. Nu kunnen de twee optellingen uitgevoerd worden. carry s getal A + + getal B ) ) resultaat De laatste twee berekeningen zijn een aftrekking en een optelling. De aftrekking betreft en de optelling betreft +. Er moeten weer omzettingen in 2 s complement en tekenuitbreiding gedaan worden. Uiteindelijk levert dat de onderstaande optellingen op: carry s getal A + + getal B ) ) resultaat Beide uitkomsten leveren geen overflow op. De uitgaande carry s moeten genegeerd worden. Uitwerking opgave 5.3. Een hexadecimaal 2 s complement getal dat begint met de cijfers 8 t/m F wordt als negatief beschouwd omdat het binaire equivalent van dat cijfer begint met een. Zo is 8 6 gelijk aan 2 en F 6 gelijk aan 2. Getallen die beginnen met de cijfers t/m 7 zijn positief omdat het binaire equivalent van deze cijfers beginnen met een. Als we het getal FFFF 6 opschrijven als binair getal dan levert dat... 2 (punten worden gebruikt ter bevordering van het lezen). Zouden we dit omzetten naar het decimale equivalent dan levert dat behoorlijk wat schrijfwerk op: FFFF 6 = 2 5 + 2 4 + 2 3 +... + 2 2 + 2 + 2 = 32768 + 6384 + 892 +... + 4 + 2 + = Handiger is om direct gebruik te maken van de hexadecimale cijfers waarbij het meest significante cijfer als negatief wordt beschouwd is dit cijfer tussen 8 en F ligt: 8 6 = 8 9 6 = 7 A 6 = 6 B 6 = 5 C 6 = 4 D 6 = 3 E 6 = 2 F 6 = We kunnen nu FFFF 6 direct uitschrijven in machten van 6: FFFF 6 = 6 3 + 5 6 2 + 5 6 + 5 6 = 496 + 384 + 24 + 5 = Opgaven INLDIG 4 / 55

En de rest van de getallen: 53BA 6 = 5 6 3 + 3 6 2 + 6 + 6 = 248 + 768 + 76 + = 2434 CB 6 = 4 6 + 6 = 64 + = 54 7EA3 6 = 7 6 3 + 4 6 2 + 6 + 3 6 = 28672 + 3584 + 6 + 3 = 3249 Uitwerking opgave 5.4. Een hexadecimaal getal van acht cijfers kan worden geschreven als een binair getal van 32 cijfers. De bereik van zo n getal is 2 3 M +2 3 oftewel 247483648 M +247483647 Uitwerking opgave 5.5. Tekenuitbreiding bij hexadecimale getallen is niet zo heel ingewikkeld. Als het meest significante cijfer tussen en 7 ligt, moet het getal uitgebreid worden met voorlopende nullen (een levert vier nullen op: ). Ligt het meest significante cijfer tussen 8 en F, dan moet het getal worden uitgebreid met voorlopende Fen (een F levert vier enen op: F ). Dus: F 6 FFFF 6 6 6 6 6 7A 6 7A 6 CB 6 FFCB 6 35B 6 35B 6 D73 6 FD73 6 Uitwerking opgave 5.6. We noemen de ingangen X = x 3 x 2 x x en de uitgangen F = f 3 f 2 f f. De werking van de 9 scomplementfunctie kan worden beschreven met de functie F = 9 X voor X 9 Eerst moet de waarheidstabel worden opgezet. De bitcombinaties X = x 3 x 2 x x kunnen gezien worden als een getal dat ligt tussen en 5, waarvan alleen de combinaties t/m 9 gebruikt worden, de overige komen niet voor. Dat worden don t cares in de waarheidstabel. De bitcombinaties F = f 3 f 2 f f vormen de getallen 9 X, dus X moet van 9 afgetrokken worden. Van alle mogelijkheden wordt een waarheidstabel opgezet. Opgaven INLDIG 42 / 55

x 3 x 2 x x f 3 f 2 f f Vanuit de tabel is direct te zien dat f = x. Voor de overige functies worden Karnaughdiagrammen opgezet en uitgewerkt. Deze zijn weergegeven in onderstaande figuur. x 3 x 2 x x f 3 f 2 f x 3 x 2 x x x 3 x 2 x x De gevonden functies voor f 3 t/m f zijn: f 3 = x 3 x 2 x f 2 = x 2 x + x 2 x f = x f = x De schema s van de vier functies zijn weergegeven in onderstaande figuur. Opgaven INLDIG 43 / 55

x 3 f 3 x 2 f 2 x f x f Uitwerking opgave 5.7. Het is een kwestie van interpretatie. In de 2 s representatie systeem wordt een binair getal dat begint met een als negatief beschouwd. Het meest negatieve getal is een gevolgd door alleen en. Maar er is niets op tegen om dit ene getal als positief te beschouwen. Laten we eens kijken wat er met optellingen gebeurt als we 2 als +8 beschouwen. We tellen bij alle getallen van 7 tot +8(!) de waarde +8 op en interpreteren het resultaat als 2 s complement waarbij 2 als +8 wordt beschouwd. Uiteraard gooien we een eventuele carry weg. 7 + 8 + = ) + 6 + 8 + = ) +2 5 + 8 + = ) +3 4 + 8 + = ) +4 3 + 8 + = ) +5 2 + 8 + = ) +6 + 8 + = ) +7 + 8 + = ) +8 + + 8 + = ) 7 +2 + 8 + = ) 6 +3 + 8 + = ) 5 +4 + 8 + = ) 4 +5 + 8 + = ) 3 +6 + 8 + = ) 2 +7 + 8 + = ) +8 + 8 + = ) De optellingen onder 7 tot leveren correcte antwoorden op, die van tot +8 geven een overflow. Opgaven INLDIG 44 / 55

De reden waarom 2 als 8 wordt beschouwd is heel simpel: het levert eenvoudigere hardware op. Begint het getal met een, dan is het negatief, anders is het positief. Het tekenbit kan dan ook als onderdeel van het getal worden gezien en heeft dus ook een (negatief) gewicht. Uitwerking opgave 5.8. We noemen de ingangen X = x 3 x 2 x x en de uitgangen F = f 3 f 2 f f. De werking van de excess3functie kan worden beschreven met de functie F = X + 3 voor X 9 Eerst moet de waarheidstabel worden opgezet. De bitcombinaties X = x 3 x 2 x x kunnen gezien worden als een getal dat ligt tussen en 5, waarvan alleen de combinaties t/m 9 gebruikt worden, de overige komen niet voor. Dat worden don t cares in de waarheidstabel. De bitcombinaties F = f 3 f 2 f f vormen de getallen X + 3, dus bij X moet 3 opgeteld worden. Van alle mogelijkheden wordt een waarheidstabel opgezet. x 3 x 2 x x f 3 f 2 f f Vanuit de tabel is direct te zien dat f = x. Voor de overige functies worden Karnaughdiagrammen opgezet en uitgewerkt. Deze zijn weergegeven in onderstaande figuur. x 3 x 2 x x f 3 f 2 f x 3 x 2 x x x 3 x 2 x x Opgaven INLDIG 45 / 55

De gevonden functies voor f 3 t/m f zijn: f 3 = x 3 + x 2 x + x 2 x f 2 = x 2 x + x 2 x + x 2 x x f = x x + x x f = x De functie voor f 3 kan nog geschreven worden als f 3 = x 3 + x 2 (x + x ) waardoor een ANDpoort komt te vervallen. De functies voor f 2 en f kunnen nog omgewerkt worden naar f 2 = x 2 ( x x ) f = x x zodat de inverter voor x 2 komt te vervallen. De schema s van de vier functies zijn weergegeven in onderstaadne figuur. Noot: er zijn ook andere schema s mogelijk die de juiste functies weergeven. x 3 f 3 x 2 = f 2 x = f x f Opgaven INLDIG 46 / 55

Uitwerking opgave 6.. Het is niet bekend hoe de interne opbouw van één full adder in elkaar zit, dus je moet uitgaan van de tijden die gegeven zijn. De minimale propagatietijd is in feite de minimale propagatietijd van één full adder. Dat is immers het snelste pad van een ingang naar een uitgang. Voor de maximale propagatietijd moeten we het langste pad vinden. Dat is ongetwijfeld via de carry s, van één van de ingangen a, b, c naar één van de uitgangen c 4, s 3. Aldus wordt: t P (min) (4bit FA) = t P (min) (FA) = 2 ns t P (max) (4bit FA) = 4 t P (max) (FA) = 2 ns Uitwerking opgave 6.2. Dat maakt niets uit; de interne opbouw van de FAs is immers niet bekend. Uitwerking opgave 6.3. De periodetijd van een signaal met de frequentie van 33,3 MHz is 3,3 ns (nanoseconden, ns is 9 s. Dit is de frequentie van een 486DX33 processor. De periodetijd van een signaal met de frequentie van 3,4 GHz is 294,2 ps (picoseconden, ps is 2 s. Dit is de frequentie van o.a. een Corei7 processor. De frequentie van een signaal met een periodetijd van 4,67 µs is 9,6 khz (kilohertz). Dit is een standaard seinsnelheid van een RS232 seriële verbinding. Uitwerking opgave 6.4. De twee don t cares kunnen als volgt worden ingevuld: S R Z oud Z nieuw O.S. O.R. #3 #4 Hierin is Z nieuw de originele specificatie en zijn O.S. en O.R. de realisatie van resp. overheersende set en overheersende reset. Bij de realisatie van #3 valt op dat de uitgangswaarden bij SR = precies hetzelfde zijn als de waarde van Z oud, dus de latch onthoudt de waarde (= stand) van Z oud. Dit is dus een latch met een extra onthoudstand (SR = is er ook één). Bij de realisatie van #4 valt op dat de uitgangswaarden bij SR = precies de inverse zijn van de waarde van Z oud, dus de latch inverteert de stand. Omdat dit direct werkt (er is geen klok of enablesignaal om de latch te synchroniseren) zal zodra een stand aan de uitgang bekend is, de inverse worden berekend en na enige poortvertragingen deze nieuwe stand op de uitgang beschikbaar zijn. Deze schakeling oscilleert bij SR =. #3 is een bruikbare latch maar wordt Opgaven INLDIG 47 / 55

in de praktijk niet gebruikt omdat het ontwerp meer poorten kost dan O.S. en O.R. #4 is niet bruikbaar vanwege de oscillatie. Uitwerking opgave 6.5. De functie van Z is: Z nieuw = A + B Z oud = A B Z oud. Het laatste deel is gevonden met behulp van De Morgan en geeft duidelijk aan dat de latch alleen maar te resetten is (A = of B = ) of kan onthouden (AB = ). Setten is niet mogelijk. Dit is dus geen goedwerkend geheugenelement. Uitwerking opgave 6.6. Dit is geen goede codering. De onthoudstand is de ruststand, dus vanuit set of reset moet je terug kunnen gaan naar onthouden. Dat mag maar met één bitwisseling in de stuurcodes. Het is namelijk praktisch niet mogelijk om twee bits tegelijk te wisselen; er gaat er altijd wel één eerder om. Vanuit set moet je twee bits wisselen om bij onthouden te komen. Dat gaat dus niet goed. Uitwerking opgave 6.7. Zie onderstaand timingdiagram. Dit diagram wijkt op één punt af van het diagram voor de SRlatch met overheersende set: als S en R beide logisch zijn, is de uitgang Z logisch. S R Z set onthoud reset onthoud set reset set onth reset onth. Uitwerking opgave 6.8. Als we kijken naar de diverse latches die de revue gepasseerd zijn, dan kunnen we constateren dat alleen latches die gebouwd zijn met inverterende poorten (NANDNAND en NORNOR) in aanmerking komen. Zie figuur. In een tabel kunnen we zetten hoe Z en Z zich verhouden. Z en Z zijn inderdaad elkaars inverse voor de drie combinaties de nuttig te gebruiken zijn. Bij de combinatie SR = zijn Z en Z beide logisch. Opgaven INLDIG 48 / 55

S R Z Z* S R Z oud Z nieuw Znieuw Uitwerking opgave 6.9. We tekenen twee gated Dlatches naast elkaar. Links is de nieuwe te onderzoeken gated D latch, rechts is de bekende gated Dlatch die volgt uit de aangepaste gated SRlatch. D Z D S Z EN EN R Te zien is dat beide latches bestaan uit een op NAND s gebaseerde SRlatch met voorzetlogica. De SRlatch wordt aangestuurd met de inverse van S(et) en R(eset). De signalen zijn ingetekend in de rechter latch. De functies voor de set er reset zijn (let hierbij op de naamgeving voor S en R, dit zijn signaalnamen): [S] = D EN [R] = D EN Dit moet dus ook gelden voor de te onderzoeken latch. Het is duidelijk dat de functie voor de set voor beide schakelingen identiek is. De functie voor de reset voor de te onderzoeken latch is [R] = [S] EN = D EN EN = (D + EN ) EN = D EN + EN EN = D EN + = D EN Opgaven INLDIG 49 / 55

Merk op dat hier een keer De Morgan is gebruikt en diverse andere wetten en theorema s. Het uiteindelijke resultaat voor de reset is hetzelfde voor beide latches dus de logische werking is identiek. De te onderzoeken latch is met vier NANDs te bouwen en heeft geen inverter nodig bij de resetingang. Uitwerking opgave 6.. De tweedeler is niet te maken met een (D)latch. De uitgangswaarde van de latch moet geïnverteerd worden doorgegeven aan de ingang. Zodra de latch transparant is, verandert de uitgangswaarde als gevolg van de nieuwe ingangswaarde. Dit de inverse van de uitgangswaarde. Het geheel wordt instabiel en gaat oscilleren. Dit oscilleren volgt uit het transparant zijn van de latch. Door gebruik te maken van twee latches kan dit transparant zijn worden onderbroken door één van de latches gesloten te houden terwijl de andere geopend is. De enablesignalen zijn dus elkaars inverse. Zie figuur. EN D C Q slechts één latch transparant tijdens EN= latch transparant tijdens EN= D D Q C C EN Uitwerking opgave 6.. De timingvoorwaarde voor de correcte werking van de latch is t P (max) (NOT) + t h (Zlatch) < t P (min) (Ylatch) Opgave wk6/ Dit is een doordenker. Eerst maar eens het timingdiagram tekenen. Zie onderstaande figuur. EN EN t P(max) (NOT) t h (Zlatch) D Z = Z Y t P(min) (Ylatch) Opgaven INLDIG 5 / 55 25

In de bovenstaande figuur zijn het enablesignaal en de geïnverteerde versie te zien. De geïnverteerde versie wordt gegenereerd door een NOTpoort (inverter) en dat kost enige tijd. Het enablesignaal wordt aan de Ylatch aangeboden. De Ylatch heeft een uitgang genaamd Z Y. Het geïnverteerde enablesignaal wordt aan de Zlatch aangeboden. De Zlatch heeft een ingang D Z. De uitgang van de Ylatch is direct gekoppeld aan de ingang van de Zlatch, dus D Z = Z Y. De situatie op moment is dat de Ylatch gesloten is en de Zlatch open. De Ylatch neemt nog geen data over. Op moment 2 gaat de Ylatch open en zal nieuwe data gaan doorgeven, maar door de vertraging van de NOTpoort is de Zlatch óók nog open. Op moment 3 is het geïnverteerde enablesignaal laag () waardoor de Zlatch gaat sluiten (Ylatch staat nog steeds open). Dat is dus zeker na de maximale propagatietijd van de NOTpoort. De data moet nog enige tijd stabiel gehouden worden (holdtijd Zlatch) dus pas na moment 4 mag de data op de ingang van de Zlatch veranderen. Gelukkig heeft de Ylatch enige vertraging met het doorgeven van nieuwe data, dus mag de uitgang van de Ylatch pas veranderen (minimale propagatie) nadat holdtijd van de Zlatch is verstreken. Uitwerking opgave 6.2. Het probleem zit in de timing. Zie onderstaande figuur. EN D nen x y Z Kort voordat EN van naar gaat Er zijn twee delen in de Dlatch te onderscheiden. De onderste ANDpoort (uitgang y) zorgt er voor dat de waarde van D in de lus wordt gebracht als EN =, de bovenste ANDpoort (uitgang x) is gesloten. Als EN nu logisch wordt, zal de onderste ANDpoort sluiten en zorgt de bovenste ANDpoort samen met de lus dat de waarde op Z behouden blijft. De inverse van EN wordt gemaakt met behulp van een inverter (nen) en dat kost enige tijd. Er is dus een moment dat beide ANDpoorten een logisch op één van de ingangen aangeboden krijgen. Zie onderstaande figuur links. EN D.. Z EN D.. Z Kortjnadat ENjvanjjnaarjjgaatj (signaalveranderingjdoorjorpoortj nogjnietjgezien) Dejinverterjheeftjnujdejjuistejwaarde,jmaarj dejbovenstejandpoortjheeftjdatjnogjnietj gezien. Opgaven INLDIG 5 / 55

Merk op dat de signaalverandering door de ORpoort nog niet is gezien, wel door de inverter. Ondertussen is de inverter op de juiste waarde gekomen (logisch ) nog voordat de ORpoort een logische levert en samen met de logisch van de uitgang levert dit weer een logische op voor de bovenste ANDpoort. Zie bovenstaande figuur rechts. EN D De,ORpoort,levert,een,logische,,maar,de, bovenste,andpoort,geeft,ondertussen,een, logische,,af,,de,orpoort,zal,na,een,tijdje, dus,weer,een,logische,,afgeven. Z De ORpoort zal uiteindelijk een logische leveren. Deze logische wordt wel weer via de lus in het systeem gebracht. Maar de bovenste ANDpoort geeft ondertussen een logische af. Zie figuur hiernaast. Nu zijn er een drie mogelijkheden: de uitgangswaarde blijft oscilleren tussen en, de uitgang wordt na een tijd logisch of logisch. Dit hangt helemaal af van de eigenschappen van de poorten en verbindingen (wires): propagatietijd is een belangrijke maar ook de inertial rejection time: als een aangeboden puls op een ingang te kort is, ziet een poort dit niet en de uitgang verandert dan ook niet. In onderstaande simulatie blijft de uitgang oscilleren. De vertragingstijden van de AND en ORpoort zijn 5 ns, die van de inverter is 2 ns. Alle poorten hebben een inertial rejection time van ns. Uitwerking opgave 6.3. De meest eenvoudige oplossing is om twee flipflops die elk een flank voor hun rekening nemen te combineren. De uitgang is dan de waarde van de flipflop waar het laatst de flank is gepasseerd. Dit kan eenvoudig met een mutiplexer gerealiseerd worden. Zie onderstaande figuur. Opgaven INLDIG 52 / 55