Download - digitale techniek
-
1
DIGITALE TECHNIEK
Men kan het "elektronica" gebied opsplitsen in twee belangrijke hoofdgroepen. Aan de ene
kant de analoge technieken en aan de andere kant de digitale technieken.
Als we een elektronische schakeling van naderbij bekijken, ontstaat volgend blokschema.
Een opnemer of sensor converteert het te meten signaal (temperatuur, druk, toerental, ...) naar
een analoge spanning. Deze verplaatst zich via de transmissielijn tot aan de
verwerkingseenheid, die op zijn beurt de aangeboden informatie bewerkt. De
verwerkingseenheid kan bijvoorbeeld de spanningsversterking op zich nemen, of een
spanningsvergelijking t.o.v. een referentieniveau doorvoeren.... Eenmaal de bewerking
uitgevoerd, verplaatst de informatie zich naar de weergave-eenheid. Denk maar aan een
beeldscherm, een luidspreker of een motor.
De stippellijn geeft aan dat er eventueel een gedeelte van het resultaat mee het nieuwe
resultaat bepaalt. Men spreekt dan van een terugkoppeling. Er ontstaat een servosysteem. Op
deze manier kan men eventueel het toerental van een motor constant houden bij een
veranderlijke belasting.
Enkele decennia geleden gebeurde de signaalverwerking volledig met analoge componenten
zoals versterkerbuizen, transistoren en FET's.
Er vallen wel enkele nadelen aan dit systeem op te merken. Vooreerst zijn er de
storingspulsen die via de transmissielijnen op de informatie wordt gesupperponeerd. Gebeurt
dit voor de verwerkingseenheid, dan zal deze de vervormde en dus foutieve informatie
behandelen. De stoorpulsen worden evenzeer versterkt door de schakeling. Het foutieve
resultaat komt dus op de weergaveneenheid terecht, met alle gevolgen vandien.
Een tweede groot nadeel is de tolerantie die op elk type component optreedt. Willen we
bijvoorbeeld een defecte transistor vervangen door een identiek type transistor, dan kan de
spanningsversterking makkelijk tot 10% variren. Om dit tegen te gaan zal de schakeling rond
de transistor deze fouten, via tegenkoppelingen, opvangt. De schakeling wordt daardoor
meestal ingewikkeld. Andere foutfactoren zijn de niet-lineariteit van de componenten en de
temperatuursgevoeligheid van de schakeling. Ook het bewaren van analoge informatie blijft
een moeilijke zoniet onmogelijke klus. Op dit moment zal men de signaalverwerking vanuit
een ander perspectief benaderen. Informatie bestaat uit een groep van enen en nullen. Deze
"logische" waarden komen in de praktijk vaak overeen met res- pectievelijk 5V
(voedingsspanning) en 0V (massa dus). De wetenschap die zich met deze vorm van
informatiebehandeling bezighoudt noemt men de "digitale technieken" en steunt zich op
Booleaanse algebra als vereenvoudigingsvorm. De theorie achter dit alles is reeds lang
bekend, maar kende pas zijn doorbraak op het moment dat men volledige schakelingen kon
integreren op n chip. De elementaire componenten die deel uitmaken van een digitaal
circuit noemt men poorten.
-
2
De voordelen van digitale signaalverwerking zijn onder andere het eenvoudig reconstrueren
van het originele signaal. Storingspulsen die het signaal opneemt over de transmissielijn
worden volledig weggewerkt.
Er bestaan zelfs technieken om eventuele fouten (een "0" verzonden wordt als een "1"
ontvangen) te detecteren, te lokaliseren en eventueel te herstellen. Wiskundige bewerkingen
worden kinderspel. Denk maar aan de miniatuur rekentoestellen die aantonen dat er vrij
weinig componenten nodig zijn. Signaalverwerking verloopt razendsnel, tot enkele miljoenen
instructie per seconde. Informatie opslag verloopt uiterst nauwkeurig op allerhande
opslagmedia: geheugen IC's (ROM, RAM), magneetbanden, CD's enzovoort. In een digitale
wereld kan ons blokschema als volgt worden voorgesteld:
Merk op dat de opnemer en de weergave eenheid zowel analoog (potmeter, TV scherm) als
digitaal (toetsenbord, liquid display) kunnen zijn. Op het moment dat n van beide analoge
informatie bevat, zal er een conversie plaatsvinden tussen het analoge en digitale gedeelte.
Hiervoor zorgt de analoog-digitaal convertor (ADC) en de digitaal-analoog convertor (DAC).
Tracht steeds digitale informatie over de transmissielijnen te sturen, dit om eventuele
storingen weg te werken.
-
3
Op het gebied van componenten spitsen de ontwerpers en de fabrikanten zich hoofdzakelijk
toe op de digitale reeksen. De beperkende factor binnen deze evolutie is nog steeds de
miniaturisatiemoeilijkheid. Analoge componenten zullen in ieder geval blijven bestaan. Een
digitale component kan immers geen vermogens sturen. Hij kan wel een handje toesteken bij
de verwerking van de bijhorende informatie. De transistor of FET vormt nog steeds de basis
van elke digitale component.
Deze cursus ondersteunt het ontwerpen en het gebruik van een aantal digitale bouwstenen, die
vervolgens tot een complex geheel zullen leiden. Gentegreerde schakelingen of ICs vormen de componenten binnen een digitaal systeem. Een component kan allerlei functies bevatten.
Vooreerst zijn er de poorten. Dit zijn de basisblokken. Deze worden gecombineerd tot
functies, en als dusdanig op de markt gebracht. Denk hierbij aan een optelscha- keling, flip
flops en tellers. Het is nu aan de ontwerper om , afhankelijk van het project, de geschikte
functionele bouwstenen op te zoeken en deze vervolgens op een correcte manier met elkaar te
verbinden. Verder is het van belang te weten dat een gentegreerde schakeling wordt
opgebouwd rond verschillende technologien zoals: TTL, CMOS, BiMOS, ECL enz... De
belangrijkste verschillen vinden we terug in de schakelsnelheden en het vermogenverbruik.
Hou er tevens rekening mee dat componenten, opgebouwd rond verschillende technologien,
meestal niet rechtstreeks signalen kunnen uitwisselen.
-
4
Hoofdstuk 1 : Binaire logica en basisfuncties.
In de alledaagse taal worden voortdurend een aantal wetmatigheden gebruikt. George Boole
bestudeerde deze materie grondig in zijn boek "An Investigation of the Laws of Thought" en
behaalde hiermee in 1854 zijn doctoraatstitel. Boole's doel was om op een eenduidige en
exacte manier de maatschappelijke vraagstukken te beschrijven. Hij maakte hierbij gebruik
van een aantal begrippen zoals: waar, en, of, niet, als en anders. Deze woorden vertaalde hij in
een aantal symbolen. Verder ontwikkelde hij een aantal rekenkundige regels om zijn
vergelijkingen te vereenvoudigen. Volgens Boole zijn er maar twee mogelijke toestanden. Iets
is "waar" of "niet waar". "Misschien" bestaat niet. Een nieuw talstelsel deed zijn intrede,
namelijk het tweedelig of binair talstelsel. De theorien en rekenkundige regels van Boole
werden later overgenomen in allerlei technische disciplines zoals de elektronica, de
computerprogrammatie en de regeltechnieken. Binnen de digitale elektronica wordt het
verband tussen het gesproken woord, de Booleaanse vergelijking en de hardware-realisatie als
volgt voorgesteld.
Positieve logica Negatieve logica
waar = 1 = +5V (Ucc) waar = 1 = 0V (GND)
niet waar = 0 = 0V (GND) niet waar = 0 = +5V (Ucc)
Deze cursus maakt enkel gebruik van de positieve logica. Een resultaat is meestal afhankelijk
van een aantal van elkaar onafhankelijke parameters. We schrijven:
Een voorbeeld. We gaan buiten zwemmen (Z) als het mooi weer is (W), het zwembad open
(B) is en er niet veel volk (V) aanwezig is.
Dus:
"zwemmen" is waar (Z = 1) als
"mooi weer" waar is (W = 1) en
"zwembad open" waar is (B = 1) en
"veel volk" niet waar is (V = 0)
Een schema geeft in de meeste gevallen een duidelijker beeld van het probleem.
-
5
2 De waarheidstabel en het tijdsdiagram.
Naast de vergelijking in woorden, de Booleaanse vergelijking en het schema zijn er nog
enkele belangrijke mogelijkheden om een systeem te beschrijven. Vooreerst de
waarheidstabel. Dit is een soort spreadsheet waarbij links alle mogelijke ingangscombinaties
worden vermeld, en rechts de bijhorende uitgangscombinatie.
Een tijdsdiagram geeft het verloop van de ingangstoestanden en de bijhorende
uitgangstoestand in func-
tie van de tijd weer. Een goed tijdsdiagram bevat alle mogelijke ingangscombinaties
Verder blijkt uit het tijdsdiagram dat er een bepaalde tijdsvertraging optreedt tussen een
ingangsverandering en de bijhorende uitgangsverandering. Elke component binnen de
schakeling bestaat uit een aantal schakeltransistoren of FET's. Deze hebben immers een
bepaalde tijd nodig om van de ene toestand naar de andere over te gaan. Hoe meer
componenten het signaal moet doorlopen, hoe groter de tijdsvertraging. In de praktijk
bedraagt de tijdsvertraging van een component enkele nanoseconden. Merk op dat in
bovenstaande voorbeelden de waarheidstabel en het tijdsdiagram dezelfde functie beschrijven.
3 Elementaire basisfuncties en basispoorten.
De Booleaanse algebra kent slechts drie operatoren namelijk EN(AND), OF (OR) en
INVERTEER (NIET , NOT). Hiermee kan men ALLE digitale schakelingen eenduidend
omschrijven. De componenten die deze logische bewerkingen voorstellen worden ook wel
POORTEN of GATES genoemd en zijn als gentegreerde schakeling verkrijgbaar. Het
grafisch symbool dat aan een component wordt toegekend volgt de IEC tekenvoorschriften.
IEC staat voor International Electrotechnical Commission.
-
6
Inversie.
De inverteerfunctie keert de logische waarde om. 0 wordt 1 en 1 wordt 0. Een NOT-poort
heeft slechts n ingang en n uitgang.
F = 0 indien A = 1.
F = 1 indien A = 0.
Alle in de handel verkrijgbare elektronische componenten worden met een cijfer-letter
combinatie aangeduid. Een IC binnen de commercile TTL-reeks wordt steeds voorafgegaan
door de cijfers 74 (40 is de prefix voor CMOS). De laatste cijfers geven het
componentnummer weer. 04 staat voor een invertor. Tussen het reeksnummer en het
componentnummer staan een aantal letters op de plaats van xx. Deze geven meer informatie
over de technologie waaruit de component is samengeteld. Enkele voorbeelden: geen letters
(standaard), S (schottky), L (low power), LS (low power schottky), F (fast).
Zo weet de gebruiker dat een 74LS04, in vergelijking met een 7404, dezelfde logische functie
bevat (bei- den 04) maar beduidend sneller schakelt en veel minder vermogen verbruikt. Meer
informatie omtrent deze materie vindt u terug in het laboschrift.
Een 74LS04 bevat 6 onafhankelijke invertoren.
-
7
EN-operatie.
De EN-functie geeft aan dat het resultaat van een bewerking waar is indien alle
ingangsvoorwaarden waar zijn. De AND-poort heeft n uitgang en meerdere ingangen. Voor
een 3-input AND geldt:
F = 1 indien A = 1 en B = 1 en C = 1.
OF-operatie.
De OF-functie geeft aan dat het resultaat van een bewerking waar is indien minstens n
ingangsvoorwaarde waar is. De OR-poort heeft n uitgang en meerdere ingangen. Voor een
3-input OR geldt:
F = 1 indien A = 1 of B = 1 of C = 1.
-
8
4 Afgeleide basisfuncties en afgeleide poorten.
In de praktijk tracht men een schakeling te ontwerpen met een minimum aan bouwstenen.
Daarom zijn er ook een aantal combinatiepoorten op de markt gebracht. Deze noemt men
afgeleide poorten en bevatten een combinatieschakeling van een aantal basispoorten.
NAND-poort.
De NAND-poort is de samensmelting van een AND-poort, gevolgd door een invertor.
Voor een 3-input NAND geldt:
F = 0 indien A = 1 en B = 1 en C = 1
-
9
NOR-poort.
De NOR-poort is de samensmelting van een OR-poort, gevolgd door een invertor.
Voor een 3-input NOR geldt:
F = 0 indien A = 1 of B = 1 of C = 1
-
10
EXOR-poort.
Het resultaat van de EXOR-functie is waar indien juist n ingangsvoorwaarde waar is. De
EXOR-poort is een samengestelde schakeling van de drie basispoorten. Deze poort is enkel
verkrijgbaar met twee ingangen en n uitgang.
Voor een EXOR geldt:
F = 1 indien (A = 0 en B = 1) of (A = 1 en B = 0).
-
11
EXNOR-poort.
Het resultaat van de EXNOR-functie is waar indien alle ingangsvoorwaarden aan elkaar gelijk
zijn.
De EXNOR-poort bezit eveneens twee ingangen en is ook een samengestelde schakeling
Voor een EXNOR geldt:
F = 1 indien (A = 0 en B = 0) of (A = 1 en B = 1).
-
12
5 Het verband tussen de logische vergelijking, het schema, de waarheidstabel en het
tijdsdiagram.
In deze paragraaf gaan we, aan de hand van voorbeelden, de logica na die het verband tussen
de logische vergelijking, het bijhorende schema, de waarheidstabel en het tijdsdiagram
aantoont. Indien n van deze vier voorstellingen gekend is, kan men relatief eenvoudig de
overige drie voorstellingen uitwerken.
Het schema is gekend.
Evalueer het schema van links naar rechts. Ken aan elke poort uitgang een letter toe en zet deze eveneens in de waarheidstabel.
Vervolledig stelselmatig de waarheidstabel, zodat u uiteindelijk op de uitgang terecht komt.
-
13
De vergelijking.
Evalueer het schema vanaf de uitgang naar de ingangen toe.
De prioriteiten binnen een logische vergelijking zijn van hoogste naar laagste:
Inversie, haakjes, EXOR & EXNOR, AND en tenslotte OR.
Het tijdsdiagram.
Schets een tijdsdiagram waarop, indien mogelijk, alle mogelijke ingangscombinaties
voorkomen. Voor een drie-bit schakeling, alle combinaties tussen 000 en 111. Teken
eventueel de tussenliggende logische niveaus op de verschillende poortuitgangen en
construeer hieruit het verloop van F.
Het resultaat van het tijdsdiagram moet uiteraard identiek zijn aan de gevonden toestanden
binnen de waarheidstabel.
-
14
De waarheidstabel is gekend.
De functie.
Elke rij waarbinnen de functie 1 is, kan u voorstellen als een productterm (een AND-functie).
(1) F = 1 indien A = 1 en B = 0 en C = 0.
De verschillende producttermen worden vervolgens gekoppeld via een som (een OR-functie).
F = 1 indien A = 0 en B = 0 en C = 0 of A = 1 en B = 0 en C = 0 of A = 0 en B = 1 en C = 0 of A = 1 en B = 0 en C = 1 of A = 1 en B = 1 en C = 1
De vorm waarin de logische vergelijking verschijnt noemen we een som van producttermen of
standaard som vorm. In een tweede methode om deze functie te bepalen, vertrekt men van de
inverse functie van F (=/G).
Met welke methode u de vergelijking bepaalt, hangt enkel af van het aantal enen dat de
waarheidstabel bevat. Gebruik de eerste methode indien er weinig enen in de F-tabel
verschijnen. Gebruik de tweede methode (de inverse functie, de G-tabel) indien er veel enen
in de F-tabel staan.
-
15
Merk tevens op dat eenzelfde functie onder meerdere vormen kan geschreven worden.
Het schema.
Het schema wordt opgesteld aan de hand van n van beide vergelijkingen. Normalerwijs
kiest u de vergelijking die de minste poorten bevat.
Het schema bevat 3 invertoren, 3 AND-poorten en 1 NOR-poort.
Het tijdsdiagram.
-
16
De logische functie is gekend.
Het schema.
Let op de prioriteit van de bewerkingen.
De waarheidstabel.
Splits de vergelijking in deelfuncties en vervolledig de waarheidstabel.
-
17
Merk op dat:
Het tijdsdiagram.
6 In- en uitgangspolariteit van logische componenten.
Uitgangspolariteit.
De uitgang = 1 indien de bijhorende voorwaarde binnen het symbool
waar is. (hoog actieve uitgang)
De uitgang = 0 indien de bijhorende voorwaarde binnen het symbool
waar is. (laag actieve uitgang)
Ingangspolariteit.
De bijhorende voorwaarde binnen het symbool is waar zodra de ingang
= 1. (hoog actieve ingang)
De bijhorende voorwaarde binnen het symbool is waar zodra de ingang
= 0. (laag actieve ingang)
-
18
Beschouw als voorbeeld de logica van een AND en NAND-poort.
F = 1 indien A = 1 en B = 1.
G = 0 indien A = 1 en B = 1.
Elke schakeling kan u in principe tot n symbool herleiden.
Aan onderstaande voorbeeldsymbolen worden eveneens het bijhorend schema en de logische
vergelijking toegevoegd.
In het tweede voorbeeld duidt het cirkeltje binnen het symbool op een logische inversie. Een
links van de cirkel geeft rechts een 0.
-
19
7 Toepassingen.
1) Koffieautomaat.
Een koffieautomaat laat verschillende mogelijkheden toe:
- ZK zwarte koffie. - KS koffie met suiker. - KM koffie met melk. - KSM koffie met suiker en melk.
-
20
De ventielen kunnen enkel bediend worden indien er elektriciteit (E) en geld (G) aanwezig
zijn. Dit is de basisvoorwaarde (BV).
Verder moeten er voldoende grondstoffen voorradig zijn namelijk: bekers (B), water (W)
koffiepoeder (KP), suikerpoeder (SP) en melkpoeder (MP), zoniet gaat het bijhorende
"Buiten gebruik" lampje branden en wordt deze keuzeoptie uitgeschakeld. Zodra de klant
een correcte keuze heeft gemaakt plaats de automaat eerst een beker (BP) en controleert of
deze op de juiste plaats terecht komt (BG). Vervolgens worden, afhankelijk van de keuze,
de verschillende grondstoffen toegevoegd. Om problemen te voorkomen mag de gebruiker
slechts n keuzetoets bedienen, zoniet gebeurt er niets.
-
21
-
22
2) Vervolledig de waarheidstabel en het tijdsdiagram van onderstaande schema's. Bepaal de logische functie en vat de volledige schakeling samen in n symbool.
-
23
-
24
3) Vervolledig de waarheidstabel en het tijdsdiagram. Teken het schema en het bijhorend symbool.
-
25
4) Bepaal op twee manieren de functie, teken het schema en vervolledig het tijdsdiagram.
-
26
-
27
Hoofdstuk 2 : Vereenvoudigen van logische functies.
Dit hoofdstuk behandelt de verschillende vereenvoudigingstechnieken die worden toegepast om het aantal
poorten binnen een logische functie te reduceren. Tot hier toe kunnen we alle logische functies realiseren
volgens de AND-OR-NOT structuur (= som van producttermen). Zodra we de gevonden vergelijkingen kunnen
vereenvoudigen, betekent dit op de eerste plaats dat het aantal poorten vermindert. De ontwerper zal hierdoor
dezelfde schakeling realiseren met minder componenten ( IC's). Hierdoor wordt het gebruikte printoppervlak ook
kleiner. Al deze factoren maken dat de totale kostprijs van een project drastisch kan dalen. De eenvoudigste
vergelijking is daarom niet de meest economische. Indien de functie, na vereenvoudiging, bijvoorbeeld twee
invertoren + n 3-input AND poort + n 2-input NAND-poort bevat, betekent dit hardwarematig drie IC's. Elk
IC bevat hierbij een aantal niet-gebruikte poorten. Een 74xx04 bevat 6 invertoren en is dus maar voor 1/3 benut .
Daarom trachten we de gevonden vergelijkingen om te vormen tot een minimum aan componenten. Zo blijkt
bijvoorbeeld dat een invertor eveneens kan gerealiseerd worden met een NAND-poort. De 74xx04 verdwijnt
hierdoor uit het schema. We behandelen achtereenvolgens twee minimalisatietechnieken.
- minimalisatie volgens de Booleaanse algebra
- minimaliseren met behulp van een Karnaughkaart
1 Minimalisatie volgens de Booleaanse Algebra.
Omstreeks 1854 stelde George Boole in zijn doctoraatsstudie een aantal rekenkundige regels
op die leiden tot het minimaliseren van complexe binaire systemen. Stelselmatig worden de
verschillende rekenregels opgesteld en gecontroleerd. Tevens worden er een aantal nuttige
tips aan toegevoegd die in het verdere verloop van deze cursus van belang kunnen zijn.
Theorema's met n veranderlijke.
Bij het bewijs van de juistheid van bovenstaande vergelijkingen gaan we uit van de toestand
die n veranderlijke kan aannemen. A is 0 of 1.
Per vergelijking stellen we alle mogelijke combinaties samen en trekken uit het resultaat ons
besluit.
Zodra alle ingangen van een OR of AND-poort met elkaar worden verbonden, volgt de
uitgang het aangelegde ingangsniveau. Merk op dat dit ook zo is voor poorten met meer dan
twee ingangen.
A . A . ... . A = A en A + A + ... + A = A.
-
28
Zodra n ingang van de OR-poort constant op 1 staat, blijft de uitgang constant hoog.
Zodra n ingang van de AND-poort constant op 0 staat, blijft de uitgang constant laag.
Zodra n of meerdere ingangen van de OR-poort constant 0 zijn, volgt de uitgang het
ingangssignaal. Zodra n of meerdere ingangen van de AND-poort constant 1 zijn, volgt de
uitgang het ingangssignaal.
Na een dubbele inversie behoudt de uitgang het niveau van de ingang.
Commutatieve en associatieve theorema's.
Binnen een logische bewerking, met dezelfde bewerkingsprioriteit, mogen de verschillende
parameters van plaats veranderen en er kunnen haakjes aan worden toegevoegd of
weggelaten.
Distributieve theorema's.
Binnen een logische bewerking hebben de invertoren de hoogste prioriteit, gevolgd door de
haakjes, de AND en de OR. Het uitwerken van de haakjes volgt dezelfde rekenregels als deze
binnen de numerische wiskunde.
-
29
Bewijs van het tweede distributieve theorema:
Absorptietheorema's.
Bewijs:
Theorema's van de Morgan.
De theorema's van de Morgan geven een flexibele overgang van AND (NAND) naar NOR
(OR) en omgekeerd. Deze rekenregels worden frequent toegepast bij het vereenvoudigen.
De theorema's worden bewezen aan de hand van een waarheidstabel.
-
30
Consensustheorema's.
-
31
Deze deelvergelijkingen zijn het moeilijks op te sporen binnen de logische functie. De
minimalisatie gebeurt in twee stappen. Eerst wordt de functie gexpandeerd en vervolgens
gereduceerd.
Samenvatting van de belangrijkste vereenvoudigingsregels.
-
32
Conclusies met betrekking tot de Booleaanse vereenvoudigingsregels.
- De prioriteiten binnen een logische functie zijn achtereenvolgens (van hoogste naar laagste):
invertor, haakjes, EXOR & EXNOR, AND en OR.
Het AND-symbool "." wordt meestal weggelaten. Dit vereenvoudigt de schrijfwijze.
- Interpreteer de Booleaanse vereenvoudigingsregels vrij ruim. Zo kan elke veranderlijke in principe een volledige deelfunctie bevatten.
Enkele voorbeelden:
- Een AND, NAND, OR en NOR-functie opbouwen met de respectievelijke poorten, waarvan niet alle ingangen gebruikt worden, kan. Om praktische redenen mogen de
niet-gebruikte ingangen NOOIT loshangen. We gaan de correcte aansluiting na voor
een 2-input functie, gebruikmakend van een 3-input poort.
-
33
Niet-gebruikte ingangen op een AND- en NAND-poort verbinden met Ucc of met een
gebruikte ingang.
Niet-gebruikte ingangen op een OR- en NOR-poort verbinden met GND of met een gebruikte
ingang.
Binnen de TTL-reeks zijn er enkel 2-input OR-poorten verkrijgbaar (74xx32). Bevat de
vergelijking meer dan twee OR-termen, dan kan men de vergelijking opsplitsen over
meerdere OR-poorten. Voor een 4-input OR geldt:
F = A+B+C+D = ((A+B)+C)+D = (A+B)+(C+D)
Beide schema's bevatten eenzelfde aantal poorten en zijn daardoor gelijkwaardig. Praktisch
geeft men de voorkeur aan de oplossing volgens F2. Elke poort heeft een bepaalde
vertragingstijd van enkele nanoseconden. Deze stellen we voor door n tijdseenheid per
poort. In het schema volgens F1 is de maximale vertragingstijd 3 tijdseenheden. Voor F2
geldt een maximale vertraging van 2 tijdseenheden. F2 reageert, in worst-case, 33% sneller
dan F1.
-
34
- Binnen een som van producttermen mag men elke productterm meerdere malen gebruiken tijdens de vereenvoudiging. Bijvoorbeeld:
Enkele opgeloste voorbeelden.
Herwerk de vergelijking steeds tot een som van producttermen. Tracht ondertussen zoveel
mogelijk veranderlijken te elimineren. Vervang eventuele EXOR- EXNOR-functies door hun
logische vergelijking vooraleer tot vereenvoudiging over te gaan.
-
35
Afhankelijk van de gekozen weg levert een verdere vereenvoudiging twee oplossingen.
Beide functies zijn juist en bevatten evenveel poorten.
2 Minimalisatie met behulp van een Karnaughkaart.
Minimalisatie met de Booleaanse vergelijkingen is meestal een moeizame taak. Het is immers
niet meteen duidelijk of het resultaat wel de eenvoudigste vorm is. Een Karnaughkaart
daarentegen geeft ons een grafische voorstelling van een functie. De vereenvoudi- ging
gebeurt in principe visueel, maar volgt wel de minimalisatieregels van Boole. Veitch
ontwikkelde in 1952 de basis van het grafisch vereenvoudigen. Later werd deze methode door
Karnaugh verfijnd en publiceerde deze in "A map method for synthesis of combinational
logic circuits". Een Karnaughkaart is opgebouwd uit een aantal cellen. Elke cel stelt n regel
uit de waarheidstabel voor. De volgorde waarin de cellen op de kaart worden geplaatst is wel
van belang. Het aantal cellen wordt bepaald door het aantal veranderlijke binnen de functie.
Voor n-veranderlijken bevat de Karnaughkaart 2n
cellen. Kaarten tot 4 veranderlijken zijn vrij
simpel te vereenvoudigen. Vanaf 5 variabelen wordt het wel iets ingewikkelder. Vanaf 7
variabelen wordt het een onbegonnen werk en komt de Karnaugkaart niet meer in
aanmerking.
Karnaughkaart tot en met 4 veranderlijken.
-
36
2 veranderlijken. F(A,B).
De kaart wordt opgesplitst in 4 cellen. Elke cel stelt n van de vier ingangscombinaties voor.
Horizontaal lezen we de waarde van A, vertikaal de waarde van B. A en B mag u eventueel
van plaats verwisselen. Bovenaan rechts staat de functienaam van de tabel.
In bovenstaande tabel betekent cel(1) dat A = 0 en B = 0. Cel (2) staat voor A = 0 en B = 1.
2 veranderlijken. F(A,B,C).
3 veranderlijken geeft een kaart met 8 cellen. Let vooral op de verticale celnummering (00,
01, 11, 10 i.p.v. 00, 01, 10, 11). Naast elkaar liggende cellen mogen, voor de
vereenvoudiging, maar n bit van elkaar verschillen. Vandaar deze volgorde. U kan de kaart
eventueel 90 roteren. Noteer horizontaal twee variabelen naar keuze, maar behoud de
specifieke celnummering. Zowel in boven- als onderstaande kaarten geeft cel (3) de toestand
C = B = 1 en A = 0 aan.
Invullen van de Karnaughkaart.
Het invullen van de Karnaughkaart gebeurt langs de waarheidstabel of vanaf de logische
functie. De waarheidstabel bevat alle combinaties waarbij de functie 1 is. Hierdoor verloopt
het overbrengen van deze informatie snel en correct. Indien de waarheidstabel nog niet
aanwezig is, kan de kaart rechtstreeks worden ingevuld vanaf de functie. Herwerk de functie,
met de Booleaanse algebra, tot een som van producttermen en ga dan over naar de
Karnaughkaart. Een Karnaughkaart bevat enkel de enen van de functie of tabel. De nullen
worden meestal weggelaten. Dit vergemakkelijkt het "lezen" van de kaart. Het zijn immers
enkel de enen die betrekking hebben tot de vereenvoudigingsregels.
Van waarheidstabel naar Karnaughkaart.
-
37
Van waarheidstabel naar Karnaughkaart. Het celnummer geeft de positie aan binnen de kaart.
Op celnummer (2) is F = 1. Op (4) is F = 0, dus deze cel blijft leeg op de kaart.
Van logische functie naar Karnaughkaart.
De verschillende producttermen bevatten niet alle veranderlijken. Volgens de Booleaanse
vergelijking A + /A = 1 kan elke term worden aangevuld met de resterende veranderlijken. (1)
geeft na substitutie twee termen (1a) en (1b). (2) en (3) vormen hierdoor beide vier termen
(2a) ... (2d) en (3a) ... (3d).
Elke productterm geeft aan waar de functie 1 wordt.
Een geoefend gebruiker kan rechtstreeks vanaf de gereduceerde vergelijking de
Karnaughkaart vervolledigen. Het expanderen van F wordt hierdoor overbodig.
Vereenvoudigen van een Karnaughkaart.
Tracht op de Karnaughkaart een aantal, naast of onder elkaar, gegroepeerde enen te
selecteren. Combineer enkel horizontaal of vertikaal, nooit schuin. De omsloten enen vormen
dus een rechthoek of vierkant. Het aantal enen binnen een selectie is een macht van 2 (= 2, 4,
8, ...) . De buitenste horizontale cellen mogen als aangrenzend worden beschouwd, alsook de
buitenste verticale cellen. Deze zijn dus combineerbaar. (Vergelijk met een torus) De vier
hoekpunten van de kaart zijn eveneens combineerbaar met elkaar. Elke cel mag meermaals
binnen verschillende selecties voorkomen (A = A + A).
-
38
Onderstaande voorbeelden illustreren de vereenvoudigingsregels.
De vereenvoudiging binnen een selectie steunt op de rekenregel A + /A = 1. De selectie
binnen F geeft een som van twee producttermen. Na vereenvoudiging volgens de Booleaanse
algebra verdwijnt de veranderlijke D.
Grafisch vereenvoudigen we als volgt. Ga na hoe de veranderlijken zich gedragen binnen de
selectie. A en C zijn beiden 0, B is 1 en D is veranderlijk. Noteer de constanten als een
productterm en laat de veranderlijke variabele weg.
Dus:
Karnaughkaart G bevat n selectie van 2 en n van 4 cellen. Beide selecties geven een
productterm en worden langs een OR-term met elkaar verbonden.
Na een grafische vereenvoudiging bekomen we hetzelfde resultaat.
-
39
Bij selectie van twee cellen verdwijnt er n variabele uit de productterm. Bij een groep van
vier cellen zijn er twee variabelen verdwenen enz...
Neem de vereenvoudigingslussen zo groot mogelijk. Dan pas bekomt u de eenvoudigste
functie. Cellen die niet te groeperen zijn, worden als afzonderlijke producttermen geschreven
en bevatten dus alle veranderlijken. Tracht de functie steeds met een minimum aan lussen te
vereenvoudigen.
Onderstaand voorbeeld illustreert het resultaat bij een foutieve selectie van de groepen.
Rechts is de selectie correct verlopen. Dit geeft als resultaat:
De linkse oplossing daarentegen bevat een groep van twee cellen i.p.v. vier, met als resultaat
dat deze productterm veranderlijke A bevat.
Een goed vereenvoudigde vergelijking langs de Karnaughkaart kan nooit verder
vereenvoudigd worden met de Booleaanse algebra. Het resultaat van de linkse kaart kan u wel
verder vereenvoudigen.
Een bijkomend voordeel van de Karnaughkaart is ook dat u dadelijk ziet dat er al dan niet
meerdere eenvoudigste oplossingen bestaan.
-
40
Onvolledige functies.
Normaal beschrijft een functie alle mogelijke combinaties. Soms kan het voorkomen dat een
aantal combinaties niet kunnen verwezenlijkt worden. Neem bijvoorbeeld een 4-bit
schakeling die wordt aangestuurd langs een BCD-teller. Een BCD-teller brengt
achtereenvolgens een binair getal van 0000 t.e.m. 1001 op de ingangen van de schakeling. De
codes 1010 ... 1111 komen niet voor. In de desbetreffende cellen van de Karnaughkaart wordt
een "X" geplaatst. X staat voor "don't care". Het maakt dus niets uit of de functie op die
bepaalde plaatsen 0 of 1 is. De combinatie komt immers toch nooit voor. Een andere
mogelijkheid is dat een bepaalde ingangscombinatie, om welke reden dan ook, nooit mag
voorkomen. Deze verboden toestand duiden we aan met een "-". Ook hier maakt het niet uit
of de functie op die bepaalde plaats 0 of 1 is.
- (X) staat voor don't care. - (-) staat voor een verboden toestand.
Een verboden toestand en een don't care neemt aan een vereenvoudigingslus deel indien we
de lus hiermee kunnen vergroten. Verboden toestanden en don't cares binnen een selectie
worden vanaf dan als 1 beschouwd. Verboden toestanden en don't cares die buiten de selectie
liggen zijn hierdoor 0. Een voorbeeld. Vier schakelaars (A, B, C en D) bedienen n lamp (L).
De lamp licht op zodra er meer dan n schakelaar gesloten wordt. Schakelaars A en B
kunnen nooit samen open zijn. Voor de logische niveaus geldt: lamp aan = 1, schakelaar
gesloten = 1.
-
41
3 Reduceren van het aantal componenten.
Een ontwerper vindt het belangrijk een minimum aan componenten in zijn schakeling te
verwerken. Eerst zal hij de vergelijkingen vereenvoudigen. Dit geeft een functie met een
minimum aan poorten. Vervolgens tracht hij een aantal poorten te vervangen door een ander
type poorten om zodoende het aantal ICs te beperken.
Vooreerst gaan we na waarom de NAND- en NOR-poort zo goed vertegenwoordigd zijn
binnen het IC-pakket. Nadien gaan we aan de hand van een voorbeeld na hoe we tot een IC
reductie kunnen overgaan.
NAND- en NOR-poort als universele component.
Aan de hand van onderstaande schema's wordt aangetoond dat alle basispoorten (NOT, AND
en OR) te vervangen zijn door een NAND- of NOR-schema.
Elke logische vergelijking, evenals de EXOR en EXNOR, kan als een som van producttermen
geschreven worden. Dit wil dus zeggen dat alle vergelijkingen als NAND- of NOR-schema's
te tekenen zijn.
-
42
4 Toepassingen.
1. Vereenvoudig onderstaande vergelijkingen volgens de Booleaanse algebra.
Vereenvoudig tot 2 -input NANDs
2. Vereenvoudig onderstaande waarheidstabellen volgens de Booleaanse algebra.
-
43
3. Bepaal de uitgangsfunctie en vereenvoudig deze volgens de Booleaanse algebra. Teken het vereenvoudigd schema.
4. Bepaal de functies van onderstaande Karnaughkaarten.
-
44
5. Elektronische dobbelsteen.
Een elektronische dobbelsteen wordt voorgesteld met 7 LED's. Afhankelijk van de
ingangscombinatie (CBA), zal de juiste LED-combinatie oplichten.
Merk op dat er maar 4 functies worden opgesteld, nl: a=g, b=f, c=e en d.
-
45
6. Vloeistofmeting. Een niveau-alarm overwaakt een vloeistofreservoir. Het signaal, afkomstig van de niveaumeter, wordt via een analoog-digitaal convertie omgevormd
tot een 4-bit code (DCBA). De alarm-LED brandt indien het niveau (3)10 of > (13)10. Voor alle andere combinaties blijft de OK-LED actief.
Teken het schema met NAND-poorten.
-
46
Het boerenprobleem. Een boer heeft een geit , een hongerige hond en een grote schuur, een
opslagplaats van bloemkolen. De boer pendelt regelmatig met zijn dieren tussen het veld en
de schuur. Als hij de hond en de geit alleen samen achterlaat ( in de schuur of op het veld)
bestaat er een grote kans dat er van zijn geit niet veel meer overblijft. Blijft de geit alleen
achter in de schuur, dan zal deze zeker zijn kolenoogst oppeuzelen. (Op het veld mag de geit
de kolen opeten.) Om een katastrofe te verkomen vraagt de boer ons een draagbare schakeling
te ontwerpen. De schakeling bestaat uit 4 schakelaars (Boer, Hond, Geit en Kool) en n
lampje. Met een gedoofd lampje zit de boer veilig. Voor de ingangen geldt een "1" indien ze
in de schuur zitten en een "0" als ze op het veld zijn.
Ontwerp de bijhorende schakeling.
-
47
Hoofdstuk 3 : Talstelsels en elementaire, binaire bewerkingen.
1. Talstelsels
Een getal bestaat uit een aantal tekens (of digits), kortweg cijfers genoemd. De positie
van een cijfer binnen een getal bepaalt zijn belangrijkheid of gewicht.
Een digitaal verwerkingssysteem kan enkel binaire informatie verwerken. Een reeks enen en
nullen wordt door de buitenwereld moeilijk genterpreteerd, vandaar dat er voortdurend een
conversie plaatsvindt tussen deze binaire informatie en een leesbare code. De meest gebruikte
talstelsels zijn natuurlijk het binaire voor de machine en het decimale voor de gebruiker.
Omdat het binair getal al snel vrij veel bits omvat gaan programmeurs steeds over naar een
hexadecimale voorstelling. Dit hoofdstuk beschrijft een drietal talstelsels (binair, decimaal en
hexadecimaal) met de bijhorende conversietechnieken. Verder komen een aantal
basisbewerkingen (+ - x) op gehele getallen, binnen het binaire talstelsel, aan bod.
uiterst rechts het laagst beduidende cijfer (Least Significant Digit of LSD).
uiterst links het meest beduidende cijfer (Most Significant Digit MSD).
Het decimale talstelsel
Het decimaal talstelsel kent tien symbolen (09) en heeft als grondtal 10.
Men kan een decimaal getal als volgt ontleden:
Het binaire talstelsel
Het binair talstelsel volgt een identieke logica. Bi is twee. Het grondtal is dus twee en de
symbolen zijn 0 en 1. Men spreekt nu van een BInary digiT of BIT.
Uiterst links staat de Most Significant Bit (MSB) en rechts de Least Significant Bit (LSB).
Bepaalde cijfercombinaties komen in verschillende talstelsels terug maar stellen daarom niet
hetzelfde getal voor. Om verwarring te voorkomen geeft het grondtal, als subscript, het
bedoelde talstelsel weer.
De opeenvolgende getallen construeren binnen een bepaald talstelsel, gebeurt als volgt:
vertrek van het eerste symbool en ga telkens n symbool verder. Zijn alle symbolen gebruikt,
begin dan terug vanaf het laagste en verhoog vervolgens de hoger gelegen digit. Onderstaande
tabel geeft een vergelijkend overzicht van de, voor ons, drie belangrijkste talstelsels. Zelfs
negatieve gebroken getallen worden eenvoudig geconverteerd.
-
48
Merk op dat alle moderne rekentoestellen uitgerust zijn met conversietoetsen naar
verschillende talstelsels, maar ze zetten enkel het gehele gedeelte van een getal om en
verwerpen de fractie.
Het hexadecimaal talstelsel
Om een lange string van bits in verkorte vorm weer te geven wordt veelal het hexadecimale
equivalent gebruikt. Deze voorstellingsmethode vind je terug bij de lagere programmeertalen
zoals assembler.
Het hexadecimaal talstelsel heeft als grondtal 16 en bevat daarom 16 symbolen
(0..9 en A..F).
-
49
2. Conversie tussen twee talstelsels
Conversie van grondtal X naar decimaal
Bij de conversie van eender welk denkbaar talstelsel naar het decimaal talstelsel, volgt u
steeds dezelfde methode.
Noteer voor elke digit het bijhorende decimaal getal en vermenigvuldig dit met een macht
van het grondtal. Maak vervolgens de optelling van alle deelresultaten.
Conversie van decimaal naar grondtal X
Splits het getal in een geheel deel en een decimale fractie. Ga grafisch als volgt te werk:
Geheel deel: Deel het getal door het grondtal (X). Noteer het gehele deel links
en de restwaarde onder de horizontale lijn. Herhaal deze bewerking tot het
geheel getal nul wordt.
Decimale fractie : Vermenigvuldig de fractie met het grondtal (X). Trek het
geheel getal er van af en herhaal de vermenigvuldiging met de overgebleven
fractie tot deze nul wordt. Plaats het gehele getal onder de horizontale lijn.
Het geconverteerde getal staat nu onder de horizontale lijn.
Geheel getal delen door het
grondtal (2)
Decimale fractie
vermenigvuldigen met het
grondtal (2)
215 / 2 = 107 rest 1 0,625 * 2 = 1,25 = 0,25 + 1
107 / 2 = 53 rest 1 0,25 * 2 = 0,5 = 0,5 + 0
53 / 2 = 26 rest 1 0,5 * 2 = 1,0 = 0,0 + 1
26 / 2 = 13 rest 0
13 / 2 = 6 rest 1
6 / 2 = 3 rest 0
3 / 2 = 1 rest 1
1 / 2 = 0 rest 1
-
50
(215)10 = (11010111)2 (0,625)10 = (0,101)2
(215,625)10 = (11010111,101)2
Geheel getal delen door het
grondtal (16)
Decimale fractie
vermenigvuldigen met het
grondtal (16)
1473 / 16 = 92 rest 1 0,7 * 16 = 11,2 = 0,2 + 11
(11 = B in hex)
92 / 16 = 53 rest 12
(12 = C in hex) 0,2 * 16 = 3,2 = 0,2 + 3
5 / 16 = 0 rest 5 0,2 * 16 = 3,2 = 0,2 + 3
(215)10 = (5C1)2 (0,7)10 = (0,B3333...)16
(1473,7)10 = (5C1,B3333)16
Conversie van binair naar hexadecimaal
Verdeel het binair getal in groepjes van 4 bits, vertrekkend vanaf de komma. Voeg eventueel
nullen toe. Noteer het hexadecimaal equivalent van elk 4-bit groepje.
Conversie van hexadecimaal naar binair
Vervang elk hexadecimaal element door zijn 4-bit equivalent, vertrekkend vanaf de komma.
Laat de overtollige nullen weg.
-
51
3. Voorstelling van positieve en negatieve gehele getallen.
Een digitale machine die positieve en negatieve gehele getallen (signed integers) wil
verwerken, moet het teken (+ of -) als bit (0 of 1) voorstellen. Er bestaan verschillende
methodes om een signed integer voor te stellen, maar allen vertrekken ze van eenzelfde
principe. Vertrek van een vooraf bepaalde bitlengte. Afhankelijk van het toestel kan dit 4, 5,
8, 16, ... zijn. De MSB is steeds de tekenbit (0 voor een positief getal en 1 voor een negatief
getal.). De overige bits geven het getal weer. Een 6-bit getal bestaat uit n tekenbit en vijf
databits.
Onderstaande tabel geeft enkele voorstellingsvormen weer voor een 4-bit getal.
Unsigned integer :
Indien u enkel met positieve getallen werkt, vervalt de tekenbit en is de gebruikte bitlengte
niet van belang. In de praktijk werken digitale toestellen wel met een vaste bitlengte en de
niet-gebruikte bits worden opgevuld met nullen. Een 6-bit machine ver- werkt het decimale
getal 5 (101 binair) als 000101.
TB + abs. waarde:
De MSB bevat het teken, terwijl de resterende bits het getal in absolute waarde voorstelt. Alle
getallen zijn makkelijk leesbaar. Verder stellen we vast dat er twee voorstellingen zijn voor
het getal nul. Het hardwarematig optellen en aftrekken van getallen vereist twee afzonderlijke
schakelingen.
-
52
1 - complement: Om een negatief getal voor te stellen in het 1 - complement (one's
complement code) volstaat het elke bit van het positief getal te inverteren om zijn negatieve
tegenhanger te vinden. Zo wordt (-12)10 in een 6-bit woord geschreven als:
Binaire optelling en aftrekking
Binaire optelling
Het optellen van binaire getallen verloopt volgens dezelfde rekenregels als een decimale
optelling.
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10 0 schrijven, 1 als overdracht (carry) bij de juist hogergelegen bits optellen.
1 + 1 + 1 = 11 1 schrijven, 1 als overdracht bij de juist hogergelegen bits
optellen.
Enkele voorbeelden met 8-bit getallen:
decimaal binair
(+12)
+ (+25)
= (+37)
11
0000 1100
+ 0001 1001
= 0010 0101
decimaal binair
(+70)
+ (+34)
= (+104)
11
0100 0110
+ 0010 0010
= 0110 1000
Binaire aftrekking
Herleid de aftrekking tot een optelling met het negatieve getal. 25 - 5 = 25 + (-5) .
Merk op dat we bij de aftrekking steeds een vaste bitlengte moeten afspreken voordat we de
bewerking kunnen uitvoeren.
Bij de aftrekking kan er een extra bit, een end-around carry, in het resultaat te voorschijn
komen (zie rode bit op onderstaand voorbeeld). Bij het aflezen van het resultaat houden we
enkel rekening met de acht databits en valt een eventuele end-around carry gewoon weg.
PS: Verwar de "end-around carry" niet met overflow!!!!
-
53
Enkele voorbeelden met 8-bit getallen:
decimaal binair
(+12)
- (+25)
= (-13)
1 1
0000 1100
+ 1110 0111
= 1111 0011
decimaal binair
(+70)
- (-34)
= (+104)
11
0100 0110
+ 0010 0010
= 0110 1000
decimaal binair
(-12)
- (+25)
= (-37)
111 1
1111 0100
+ 1110 0111
= 11101 1011
decimaal binair
(-70)
- (-34)
= (-36)
1 1
1011 1010
+ 0010 0010
= 1101 1100
Overflow
Overflow of overloop treedt op zodra we twee of meerdere binaire getallen met elkaar
optellen en het resultaat van een bewerking de grenzen van het n-bit getal overschrijdt.
Voor een 4-bit getal zijn de grenzen 0111 (+7) en 1000 (-8).
Voor een 8-bit getal zijn de grenzen 0111 1111 (+127) en 1000 0000 (-128).
Enkele voorbeelden op 8-bit getallen:
45 + 70 = 115. Het resultaat valt binnen de grenzen (127), dus OVERFLOW.
Enkele andere voorbeelden met overflow:
decimaal binair
(+50)
+ (+80)
= (+130)
te groot
111
0011 0010
+ 0101 0000
= 1000 0010
(= -126)
decimaal binair
(-70)
+ (-68)
= (-138)
te klein
1 111
1011 1010
+ 1011 1100
= 10111 0110
(= +118)
-
54
Het rechtse voorbeeld bevat eveneens een extra bit bij het resultaat (rode bit). Deze end-
around carry is NIET verantwoordelijk voor het foutieve resultaat (zie twee binaire getallen
van elkaar aftrekken). Bij het aflezen van het resultaat houden we enkel rekening met de acht
(zwarte) databits en valt een eventuele end-around carry gewoon weg.