Voorwoord. Situatieschets. 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. Terugkoppeling
Opnemer
Verwerking Transmissielijn
Weergave Transmissielijn
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% variëren. 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 respectievelijk 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.
DIGITALE TECHNIEKEN
1
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.
1
Transmissielijn
Zender
Verwerkingseenheid
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: Terugkoppeling
Opnemer
Verwerking Transmissielijn
Weergave Transmissielijn
Geheugen Digitaal 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.
DIGITALE TECHNIEKEN
2
Terugkoppeling
Opnemer
ADC
Verwerking Transmissielijn
DAC
Weergave
Transmissielijn
Geheugen
Analoog
Digitaal
Analoog
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.
Over deze cursus. Deze cursus ondersteunt het ontwerpen en het gebruik van een aantal digitale bouwstenen, die vervolgens tot een complex geheel zullen leiden. Geïntegreerde schakelingen of IC's 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 optelschakeling, 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 geïntegreerde schakeling wordt opgebouwd rond verschillende technologieën 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 technologieën, meestal niet rechtstreeks signalen kunnen uitwisselen. Over dit onderwerp ontvangt U meer informatie tijdens de practica lessen.
De ontwerpmethodiek van de besproken functies bestaat uit een aantal stappen. We vertrekken steeds van een basisidee dat stelselmatig wordt uitgebouwd tot een component. Verder komen een aantal componenten uit de praktijk aan bod, aangevuld met voorbeelden en toepassingen. Alle schakelingen worden gecontroleerd aan de hand van simulaties.
DIGITALE TECHNIEKEN
3
+5V
CLK Out1 S
1 0
1
R +5V
In1 Out2 S 1
≥1
1
R
+5V
≥1
DIGITALE TECHNIEKEN
4
Inhoudstafel Voorwoord.
Pagina.
Inhoudstafel. Hoofdstuk 1 : Binaire poorten en basisfuncties. 1. Binaire logica. 2. De waarheidstabel en het tijdsdiagram. 3. Elementaire basisfuncties en basispoorten. 3.1 Inversie. 3.2 EN-operatie. 3.3 OF-operatie. 4. Afgeleide basisfuncties en afgeleide poorten. 4.1 NAND-poort. 4.2 NOR-poort. 4.3 EXOR-poort. 4.4 EXNOR-poort. 5. Samenvatting logische poorten. 6. Het verband tussen de logische vergelijking, het schema, de waarheidstabel en het tijdsdiagram. 6.1 Het schema is gekend. 6.2 De waarheidstabel is gekend. 6.3 De logische functie is gekend. 6.4 Het tijdsdiagram is gekend. 7. In- en uitgangspolariteit van logische componenten. 7.1 Uitgangspolariteit. 7.2 Ingangspolariteit. 8. Toepassingen.
1.1 1.2 1.2 1.3 1.3 1.4 1.5 1.5 1.5 1.6 1.7 1.8 1.8 1.8 1.10 1.11 1.13 1.14 1.14 1.14 1.16
Hoofdstuk 2 : Vereenvoudigen van logische functies. 1. Minimalisatie volgens de Booleaanse algebra. 1.1 Theorema's met één veranderlijke. 1.2 Commutatieve en associatieve theorema's. 1.3 Distributieve theorema's 1.4 Absorptietheorema's. 1.5 Theorema's van de Morgan. 1.6 Consensustheorema's. 1.7 Samenvatting van de belangrijkste vereenvoudigingsregels. 1.8 Conclusies met betrekking tot de Booleaanse vereenvoudigingsregels. 1.9 Enkele opgeloste voorbeelden. 2. Minimalisatie met behulp van een Karnaughkaart. 2.1 Karnaughkaart tot en met 4 veranderlijken. 2.2 Invullen van de Karnaughkaart. 2.3 Vereenvoudigen van de Karnaughkaart. 2.4 Onvolledige functies. 2.5 Karnaughkaart voor 5 en 6 veranderlijken. 3. Reduceren van het aantal componenten. 3.1 NAND- en NOR-poort als universele component. 3.2 Reductie van het aantal IC's. 4. Toepassingen.
DIGITALE TECHNIEKEN
Inhoudstafel
2.1 2.1 2.2 2.2 2.2 2.3 2.4 2.4 2.5 2.6 2.7 2.8 2.8 2.10 2.12 2.12 2.13 2.14 2.14 2.16
1
Hoofdstuk 3 : Talstelsels en elementaire bewerkingen. 1. Talstelsels. 1.1 Het decimaal talstelsel. 1.2 Het hexadecimaal talstelsel. 2. Conversiemethodes tussen de verschillende talstelsels. 2.1 Van grondtal X naar decimaal. 2.2 Van decimaal naar grondtal X. 2.3 Van binair naar hexadecimaal. 2.4 Van hexadecimaal naar binair. 3. Voorstelling van positieve en negatieve getallen. 4. Bewerkingen op binaire getallen. 4.1 De optelling. 4.2 De aftrekking. 4.3 De vermenigvuldiging. 5. Overflow. 6. Floating-point getallen. 7. Toepassingen.
3.1 3.1 3.1 3.2 3.2 3.3 3.3 3.4 3.4 3.5 3.6 3.6 3.6 3.7 3.7 3.8
Hoofdstuk 4 : Codes en codeomvormers. 1. Numerische codes. 1.1 BCD-code. 1.2 XC3-code. 1.3 AIKEN-code. 1.4 GRAY-code. 1.5 7-segment code. 2. Alfanumerische codes. 2.1 EBCDIC-code. 2.2 Hollerith-code. 2.3 Barcode. 2.4 ASCII-code. 3. Codeomvormers. 3.1 DEC/BCD encoder volgens de diodematrix. 3.2 DEC/BCD encoder met poorten. 3.3 BIN/DEC decoder. 3.4 BCD/DEC decoder. 3.5 BCD/7-segment decoder. 3.6 Codeomvormers (BCD/AIKEN). 4. Toepassingen.
4.1 4.2 4.3 4.3 4.3 4.4 4.5 4.5 4.5 4.5 4.5 4.6 4.6 4.7 4.12 4.12 4.14 4.19 4.22
Hoofdstuk 5 : Comparator. 1. 2. 3. 4.
1-bit comparator. 2-bit comparator. 4-bit comparator. De 74xx85 (4-bit magnitude comparator). 4.1 De 74xx85 als comparator voor minder dan 4 bits. 4.2 De 74xx85 als comparator voor meer dan 4 bits. 5. Toepassingen.
DIGITALE TECHNIEKEN
5.1 5.2 5.4 5.4 5.5 5.7 5.8
Inhoudstafel
2
Hoofdstuk 6 : Multiplexer en demultiplexer. 1. 4 naar 1 multiplexer. 2. 1 naar 4 demultiplexer. 3. Ontwerpen van logische functies. 3.1 Functiegenerator zonder restveranderlijken. 3.2 Functiegenerator met één restveranderlijke. 3.3 Functiegenerator met twee restveranderlijken. 4. Ontwerpen van codeomvormers. 5. Elementaire datacommunicatie. 5.1 Basisprincipe. 5.2 4-bit brede seriële synchrone datatransmissie. 6. Overwakingssysteem. 7. Toepassingen.
6.2 6.2 6.3 6.3 6.6 6.8 6.10 6.12 6.12 6.14 6.16
Hoofdstuk 7 : Adders. 1. 2 x 1-bit opteller. 1.1 Half adder. 1.2 Full adder. 2. Principeschakeling van een 4-bit opteller. 3. 4-bit op-afteller. 3.1 4-bit afteller. 3.2 4-bit op-afteller. 3.3 Gecombineerde op-afteller met zevensegment uitlezing. 4. Opteller met variabele woordlengte. 4.1 Woorden kleiner dan 4 bits. 4.2 Woorden groter dan 4 bits. 5. 4-bit serie-opteller. 6. 4-bit BCD opteller. 7. 4-bit vermenigvuldiger. 8. BCD - BIN codeomvormer met adders. 9. Toepassingen.
7.1 7.1 7.1 7.2 7.5 7.5 7.5 7.6 7.8 7.8 7.8 7.8 7.10 7.10 7.12 7.14
Hoofdstuk 8 : Pariteitscontrole. 1. 2. 3. 4.
4-bit pariteitsgenerator. De 74xx280 (9-bit parity controler / checker). Oneven pariteitstransmissie. Toepassingen.
8.1 8.2 8.3 8.3
Hoofdstuk 9 : Flipflops. 1. SR flipflop. 1.1 SR flipflop met NOR-poorten. 1.2 SR flipflop met NAND-poorten. 2. Enkele nuttige toepassingen met een SR flipflop. 2.1 Anti-dender schakeling. 2.2 Startstop schakeling. 2.3 Links/rechts sturing met vergrendeling. 3. JK flipflop. 3.1 Basisschema van een JK flipflop. 3.2 Flankgevoelige JK flipflop. 3.3 JK Master/Slave flipflop. 3.4 JK flipflop met asynchrone set en reset. 3.5 Toestands- en excitatietabel. 3.6 Enkele voorbeeldschakelingen.
DIGITALE TECHNIEKEN
9.1 9.2 9.3 9.4 9.5 9.5 9.6 9.7 9.8 9.9 9.10 9.11
Inhoudstafel
3
4. D flipflop. 4.1 Basisstructuur. 4.2 Enkele voorbeeldschakelingen. 5. D latch. 6. Toepassingen.
9.13 9.14 9.15 9.16
Hoofdstuk 10 : Toestandsmachines. 1. Bolschema (Mealy machine). 2. Het toestandsdiagram. 2.1 Het toestandsblok. 2.2 Het beslissingsblok. 2.3 Het conditioneel uitgangsblok. 3. De toestandstabel en het schema. 3.1 Oplossing met D flipflops (74175). 3.2 Oplossing met JK flipflops (74112). 4. Interpretatie van de verboden toestanden. 5. Een toestandsmachine volgens More. 6. Algemene oplosmethode. 7. Enkele uitgewerkte voorbeelden. 7.1 3-bit Johnsonteller. 7.2 Looplicht. Spoorwegsignalisatie. 8. Toepassingen.
10.1 10.2 10.2 10.3 10.4 10.6 10.7 10.10 10.12 10.15 10.16 10.16 10.16 10.19 10.23 10.25
Hoofdstuk 11 : Tellers. 1. Geïntegreerde synchrone tellers. 1.1 De 74xx160. 1.2 De 74xx161. 1.3 De 74xx162 en 74xx163. 1.4 De 74xx190. 1.5 De 74xx191, 74xx192 en 74xx193. 2. Geïntegreerde asynchrone tellers. 2.1 De 74xx90. 2.2 De 74xx92. 2.3 De 4040. 2.4 De 4060. 3. Ontwerpen van synchrone tellers. 3.1 3-bit binaire opteller met reset. 3.2 AIKEN opteller met preset naar 1011. 4. Toepassingen.
11.1 11.1 11.3 11.3 11.3 11.6 11.6 11.6 11.8 11.9 11.9 11.10 11.10 11.13 11.16
Literatuurverwijzing.
DIGITALE TECHNIEKEN
Inhoudstafel
4
HOOFDSTUK 1 Binaire logica en basisfuncties. 1. Binaire logica. 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 theorieën 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) niet waar = 0 = 0V (GND)
waar = 1 = 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: EN = OF = NIET = ALS =
AND = OR = NOT = IF =
"." "+" "—" "="
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) "mooi weer" waar is (W = 1) "zwembad open" waar is (B = 1) "veel volk" niet waar is (V = 0)
als en en
Z = W.B.V Een schema geeft in de meeste gevallen een duidelijker beeld van het probleem. W B V
DIGITALE TECHNIEKEN
&
Z
1
HOOFDSTUK 1
1. 1
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.
Ingangen C B A 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
Uitgang F 0 1 1 1 0 1 0 1
F is waar als B en C niet waar zijn en A waar.
F is niet waar als C en B waar zijn en A niet waar.
Een tijdsdiagram geeft het verloop van de ingangstoestanden en de bijhorende uitgangstoestand in functie van de tijd weer. Een goed tijdsdiagram bevat alle mogelijke ingangscombinaties.
A B C F
Tijdsvertraging 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 geïntegreerde schakeling verkrijgbaar. Het grafisch symbool dat aan een component wordt toegekend volgt de IEC tekenvoorschriften. IEC staat voor International Electrotechnical Commission.
DIGITALE TECHNIEKEN
HOOFDSTUK 1
1. 2
3.1 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.
74xx04 A
1
A 0 1
F 1 0
F
F = A = / A = NOT A = A'
A F
Alle in de handel verkrijgbare elektronische componenten worden met een cijfer-letter combinatie aangeduid. Een IC binnen de commerciële 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 (beiden 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. Vcc 14
13
12
11
1
1 1
10
8 1
1 2
9
1
1
3
4
5
6
GND
7
3.2 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.
74xx11 A B C
&
F
DIGITALE TECHNIEKEN
F = A.B.C = ABC
HOOFDSTUK 1
1. 3
C 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
A 0 1 0 1 0 1 0 1
F 0 0 0 0 0 0 0 1
A B C F
3.3 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.
4075 A B C
≥1
C 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
F
A 0 1 0 1 0 1 0 1
F = A +B+C F 0 1 1 1 1 1 1 1
A B C F
DIGITALE TECHNIEKEN
HOOFDSTUK 1
1. 4
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.
4.1 NAND-poort. De NAND-poort is de samensmelting van een AND-poort, gevolgd door een invertor. &
&
=
1
Voor een 3-input NAND geldt: F = 0 indien A = 1 en B = 1 en C = 1.
74xx10 A B C
&
F
F = A.B.C = ABC F = A.B.C = ABC
C 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
A 0 1 0 1 0 1 0 1
AND 0 0 0 0 0 0 0 1
F (NAND) 1 1 1 1 1 1 1 0
A B C F
4.2 NOR-poort. De NOR-poort is de samensmelting van een OR-poort, gevolgd door een invertor. ≥1
DIGITALE TECHNIEKEN
=
≥1
1
HOOFDSTUK 1
1. 5
Voor een 3-input NOR geldt: F = 0 indien A = 1 of B = 1 of C = 1.
74xx27 A B C
≥1
F
F = A +B+C F = A +B+C
C 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
A 0 1 0 1 0 1 0 1
OR 0 1 1 1 1 1 1 1
F (NOR) 1 0 0 0 0 0 0 0
A B C F
4.3 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. 1 & ≥1
=
=1
& 1
Voor een EXOR geldt: F = 1 indien (A = 0 en B = 1) of (A = 1 en B = 0).
74xx86 A =1
F
B
DIGITALE TECHNIEKEN
F = AB + AB = A ⊕ B
HOOFDSTUK 1
1. 6
B 0 0 1 1
A 0 1 0 1
F 0 1 1 0
A B F
4.4 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. 1 & ≥1
1
=
=
=
=1
1
&
Voor een EXNOR geldt: 74xx810
F = 1 indien (A = 0 en B = 0) of (A = 1 en B = 1).
A =
F
B
B 0 0 1 1
A 0 1 0 1
EXOR 0 1 1 0
F = AB + AB = AB + AB = A ⊕ B F (EXNOR) 1 0 0 1
A B F
DIGITALE TECHNIEKEN
HOOFDSTUK 1
1. 7
5. Samenvatting logische poorten. Onderstaande tabel geeft een overzicht van de verschillende poorten die u courant in elke elektronicazaak terugvindt. Merk op dat het aanbod aan NAND- en NOR-poorten vrij ruim is in vergelijking met de andere poorten. De reden daartoe is terug te vinden in het feit dat u gelijk welke schakeling kan samenstellen met enkel NOR of NAND-poorten. (Theorema van de Morgan, hoofdstuk 2.)
NOT
AND
OR
NAND
NOR
EXOR
EXNOR
4 74xx08 4081 3 74xx11 4073 2 74xx21 4082
4 74xx32 4071 3
4 74xx00 4011 3 74xx10 4023 2 74xx20 4012
4 74xx02 4001 3 74xx27 4025 2 74xx25 4002 2 74xx260
4 74xx86 4070
4 74xx810 4077
1
12 inputs
1 74xx30 4068 1 74xx134
13 inputs
1 74xx133
6 74xx04 4049
1 input 2 inputs 3 inputs 4 inputs
4075 2 4072
5 inputs 8 inputs
4078
Aantal poorten per IC IC nummer (TTL) IC nummer (CMOS)
6. 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.
6.1 Het schema is gekend.
A
1 &
&
F
B C
DIGITALE TECHNIEKEN
≥1
HOOFDSTUK 1
1. 8
De waarheidstabel. Evalueer het schema van links naar rechts. Ken aan elke poort uitgang een letter toe en zet deze eveneens in de waarheidstabel. A
K
1
&
L
&
F
B ≥1
C
M
Vervolledig stelselmatig de waarheidstabel, zodat u uiteindelijk op de uitgang terecht komt.
K = A
M = B+C
L = K.B
F = A.L.M
C 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
A 0 1 0 1 0 1 0 1
K 1 0 1 0 1 0 1 0
L 1 1 0 1 1 1 0 1
M 0 0 1 1 1 1 1 1
F 0 0 0 1 0 1 0 1
De vergelijking. Evalueer het schema vanaf de uitgang naar de ingangen toe.
F = A.L.M F = A.(K.B).(B + C) F = A.( A.B).(B + C) F = A. A.B .(B + C) 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.
DIGITALE TECHNIEKEN
HOOFDSTUK 1
1. 9
A B C K L M F
6.2 De waarheidstabel is gekend. C 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
A 0 1 0 1 0 1 0 1
F 1 1 1 0 0 1 0 1
(1)
G 0 0 0 1 1 0 1 0
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.
F = A B C De verschillende producttermen worden vervolgens gekoppeld via een som (een OR-functie). F = 1 indien A = 0 en B = 0 en C = 0 A = 1 en B = 0 en C = 0 A = 0 en B = 1 en C = 0 A = 1 en B = 0 en C = 1 A = 1 en B = 1 en C = 1
of of of of
F = A B C +A B C +A B C + A B C + A B C 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).
G = A B C + A B C + A B C F = G F = A B C + A B C + A B C
DIGITALE TECHNIEKEN
HOOFDSTUK 1
1. 10
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. Merk tevens op dat eenzelfde functie onder meerdere vormen kan geschreven worden.
F = A B C +A B C +A B C + A B C + A B C F = A B C + A B C + A B C Het schema. Het schema wordt opgesteld aan de hand van één van beide vergelijkingen. Normalerwijs kiest u de vergelijking die de minste poorten bevat.
F = A B C + A B C + A B C Het schema bevat 3 invertoren, 3 AND-poorten en 1 NOR-poort. A
B
C
1
&
1
&
1
≥1
F
&
Het tijdsdiagram.
A B C F
6.3 De logische functie is gekend. F = AB A + C ⊕ ( AB) Het schema. Let op de prioriteit van de bewerkingen.
DIGITALE TECHNIEKEN
HOOFDSTUK 1
1. 11
&
A
1
≥1
B
F
=1
1 &
C
De waarheidstabel. Splits de vergelijking in deelfuncties en vervolledig de waarheidstabel.
F = AB A + C ⊕ ( AB) K = A+C L = AB K M = AB F = L ⊕ M C 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
A 0 1 0 1 0 1 0 1
/B 1 1 0 0 1 1 0 0
/A 1 0 1 0 1 0 1 0
K 1 0 1 0 1 1 1 1
/K 0 1 0 1 0 0 0 0
L 0 1 0 0 0 0 0 0
/L 1 0 1 1 1 1 1 1
M 0 0 0 1 0 0 0 1
F 1 0 1 0 1 1 1 0
Merk op dat:
F = AB A + C ⊕ ( AB) F = A B C +A B C +A B C + A B C + A B C F = A B C + A B C + A B C
DIGITALE TECHNIEKEN
HOOFDSTUK 1
1. 12
Het tijdsdiagram.
A B C F
Controleer voor elke ingangscombinatie het bijhorend uitgangsniveau. Het resultaat moet natuurlijk overeenstemmen met de gevonden toestanden binnen de waarheidstabel.
6.4 Het tijdsdiagram is gekend.
A B C F (1) (2) (1)(3)
De waarheidstabel. Bepaal binnen het tijdsdiagram de verschillende ingangscombinaties en lees de bijhorende uitgangscombinatie af. U kan de tabel enkel invullen indien het tijdsdiagram alle mogelijke ingangscombinaties beschrijft.
C 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
A 0 1 0 1 0 1 0 1
F 0 0 0 0 0 1 1 1
(3) (2) (1)
De functie. De functie bepalen vanaf het toestandsdiagram is onbegonnen werk. Bepaal F uit de waarheidstabel.
F = A B C + A B C + A B C F = A B C + A B C + A B C + A B C + A B C
DIGITALE TECHNIEKEN
HOOFDSTUK 1
1. 13
Het schema.
A
1 &
B
1
&
≥1
F
&
C
7. In- en uitgangspolariteit van logische componenten. 7.1 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)
7.2 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) Beschouw als voorbeeld de logica van een AND en NAND-poort. A B
&
&
F
G
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.
DIGITALE TECHNIEKEN
HOOFDSTUK 1
1. 14
A B
A B
&
C
≥1
F
≥1
G
F ≥1
D
&
=
G
C
1
D
F = AB + C + D G = F = AB + C + D
In het tweede voorbeeld duidt het cirkeltje binnen het symbool op een logische inversie. Een 1 links van de cirkel geeft rechts een 0. A A B C D
&
B
& ≥1
F
C =
≥1
1
F
& &
D
F = AB + C + CD
A A B C D
E
B
& ≥1
F
≥1
=
=1
D
=1 &
C
&
G
1
E
&
F
G
F = AB + C ⊕ D G = DE
DIGITALE TECHNIEKEN
HOOFDSTUK 1
1. 15
8. 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.
Buiten gebruik LK LS LM LMS
ZK KS KM KMS
30 fr.
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.
BV = E.G
basisvoorwaarde
LK = W + B + KP LS = W + B + KP + SP LM = W + B + KP + MP LSM = W + B + KP + SP + MP
buiten gebruik buiten gebruik buiten gebruik buiten gebruik
KZK = ZK.KS.KM.KSM KKS = ZK.KS.KM.KSM KKM = ZK.KS.KM.KSM KKSM = ZK.KS.KM.KSM
zwarte koffie koffie met sui ker koffie met melk koffie met melk en sui ker
enkel " zwarte koffie" ingedrukt enkel " koffie met sui ker" ingedrukt enkel " koffie met melk" ingedrukt enkel " koffie met sui ker en melk" ingedrukt
(
)
BP = BV. (KZK.LK ) + (KKS.LS) + (KKM.LM) + (KKSM.LSM) HW = BG.(KZK + KKS + KKM + KKSM) K = BG.(KZK + KKS + KKM + KKSM) S = BG.(KKS + KKSM) M = BG.(KKM + KKSM)
DIGITALE TECHNIEKEN
be ker plaatsen
heet water toevoegen koffiepoeder toevoegen sui ker poeder toevoegen melkpoeder toevoegen
HOOFDSTUK 1
1. 16
Druktoetsen ZK
1 &
Ventielen
KZK >1
KS
1 &
&
HW=K
&
S
&
M
KKS >1
KM
1 &
KSM
KKM
>1
1 &
KKSM
BP
Sensoren BG E &
BV
G
&
BP
&
>1
&
&
&
Grondstoffen B
1
Controle lampjes W
1
>1
LK
LK 1
KP
1
SP
1
>1
LS
LS 1
>1
MP
LM
LM
1 1 >1
LSM
LSM 1
Hoog actieve in- en uitgangen.
DIGITALE TECHNIEKEN
HOOFDSTUK 1
1. 17
2. Vervolledig de waarheidstabel en het tijdsdiagram van onderstaande schema's. Bepaal de logische functie en vat de volledige schakeling samen in één symbool. A &
E >1
F >1
F1
B >1
C
G
1
H
D
D 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
C 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
A 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
E
F
G
H
F1
A B C D F1
DIGITALE TECHNIEKEN
HOOFDSTUK 1
1. 18
A
1
D &
F >1
=1
F2
E
B C
C 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
A 0 1 0 1 0 1 0 1
D
E
F
F2
A B C F2
3. Vervolledig de waarheidstabel en het tijdsdiagram. Teken het schema en het bijhorend symbool.
F3= A.B + C.A.B.C C 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
A 0 1 0 1 0 1 0 1
DIGITALE TECHNIEKEN
HOOFDSTUK 1
1. 19
A B C F3
F 4 = ( A + B).C + A.D
D 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
C 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
A 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
A B C D F4
DIGITALE TECHNIEKEN
HOOFDSTUK 1
1. 20
4. Bepaal op twee manieren de functie, teken het schema en vervolledig het tijdsdiagram.
C 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
A 0 1 0 1 0 1 0 1
F5 0 0 1 0 1 1 0 0
B 0 0 1 1 0 0 1 1
A 0 1 0 1 0 1 0 1
F6 1 1 0 0 1 0 0 1
A B C F5
C 0 0 0 0 1 1 1 1
A B C F6
DIGITALE TECHNIEKEN
HOOFDSTUK 1
1. 21
5. Vervolledig de waarheidstabel. Bepaal de bijhorende functie en teken het schema.
A B C F7
A 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
C 0 1 0 1 0 1 0 1
F7
B 0 0 1 1 0 0 1 1
C 0 1 0 1 0 1 0 1
F8
A B C F8
A 0 0 0 0 1 1 1 1
DIGITALE TECHNIEKEN
HOOFDSTUK 1
1. 22
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. Computergestuurd minimaliseren kan ook. Er bestaan immers verschillende minimalisatieprogramma's. Deze maken meestal gebruik van de Quine - McCluskey methode, opgebouwd rond vereenvoudigingstabellen. Met deze methode kan de computer vrij snel een vereenvoudiging uitwerken voor functies met tientallen veranderlijken. Hiervoor is de Karnaughkaart zeker niet geschikt.
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.
1.1 Theorema's met één veranderlijke. A+A=A A +1 = 1 A+0=A
A.A = A A.1 = A A.0 = 0
A + A =1
A.A = 0
A=A
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.
A+A=A
0+0=0 1+1 = 1
A.A = A
0.0 = 0 1.1 = 1
Zodra alle ingangen van een OR of AND-poort met elkaar worden verbonden, volgt de uitgang het aange-
DIGITALE TECHNIEKEN
HOOFDSTUK 2
2. 1
legde ingangsniveau. Merk op dat dit ook zo is voor poorten met meer dan twee ingangen. A . A . … . A = A en A + A + … + A = A.
A +1 = 1
0 +1 = 1 1+1 = 1
A + A =1
0 +1 = 1 1+ 0 =1
Zodra één ingang van de OR-poort constant op 1 staat, blijft de uitgang constant hoog.
A.0 = 0
0.0 = 0 1.0 = 0
A.A = 0
0.1 = 0 1.0 = 0
Zodra één ingang van de AND-poort constant op 0 staat, blijft de uitgang constant laag.
A+0=A
0+0=0 1+ 0 =1
A.1 = A
0.1 = 0 1.1 = 1
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.
0 =1 ⇒ 0 =1= 0
A = A A = (A)
1= 0 ⇒ 1= 0 =1
Na een dubbele inversie behoudt de uitgang het niveau van de ingang.
1.2 Commutatieve en associatieve theorema's. A + B = B+ A A.B = B.A
A + B + C = ( A + B) + C = A + (B + C) = B + ( A + C) A.B.C = ( A.B).C = A.(B.C) = B.( A.C)
Binnen een logische bewerking, met dezelfde bewerkingsprioriteit, mogen de verschillende parameters van plaats veranderen en er kunnen haakjes aan worden toegevoegd of weggelaten.
1.3 Distributieve theorema's. A.B + A.C = A.(B + C)
( A + B).(A + C) = A + B.C
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. Bewijs van het tweede distributieve theorema:
( A + B).( A + C)
= A.A + A.B + A.C + B.C = A(1 + B + C) + B.C = A + B.C
1.4 Absorptietheorema's. A.( A + B) = A
A + A.B = A
A.( A + B) = A.B
A + A.B = A + B
Bewijs:
DIGITALE TECHNIEKEN
HOOFDSTUK 2
2. 2
A.( A + B)
= A.A + A.B A.( A + B) = A + A.B = A.(1 + B) =A
A + A.B
= A.(1 + B) + A.B
= A.A + A.B = 0 + A.B = A.B
= A + A.B + A.B = A + B.( A + A ) =A+B 1.5 Theorema's van de Morgan. A.B = A + B
A.B = A + B
A + B = A.B
A + B = A.B
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.
A.B = A + B B 0 0 1 1 A.B
A 0 1 0 1
/B 1 1 0 0
/A 1 0 1 0
/A./B 1 0 0 0
A+B 0 1 1 1
/(A+B) 1 0 0 0
= ( A.B) = ( A + B) =A+B A + B = A.B
B 0 0 1 1
A 0 1 0 1
/B 1 1 0 0
/A 1 0 1 0
/A+/B 1 1 1 0
A.B 0 0 0 1
/(A.B) 1 1 1 0
A + B = ( A + B) = ( A.B) = A.B
DIGITALE TECHNIEKEN
HOOFDSTUK 2
2. 3
1.6 Consensustheorema's. A.B + B.C + A.C = A.B + A.C ( A + B).(B + C).( A + C) = ( A + B).( A + C) Deze deelvergelijkingen zijn het moeilijks op te sporen binnen de logische functie. De minimalisatie gebeurt in twee stappen. Eerst wordt de functie geëxpandeerd en vervolgens gereduceerd.
A.B + B.C + A.C
= A.B + ( A + A ).B.C + A.C = A.B + A.B.C + A.B.C + A.C = A.B.(1 + C) + A.C.(1 + B) = A.B + A.C
( A + B).(B + C).( A + C)
= ( A.B + BB + A.C + B.C).( A + C) = ( A.B + B + A.C + B.C).( A + C) = (B( A + 1 + C) + A.C).( A + C) = (B + A.C).( A + C) = A.B + A.A.C + B.C + A.C.C = A.B + B.C + A.C = A.A + A.B + C.A + C.B = ( A + B).( A + C)
1.7 Samenvatting van de belangrijkste vereenvoudigingsregels. A+A=A A +1 = 1
A.A = A A.1 = A
A=A
A+0=A
A.0 = 0
A.B = A + B
A + A =1
A.A = 0
A + B = A.B
A.( A + B) = A
A + A.B = A
A.( A + B) = A.B
A + A.B = A + B
A.B + B.C + A.C = A.B + A.C ( A + B).(B + C).( A + C) = ( A + B).( A + C)
DIGITALE TECHNIEKEN
HOOFDSTUK 2
2. 4
1.8 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.
B.1 = B
( A.1 = A )
ABC + BAC = ABC
(A + A = A)
A 0 A1 + A 0 A1 A 2 = A 0 A1 + A 2
( A + AB = A + B)
* 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. F=A.B
voor een 3-input AND geldt.
F=A.B.1 of F=A.B.A of F=A.B.B
A B &
+5V
F=A+B
F
F=A.B.1=A.B
voor een 3-input OR geldt.
&
F
F=A.A.B=A.B
&
F
F=A.B.B=A.B
F=A+B+0 of F=A+B+A of F=A+B+B
A B ≥1
F
F=A+B+0=A+B
F=/(A.B) F=/(A+B)
voor een 3-input NAND geldt. voor een 3-input NOR geldt.
≥1
F
F=A+A+B=A+B
≥1
F
F=A+B+B=A+B
F=/(A.B.1) of F=/(A.B.A) of F=/(A.B.B) F=/(A+B+0) of F=/(A+B+A) of F=/(A+B+B)
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 4input OR geldt: F = A+B+C+D = ((A+B)+C)+D = (A+B)+(C+D)
DIGITALE TECHNIEKEN
HOOFDSTUK 2
2. 5
A B
A ≥1
B
≥1
≥1
C
≥1
D
F1
≥1
C D
F1=((A+B)+C)+D
F2
≥1
F2=(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.
A B C D F1 F2
* Binnen een som van producttermen mag men elke productterm meerdere malen gebruiken tijdens de vereenvoudiging. Bijvoorbeeld:
AB + ABC + BC = AB + BC AB + ABC + BC
= AB + ABC + ABC + BC = AB(1 + C) + (1 + A )BC = AB + BC
1.9 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.
* AB + AC + BCAB = ? = AB AC + BC( A + B) = ( A + B)( A + C) + ABC + BC = A + AB + AC + BC + ABC + BC = A + BC
DIGITALE TECHNIEKEN
HOOFDSTUK 2
2. 6
* AC( ABD + BD) ABC + AB + (C + D) = ?
(
)
(
= AC B( AD + D) + ABC + AB C + D = AC( AB + BD) + ABC + ( A + B)CD
)
= ABC + ABCD + ABC + ACD + BCD = ABC + ACD + BCD = C(BA + AD + BD) = C(BA + BD) = ABC + BCD
(
)
* ( A + BCD) (C + DC) + C + D + A + C + B A ⊕ C = ? = ( A + BCD)((C + D) + C + D) + AC + B( AC + AC) = A + BCD + AC + ABC + ABC = ABCD + AC + ABC + ABC = ABCD + AC + ABC Afhankelijk van de gekozen weg levert een verdere vereenvoudiging twee oplossingen.
= ABCD + AC + ABC
= ABCD + AC + ABC
= A(BCD + C) + ABC
= BC( AD + A ) + AC
= ABD + AC + ABC
= BCD + AC + ABC
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 vereenvoudiging 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.
DIGITALE TECHNIEKEN
HOOFDSTUK 2
2. 7
2.1 Karnaughkaart tot en met 4 veranderlijken. F F
A 0
1
A 0
F
B,A 00
1
C,B 00
D,C 00 01
B 0
(1)
01
1
(2)
11
(3)
01
11
10
(4)
11 10
10
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. 3 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. F
B,A 00
F 01
11
10
C 0 1
B,C 00
A 0
(3)
01
11
10
(3)
1
4 veranderlijken. F(A,B,C,D). De kaart bevat 16 cellen. Zowel horizontaal als vertikaal volgt de celnummering de opeenvolgende codes 00, 01, 11, 10. A = C = 1 en B = D = 0 geeft cel (4).
2.2 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.
DIGITALE TECHNIEKEN
HOOFDSTUK 2
2. 8
Van waarheidstabel naar Karnaughkaart.
C 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
A 0 1 0 1 0 1 0 1
F 0 0 1 1 0 1 1 0
F
celnr. (0) (1) (2) (3) (4) (5) (6) (7)
A 0
F
A 0
1
1
C,B 00
(0)
(1)
C,B 00
01
(2)
(3)
01
1
1
11
(6)
(7)
11
1
10
(4)
(5)
10
1
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.
F = ABC + BD + AC
(1) + (2) + (3)
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).
F=
ABCD + ABCD +
(1a ) + (1b) +
ABCD + ABCD + ABCD + ABCD +
( 2 a ) + (2 b ) + (2 c) + (2 d ) +
ABCD + ABCD + ABCD + ABCD
(3a ) + (3b) + (3c) + (3d )
Elke productterm geeft aan waar de functie 1 wordt. F
B,A 00
F 01
10
(1b)
D,C 00 01
(3d)
11
(2c) (3c)
10
11
(2a)
(2d) (2b) (1a)
B,A 00
F 01
11
10
(1)
D,C 00
(3b)
01
(3)
(3a)
11
(2) (3)
10
(2) (2) (1)
(2)
B,A 00
D,C
01
11
10
1
00
(3)
01
1
1
(3)
11
1
1
10
1
1
1 1
Een geoefend gebruiker kan rechtstreeks vanaf de gereduceerde vergelijking de Karnaughkaart vervolledigen. Het expanderen van F wordt hierdoor overbodig.
DIGITALE TECHNIEKEN
HOOFDSTUK 2
2. 9
2.3 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). Onderstaande voorbeelden illustreren de vereenvoudigingsregels. F
C,D 00
G 01
11
A,B 00 01
1
1
C,D 00
10
01
11
10
A,B 00
1
1
01
1
1
11
11
10
10
1
1
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.
F
= ABCD + ABCD = ABC(D + D) = ABC
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:
F = ABC 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.
G = ABCD + ABCD + ABCD + ABCD + ABCD + ABCD = ACD + ACD + ABD = AD + ABD Na een grafische vereenvoudiging bekomen we hetzelfde resultaat.
G = A B + ABD Bij selectie van twee cellen verdwijnt er één variabele uit de productterm. Bij een groep van vier cellen zijn er twee variabelen verdwenen enz…
DIGITALE TECHNIEKEN
HOOFDSTUK 2
2. 10
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. H
C,D 00
H 01
11
10
A,B 00
1
1
01
1 1
11 10
C,D 00
01
11
10
A,B 00
1
1
1
01
1
1
1
11
1
10
1
1 1
Rechts is de selectie correct verlopen. Dit geeft als resultaat:
H = ABCD + AC + CD De linkse oplossing daarentegen bevat een groep van twee cellen i.p.v. vier, met als resultaat dat deze productterm veranderlijke A bevat.
H = ABCD + AC + ACD 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.
H = ABCD + AC + ACD = ABCD + C( A + AD) = ABCD + C( A + D) = ABCD + AC + CD Een bijkomend voordeel van de Karnaughkaart is ook dat u dadelijk ziet dat er al dan niet meerdere eenvoudigste oplossingen bestaan. I
C,D 00
01
A,B 00
1
1
01
1
1
11
I 11
1
10
I = AC + ACD + BCD
C,D 00
01
A,B 00
1
1
01
1
1
10
1
11
1
10
1
11
10
1 1
ofwel
I = AC + ACD + ABD
DIGITALE TECHNIEKEN
HOOFDSTUK 2
2. 11
2.4 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. L
B,A 00
01
11
10
D,C 00
x
1
01
x
1
1
1
11
x
1
1
1
10
x
1
1
1
L = AB + C + D 2.5 Karnaughkaart voor 5 en 6 veranderlijken. Alle naast en onder elkaar liggende cellen verschillen juist één bit van elkaar. Hierdoor wordt het mogelijk de bovengenoemde vereenvoudigingsregels toe te passen. Vanaf vijf veranderlijken (=32 cellen) is het onmogelijk deze logica op één kaart te brengen en zijn we genoodzaakt meerdere 4-bit kaarten te gebruiken en deze met elkaar te vergelijken. Neem voor vijf veranderlijken twee kaarten van 16 cellen. Bij de ene kaart is de vijfde veranderlijke 0, op de andere 1. Vereenvoudigen binnen elke kaart blijft nog steeds mogelijk. Vergeet tijdens het noteren van de productterm de toestand van de vijfde veranderlijke niet. Deze is binnen de selectie immers constant. Over de twee kaarten heen vereenvoudigen kan pas indien de selecties kunnen gespiegeld worden rond de scheidingslijn.
DIGITALE TECHNIEKEN
HOOFDSTUK 2
2. 12
F
C,B 00
01
11
10
10
11
01
00
E,D 00 01
1
1
1
11
1
1
1
10
1
1 A=0
A=1
F = EDBA + DBA + DCB Een functie van zes variabelen geeft vier 4-bit kaarten. Vereenvoudigen over de vier kaarten heen kan zodra de groepen zich spiegelen langs de horizontale en verticale scheidingslijnen. G
D,C 00
01
F,E 00
x
01
x
A=0 11
10
x
1
1
1
1
x
1
x
x
1
1
10
1
1
10
x
1
11
11 01
x
00
x
11
A=1 01
10
1
1
1
1
00
B=0
B=1
G = FEDC + DCB + EDC
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 IC's te beperken. Vooreerst gaan we na waarom de NAND- en NOR-poort zo goed vertegenwoordigd zijn binnen het ICpakket. Nadien gaan we aan de hand van een voorbeeld na hoe we tot een IC-reductie kunnen overgaan.
DIGITALE TECHNIEKEN
HOOFDSTUK 2
2. 13
3.1 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.
A
F =A
1
A
&
F
A
F = AA = A
A B
A
B
&
F
F =A+A = A
A
F = AB
&
≥1
≥1
F
&
B
≥1
F
≥1
F = AB F = A +B A
A
F = A +B
≥1
B
& &
B
F
A B
≥1
≥1
F
&
F = A +B F = A.B 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.
3.2 Reductie van het aantal IC's. Aan de hand van onderstaande Karnaughkaart worden een aantal schema's uitgewerkt. Eerst met elementaire basispoorten, gevolgd door een NOR- en NAND-schakeling. F
C,D 00
01
11
A,B 00
x
01
1
1
1
11
1
x
1
10
x
10
x
1
F = BC + BD + ACD
DIGITALE TECHNIEKEN
HOOFDSTUK 2
2. 14
Oplossing met elementaire basispoorten.
} 1 74xx04
1 invertor
2 2 − input AND 1 74 xx11 3 IC' s 1 3 − input AND 1 3 − input OR } 1 74xx32 De drie AND-poorten kunnen samen in één 74xx11. Om binnen de TTL-reeks te bijven, moet de 3-input OR worden opgesplitst over twee 2-input OR-poorten. D B
&
C
&
≥1
F
1
&
A
Oplossing met NOR-poorten.
F
= BC + BD + ACD = B+C+B+D+ A +C+D
2 74 xx 02 3 IC' s 2 3 − input NOR } 1 74 xx27
5 invertoren 2 2 − input NOR
Deze vergelijking levert geen componentenbesparing op. Oplossing met NAND-poorten.
F
= BC + BD + ACD = BC.BD.ACD
1 invertor 1 74 xx 00 2 2 − input NAND 2 IC' s 2 3 − input NAND } 1 74 xx10 Deze oplossing is duidelijk te verkiezen boven de andere. De schakeling bevat 2 IC's.
DIGITALE TECHNIEKEN
HOOFDSTUK 2
2. 15
D B
&
C
&
F
&
&
&
A
F A B C D
4. Toepassingen. 1. Vereenvoudig onderstaande vergelijkingen volgens de Booleaanse algebra.
F1 = ( A + B).C + A.B + C
(
F 2 = ( A + B).(C + A ) + A.B.C
)
F 3 = A.B.C + A.B.C + A.B.C + A.B.C + A.B.C
((
)
)
F 4 = A.B + A + ( A + C.D).A .(D + A ) F 5 = ( A.B + B).( A + B).C + B
Vereenvoudig tot 2 − input NAND' s
2. Vereenvoudig onderstaande waarheidstabellen volgens de Booleaanse algebra.
C 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
DIGITALE TECHNIEKEN
A 0 1 0 1 0 1 0 1
F1 0 1 1 1 0 1 1 1
F2 0 0 1 1 1 1 0 0
F3 0 0 1 1 0 0 1 1
F4 1 0 1 0 1 0 0 1
HOOFDSTUK 2
2. 16
D 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
C 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
A 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
F5 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1
F6 0 1 1 0 1 1 1 0 0 0 1 1 1 0 0 0
F7 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0
F8 1 1 0 0 1 1 0 0 0 1 1 1 0 1 1 0
3. Bepaal de uitgangsfunctie en vereenvoudig deze volgens de Booleaanse algebra. Teken het vereenvoudigd schema. X
1
>1 & >1
F
Y & >1
Z
1 &
& >1 &
4. Bepaal de functies van onderstaande Karnaughkaarten. F1
B 0
A 0
1
1
1
1
DIGITALE TECHNIEKEN
F2
A 0
F3 1
B 0
1
1
1
1
A 0
B 0 1
1
1 1
HOOFDSTUK 2
2. 17
F4
A 0
1
C,B 00
1
1
C,B 00
01
1
1
01
1
01
11
1
11
1
11
10
1
1
10
F7
F5
1
A 0
F6 1
1
1
1
11
10
1
1
1
1
01
1
1
01
1
1
11
1
1
11
1
1
1
1
F9
D,C 00
1
01
11
10
x
1
1
1
x
1
01
D,C 00
1
B,A 00
10
F10
F11
C,B 00
01
11
10
10
E,D 00
1
1
1
1
01
1
1
1
1
1
1
1
1
11 10
1
1 A=0
DIGITALE TECHNIEKEN
11
01
11
B,A 00
01
-
11
1
10
1
10
1
1
1
x
01
1
D,C 00
11 10
B,A 00
1 1
01
10
F8
1
B,A 00
D,C 00
1
C,B 00
1
10
A 0
1
1
01
11
10
1
1
x
x
1
-
1
00
1
1
1
A=1
HOOFDSTUK 2
2. 18
F12
C,B 00
01
E,D 00
1
01
11
10
10
1
1
1
x
1
x
1
1
x
1
11 10
1
1
11
E,D 00
1
1 A=1
01
11
10
10
11
01
00
1
1
1
1
x
1
1
x
x
1
x
x
x
1
1
x
1
11
1
10
1
1
1 1
A=0 C,B 00
E,D 00
1
C,B 00
01
F14
00
x
A=0 F13
01
01
1 1
01 11
1
10
1
A=1
11
10
10
1
x
1
1
x
x
x 1 A=0
1
11
01
00
-
1
-
-
-
1
1
1
1
1 1
A=1
5. Vereenvoudig toepassing 1, 2 en 3 met een Karnaughkaart. 6. 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.
DIGITALE TECHNIEKEN
HOOFDSTUK 2
2. 19
CBA 0 0 0
0 0 1
0 1 0 Dobbelsteen decoder C
0 1 1
1 0 0
b
a d e c
B
1 0 1
A
C 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
A 0 1 0 1 0 1 0 1
a,g
b,f
c,e
d
-
-
-
-
g
f
C B A a= g b=f c= e d
a,g
A 0
b,f
A 0
1
c,e
A 0
1
d
A 0
1
C,B 00
C,B 00
C,B 00
C,B 00
01
01
01
01
11
11
11
11
10
10
10
10
DIGITALE TECHNIEKEN
HOOFDSTUK 2
1
2. 20
7. 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.
Niveaumeter Niveau decoder Niveaumeter
ADC
Alarm OK
100 D C B A Alarm OK
D 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
C 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
DIGITALE TECHNIEKEN
B 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
A 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Alarm
OK
HOOFDSTUK 2
2. 21
Alarm
B,A 00
OK 01
11
B,A 00
10
D,C 00
D,C 00
01
01
11
11
10
10
01
11
10
8. 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.
B 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
G 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
DIGITALE TECHNIEKEN
H 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
K 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
F
F
H,K 00
01
11
10
B,G 00 01 11 10
HOOFDSTUK 2
2. 22
9. De somcontroler. Ontwerp een schakeling met als ingangen twee 2-bit woorden (B1, B0 en A1, A0 ). Op de uitgang verschijnt een "1" zodra de som van beide groter of gelijk is aan 3.
B1 B0 (A+B)≥3
S
A1 A0
B1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
B0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
A1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
A0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
A+B
S
S
A1,A0 00 01
11
10
B1,B0 00 01 11 10
10. Vereenvoudig onderstaande Karnaughkaart. Teken het schema achtereenvolgens met elementaire basispoorten, met NAND's en met NOR's. Welke van de drie opstellingen is het voordeligst? F
B,A 00
01
11
10
D,C 00
1
1
1
01
1
x
1
11
1
1
1
10
x
DIGITALE TECHNIEKEN
x
HOOFDSTUK 2
2. 23
HOOFDSTUK 3 Talstelsels en elementaire bewerkingen. Een digitaal verwerkingssysteem kan enkel binaire informatie verwerken. Een reeks enen en nullen wordt door de buitenwereld moeilijk geïnterpreteerd, 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.
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. Uiterst rechts het laagst beduidende cijfer (Least Significant Digit) en uiterst links het meest beduidende cijfer (Most Significant Digit).
1.1 Het decimaal talstelsel. Het decimaal talstelsel kent tien symbolen (0…9) en heeft als grondtal 10. Men kan een decimaal getal als volgt ontleden. 216,3 = 2.102 + 1.101 + 6.100 + 3.10-1 = 200 + 10 + 6 + 0,3 = 216,3 decimaal.
1.2 Het binair 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). 1011,1 = 1.23 + 0.22 + 1.21 + 1.20 + 1.2-1 = 8 + 0 + 2 + 1 + 0,5 = 11,5 decimaal.
1.3 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). 12,7 = 1.161 + 2.160 + 7.16-1 = 16 + 2 + 0,4375 = 18,4375 decimaal.
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. (101)10 ≠ (101)2 ≠ (101)16 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 hogergelegen digit.
DIGITALE TECHNIEKEN
HOOFDSTUK 3
3. 1
Onderstaande tabel geeft een vergelijkend overzicht van de, voor ons, drie belangrijkste talstelsels. Zelfs negatieve gebroken getallen worden eenvoudig geconverteerd. 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.
Decimaal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 … 101 … 257
Binair 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 10001 … 1100101 … 100000001
-22,75
-10110,11
Hexadecimaal 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 … 65 … 101 -16,C
2. Conversiemethodes tussen de verschillende talstelsels. Om over te gaan van het ene naar het andere talstelsel bestaan verschillende methodes, waarvan er telkens één wordt behandeld.
2.1 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. (abc,de)x
= (a.X 2 + b.X 1 + c.X 0 + d.X -1 + e.X -2 )10
(10110,101)2 = 1.2 4 + 0.2 3 + 1.2 2 + 1.2 1 + 0.2 0 + 1.2 -1 + 0.2 -2 + 1.2 -3 = 16 + 0 +4 +2 +0 + 0,5 + 0 + 0,125 = (22,625)10
DIGITALE TECHNIEKEN
HOOFDSTUK 3
3. 2
(2B7,2)16 = 2.16 2 + 11.16 1 + 7.16 0 + 2.16 -1 = 512 + 176 +7 + 0,125 = (695,125)10
2.2 Van decimaal naar grondtal X. Splits het getal in een geheel deel en een decimale fractie. Geheel deel: Deel het getal door X. Noteer het gehele deel en de restwaarde. Herhaal deze bewerking tot het geheel getal nul wordt. Decimale fractie : Vermenigvuldig de fractie met X. Trek het geheel getal er van af en herhaal de vermenigvuldiging met de overgebleven fractie tot deze nul wordt. De restwaarden van de vermenigvuldiging en de gehele getallen van de deling vormen het getal in grondtal X. ÷2
(215,625) 10 = ( ? ) 2 0
x2
1
3
6
13
26
53
107
215
1
1
0
1
0
1
1
1
0,625
rest
0,25
0,5
0
geheel getal
1
0
1
(215,625) 10 = (11010111,101) 2
(1473,7) 10 = ( ? ) 16 0
5
92
1473
0,7
0,2
0,2
…
5
C
1
B
3
3
…
(215,625) 10 = (5C1,B33…) 16
2.3 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. (10110,11011) 2 = ( ? ) 16
0001
0110
,
1101
1000
1
6
,
D
8
(10110,11011) 2 = ( 16,D8 ) 16
DIGITALE TECHNIEKEN
HOOFDSTUK 3
3. 3
2.4 Van hexadecimaal naar binair. Ken aan elke hexadecimale digit de overeenstemmende 4-bit binaire code toe. Laat de overtollige nullen weg. (73,A8) 16 = ( ? ) 2 7
3
,
A
8
0111
0011
,
1010
1000
(73,A8) 16 = (1110011,10101) 2
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.
2 - complement +0 +1 +2 +3 +4 +5 +6 +7 -8 -7 -6 -5 -4 -3 -2 -1
negatieve getallen
signed integer unsigned integer TB + abs. waarde 1 - complement 0 +0 +0 1 +1 +1 2 +2 +2 3 +3 +3 4 +4 +4 5 +5 +5 6 +6 +6 7 +7 +7 8 -0 -7 9 -1 -6 10 -2 -5 11 -3 -4 12 -4 -3 13 -5 -2 14 -6 -1 15 -7 -0
positieve getallen
bitpatroon 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
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 verwerkt 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.
DIGITALE TECHNIEKEN
HOOFDSTUK 3
3. 4
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: 001100 110011
= (+12)10 = (-12)10
Ook hier zijn weer twee codes voor getal nul. Er zijn nu geen twee aparte schakelingen nodig om een op- en aftelling uit te voeren. 2 - complement:
of two's complement code. Construeer een negatief getal volgens het 1 - complement en tel er vervolgens 1 bij. (-25)10 in een 7-bit woord wordt: 0011001 1100110 + 1 1100111
= (+25)10 = (-25)10
1 - complement
= (-25)10
2 - complement
Er bestaat maar één code voor getal nul. Ook hier volstaat een optelschakeling om een aftrekking uit te voeren. ALLE toepassingen binnen deze cursus, waar negatieve getallen in voorkomen, maken gebruik van het 2 - complement !! Om een negatief getal af te lezen kan u de omgekeerde weg volgen. Trek van het negatief getal één af. Inverteer elke bit en u bekomt het getal in absolute waarde. Nu kan men bewijzen dat dit overeenstemt met: elke bit van het negatieve getal inverteren en één optellen. Dan verschijnt eveneens het getal in absolute waarde. Als voorbeeld een 5-bit negatief getal (11011) 2.
-
11011 1 11010 00101
-1 bits inverteren =(+5)10
=
11011 00100 + 1 00101
bits inverteren +1 =(+5)10
Dus (11011) 2 = (-5) 10. De grenzen waarbinnen een n-bit getal zich bevindt zijn respectievelijk: zonder teken TB + abs. waarde 1 - complement 2 - complement
0≤ - 2n-1 < - 2n-1 < - 2n-1 ≤
getal getal getal getal
< 2n < 2n-1 < 2n-1 < 2n-1
4. Bewerkingen op binaire getallen. De bewerkingen die aan bod komen zijn de optelling en de aftrekking van twee gehele binaire getallen met teken. De vermenigvuldiging wordt enkel uitgevoerd op twee positieve gehele getallen. Een bewerking op 2 x n-bits zal als resultaat eveneens n-bits bevatten. Soms zal er een extra bit tevoorschijn komen. Deze wordt gewoon verworpen. Men noemt dit een end-around carry.
DIGITALE TECHNIEKEN
HOOFDSTUK 3
3. 5
4.1 De optelling. Het optellen van binaire getallen verloopt volgens dezelfde rekenregels als een decimale optelling. 0 0 1 1 1
+ + + + +
0 1 0 1 1
= = = = +
0 1 1 10 1 = 11
0 schrijven, 1 als overdracht (carry) bij de juist hogergelegen bits optellen. 1 schrijven, 1 als overdracht bij de juist hogergelegen bits optellen.
Enkele voorbeelden met 6-bit getallen: 111
(+7)10 + (+5)10 (+12)10
1
000111 +000101 001100
(+15)10 + (+ 8)10 (+23)10
001111 +001000 010111
4.2 De aftrekking. Herleid de aftrekking tot een optelling met het negatieve getal. (17)10 - (3)10 = (17)10 + (-3)10 . (+5)10 - (+6)10 (-1)10 (-20)10 - (-13)10 (-7)10
000101 +111010 111111
(+8)10 - (+ 3)10 (+5)10
001000 +111101 1 000101
+
(-25)10 - (+7)10 (-32)10
+
4.3 De vermenigvuldiging. Een vermenigvuldiging wordt herleid tot een reeks van optellingen. Ga alle bits van de vermenigvuldiger na, vertrekkend vanaf de LSB. Is de betreffende bit "1", neem dan het vermenigvuldigtal over. Staat de bit op "0", noteer dan niets of nullen. Elk volgend deelproduct schuift 1 plaats naar links. Voor de eenvoud beperken we ons tot positieve getallen.
(+3)10 x (+5)10 (+15)10
x
0 00 0 00 + 00 00 00 00
DIGITALE TECHNIEKEN
0 0 0 0 0 0
0000 0001 0000 0000 0011 000 00 0 0011
11 01 11 0
vermenigvuldigtal vermenigvuldiger
11
HOOFDSTUK 3
3. 6
5. Overflow. Overflow of overloop treedt op zodra het resultaat van een bewerking de grenzen van het getal overschrijdt. Ter illustratie vier voorbeelden. Voor een 5-bit getal geldt: (-16)10 … getal … (+15)10. Voor een n-bit getal geldt: (- 2n-1)10 … getal … (+ 2n-1-1)10. Geen overflow: (-6)10 + (+12)10 (+6)10
11010 +01100 100110
(+5)10 + (+ 7)10 (+12)10
00101 +00111 01100
11000 +10010 101010
(+4)10 + (+ 13)10 (+17)10
00100 +01101 10001
Wel overflow: (-8)10 + (-14)10 (-22)10
getal A getal B som S
Na het uitvoeren van een bewerking kan men aan de hand van het resultaat (S) en de beide op te tellen getallen (A en B) zeer snel controleren of er al dan niet overflow aanwezig is. Het is dus niet nodig het binaire resultaat te vergelijken met de decimale uitkomst. De tekenbits zeggen voldoende. Telt men twee positieve getallen met elkaar op, dan zal de som eveneens een positief getal zijn. Telt men twee negatieve getallen op, dan is de som negatief. Met andere woorden. Er treedt overflow op indien de som van twee positieve getallen een negatief getal oplevert of indien de som van twee negatieve getallen positief is.
OV = A TB .BTB .STB + A TB .BTB .STB ATB BTB STB OV 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 0
ATB = tekenbit van woord A BTB = tekenbit van woord B STB = tekenbit van de som S
6. Floating-point getallen. Om grote gebroken getallen voor te stellen zal men hoofdzakelijk de floating-point notatie (vlottende komma voorstelling) gebruiken. Het getal wordt weergegeven als een breuk (1,xxxx), vermenigvuldigd met een exponent van het gekozen grondtal. Het grondtal is meestal 2, maar bepaalde toepassingen geven de voorkeur aan 16. De floating-point notatie bevat de fractie van de breuk (xxxx) met bijhorend teken en de exponent . Het grondtal is immers gekend en hoeft dus niet onthouden te worden. De IEEE-standaard beschrijft het formaat en de bijhorende bewerkingsregels voor een floating-point notatie. Men gebruikt meestal 32 bits (single-precision) of 64 bits (double-precision). getal = t . 1, f . 2 e
DIGITALE TECHNIEKEN
t is de tekenbit (- = 1 , + = 0), f als fractie en e de exponent.
HOOFDSTUK 3
3. 7
De exponent wordt met respectievelijk 127 en 1023 verhoogd alvorens deze wordt bewaard. De beschikbare bits worden als volgt benut.
Bitlengte van: teken (t) exponent (e) fractie (f) Exponent waarde voorinstelling single-pr. bit
t
single-precision
double-precision
1 8 23
1 11 52
-127 … +128 127
-1023 … +1024 1023
e + 127
31 30
double-pr. t bit 63 62
f 23 22
0
e + 1023
f 52 51
0
Enkele voorbeelden voor een single-precision getal. (3,0)10 = 1,5 . 21
Tekenbit = + (0)2 Exponent = 1 + 127 = 128 (1000 0000)2 Fractie = 0,5 (0,100 … 000)2 =0100 0000 0100 0000 0000 0000 0000 0000 = (40400000)16
(-1,0)10 = -1,0 . 20
Tekenbit = - (1)2 Exponent = 0 + 127 = 127 (0111 1111)2 Fractie = 0,0 (0,000 … 000)2 =1011 1111 1000 0000 0000 0000 0000 0000 = (BF800000)16
(-0,28)10 = -1,12 . 2 -2
Tekenbit = - (1)2 Exponent = -2 + 127 = 125 (0111 1101)2 Fractie = 0,12 (0,00011 …)2 =1011 1110 1000 1111 0101 1100 0010 1000 = (BE8F5C28)16
7. Toepassingen. 1. Bereken de decimale waarde van volgende getallen. (172)9 = (273,45)8 = (35,14)6 = 2. Wat is het grondtal (x) in volgende gelijkheid? (111)x = (31)10
DIGITALE TECHNIEKEN
HOOFDSTUK 3
3. 8
3. Vervolledig onderstaande getallentabel. Decimaal
Binair
Hexadecimaal
107,25 213,37 10110,1101 10110110,1 B3,A 1C,B
4. Maak volgende bewerkingen met 6-bit getallen (inclusief tekenbit). Ga na of er overflow optreedt. 17 + 12 = -27 + 11 = 18 + 20 =
30 - 25 = -2 - 25 = -20 - 16 =
5. Vervolledig het schema van een 2 x 4-bit opteller met een overflowdetector. A0 A1 A2
∑
A3
S0 S1 S2
B0
S3
B1 B2 B3
6. Geef de hexadecimale notatie van volgende floating-point getallen (single-precision). (42,0)10 = (-5,0)10 = (0,25)10 =
DIGITALE TECHNIEKEN
HOOFDSTUK 3
3. 9
HOOFDSTUK 4 Codes en codeomvormers. Een groot aantal digitale systemen zoals computers, rekentoestellen enz. werken voortdurend met cijfers, letters en andere symbolen. Een rekentoestel bijvoorbeeld, ontvangt zijn informatie cijfer per cijfer. Een groep van cijfers vormt dan het getal. Elk cijfer verschijnt apart op het display. Het is dus evident dat de overgang naar het digitale gedeelte volgens een specifieke codering verloopt. Alle toestellen die enkel getallen verwerken gaan sneller over tot een cijfercode (numerische code). Een getal wordt opgesplitst in cijfers. Aan elk cijfer wordt vervolgens een unieke code toegekend. Een code van 4-bits volstaat meestal om aan elk cijfer een unieke combinatie toe te kennen. Als belangrijkste numerische codes noteren we: BCD, XC3, AIKEN, GRAY en 7-segment. Indien meerdere bits in combinatie één parameter vertegenwoordigen, spreken we van een woord. Een 4bit woord A wordt als volgt genoteerd. A = A3 A2 A1 A0. Het toegevoegde cijfer bepaalt het gewicht van de desbetreffende bit binnen het woord. Voor een 4-bit woord is A0 de LSB en A3 de MSB. Naast de numerische codes bestaan er ook een aantal alfanumerische codes. Deze beschrijven, naast cijfers, eveneens letters en symbolen. Denk hierbij aan het toetsenbord van een computer. Elke toets krijgt ook hier een unieke code toegekend. De ASCII-code is zowat de belangrijkste alfanumerische code. Deze wordt samengesteld volgens 7-bit woorden en laat hierbij 128 verschillende toetsdefinities toe.
1. Numerische codes. Elk cijfer krijgt een unieke 4-bit code toegewezen. Daar er maar 10 cijfers voorhanden zijn zullen er telkens zes 4-bit combinaties ongedefinieerd blijven. Deze worden dus als verboden toestanden verwerkt. Onderstaande tabel geeft de relatie tussen elk decimaal cijfer en de bijhorende code. Tabel "Binair" geeft , ter vergelijking, het natuurlijk binair getal (Hoofdstuk 3). De binaire voorstelling is GEEN cijfercode.
Decimaal 0 1 2 3 4 5 6 7 8 9 25
Binair 0 1 10 11 100 101 110 111 1000 1001 11001
BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 0010 0101
XC3 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 0101 1000
AIKEN 0000 0001 0010 0011 0100 1011 1100 1101 1110 1111 0010 1011
GRAY 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 0011 0111
Als output van digitale systemen komt men regelmatig 7-segment displays tegen. Elk cijfer wordt afgebeeld op een display, bestaande uit 7 LED's. Elke LED wordt aangestuurd door één bit, vandaar een 7-bit code. Afhankelijk van de technologie spreken we van een Common Anode (CA) of Common Cathode (CC) display. Het aanduiden van de verschillende segmenten gebeurt met een letter (a …g).
DIGITALE TECHNIEKEN
HOOFDSTUK 4
4. 1
Decimaal 0 1 2 3 4 5 6 7 8 9
CC (a…g) 1111110 0110000 1101101 1111001 0110011 1011011 0011111 1110000 1111111 1110011
CA (a…g) 0000001 1001111 0010010 0000110 1001100 0100100 1100000 0001111 0000000 0001100
1.1 BCD-code (Binary Coded Decimal). Binnen de BCD-code volgt elk cijfer het natuurlijk binair getal, voorgesteld door 4-bits. De zes codes 1010, 1011, 1100, 1101, 1110 en 1111 kunnen bijgevolg niet optreden. (127)10 = (
1
= ( 0001
2 0010
7
)10
0111 )BCD
Een BCD-getal heeft meer bits nodig dan zijn natuurlijk binair equivalent, vandaar dat de geheugencapaciteit groter wordt. Het voordeel is evenwel dat de conversie van een decimaal getal naar BCD sneller verloopt dan naar binair. Indien een decimaal getal cijfer per cijfer wordt ingevoerd, moet een binaire conversie eerst het volledige getal afwachten alvorens tot conversie over te gaan. De BCD-conversie gebeurt dadelijk na het intoetsen van elk cijfer en dus sneller. Deze redenering geldt eveneens voor alle volgende 4-bit codes. Optellen van twee BCD-getallen. Aan de hand van een aantal voorbeelden worden de problemen van een BCD-optelling aangetoond. Maak de optelling volgens het principe van twee binaire getallen. (13)10 + (25)10 (38)10
= (0001 0011)BCD = (0010 0101)BCD =(0011 1000)BCD
(0001 0011)BCD + (0010 0101)BCD (0011 1000)BCD
—> resultaat OK.
(27)10 + (36)10 (63)10
= (0010 0111)BCD = (0011 0110)BCD =(0110 0011)BCD
(0010 0111)BCD + (0011 0110)BCD (0101 1101)BCD
—> resultaat fout.
Zodra de som van twee cijfers groter wordt dan 9, komt deze in een verboden toestand terecht. In dergelijke gevallen moet het foutieve resultaat met 0110 worden verhoogd (= 6 verboden toestanden overslaan). (27)10 + (36)10 (63)10
= (0010 0111)BCD = (0011 0110)BCD =(0110 0011)BCD
(0010 0111)BCD + (0011 0110)BCD (0101 1101)BCD + (0000 0110)BCD (0110 0011)BCD
—> resultaat OK.
De praktische realisatie van deze optelling volgt later (Hoofdstuk 7: adders)
DIGITALE TECHNIEKEN
HOOFDSTUK 4
4. 2
1.2 XC3-code (Excess 3). Zoals de naam het zegt zijn de eerste en laatste drie combinaties overbodig. 0000, 0001, 0010, 1101, 1110 en 1111 zijn verboden toestanden. Zodra er informatie aanwezig is zal er minstens één bit 1 zijn. Een detectieschakeling is dan vlug ontworpen. Voor een 4-bit XC3 cijfer (A3…A0) geld. F=1 : er is relevante informatie aanwezig. F=0 : geen informatie. A0 A1 A2 A3
≥1
F
De toestand van F kan verder in een schakeling verwerkt worden om bijvoorbeeld het XC3-getal in een geheugen te laden. De XC3-code wordt regelmatig gebruikt als basis binnen een rekenmachine.
1.3 AIKEN-code. De AIKEN-code gebruikt de eerste en laatste vijf combinaties. Ze wordt eveneens in rekenmachines toegepast.
1.4 GRAY-code. Binnen de GRAY-code is de wisseling tussen twee opeenvolgende getallen steeds gelijk aan één bit. De structuur die achter deze code schuilgaat kan als volgt worden omschreven. (1) (2) (3) (4)
Vertrek met 0, gevolgd door 1. Maak een horizontale spiegeling. Voeg links van het bovenste spiegelbeeld een 0 toe en aan het onderste spiegelbeeld een 1. Herhaal stap (2). Herhaal stap (2) en verwerp de laatste 6 combinaties (*). (1)
(2)
(3)
(4)
0 1
00 01 11 10
000 001 011 010 110 111 101 100
0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 * 1111 * * 1110 * * 1010 * * 1011 * * 1001 * * 1000 *
DIGITALE TECHNIEKEN
HOOFDSTUK 4
4. 3
1.5 7-segment code. 7-segment displays komen regelmatig voor op een schakeling die het resultaat van een aantal bewerkingen in cijfervorm weergeeft. Denk hierbij aan digitale multimeters, functiegeneratoren, voedingen, rekentoestellen, … Verwar het 7-segment niet met een LCD-display dat in de meeste moderne toestellen wordt ingebouwd. Deze zijn qua werking en structuur totaal verschillend. Een 7-segmentdisplay bevat minimum zeven LED's. Eventueel wordt één of meerdere puntsymbolen toegevoegd om decimale fracties weer te geven. Wij bespreken het basis display (7 LED's voor het cijfer + 1 LED voor het dp). Elk segment krijgt een specifieke letter toegewezen. Er bestaan twee types displays. Het common anode (CA) display bevat 8 LED's waarvan alle anodes inwendig met elkaar worden verbonden. Bij een common cathode (CC) display worden alle cathodes met elkaar verbonden. common anode
A
a a
b
c
d
e
f
g
dp b
f g C
common cathode e
c d
a
b
c
d
e
f
g
dp
dp
Het gemeenschappelijk punt wordt met een vaste spanning verbonden. Ucc op de anode van een CA display en 0V op de kathode van CC. De spanning op de overige ingangen bepaalt of het desbetreffende segment al dan niet oplicht. Daar elk segment niet meer is dan een LED, moet de aansluiting met de driver correct geschieden. Tussen een poortuitgang en het display staat een stroombeperkende weerstand van 150Ω à 220Ω. De spanning over een LED in doorlaat bedraagt ± 2V bij een stroom van ±20 mA. De meeste poortuitgangen kunnen deze stroom niet leveren, vandaar dat speciale buffer IC's noodzakelijk zijn. Uit de logica binnen de verschillende cijfers volgt automatisch de bijhorende code.
cijfer
0
1
2
3
4
5
6
7
8
Voor de weergave van cijfer 4 geldt (segment a…g):
9
CC : 0110011 CA : 1001100
Een hoog actieve uitgang stuurt steeds een common cathode display aan. Gebruik een laag actieve uitgang voor het common anode display.
DIGITALE TECHNIEKEN
HOOFDSTUK 4
4. 4
2. Alfanumerische codes. 2.1 EBCDIC-code. EBCDIC staat voor Extended Binary Coded Decimal Interchange Code. Deze 8-bit code wordt gebruikt binnen een aantal IBM-apparaten.
2.2 Hollerith-code. Deze 12-bit code is afkomstig van de ponskaarten. Hierop werd informatie opgeslagen in de beginperiode van de computer.
2.3 Barcode. De barcode of streepjescode vindt u tegenwoordig op alle verpakkingen terug. Een etiket bevat een aantal, van elkaar gescheiden, streepjes. Met behulp van een leespen wordt de informatie in een computer binnengenomen en verwerkt. De code bevat een fabrikantnummer, een landnummer, een productnummer enz…. De informatie wordt aan een database gekoppeld. Deze bevat onder andere de prijs van het product. De barcode is eveneens een goed hulpmiddel voor het automatiseren van een stockbeheer. Er bestaan verschillende codeervormen. De belangrijkste, de EAN-code, wordt hoofdzakelijk in de verkoopsindustrie toegepast.
2.4 ASCII-code. De ASCII-code, American Standard Code for Information Interchange, is één van de meest gebruikte codes om data uit te wisselen tussen verschillende toestellen. Bijna alle mini- en microcomputers maken gebruik van de ASCII-code. De structuur binnen de code is zodanig uitgewerkt dat de informatieverwerking vrij eenvoudig manipuleerbaar wordt. ( Sorteren, omzetten van hoofd- naar kleine letters en omgekeerd, enz….) De ASCII-code is een 7-bit code waardoor 128 verschillenende besturingsopdrachten en tekens mogelijk zijn.
DIGITALE TECHNIEKEN
HOOFDSTUK 4
4. 5
Daar de huidige computers met minstens 8 bits werken, wordt er aan de ASCII-code eveneens een extra bit, de MSB, toegevoegd. Hierdoor kan de gebruiker zelf een aantal opties inbouwen. Zo kan de extra bit als pariteitsbit fungeren. Oneven pariteit wil zeggen dat de MSB zodanig wordt ingevuld dat het aantal enen binnen de 8 bits steeds oneven is. Bij even pariteit wordt het aantal enen even gemaakt. De letter "S" ziet er, met pariteitsbit, zo uit: even pariteit: 01010011 oneven pariteit: 11010011
(pariteitsbit + ASCII-code)
Oneven pariteit heeft als voordeel dat er altijd minstens één bit 1 is, ook zonder toetsenbediening. Hierdoor kan men eenvoudig testen of bijvoorbeeld het toetsenbord al dan niet is aangesloten op het computersysteem. Andere ontwerpers gebruiken de achtste bit voor de uitbreiding van het karakterset. Is de MSB = 0 dan volgt men de ASCII tabel. Bij een MSB = 1 volgt men een eigen set aan symbolen, grafische tekens, enz. Zodra we de structuur van de ASCII-tabel van nabij bestuderen valt dadelijk op dat de laatste 4 bits van de cijfertekens tevens overeenstemt met de bijhorende BCD-code. 30
HEX …
39
011 0000
BIN …
011 1001
CIJFERS 0…9
De gekozen code voor de lettertekens laat een aantal manipulaties toe. 41 61
HEX … …
5A 7A
100 0001 110 0001
BIN … …
101 1010 111 1010
CIJFERS A…Z a…Z
De toestand van de voorlaatste bit bepaalt of het om een hoofdletter (0) of een kleine letter (1) gaat. F = 100 0110 en f = 110 0110 Bij het omzetten van hoofd- naar kleine letters en omgekeerd volstaat het de zesde bit te inverteren. Sorteeralgoritmes vertrekken vanaf de ASCII-code, gelezen als "binair getal". Bij het sorteren, van laag (0016) naar hoog (7F16), zien we dat de cijfers voor de letters komen. Wenst men geen onderscheid te maken tussen kleine en hoofdletters, volstaat het de zesde bit te negeren.
3. Codeomvormers. Een codeomvormer is een combinatorische schakeling die een bepaalde code transformeert naar een andere. Onder deze noemer vallen ook de decoders en encoders. Een decoder zet een bepaalde code van N ingangen om naar maximaal 2N uitgangen. Een encoder volgt de omgekeerde weg. Maximaal 2N ingangen omzetten naar een code met N uitgangsbits. Een codeomvormer van code-A naar code-B krijgt binnen het symbool de notatie A/B.
3.1 DEC/BCD encoder volgens de diodematrix. De encoder wordt opgebouwd rond 10 druktoetsen die elk een cijfer voorstellen. Met behulp van diodes genereert de schakeling de BCD-code.
DIGITALE TECHNIEKEN
HOOFDSTUK 4
4. 6
BCD3 BCD2 BCD1 BCD0
+5V
0 1 2 D1
3
D2
4 5 6 7 8 9
In rust vloeit er geen stroom doorheen de schakeling. Veronderstel dat we op drukknop 3 duwen. D1 en D2 komen beide in geleiding en brengen BCD1 en BCD0 op voedingsspanning. BCD3 en BCD2 blijven spanningsloos. Resultaat : de BCD-code 0011 verschijnt op de uitgang van de encoder. (Hoog actieve uitgangen.) Deze schakeling kent geen prioriteit. Zodra er meerdere toetsen gelijktijdig actief zijn, verschijnt er op de uitgang een combinatie van de geactiveerde ingangen. 3 en 7 geactiveerd: 0011 en 0111 geeft 0111 op de uitgangen. 2 en 4 geactiveerd : 0010 en 0100 geeft 0110 op de uitgangen. Het resultaat is dus een OR-functie van het de BCD-code voor de verschillende geactiveerde toetsen.
3.2 DEC/BCD encoder met poorten. De meest eenvoudige oplossing volgt de vergelijking: 0 1 2 3 4 5 6 7 8 9
DEC/BCD 0 1 1 2 3 2 4 5 6 4 7 8 8 9
DIGITALE TECHNIEKEN
BCD0 BCD1 BCD2
BCD0 BCD1 BCD2 BCD3
= = = =
1+ 3+ 5 + 7 + 9 2 +3 +6 + 7 4 + 5 +6 + 7 8+9
BCD3
HOOFDSTUK 4
4. 7
1 ≥1
3 5
≥1
≥1
7
BCD0
≥1
9 ≥1
2 6
≥1
4
≥1
8
≥1
≥1
BCD1
≥1
BCD2
BCD3
Deze schakeling kent geen prioriteit en is daardoor in de meeste toepassingen ongeschikt. Onderstaande waarheidstabel geeft de logica weer van een encoder met prioriteit van het hoogste getal. Neem bijvoorbeeld code 0101. Deze verschijnt op de encoderuitgangen indien getal 5 actief is. Alle kleinere getallen mogen op dat moment eveneens actief zijn. Alle hogere getallen niet.
0 1 x x x x x x x x x
1 0 1 x x x x x x x x
2 0 0 1 x x x x x x x
3 0 0 0 1 x x x x x x
4 0 0 0 0 1 x x x x x
5 0 0 0 0 0 1 x x x x
6 0 0 0 0 0 0 1 x x x
7 0 0 0 0 0 0 0 1 x x
8 0 0 0 0 0 0 0 0 1 x
9 0 0 0 0 0 0 0 0 0 1
BCD3 0 0 0 0 0 0 0 0 1 1
BCD2 0 0 0 0 1 1 1 1 0 0
BCD1 0 0 1 1 0 0 1 1 0 0
BCD0 0 1 0 1 0 1 0 1 0 1
De vergelijkingen worden hierdoor wel iets uitgebreider.
BCD0 = 123456789 + 3456789 + 56789 + 789 + 9 BCD1 = 23456789 + 3456789 + 6789 + 789 BCD2 = 456789 + 56789 + 6789 + 789 BCD3 = 89 + 9 Na vereenvoudiging volgt:
DIGITALE TECHNIEKEN
HOOFDSTUK 4
4. 8
BCD0 = 12468 + 3468 + 568 + 78 + 9 BCD1 = 24589 + 34589 + 689 + 789 = (2 + 3)4589 + (6 + 7)89 BCD2 = 489 + 589 + 689 + 789 = ( 4 + 5 + 6 + 7)89 BCD3 = 8 + 9 Met andere woorden: BCDx = 1 indien geen ander meerbeduidend cijfer op 1 staat, behalve deze die BCDx 1 maken. Een 74xx147 is een high-priority DEC/BCD encoder met laag actieve in- en uitgangen. Ingang "0" is niet aanwezig. Deze heeft immers geen invloed op de uitgangen. 74…147 11 12 13 1 2 3 4 5 10
1 2 3 4 5 6 7 8 9
1 1 0 x x x x x x x x
2 1 1 0 x x x x x x x
1 2 3 4 5 6 7 8 9
3 1 1 1 0 x x x x x x
HPRI/BCD 1 2 4 8
4 1 1 1 1 0 x x x x x
5 1 1 1 1 1 0 x x x x
9 7 6 14
6 1 1 1 1 1 1 0 x x x
BCD0 BCD1 BCD2 BCD3
7 1 1 1 1 1 1 1 0 x x
8 1 1 1 1 1 1 1 1 0 x
9 1 1 1 1 1 1 1 1 1 0
BCD3 1 1 1 1 1 1 1 1 0 0
BCD2 1 1 1 1 0 0 0 0 1 1
BCD1 1 1 0 0 1 1 0 0 1 1
BCD0 1 0 1 0 1 0 1 0 1 0
BCDx = 0 indien geen ander meerbeduidend cijfer op 0 staat, behalve deze die BCDx 0 maken.
BCD0 = 12468 + 3468 + 568 + 78 + 9 BCD1 = (2 + 3)4589 + (6 + 7)89 BCD2 = ( 4 + 5 + 6 + 7)89 BCD3 = 8 + 9 = 8.9 De 74xx148 is een "8-line to 3-line priority encoder". Door meerdere van deze componenten na elkaar te plaatsen, wordt het encoderbereik uitbreidbaar met een veelvoud van 8 ingangen.
DIGITALE TECHNIEKEN
HOOFDSTUK 4
4. 9
74…148 HPRI/BIN
0 1 2 3 4 5 6 7
10 11 12 13 1 2 3 4
EN
5
0/Z10 1/Z11 2/Z12 3/Z13 4/Z14 5/Z15 6/Z16 7/Z17
10 11 12 13 14 15 16 17
≥1 18
15
α
14
1α 2α 4α
V18 EN α
OE GS
9 7 6
OUT0 OUT1 OUT2
Op dit symbool komen weer een aantal nieuwe tekens voor. Vooreerst zijn er de afhankelijkheidstekens Z, V en EN. Alle afhankelijkheidsnotaties, behalve EN, definiëren de afhankelijkheid tussen interne, logische waarden. De verschillende afhankelijkheidsnotaties zijn: A: C: EN : G: V: N: Z: M: S: R:
Adres-afhankelijkheid. Commando-afhankelijkheid. Enable-afhankelijkheid. AND-afhankelijkheid. OR-afhankelijkheid. EXOR-afhankelijkheid. Interne verbinding. Mode-afhankelijkheid. Set-afhankelijkheid. Reset-afhankelijkheid.
Het afhankelijkheidssymbool wordt gevolgd door een volgnummer of een Grieks symbool. Alle in- en uitgangen, die hetzelfde volgnummer bevatten, worden beïnvloed. Als voorbeeld onderstaand symbool met bijhorend schema.
A B C
V1
&
1
A Z2
X1
B
≥1
X1
&
C D G3 E
≥1
3
D X2
E
≥1
X2
& 1
2
Het scheidingssymbool / geeft aan dat een bepaalde ingang meerdere functie uitoefent. Het symbool van de 74xx148 leert ons dat OE =1 indien EN = 1 of indien een ingang van 0 … 7 nul is. GS = 0 indien een ingang van 0 … 7 nul is en indien EN = 0. De uitgangen OUT2 … OUT0 zijn de gecodeerde uitgangen. Het cijfer binnen het symbool (1, 2 en 4) geeft het gewicht van de desbetreffende bit aan. Selecteert men op de ingangen "5", dan komen de uitgangen met gewicht 1 en 4 (samen dus 5) laag, op voorwaarde dat EN = 0. Enable (EN) kan u beschouwen als een schakelaar die de component op/af schakelt.
DIGITALE TECHNIEKEN
HOOFDSTUK 4
4. 10
Onderstaande tabel geeft een overzicht van de verschillende mogelijkheden met een 74xx148.
EN 1 0 0 0 0 0 0 0 0 0
0 x 1 0 x x x x x x x
1 x 1 1 0 x x x x x x
2 x 1 1 1 0 x x x x x
3 x 1 1 1 1 0 x x x x
4 x 1 1 1 1 1 0 x x x
5 x 1 1 1 1 1 1 0 x x
6 x 1 1 1 1 1 1 1 0 x
7 x 1 1 1 1 1 1 1 1 0
OUT2 1 1 1 1 1 1 0 0 0 0
OUT1 1 1 1 1 0 0 1 1 0 0
OUT0 1 1 1 0 1 0 1 0 1 0
OE 1 0 1 1 1 1 1 1 1 1
GS 1 1 0 0 0 0 0 0 0 0
Onderstaand schema geeft een "16-line to 4-line priority encoder" (laag actieve in- en uitgangen). Ga zelf de werking na.
74…148 HPRI/BIN 10 11 12 13 1 2 3 4
0 1 2 3 4 5 6 7 EN1
5
0/Z10 1/Z11 2/Z12 3/Z13 4/Z14 5/Z15 6/Z16 7/Z17
10 11 12 13 14 15 16 17
≥1 18
15
α
14
1α 2α 4α
V18 EN α
OE1 GS1
9 7 6
74…148
&
ACTIVATE
&
BIN1
&
BIN2
&
BIN3
HPRI/BIN 10 11 12 13 1 2 3 4
8 9 10 11 12 13 14 15 EN2
5
0/Z10 1/Z11 2/Z12 3/Z13 4/Z14 5/Z15 6/Z16 7/Z17 V18 EN α
10 11 12 13 14 15 16 17
≥1 18 α
1 5 OE2 14
GS2
1α 2α 4α
BIN4
9 7 6
Vervang alle AND's door NAND's en de schakeling krijgt hoog actieve uitgangen.
DIGITALE TECHNIEKEN
HOOFDSTUK 4
4. 11
3.3 BIN/DEC decoder. Deze schakeling selecteert één uitgang in functie van de binaire code op 4 ingangen.
B0 B1 B2 B3
BIN/DEC 0 1 1 2 3 4 2 5 6 7 4 8 9 8 10 11 12 13 14 15
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
B1,B0 00
01
11
10
B3,B2 00
0
1
3
2
01
4
5
7
6
11
12
13
15
14
10
8
9
11
10
De schakeling kan eenvoudig afgeleid worden uit de Karnaughkaart. Elke cel bevat één geselecteerde uitgang. Als voorbeeld: indien B3 …B0 = 1001, dan is uitgang 9 actief en alle anderen niet. De verschillende uitgangsvergelijkingen zijn:
0 = B3 B2 B1 B0
4 = B3 B2 B1 B0
8 = B3 B2 B1 B0
12 = B3 B2 B1 B0
1 = B3 B2 B1 B0
5 = B3 B2 B1 B0
9 = B3 B2 B1 B0
13 = B3 B2 B1 B0
2 = B3 B2 B1 B0
6 = B3 B2 B1 B0
10 = B3 B2 B1 B0
14 = B3 B2 B1 B0
3 = B3 B2 B1 B0
7 = B3 B2 B1 B0
11 = B3 B2 B1 B0
15 = B3 B2 B1 B0
3.4 BCD/DEC decoder. Deze schakeling selecteert één uitgang in functie van de BCD-code op 4 ingangen.
B0 B1 B2 B3
BCD/DEC 0 1 1 2 3 2 4 5 4 6 7 8 8 9
0 1 2 3 4 5 6 7 8 9
B1,B0 00
01
11
10
B3,B2 00
0
1
3
2
01
4
5
7
6
11
-
-
-
-
10
8
9
-
-
De Karnaughkaart bevat nu een aantal verboden toestanden. Wensen we een decoder met onderdrukking van de verboden toestanden, vul de Karnaughkaart dan verder aan met logische nullen op de verboden posities. Zodra een ongeldige toestand wordt aangeboden, blijven alle uitgangen laag.
DIGITALE TECHNIEKEN
HOOFDSTUK 4
4. 12
B1,B0 00
01
11
10
B3,B2 00
0
1
3
2
01
4
5
7
6
8
9
11 10
0 = B3 B2 B1 B0
4 = B3 B2 B1 B0
8 = B3 B2 B1 B0
1 = B3 B2 B1 B0
5 = B3 B2 B1 B0
9 = B3 B2 B1 B0
2 = B3 B2 B1 B0
6 = B3 B2 B1 B0
3 = B3 B2 B1 B0
7 = B3 B2 B1 B0
De uitgangsvergelijkingen zijn identiek aan deze van de BIN/DEC decoder. Een decoder zonder onderdrukking van de verboden toestanden maakt wel gebruik van de verboden toestanden tijdens de vereenvoudiging. De vergelijkingen die we hiermee bekomen zijn:
0 = B3 B2 B1 B0
4 = B2 B1 B0
8 = B3 B0
1 = B3 B2 B1 B0
5 = B2 B1 B0
9 = B3 B0
2 = B2 B1 B0
6 = B2 B1 B0
3 = B2 B1 B0
7 = B2 B1 B0
Brengen we de verboden toestand 1101 op de schakeling, dan activeren we zowel uitgang 5 als uitgang 9. Ga zelf na wat er op de uitgangen verschijnt bij de overige verboden ingangscombinaties. De 74xx42 is een BCD/DEC decoder met onderdrukking van de verboden toestanden. Merk op dat de uitgangen laag actief zijn. Ingangscode 0110 brengt uitgang 6 laag (pin 7). Alle andere uitgangen blijven op dat moment hoog. 74…42 BCD/DEC 0 1 2 14 3 2 4 5 13 6 4 7 12 8 8 9
15
1
DIGITALE TECHNIEKEN
1 2 3 4 5 6 7 9 10 11
HOOFDSTUK 4
4. 13
3.5 BCD/7-segment decoder. Onderstaande waarheidstabel bepaalt de vergelijkingen van een 7-segment decoder met laag actieve uitgangen, voor het sturen van een common anode display.
DEC 0 1 2 3 4 5 6 7 8 9
g
BCD3 0 0 0 0 0 0 0 0 1 1
BCD2 0 0 0 0 1 1 1 1 0 0
BCD1,BCD0 00 01
BCD3,BCD2 00
1
g 1 1 0 0 0 0 0 1 0 0
f 0 1 1 1 0 0 0 1 0 0
e 0 1 0 1 1 1 0 1 0 1
f 11
10
-
-
d 0 1 0 0 1 0 0 1 0 1
c 0 0 1 0 0 0 0 0 0 0
10
1
1
1
1
01
-
-
11
-
-
d
-
-
-
10
-
-
BCD1,BCD0 00 01
11
10
11
1
1
BCD3,BCD2 00 01
1 -
10
01
1
1
1
11
-
-
-
-
11
1
-
-
10
10
DIGITALE TECHNIEKEN
a 0 1 0 0 1 0 1 0 0 0
11
BCD1,BCD0 00 01
BCD3,BCD2 00
b 0 0 0 0 0 1 1 0 0 0
BCD1,BCD0 00 01
BCD3,BCD2 00
1
10
e
BCD0 0 1 0 1 0 1 0 1 0 1
1
01 11
BCD1 0 0 1 1 0 0 1 1 0 0
-
1 1 -
-
-
1
-
-
HOOFDSTUK 4
4. 14
c
BCD1,BCD0 00 01
b 11
10
1
BCD3,BCD2 00
1
01
-
-
11
10
-
-
10
BCD1,BCD0 00 01
11
10
11
-
-
11
10
BCD3,BCD2 00
01
a
BCD1,BCD0 00 01
-
-
1 -
-
-
-
1
BCD3,BCD2 00 01
1
11
-
1 -
10
-
-
-
-
De vergelijkingen, zonder onderdrukking van de verboden toestanden, zijn:
g = BCD3 BCD2 BCD1 + BCD2 BCD1 BCD 0 f = BCD3 BCD2 BCD 0 + BCD2 BCD1 + BCD1 BCD 0 e = BCD2 BCD1 + BCD 0 d = BCD1 (BCD2 ⊕ BCD 0 ) + BCD2 BCD1 BCD 0 c = BCD2 BCD1 BCD 0 b = BCD2 (BCD1 ⊕ BCD 0 ) a = BCD3 BCD2 BCD1 BCD 0 + BCD2 BCD 0 Ga zelf na welke uitgangscombinaties er ontstaan bij een verboden ingangscombinatie.
code
1010
1011
1100
1101
1110
1111
Als geïntegreerde schakeling bespreken we de 74xx47 en 74xx48. Het enige verschil tussen beide 7-segment decoders is de uitgangspolariteit. De 74xx47 bezit laag actieve uitgangen, de 74xx48 hoog actieve uitgangen. Naast de gekende in- en uitgangen bevat de component drie extra ingangen. Ze geven bijkomende mogelijkheden aan de decoder. Aan de hand van het symbool wordt de werking en de waarheidstabel verduidelijkt.
DIGITALE TECHNIEKEN
HOOFDSTUK 4
4. 15
74…47
BI/RBO
RBI LT
BIN0 BIN1 BIN2 BIN3
4 5 3
7 1 2 6
BIN/7-SEG [T1] ≥1 G21
& CT=0 V20 1 2 4 8
a b c d e f g
20,21 20,21 20,21 20,21 20,21 20,21 20,21
13 12 11 10 9 15 14
a b c d e f g
Het eerste wat opvalt is het ruit-symbool op de uitgangen. Dit symbool staat voor "open-collector" uitgang (OC). De inwendige structuur van deze uitgang is totaal verschillend ten opzichte van de gekende uitgangsstructuur (Totem-pole uitgang, TP). In plaats van 0 (GND) of 1 (Ucc), kent een OC uitgang de toestanden 0 (GND) en Z (hoogimpedant). In zijn hoogimpedante toestand is de uitgangspin volledig van de schakeling gescheiden en daardoor spanningsloos. Een open-collector ziet er schematisch als volgt uit:
=
=
De uitgang staat in verbinding met de collector van de eindtransistor. De emitter ligt op massapotentiaal. De eindtransistor gedraagt zich als een schakelaar, bediend langs de basis. Breng de transistor in geleiding en de uitgang staat op 0 (GND). De transistor uit geleiding geeft een hoogimpedante toestand op de uitgang. Twee uitgangen met elkaar verbinden mag nooit, met uitzondering van OC-uitgangen. Indien twee TP-uitgangen een verschillend logisch niveau aannemen, zal er een "kortsluiting" ontstaan zodra beiden met elkaar worden verbonden. Twee of meerdere OC-uitgangen met elkaar verbonden geeft als resultaat een wired-AND functie. A 1
F B 1
B 0 0 Z Z
A 0 Z 0 Z
F 0 0 0 Z
In tabel A en B zijn de toestanden opgenomen die beide uitgangen kunnen aannemen, zonder dat ze met elkaar in verbinding staan. F geeft het resultaat na de verbinding van A en B. Uitgang F is onder deze vorm niet geschikt om een volgende poortingang te sturen. In hoogimpedante toestand ontvangt de te sturen ingang geen spanning, dus deze ingang zweeft (onbepaalde toestand!). Verbind F met een weerstand naar Ucc. Z verdwijnt en wordt vervangen door een logische 1. Onbelast vloeit er immers geen stroom door deze weerstand, indien beide uitgangen hoogimpedant zijn. Op F staat dan een spanning Ucc. De uitgang is nu wel geschikt om ingangen te sturen.
DIGITALE TECHNIEKEN
HOOFDSTUK 4
4. 16
+5V
B 0 0 Z Z
A 1 R pull-up F B 1
A 0 Z 0 Z
F 0 0 0 1
De toegevoegde weerstand noemt men een pull-up weerstand. Het ruitvorm op de BI/RBO-pin van de 74xx47 geeft aan dat het een open-collector uitgang betreft waarbij de pull-up weerstand zich in het IC bevindt. (Horizontale streep door de ruit.) Merk verder op dat BI/RBO een bidirectionele pin is (zowel in- als uitgang). De driehoek bovenaan het symbool van de 74xx47 zegt ons dat de uitgangen gebufferd zijn. In combinatie met een open-collector is elke uitgang in staat voldoende stroom te leveren om één LED van het 7segment aan te sturen. De verschillende toestanden van de uitgangen worden niet volledig binnen het symbool beschreven. De notatie [T1] geeft aan dat er een werkingstabel bijhoort. Deze is eveneens opgenomen binnen onze waarheidstabel. DEC of function
LT RBI BIN3 BIN0 BIN1 BIN0 BI/RBO
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 BI RBI LT 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 x 1 0 1
1 x x x x x x x x x x x x x x x x 0 x 2
0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 x 0 x 3
4
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 x 0 x 5
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 x 0 x 6
7
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 x 0 x 8
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 9
a
b
c
d
e
f
g
0 Z 0 0 Z 0 Z 0 0 0 Z Z Z 0 Z Z Z Z 0
0 0 0 0 0 Z Z 0 0 0 Z Z 0 Z Z Z Z Z 0
0 0 Z 0 0 0 0 0 0 0 Z 0 Z Z Z Z Z Z 0
0 Z 0 0 Z 0 0 Z 0 Z 0 0 Z 0 0 Z Z Z 0
0 Z 0 Z Z Z 0 Z 0 Z 0 Z Z Z 0 Z Z Z 0
0 Z Z Z 0 0 0 Z 0 0 Z Z 0 0 0 Z Z Z 0
Z Z 0 0 0 0 [T1] 0 Z 0 0 0 0 0 0 0 Z Z (2) Z (3) 0 (4)
10 11 12 13 14 15
Wat wel op het symbool terug te vinden is, zijn de functies van de extra ingangen BI/RBO, RBI en LT. Het resultaat is eveneens opgenomen in de waarheidstabel.
DIGITALE TECHNIEKEN
HOOFDSTUK 4
4. 17
Elke uitgang krijgt een letter van het segment, gevolgd door de notatie 20 en 31. 20 staat met een ORfunctie in relatie met de letter, gevolgd door een AND-functie met 21. Voor segment uitgang a geldt: Uitgang actief met functie (a+20).21. De volledige vergelijking is dan:
(a + LT ) BI / RBO + RBI.LT.(CT = 0) Hieruit kunnen we het volgende afleiden: BI/RBO = 0 (toestand 2 in de waarheidstabel).
(a + LT ) 0 + RBI.LT.(CT = 0) = 0 De functie voor uitgang a is 0, hierdoor komt de uitgang in zijn hoogimpedante toestand. De overige uitgangen volgen dezelfde logica. Zodra de BI-ingang 0 wordt, doven alle segmenten. Door het aansturen van BI kan men de lichtintensiteit of de helderheid van het display dimmen. Meestal gebeurt dit met behulp van een blokgolfspanning, langs een poort, op de BI-ingang aan te sluiten. Let op: de gebruikte poort moet een open-collector uitgang bezitten! RBI = 0 , LT = 1 en CT=0 (toestand 3).
(a + 1) BI / RBO + 0.1.1 = 0 CT=0 is waar zodra het aangelegd getal op BIN3…BIN0 (0)10 is. Zijn daarbij RBI =0 en LT = 1, dan dooft het display. Deze optie bewijst zijn nut op meer-digit segmenten (rekenmachine). De leidende nullen worden hierbij onderdrukt om de leesbaarheid van het getal te verhogen. Verder wordt de RBO-uitgang 0. Dit is niet af te leiden uit het symbool, enkel uit het inwendig schema van de component. LT = 0 en BI = open (toestand 4).
(a + 0) 1 + RBI.0.(CT = 0) = 1 BI open geeft inwendig een logische 1, omwille van de geïntegreerde pull-up weerstand. Is daarbij LT=0, dan licht het volledige segment op. Gebruik deze combinatie om het display te controleren op segmenten die eventueel stuk zijn. Samengevat: BI (Blanking Input) actief: dooft het volledig display, onafhankelijk van het aangeboden binair getal. LT (Lamp Test) actief: en BI open, activeert het volledig display, onafhankelijk van het aangeboden binair getal. RBI (Ripple Blanking Input) actief: en LT niet actief, dooft het volledig display op voorwaarde dat het aangeboden binair getal nul is. RBO (Ripple Blanking Input) wordt eveneens actief. Het volgende schema geeft een combinatieschakeling van drie displays om een getal tot 1000 voor te stellen. De schakeling is tevens voorzien van een helderheidsregeling (BLK), een lamp test (druktoets B) en de leidende nullen worden onderdrukt. Het eenheden-display heeft steeds een 1 op de RBI-ingang. Het cijfer nul wordt niet onderdrukt.
DIGITALE TECHNIEKEN
HOOFDSTUK 4
4. 18
74…47
BI/RBO (E) 1 + 5 V
4
RBI (E) 5 3
LT (E) 7 1 2 6
BIN/7-SEG [T1] ≥1 G21
& CT=0 V20 1 2 4 8
a b c d e f g
13 12 11 10 9 15 14
20,21 20,21 20,21 20,21 20,21 20,21 20,21
Eenheden
+5V 74…47
BI/RBO (T) 1
4
RBI (T) 5 3
LT (T) B 7 1 2 6
BIN/7-SEG [T1] ≥1 G21
& CT=0 V20 1 2 4 8
a b c d e f g
13 12 11 10 9 15 14
20,21 20,21 20,21 20,21 20,21 20,21 20,21
Tientallen
74…47
BLK
BI/RBO (H) 1
RBI (H)
4 5 3
LT (H) 7 1 2 6
BIN/7-SEG [T1] ≥1 G21
& CT=0 V20 1 2 4 8
a b c d e f g
20,21 20,21 20,21 20,21 20,21 20,21 20,21
13 12 11 10 9 15 14
Honderdtallen
3.6 Codeomvormers. Als bijkomende codeomvormers zijn er vrij weinig verkrijgbaar als IC, daarom gaan we zelf de omvormers bouwen. We vermelden hier reeds dat er naast omvormers met poorten eveneens een oplossing kan gevonden worden met multiplexers en adders. Als voorbeeld ontwerpen we een BCD/AIKEN codeomvormer, zonder onderdrukking van de verboden toestanden. Zowel de in- als uitgangen zijn hoogactief.
DIGITALE TECHNIEKEN
HOOFDSTUK 4
4. 19
BCD/AIKEN A0 A1 A2 A3
1 2 4 8
B0 B1 B2 B3
1/3/5/7/9 2/3/5/8/9 4/6/7/8/9 5/6/7/8/9
Op de ingangen van het symbool noteren we het gewicht van elke bit. Op de uitgang staat het getal, decimaal genoteerd, waarbij deze actief wordt. Het streepje tussen de getallen geeft een OF-relatie aan. Uitgang B2 wordt actief indien het aangelegde BCD-getal gelijk is aan 0100 (= 410) of 0110 of 0111 of 1000 of 1001.
A3 0 0 0 0 0 0 0 0 1 1
A2 0 0 0 0 1 1 1 1 0 0
B3
A1 0 0 1 1 0 0 1 1 0 0
A0 0 1 0 1 0 1 0 1 0 1
B3 0 0 0 0 0 1 1 1 1 1
B2 0 0 0 0 1 0 1 1 1 1
A1,A0 00
01
11
10
B1 0 0 1 1 0 1 0 0 1 1
B0 0 1 0 1 0 1 0 1 0 1
B2
A3,A2 00
A1,A0 00
01
11
10
1
1
A3,A2 00
01
1
1
1
01
1
11
-
-
-
-
11
-
-
-
-
10
1
1
-
-
10
1
1
-
-
A1,A0 00
01
11
10
A3,A2 00
1
1
01
1
1
-
-
-
1
-
-
B1
A1,A0 00
B0 01
A3,A2 00
11
10
1
1
1
01 11
-
-
-
-
11
10
1
1
-
-
10
DIGITALE TECHNIEKEN
-
HOOFDSTUK 4
4. 20
B3 = A 3 + A 2 A1 + A 2 A 0 B2 = A 3 + A 2 A1 + A 2 A 0 B1 = A 3 + A 2A1 + A 2 A1A 0 B0 = A 0
A3 ≥1
A2 A1
&
A0
&
≥1
B3
≥1
B2
& 1 & 1
≥1
≥1
B1
& 1
B0
A3 A2 A1 A0 B3 B2 B1 B0
Het verloop van de verboden toestanden is eveneens opgenomen in het tijdsdiagram. Voor een BCD/AIKEN codeomvormer met laag actieve uitgangen volstaat het de uitgangen op het schema te hernoemen. Verwissel B3 met B0 en B2 met B1.
DIGITALE TECHNIEKEN
HOOFDSTUK 4
4. 21
4. Toepassingen. 1. Vervolledig de diodematrix voor een DEC/XC3 encoder met hoog actieve in- en uitgangen. XC3 XC3 XC3 XC3
0
3 2 1 0
1 2 3 4 5 6 7 8 9
2. Pas het schema van de DEC/XC3 encoder aan voor: laag actieve in-en uitgangen. laag actieve ingangen en hoog actieve uitgangen. hoog actieve ingangen en laag actieve uitgangen. 3. Ontwerp een DEC/AIKEN encoder met poorten. De schakeling reageert op een prioriteit van het laagste getal. Zowel in- als uitgangen zijn hoog actief. Teken tevens het bijhorend symbool.
0
1
2
3
4
5
6
7
8
9
AI3
AI2
AI1
AI0
4. Ontwerp een DEC/GRAY encoder met poorten en een prioriteit van het hoogste getal. De ingangen zijn hoog actief, de uitgangen laag actief. Teken het symbool. DIGITALE TECHNIEKEN
HOOFDSTUK 4
4. 22
0
1
2
3
4
5
6
7
8
9
GRAY3 GRAY2 GRAY1 GRAY0
5. Ontwerp een AIKEN/DEC decoder, zonder onderdrukking van de verboden toestanden. De uitgangen zijn laag actief.
AI3 0 0 0 0 0 1 1 1 1 1
AI2 0 0 0 0 1 0 1 1 1 1
AI1 0 0 1 1 0 1 0 0 1 1
AI0 0 1 0 1 0 1 0 1 0 1
0
1
2
3
4
5
6
7
8
9
6
7
8
9
Wat verschijnt er op de uitgangen bij een verboden ingangscombinatie?
AI3 0 0 0 1 1 1
AI2 1 1 1 0 0 0
AI1 0 1 1 0 0 1
AI0 1 0 1 0 1 0
0
1
2
3
4
5
6. Ontwerp een 7-segment decoder voor het aansturen van een common cathode display. De decodering gebeurt als volgt: HEX
0
1
DIGITALE TECHNIEKEN
2
3
4
5
6
7
8
9
A
B
C
D
E
HOOFDSTUK 4
F
4. 23
HEX 0 1 2 3 4 5 6 7 8 9 A B C D E F
A3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
A2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
A1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
A0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
g
f
e
d
c
b
a
7. Ontwerp een XC3/GRAY codeomvormer, zonder onderdrukking van de verboden toestanden. De uitgangen zijn laag actief. Wat verschijnt er op de uitgang bij een verboden ingangscombinatie?
A3 0 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1
A2 0 1 1 1 1 0 0 0 0 1 0 0 0 1 1 1
A1 1 0 0 1 1 0 0 1 1 0 0 0 1 0 1 1
DIGITALE TECHNIEKEN
A0 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1
B3
B2
B1
B0
A = XC3-woord. B = GRAY-woord.
HOOFDSTUK 4
4. 24
HOOFDSTUK 5 Comparator. Een comparator is een schakeling die twee n-bit woorden met elkaar vergelijkt. De meest voor de hand liggende resultaten op een comparator zijn: woord A > woord B. woord A < woord B. woord A = woord B. Het symbool voor een 3-bit comparator kan als volgt omschreven worden: 0 2 0 2
COMP
} }
P
P
Q
P>Q
Bovenaan staat de functie die de component uitoefent (COMParator). Per woord krijgt elke bit een volgordenummer. 0 als LSB en 2 als MSB. De tussenliggende bits hebben eveneens een volgnummer, maar worden meestal niet benoemd. De accolade geeft immers aan dat deze bits bij elkaar horen. Elk woord krijgt een naam, bijvoorbeeld P en Q. De logische voorwaarde op de uitgang bepaalt wanneer deze actief wordt.
1. 1-bit comparator. Twee woorden, A en B, van elk één bit breed met elkaar vergelijken, levert volgende functies op:
A 0 0 1 1
B 0 1 0 1
A
A>B 0 0 1 0
A=B 1 0 0 1
( A < B) = AB ( A > B) = AB ( A = B) = AB + AB = A ⊕ B
De schakeling , uitgetekend met NOR-poorten, geeft het resultaat met een minimum aan IC's.
A ≥1
A>B
≥1 ≥1
B
≥1
DIGITALE TECHNIEKEN
≥1
A=B A
HOOFDSTUK 5
5. 1
A B A
B
2. 2-bit comparator. A1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
A0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
A=B
B1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
B0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
A
A>B 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 0
A=B 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
A1,A0 00
01
11
10
B1,B0 00
E
G
G
G
K = (A < B)
01
K
E
G
G
G = (A > B)
11
K
K
E
K
E = (A = B)
10
K
K
G
E
( A < B) = A1 B1 + A 0 B1 B0 + A1 A 0 B0 ( A > B) = A1 B1 + A 0 B1 B0 + A1 A 0 B0 ( A = B) = A1 A 0 B1 B0 + A1 A 0 B1 B0 + A1 A 0 B1 B0 + A1 A 0 B1 B0
DIGITALE TECHNIEKEN
HOOFDSTUK 5
5. 2
Neemt de woordlengte toe, dan is het een onbegonnen taak de uitgangsvergelijkingen uit een waarheidstabel te bepalen. Een 4-bit comparator geeft een tabel van 28 = 256 combinaties. Daarom gaan we reeds bij een 2-bit comparator de schakeling beschrijven volgens een andere logica en het resultaat vergelijken met deze uit de waarheidstabel. Dezelfde redenering kan u nadien doortrekken naar een n-bit comparator. Het vergelijken van twee woorden gebeurt paarsgewijs bit per bit. Vergelijk An met Bn … A0 met B0. A < B indien : (A < B) = (A1 < B1) of ((A1 = B1) en (A0 < B0)) = (A1 = 0 en B1 = 1) of (( A1 = 0 en B1 = 0 of A1 = 1 en B1 = 1) en (A0 = 0 en B0 = 1))
( A < B) = A1 B1 + A1 ⊕ B1 A 0 B0 A > B indien : (A > B) = (A1 > B1) of ((A1 = B1) en (A0 > B0)) = (A1 = 1 en B1 = 0) of (( A1 = 0 en B1 = 0 of A1 = 1 en B1 = 1) en (A0 = 1 en B0 = 0))
( A > B) = A1 B1 + A1 ⊕ B1 A 0 B0 A = B indien : (A = B) = (A1 = B1) en (A0 = B0) = (A1 = 0 en B1 = 0 of A1 = 1 en B1 = 1) en ( A0 = 0 en B0 = 0 of A0 = 1 en B0 = 1)
( A = B) = A1 ⊕ B1 A 0 ⊕ B0 Toon zelf het verband aan tussen bovenstaande vergelijkingen en deze uit de waarheidstabel.
( A < B) = A1 B1 + A 0 B1 B0 + A1 A 0 B0 = A1 B1 + A1 ⊕ B1 A 0 B0 ( A > B) = A1 B1 + A 0 B1 B0 + A1 A 0 B0 = A1 B1 + A1 ⊕ B1 A 0 B0 ( A = B) = A1 A 0 B1 B0 + A1 A 0 B1 B0 + A1 A 0 B1 B0 + A1 A 0 B1 B0 = A1 ⊕ B1 A 0 ⊕ B0 Om de waarheidstabel te beperken, gaan we over op een gereduceerde waarheidstabel. Deze bevat eveneens alle ingangscombinaties, maar wel onder een andere vorm.
A1 , B1 A1 > B1 A1 < B1 A1 = B1 A1 = B1 A1 = B1
A0 , B0 x x A0 > B0 A0 < B0 A0 = B0
A>B 1 0 1 0 0
A
A=B 0 0 0 0 1
(*)
Lees de tabel als volgt: toestand (*) zegt ons dat (A < B) indien (A1 < B1). De verhouding tussen A0 en B0 is hierbij onbelangrijk.
DIGITALE TECHNIEKEN
HOOFDSTUK 5
5. 3
3. 4-bit comparator. A3 , B3 A3 > B3 A3 < B3 A3 = B3 A3 = B3 A3 = B3 A3 = B3 A3 = B3 A3 = B3 A3 = B3
A2 , B2 x x A2 > B2 A2 < B2 A2 = B2 A2 = B2 A2 = B2 A2 = B2 A2 = B2
A1 , B1 x x x x A1 > B1 A1 < B1 A1 = B1 A1 = B1 A1 = B1
A0 , B0 A > B A < B A = B x 1 0 0 x 0 1 0 x 1 0 0 x 0 1 0 x 1 0 0 x 0 1 0 A0 > B0 1 0 0 A0 < B0 0 1 0 A0 = B0 0 0 1
Als logische vergelijking vinden we: A < B indien : (A < B) = (A3 < B3) of ((A3 = B3) en (A2 < B2)) of ((A3 = B3) en (A2 = B2) en (A1 < B1)) of ((A3 = B3) en (A2 = B2) en (A1 = B1) en (A0 < B0))
( A < B) = A 3 B3 + A 3 ⊕ B3 A 2 B2 + A 3 ⊕ B3 A 2 ⊕ B2 A1 B1 + A 3 ⊕ B3 A 2 ⊕ B2 A1 ⊕ B1 A 0 B0 A > B indien : (A > B) = (A3 > B3) of ((A3 = B3) en (A2 > B2)) of ((A3 = B3) en (A2 = B2) en (A1 > B1)) of ((A3 = B3) en (A2 = B2) en (A1 = B1) en (A0 > B0))
( A > B) = A 3 B3 + A 3 ⊕ B3 A 2 B2 + A 3 ⊕ B3 A 2 ⊕ B2 A1 B1 + A 3 ⊕ B3 A 2 ⊕ B2 A1 ⊕ B1 A 0 B0 A = B indien : (A = B) = (A3 = B3) en (A2 = B2) en (A1 = B1) en (A0 = B0)
( A = B) = A 3 ⊕ B3 A 2 ⊕ B2 A1 ⊕ B1 A 0 ⊕ B0
4. De 74xx85 (4-bit magnitude comparator). Een 4-bit comparator is als geïntegreerde schakeling verkrijgbaar onder de naam 74xx85. Naast de gekende ingangen zijn er tevens drie extra ingangen aanwezig met de naam ">", "<" en "=". Deze cascadeingangen laten ons toe een comparator te realiseren met meer dan 4 bits.
10 12 13 15 9 11 14 1 2 3 4
0
74…85 COMP
} }
P
3 0
Q
PQ 5
3 < = >
DIGITALE TECHNIEKEN
HOOFDSTUK 5
5. 4
De waarheidstabel verduidelijkt de invloed van de cascade-ingangen.
Comparing inputs
Cascading inputs
Outputs
Toestand
P3,Q3 P3>Q3 P3
P2,Q2 x x P2>Q2 P2
P1,Q1 x x x x P1>Q1 P1
P0,Q0 x x x x x x P0>Q0 P0
> x x x x x x x x 1 0 0
< x x x x x x x x 0 1 0
= x x x x x x x x 0 0 1
P>Q 1 0 1 0 1 0 1 0 1 0 0
P
P=Q 0 0 0 0 0 0 0 0 0 0 1
1 2 3 4 5 6 7 8 9 10 11
P3=Q3 P3=Q3 P3=Q3
P2=Q2 P2=Q2 P2=Q2
P1=Q1 P1=Q1 P1=Q1
P0=Q0 P0=Q0 P0=Q0
x 1 0
x 1 0
1 0 0
0 0 1
0 0 1
1 0 0
12 13 14
Tot en met toestand 8 volgt de comparator de gekende logica. Zodra P = Q, bepalen de cascade-ingangen het uiteindelijke resultaat. Indien één van deze cascade-ingangen actief is, wordt de uitgang, met dezelfde naam, actief (toestanden 9 … 11). Met drie cascade-ingangen zijn er 8 combinaties mogelijk. Drie daarvan zijn reeds besproken. De overige worden in toestanden 12, 13 en 14 weergegeven. Deze zijn echter niet uit het symbool af te leiden! Wensen we deze component als 4-bit comparator te gebruiken, dan moet de ingang "=" op 1 staan. De overige cascade-ingangen mogen don't care zijn (1 of 0, maar zeker niet laten loshangen!). Dan pas geeft de comparator een correct resultaat op zijn uitgangen.
4.1 De 74xx85 als comparator voor minder dan 4 bits. Reeds vanaf een 2-bit comparator is het interessant één 74xx85 te gebruiken in plaats van meerdere poort-IC's. Wat de aansluiting van de 74xx85 betreft, moeten we ervoor zorgen dat de overbodige ingangen, paarsgewijs, op hetzelfde logische niveau staan. Als voorbeeld een 3-bit comparator. Logischerwijze sluiten we P3 en Q3 aan de massa. Dit is echter niet noodzakelijk. Sluit P1 en Q1 aan op Ucc en de schakeling reageert nog altijd correct. Vergeet de juiste aansluiting van de cascade-ingangen niet.
A0 A1 A2 B0 B1 B2
+ 5 V
10 12 13 15 9 11 14 1 2 3 4
0
74…85 COMP
} }
A0
P
3 0
Q
3 < = >
DIGITALE TECHNIEKEN
PQ 5
AB
A1 A2 B0
of
B1 B2 + 5 V
10 12 13 15 9 11 14 1 2 3 4
0
74…85 COMP
} }
P
3 0
Q
PQ 5
AB
3 < = >
HOOFDSTUK 5
5. 5
Wensen we andere vergelijkingen dan >, < en = uit te voeren op woorden A en B, dan gebruiken we best de comparatoruitgangen, al dan niet in combinatie met de ingangen, als vertrekpunt. Als voorbeeld nemen we een 3-bit comparator met als uitgangen: F1 = 1 indien A ≥ B. F2 = 1 indien A = B en beide getallen zijn even. F3 = 0 indien A > B. Voor F1 en F3 volstaan de comparatoruitgangen. F2 daarentegen is eveneens afhankelijk van de ingangen. Een getal is even indien de LSB = 0. F1
AB 00 01
F3 11
A =B 0
-
1
-
1
1
-
-
F2
00
-
-
01
-
-
11
1
10
B0 B1 B2
+ 5 V
10 12 13 15 9 11 14 1 2 3 4
11
0 3 0
Q
3 < = >
DIGITALE TECHNIEKEN
-
0
-
1
1
1
-
-
-
F1 = ( A = B) + ( A > B) F 2 = ( A = B)A 0
-
-
-
-
-
-
F 3 = ( A = B) + ( A < B) = ( A > B)
1 &
A
P PQ 5
10
10
74…85 COMP
} }
11
A =B 0
-
AB 00 01
A =B, A0
A0 A1 A2
10
AB 00 01
A=B
A>B
1
F2
1 &
F1
1
F3
HOOFDSTUK 5
5. 6
4.2 De 74xx85 als comparator voor meer dan 4 bits. Door meerdere 74xx85 IC's in serie te plaatsen, kan ieder gewenst aantal bits met elkaar vergeleken worden. Als voorbeeld geven we het schema van een 8-bit comparator.
(COMP1)
A4 A5 A6 A7 B4 B5 B6 B7 (COMP2)
A0 A1 A2 A3 B0 B1 B2 B3 + 5 V
10 12 13 15 9 11 14 1 2 3 4
0
74…85 COMP
} }
10 12 13 15 9 11 14 1 2 3 4
0
74…85 COMP
} }
P
3 0
Q
PQ 5
AB
3 < = >
P
3 0
Q
PQ 5
3 < = >
COMP2 vergelijkt de minst beduidende bits met elkaar. Het resultaat van deze bewerking wordt verbonden met cascade-ingangen van COMP1. COMP1 vergelijkt de meest beduidende bits van beide woorden. Neem bijvoorbeeld code: A = 1011 0100 en B = 1010 0110. COMP1 vergelijkt de meest beduidende bits. Uit de waarheidstabel van de 74xx85 blijkt dat de schakeling in toestand 7 staat. Op de uitgangen verschijnt P>Q = 1 dus A>B. De uitgangen van COMP2 (= cascadeingangen van COMP1) zijn hierbij onbelangrijk. Volledigheidshalve geven we ook de toestand van COMP2, namelijk PQ = 1. COMP1 komt hierdoor in toestand 9 en zegt ons dat P>Q = 1 ofwel A>B. A = 0110 1101 en B = 0110 1101. COMP2 staat in toestand 11 (of 12), dus (P=Q) = 1. COMP1 staat eveneens in toestand 11. Resultaat: (P=Q) = 1 of A=B.
Ook hier kunnen we de schakeling uitbreiden met extra poorten om andere vergelijkingen op A en B uit te voeren.
DIGITALE TECHNIEKEN
HOOFDSTUK 5
5. 7
5. Toepassingen. 1. Ontwerp een 2-bit comparator met poorten.
E:A=B NE : A ≠ B KE : A ≤ B
2. Stel de logische vergelijkingen op voor een 3-bit comparator. Pas de vergelijkingen aan voor een 3-bit comparator met laag actieve uitgangen. 3. Herhaal toepassing 1, met als basis een 74xx85.
10 12 13 15 9 11 14 1 2 3 4
0
74…85 COMP
} }
P
3 0
Q
PQ 5
3 < = >
4. Ontwerp een 3-bit comparator met als uitgangen:
10 12 13 15 9 11 14 1 2 3 4
0
F1 : A>B en daarbij moet A≥4 zijn. F2 : A=B en groter dan 2.
74…85 COMP
} }
P
3 0
Q
PQ 5
3 < = >
5. Vervolledig het schema voor een 10-bit comparator (A9 … A0 en B9 … B0).
10 12 13 15 9 11 14 1 2 3 4
0
74…85 COMP
} }
P
3 0
Q
PQ 5
3 < = >
DIGITALE TECHNIEKEN
10 12 13 15 9 11 14 1 2 3 4
0
74…85 COMP
} }
P
3 0
Q
3 < = >
PQ 5
10 12 13 15 9 11 14 1 2 3 4
0
74…85 COMP
} }
P
3 0
Q
PQ 5
3 < = >
HOOFDSTUK 5
5. 8
6. Vervolledig onderstaande tabel voor een 8-bit comparator. (COMP1) 10 12 13 15 9 11 14 1 2 3 4
A4 A5 A6 A7 B4 B5 B6 B7 (COMP2)
A0 A1 A2 A3 B0 B1 B2 B3 Casc. inp. COMP2
10 12 13 15 9 11 14 1 2 3 4
0
74…85 COMP
} }
0
74…85 COMP
} }
P
3 0
Q
PQ 5
AB
3 < = >
P
3 0
Q
PQ 5
3 < = >
Ingangen Casc. inp. COMP2 woorden A en B > < = A 1011 1010 0 0 1 B 1010 1010 A 0111 0111 0 0 1 B 0111 1100 A 0001 0011 0 0 1 B 0001 0011 A 0001 0011 1 0 0 B 0001 0011 A 0100 1011 1 1 1 B 0100 1011
Uitgangen COMP2 COMP1 P>Q PQ P
* toest: zie tabel p 5.5. 7. Vervolledig de schakeling tot een 6-bit comparator met als uitgang F = (A>B) en (A≥30HEX).
10 12 13 15 9 11 14 1 2 3 4
0
74…85 COMP
} }
P
3 0
Q
PQ 5
3 < = >
DIGITALE TECHNIEKEN
10 12 13 15 9 11 14 1 2 3 4
0
74…85 COMP
} }
P
3 0
Q
PQ 5
3 < = >
HOOFDSTUK 5
5. 9
HOOFDSTUK 6 Multiplexer en demultiplexer. Een multiplexer (MUX) is een combinatorische schakeling die de data op één van de ingangen naar de uitgang doorverbindt. Het adres bepaalt welke ingang er met de uitgang wordt verbonden. Een demultiplexer (DMUX) werkt in de andere richting. Deze schakeling heeft meerdere uitgangen. De keuze van de uitgang wordt eveneens bepaald door een adres. Het toepassingsgebied van de multiplexer is zeer uitgebreid. Op de eerste plaats is deze component geschikt als een meerkeuzeschakelaar voor digitale signalen. Daarnaast kan hij dienen ter vervanging van poorten bij het ontwerpen van logische functies, code-omvormers enz.
MUX 0 _0 } 1 G 3 0 1 2 3 EN
A0 A1 D0 D1 D2 D3 EN
DMUX
F A0 A1 EN
F'
0 _0 1 }G 3 EN
0 1 2 3
F0 F1 F2 F3
Multiplexer. Links bovenaan het multiplexersymbool ziet u de adresingangen (0 = LSB en 1 = MSB). Het bitgroeperingssymbool geeft de AND-afhankelijkheid van deze ingangen. Is het adres A = 10 = (2)10, dan wordt G2 actief. Deze verbindt D2 met de uitgang F. Meestal heeft een multiplexer eveneens de inverse functie op zijn uitgangen. De EN-ingang (ENable) kan u beschouwen als een aan/uit schakelaar. De schakeling vervult zijn functie indien de enable actief staat (0 op ons symbool). Is de enable niet actief, dan blijft uitgang F constant op 0 staan, onafhankelijk van de aangelegde ingangscombinaties (F' is constant 1). Het tegengestelde van enable noemt men disable. Als waarheidstabel vinden we:
EN 1 0 0 0 0
A1 x 0 0 1 1
A0 x 0 1 0 1
F 0 D0 D1 D2 D3
F' 1 D0' D1' D2' D3'
disable enable
Demultiplexer. De demultiplexer heeft eveneens een aantal adresingangen en een enable. De geselecteerde uitgang wordt 1 bij een actieve enable.
EN 1 0 0 0 0
A1 x 0 0 1 1
A0 x 0 1 0 1
DIGITALE TECHNIEKEN
F0 0 1 0 0 0
F1 0 0 1 0 0
F2 0 0 0 1 0
F3 0 0 0 0 1
HOOFDSTUK 6
6. 1
1. 4 naar 1 multiplexer. De vergelijkingen van deze MUX worden aan de hand van de waarheidstabel opgesteld.
EN 1 0 0 0 0
A1 x 0 0 1 1
A0 x 0 1 0 1
F 0 D0 D1 D2 D3
F' 1 D0' D1' D2' D3'
De schakeling bevat zeven ingangen, vandaar dat we de vergelijkingen best rechtstreeks trachten af te leiden. F = 1 als
EN=0 en adres=0 en D0=1 EN=0 en adres=2 en D2=1
of of
EN=0 en adres=1 en D1=1 EN=0 en adres=3 en D3=1
of
F = EN( A1 A 0 D 0 + A1 A 0 D1 + A1 A 0 D2 + A1 A 0 D3) F' = F
EN
1
A1
1
&
& ≥1 &
1
A0
F
1
D0 D1 D2 D3
F'
&
2. 1 naar 4 demultiplexer. EN 1 0 0 0 0
A1 x 0 0 1 1
A0 x 0 1 0 1
F0 0 1 0 0 0
F1 0 0 1 0 0
F2 0 0 0 1 0
F3 0 0 0 0 1
F0 … F3 kunnen nu wel met een Karnaughkaart worden vereenvoudigd, maar logisch redeneren gaat hier zeker zo snel. F0 = 1 indien EN=0 en adres=0. F1 = 1 indien EN=0 en adres=1. F2 = 1 indien EN=0 en adres=2. F3 = 1 indien EN=0 en adres=3.
DIGITALE TECHNIEKEN
HOOFDSTUK 6
6. 2
F 0 = EN A1 A 0
F 2 = EN A1 A 0
F1 = EN A1 A 0
F 3 = EN A1 A 0
EN
A1
A0
1
1
&
F0
&
F1
&
F2
&
F3
1
EN A1 A0 F3 F2 F1 F0
3. Ontwerpen van logische functies. Alle logische functies kan men opbouwen rond multiplexers, ter vervanging van de poorten. Het aantal adresingangen van de multiplexer is in eerste instantie gelijk aan het aantal veranderlijken van de functie. Een andere mogelijkheid bestaat eruit het aantal adresingangen kleiner te nemen dan het aantal veranderlijken. Hierdoor ontstaan schakelingen met restveranderlijken. Meestal worden er dan wel enkele poorten aan de schakeling toegevoegd.
3.1 Functiegenerator zonder restveranderlijken. De functieveranderlijken sturen rechtstreeks de adresingangen van de multiplexer. Zij bepalen welke ingang er met de uitgang verbonden wordt. De functie zelf bepaalt de informatie op de data-ingangen (0 of 1). Als voorbeeld nemen we een ingevulde waarheidstabel en bijhorende Karnaughkaart als vertrekpunt voor het ontwerp.
F = B + AC + AC Vooreerst kiezen we per adresingang één veranderlijke. Zij bepalen de volgorde waarin de data-ingangen geselecteerd worden. Wij nemen A als LSB van het adres en C als MSB. Vervolgens gaan we over naar de waarheidstabel of de Karnaughkaart. Eén van beiden volstaat in principe om de schakeling uit te werken.
DIGITALE TECHNIEKEN
HOOFDSTUK 6
6. 3
C 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
A 0 1 0 1 0 1 0 1
F 1 1 0 1 1 1 1 0
geselecteerde data-ingang. D0 D1 D2 D3 D4 D5 D6 D7
Lees de verschillende ingangscombinaties als een decimaal getal. Dit getal komt overeen met de geselecteerde data-ingang. CBA = 011 = (3)10, dus D3 wordt bij deze combinatie geselecteerd. Lees in de tabel af welke logische waarde bij elke data-ingang hoort (D3 = 1) en vervolledig de schakeling. 74…151
A B C +5V
MUX G _0 7 2
11 10 9
0
4 3 2 1 15 14 13 12
0 1 2 3 4 5 6 7
7
}
5
F
6
EN
C B A F
Een analoge oplossing vinden we via de Karnaughkaart. F
B,A 00
01
11
C 0
1
1
1
1
1
1
B,A 00
01
11
10
C 0
D0
D1
D3
D2
1
D4
D5
D7
D6
10
1
Elke cel duidt één bepaalde data-ingang aan. Lees de bijhorende toestand af en vervolledig het schema.
DIGITALE TECHNIEKEN
HOOFDSTUK 6
6. 4
Een andere combinatie op de adresingangen geeft een totaal ander schema. Neem B als MSB en A als LSB, dan wordt dit:
C 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
A 0 1 0 1 0 1 0 1
F1 1 1 0 1 1 1 1 0
B,A 00
01
11
C 0
1
1
1
1
1
1
F
geselecteerde data-ingang. D0 D1 D4 D5 D2 D3 D6 D7 B,A 00
01
11
10
C 0
D0
D1
D5
D4
1
D2
D3
D7
D6
10
1
74…151
A C B +5V
MUX G _0 7 2
11 10 9
0
4 3 2 1 15 14 13 12
0 1 2 3 4 5 6 7
7
}
5
F
6
EN
C B A F
Zoals blijkt uit de simulatie, geven beide schema's dezelfde functie F weer. Zeer belangrijk: kies eerst de adresverbindingen en bepaal dan pas de informatie op de verschillende data-ingangen. Ga zelf de logica na op het tweede voorbeeld. Hier wordt gebruik gemaakt van een onvolledige Karnaughkaart. Voor een don't care kan u dus kiezen tussen 0 en 1. Meestal wordt hiervoor het niveau van een naastliggende IC-pin genomen om overbodige, soms lange verbindingen te vermijden.
DIGITALE TECHNIEKEN
HOOFDSTUK 6
6. 5
74…151
F
BA 00
C 0 1
x
01
11
B C A
10
x
1
1
1
+5V
MUX G _0 7 2
11 10 9
0
4 3 2 1 15 14 13 12
0 1 2 3 4 5 6 7
7
}
5
F
6
EN
3.2 Functiegenerator met 1 restveranderlijke. Eén van de functieveranderlijken wordt niet als adresingang gebruikt. Deze noemen we de restveranderlijke. De restveranderlijke bepaalt mee de toestand op de data-ingangen. Als voorbeeld werken we een functie met vier veranderlijken uit. C, B en A bepalen het adres (C = MSB en A = LSB). D is de restveranderlijke. F
D 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
C 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
A 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
F 0 0 0 1 1 1 1 1 0 1 0 1 1 1 0 0
D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7
B,A 00
01
11
10
1
D,C 00 01
1
1
11
1
1
1
1
1
1
B,A 00
01
11
10
D,C 00
D0
D1
D3
D2
01
D4
D5
D7
D6
11
D4
D5
D7
D6
10
D0
D1
D3
D2
10
Met één restveranderlijke wordt elke data-ingang telkens tweemaal geselecteerd binnen de waarheidstabel en de Karnaughkaart. Bepaal de vergelijking voor elke data-ingang in functie van de restveranderlijke D. D0 is twee maal 0 dus D0 = 0. D3 is twee maal 1 dus D0 = 1. D1 is veranderlijk. In functie van de restveranderlijke vinden we: D1 = D. …
DIGITALE TECHNIEKEN
HOOFDSTUK 6
6. 6
74…151
A B C
+5V
D
1
MUX G _0 7 2
11 10 9
0
4 3 2 1 15 14 13 12
0 1 2 3 4 5 6 7
7
}
5
F
6
EN
D C B A F
Een oplossing met één restveranderlijke voegt hoogstens één invertor toe aan de multiplexer. Een goed ontwerper gaat alle mogelijkheden van de restveranderlijken na. Zo vindt hij dat A als restveranderlijke de ideale oplossing oplevert. De schakeling bevat hierbij geen invertoren.
74…151
D C B +5V
A
MUX G _0 7 2
11 10 9
0
4 3 2 1 15 14 13 12
0 1 2 3 4 5 6 7
7
}
5
F
6
EN
In bepaalde toepassingen is de multiplexer een goed alternatief ter vervanging van de poorten. In bovenstaand schema vinden we één multiplexer-IC tegenover drie poort-IC's.
F = CB DC DBA CBA
DIGITALE TECHNIEKEN
HOOFDSTUK 6
6. 7
3.3 Functiegenerator met 2 restveranderlijken. Twee van de functieveranderlijken bepalen mee de datavergelijking. De overigen bepalen het adres. In volgend voorbeeld maken we gebruik van een 74xx153. Deze IC bevat twee multiplexers met een gezamenlijke adresselectie. Dit lezen we af uit het bovenste gedeelte van het symbool, ook wel besturingsblok genoemd. Beide multiplexers zijn verder identiek, vandaar dat enkel de eerste multiplexer volledig wordt beschreven. Het lege blok reageert dus identiek aan het bovenstaande. Met twee restveranderlijken komt elke dataselectie viermaal voor. Nemen we A en B als restveranderlijke en D als MSB van het adres, dan vinden we onderstaande logica. F
D 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
C 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
A 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
F 0 0 0 1 0 1 0 1 1 0 1 1 0 1 0 1
B,A 00
01
10
1
D,C 00
D0 D0 D0 D0 D1 D1 D1 D1 D2 D2 D2 D2 D3 D3 D3 D3
11
01
1
1
11
1
1
1
10
1
1
B,A 00
01
11
10
D,C 00
D0
D0
D0
D0
01
D1
D1
D1
D1
11
D3
D3
D3
D3
10
D2
D2
D2
D2
Elke data-ingang staat in functie van de restveranderlijken A en B. Stel een Karnaughkaart op om de vergelijking op elke data-ingang af te leiden. D0
A 0
D1 1
B 0 1
A 0
1
D 0 = AB D1 = A
DIGITALE TECHNIEKEN
D2
A 0
1
B 0
1
B 0
1
1
1
1
1
D3
A 0
1
1
1
B 0
1
1
1
D2 = A + B D3 = A
HOOFDSTUK 6
6. 8
74…153 14 2
C D B
&
6 5 4 3 1
&
A
&
10 11 12 13 15
&
0 _0 1} G 3 0 MUX 1 2 3 E
7
F
9
D C B A F
Ook hier is de keuze van de restveranderlijken bepalend voor het aantal extra IC's. De ideale oplossing vinden we met D en B als restveranderlijken.
74…153
A C
14 2
D B
6 5 4 3 1
+ 5 V
10 11 12 13 15
0 _0 1} G 3 0 MUX 1 2 3 E
7
F
9
Let op : niet alle schakelingen kan men oplossen zonder extra poorten, zoals in de aangehaalde voorbeelden. Een multiplexerschakeling met meerdere restveranderlijken zijn eveneens mogelijk. Voor n restveranderlijken wordt binnen één waarheidstabel, of Karnaughkaart, elke data-ingang 2n maal geselecteerd. Het oplossen van dergelijke schakelingen verloopt analoog aan bovenstaande theorie voor twee restveranderlijken.
DIGITALE TECHNIEKEN
HOOFDSTUK 6
6. 9
4. Ontwerpen van codeomvormers. Een codeomvormer is in principe niet meer dan het oplossen van een aantal logische vergelijkingen. Beschouw het als een toepassing op punt 3. Als voorbeeld werken we een BCD/AIKEN codeomvormer uit met twee restveranderlijken op een multiplexer. Hiervoor volstaan twee 74xx153 IC's. A beschrijft het BCD-cijfer en B het AIKEN-cijfer.
A3 0 0 0 0 0 0 0 0 1 1
A2 0 0 0 0 1 1 1 1 0 0
B3
A1 0 0 1 1 0 0 1 1 0 0
A1,A0 00
A0 0 1 0 1 0 1 0 1 0 1
B3 0 0 0 0 0 1 1 1 1 1
B2 0 0 0 0 1 0 1 1 1 1
B1 0 0 1 1 0 1 0 0 1 1
B0 0 1 0 1 0 1 0 1 0 1
B2 01
11
A1,A0 00
10
A3,A2 00
01
11
10
1
1
A3,A2 00
01
1
1
1
01
1
11
-
-
-
-
11
-
-
-
-
10
1
1
-
-
10
1
1
-
-
A1,A0 00
01
11
10
A1,A0 00
01
11
10
1
1
A3,A2 00
1
1
01
1
1
-
-
-
1
-
-
B1
B0
A3,A2 00
1
01 11
-
-
-
-
11
10
1
1
-
-
10
-
Neem A2 en A3 als restveranderlijken. Elke data-ingang heeft minstens één verboden toestand, wat het aantal poorten drastisch kan verlagen. Als vergelijkingen op de data-ingangen vinden we:
DIGITALE TECHNIEKEN
HOOFDSTUK 6
6. 10
B3 : D 0 D1 D2 D3
= = = =
A3 A3 + A2 ( A 3 + )A 2 ( A 3 + )A 2
B2 : D 0 D1 D2 D3
B1 : D 0 = A 3 D1 = A 3 + A 2 D2 = A 2
D2 = 0
D3 = A 2
D3 = 1
74…153 14 0 2 1 } G _0 3 6 5 4 3 1
& &
A2
A3 + A2 A3 ( A 3 + )A 2 ( A 3 + )A 2
B0 : D0 = 0 D1 = 1
A0 A1
A3
= = = =
0 MUX 1 2 3 E
10 11 12 13 15
&
7
9
B3
B2
74…153 14 0 2 1 } G _0 3
+5V
6 5 4 3 1 10 11 12 13 15
0 MUX 1 2 3 E
7
9
B1
B0
A3 A2 A1 A0 B3 B2 B1 B0
DIGITALE TECHNIEKEN
HOOFDSTUK 6
6. 11
5. Elementaire datacommunicatie. 5.1 Basisprincipe. Datacommunicatie, over lange afstanden, geschiedt meestal volgens een serieel protocol. Denk hierbij aan computernetwerken, de verbinding tussen de computer en een printer, enz… Voor een 4-bit woord betekent dit dat de zender bit na bit serieel op de transmissielijn plaatst met een multiplexer. De ontvanger zet de binnenkomende informatie om van serieel naar parallel langs een demultiplexer. MUX G _0 7 2 0
Parallel
}
0 1 2 3 4 5 6 7
Serieel DMUX 0 2
}
EN
Serieel
G _0 7
0 1 2 3 4 5 6 7
Parallel
EN
Om een perfecte communicatie mogelijk te maken, moeten zowel zender als ontvanger gelijktijdig hetzelfde adres selecteren. Dit gebeurt door middel van gesynchroniseerde tellers op de adressen aan te sluiten.
5.2 4-bit brede seriële synchrone datatransmissie. De zender stuurt met behulp van een synchrone teller (74xx161) en een MUX (74xx153) 4 bits na elkaar op de transmissielijn. Het toetsenbordje zet een hex-code op de 4 data-ingangen van de MUX. De ontvanger leest de verzonden bits en zet deze vervolgens op een parallelle bus. Hiervoor gebruiken we de demultiplexer (74xx139). Zodra de DMUX van toestand verandert, gaat de informatie op de voorheen geselecteerde uitgang verloren. Is met andere woorden uitgang 0 geselecteerd, dan zijn alle andere uitgangen hoog en bevatten dus geen nuttige informatie. Om de toestand van alle DMUX uitgangen te bewaren, gaan we deze in een geheugencel brengen. Hiervoor zorgen de D-latchs (74xx75). De NOR-poorten, tussen de DMUX en de latch, zorgen ervoor dat de verschillende bits op het juiste moment worden opgeslagen. Het meest betrouwbare sample-moment valt halfweg de stabiele tijd van elke bit. Verder moeten we ervoor zorgen dat beide tellers, in de zender en de ontvanger, volledig synchroon lopen. Vandaar dat zowel de klok (kloksynchronisatie) als het resetsignaal (framesynchronisatie) mee verstuurd worden. De volledige transmissielijn bevat vier geleiders. Eén voor het kloksignaal, één reset, één datageleider en een gemeenschappelijke massa.
DIGITALE TECHNIEKEN
HOOFDSTUK 6
6. 12
ZENDER 74...161
+5V 1 9
Klok
10 7 2
CTRDIV16 CT=0 M1 M2 G3 3CT=15 1 5 G4 C5/2,3,4+
3
1,5D [1]
14
4
[2]
13
5
[4]
12
6
[8]
11
Reset
1
InvReset 74…153
SZ0 1 4 0
_0 1} G 3
2
SZ1 6 5 4 3 1 0 1 2 3 4 5 6 7 8 9 AB C DE F Strobe
D0 D1 D2 D3
0 MUX 1 2 3 E
10 11 12 13 15
7
9
Data
TRANSMISSIELIJN
ONTVANGER +5V +5V
74...161
74…7
CTRDIV16 CT=0 M1 M2 G3 3CT=15 1 5 G4 C5/2,3,4+
1 9 10 7 2
≥1
14
4
[2]
13
5
[4]
1 2 SO1
6
[8]
11
14 13 15
DIGITALE TECHNIEKEN
S C1 1D R
10 11 12 13
5
L0
6
9
L1
8
+5V
5 74…7
≥1
74…139
1
EL1
SO0
1,5D [1]
2 3
EL0
≥1
3
4 3 2 1
DEMUX 4 0 0 } G _0 5 1 1 3 6 2 7 3 12 11 10 9
A0 A1 A2 A3
≥1
EL2
EL3
4 3 2 1
S C1 1D R
10 11 12 13
5
L2
6
9
L3
8
B0 B1 B2 B3
HOOFDSTUK 6
6. 13
200 Klok Reset InvReset SZ0 SZ1 D0 D1 D2 D3 Data SO0 SO1 A0 A1 A2 A3 B0 B1 B2 B3 EL0 EL1 EL2 EL3 L0 L1 L2 L3
6. Overwakingssysteem. Het overwakingssysteem registreert een alarmtoestand, gemeten op maximum 8 verschillende plaatsen (SENS 0 … SENS 7). Bij een eventueel alarm geeft de sensor een logische 1, in het andere geval een 0. Om bedrading te sparen plaatsen we de verschillende sensoren in een busstructuur (alle data serieel over één lijn). Elke sensor krijgt een uniek adres toegewezen. Met behulp van een 3-bit teller wordt achtereenvolgens elke toestand van de sensor gemeten en op een LED-indicatie weergegeven (LED aan betekent alarm). Elke sensor zet zijn data via een NAND-poort, met open collector, op de bus. Een multiplexer bepaalt het adres dat bij de sensor hoort. SENS 1 wordt gemeten tijdens adres 001. Dan geeft de multiplexer een 1 op zijn uitgang en enabled hierdoor de NAND-poort. De informatie van de sensor komt hierbij, invers, op de datalijn. Bij alle andere adrescombinaties geeft de multiplexer van SENS 1 een 0 uit. De bijhorende NAND-poort geeft steeds een hoogimpedante toestand.
DIGITALE TECHNIEKEN
HOOFDSTUK 6
6. 14
SENS 0
SENS 1
……
SENS 7 datalijn D adresbus (3 draden A 2 … A0) voeding (2 draden)
LED SENS 0 (L0) LED SENS 1 (L1) ……
decoder
LED SENS 7 (L7)
1 0
SENS 0
A0 A1 A2 +5V
MUX G _0 7 2 0
}
+
& +5V
0 1 2 3 4 5 6 7
CTR R DIV16 CT
+
0
{
3
EN
+5V
MUX G _0 7 2 0
}
&
0 1 2 3 4 5 6 7
DMUX 0 2
EN
+5V
EN
MUX G _0 7 2 0
}
G _0 7
0 1 2 3 4 5 6 7
1 0
SENS 7
A0 A1 A2
A1 A0
1 0
SENS 1
A0 A1 A2
A2
}
0 1 2 3 4 5 6 7
L7
L2
L1 L0
…
&
D
EN
DIGITALE TECHNIEKEN
HOOFDSTUK 6
6. 15
Het uitlezen van de sensoren gebeurt langs een demultiplexer. De datalijn stuurt rechtstreeks de enable. Staat SENS 1 in alarmtoestand ( = 0 op datalijn), dan komt bij adres 001 uitgang L1 hoog en licht de LED op. Geeft SENS 1 geen alarm, dan blijft de uitgang 0. Bij elk ander adres wordt L1 niet geactiveerd en blijft dus eveneens 0. In het schema zijn maar drie van de acht adressen benut. Alle niet-gebruikte adressen geven een continu gedoofde LED (zie L2).
A2 A1 A0 D L0 L1 L2 L7
Merk op dat bij een alarmtoestand van een sensor de bijhorende LED flikkert. De LED gaat enkel aan op de momenten dat het juiste adres geselecteerd wordt. Vandaar dat we best met een hoge klokfrequentie op tellen. Het flikkerend effect wordt hierbij door het oog niet meer waargenomen. Het schema kan eventueel verfijnd worden door achter de demultiplexeruitgangen een flipflop (= 1-bit geheugen) te plaatsen. Verder kan de adresbus vervangen worden door een klok- en resetsignaal. Elke sensor moet dan wel over een eigen teller beschikken.
7. Toepassingen. 1. Vervolledig de schema's voor onderstaande functie.
F = DC + CB + A (DB DCB) D 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
C 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
DIGITALE TECHNIEKEN
B 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
A 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
F
fig1
fig2
fig3 F
B,A 00
01
11
10
D,C 00 01 11 10
HOOFDSTUK 6
6. 16
74…151
fig 1 D B C
0
4 3 2 1 15 14 13 12
0 1 2 3 4 5 6 7
7
}
14 2 6 5 4 3 1
6
0 _0 1} G 3 0 MUX 1 2 3 E
7
F
9
74…153
fig 3 14 2 6 5 4 3 1 10 11 12 13 15
DIGITALE TECHNIEKEN
F
EN
10 11 12 13 15
C B
5
74…153
fig 2 A B
MUX G _0 7 2
11 10 9
0 _0 1} G 3 0 MUX 1 2 3 E
7
F
9
HOOFDSTUK 6
6. 17
2. Zoek zelf de beste aansluitcombinatie voor volgende functie.
G = C AD ( DC + AB) D 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
C 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
A 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
G
fig1
fig2 G
B,A 00
01
11
10
D,C 00 01 11 10
74…151
fig 1
0
4 3 2 1 15 14 13 12
0 1 2 3 4 5 6 7
7
}
5
G
6
EN
74…153
fig 2 14 2 6 5 4 3 1 10 11 12 13 15
DIGITALE TECHNIEKEN
MUX G _0 7 2
11 10 9
0 _0 1} G 3 0 MUX 1 2 3 E
7
G
9
HOOFDSTUK 6
6. 18
HOOFDSTUK 7 Adders. Een adder is een combinatorische schakeling waarmee we 2 n-bit woorden met elkaar optellen. 11
(+15)10 + (+12)10 (+27)10
001111 +001100 011011
overdracht of carry woord A woord B som S
De optelling van twee n-bit woorden geeft als resultaat n sombits. Tijdens de bewerking houden we eveneens rekening met de overdrachtbits of carrys. Zo geeft A0 + B0 ons S0 en een carry van 0. Deze noemen we carry-out (Co0). Deze Co0 is tevens de carry-in van de volgende bits (Ci1). Co n-1 = Ci n . Vooreerst gaan we een 2 x 1-bit adder samenstellen. Vervolgens worden deze bouwstenen verwerkt in een 4-bit adder. Verder gaan we o.a. na hoe een adder eveneens kan verwerkt worden bij het verschil en de vermenigvuldiging van twee binaire getallen.
1. 2 x 1-bit opteller. 1.1 Half adder. Een half adder telt twee bits (A en B) op en geeft als resultaat een sombit (S) en een carry-out (Co). Voor de optelling geldt:
B 0 0 1 1
A 0 1 0 1
S 0 1 1 0
Co 0 0 0 1
A B
=1
∑
S =
&
Co
A
P
∑
B
Q
Co
S Co
Zodra de op te tellen woorden meer dan één bit breed zijn, volstaat een half adder niet. De optelling moet immers rekening houden met de carrys die ontstaan. De 2 x 1-bit opteller die rekening houdt met de carry-in, noemen we een full adder of volledige opteller.
1.2 Full adder. De full adder telt drie bits op (A, B en Ci) en geeft als resultaat een som en een carry-out. De logische vergelijkingen die hierbij ontstaan verwijzen duidelijk naar een combinatieschakeling van half adders. Ga zelf het verband tussen de full adder en de half adders na.
DIGITALE TECHNIEKEN
HOOFDSTUK 7
7. 1
Ci 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
A 0 1 0 1 0 1 0 1
S 0 1 1 0 1 0 0 1
Co 0 0 0 1 0 1 1 1
S = ABCi + ABCi + ABCi + ABCi = A ⊕ B ⊕ Ci Co = ABCi + ABCi + ABCi + ABCi = AB + Ci( A ⊕ B)
Ci
B
S
=1
A
∑
=1
= &
≥1
Co
A
P
∑
B Ci
Q Ci
Co
S Co
&
2. Principeschakeling van een 4-bit opteller. De 4-bit opteller is een samengestelde schakeling van vier full adders. Verbindt hierbij de Ci van de minst beduidende full adder met de massa. De carry-out stuurt de carry-in van de hoger gelegen full adder. De meestbeduidende carry-out (Co op het schema) dient als overloop-indicator.
∑
A0 B0 Ci
P
∑
Q Ci
Co
S0 A3 A2
Co0
A1 ∑
A1 B1
P
∑
Q Ci
Co
A0
S1
B3 B2
Co1
B1 B0
∑
A2 B2
P
∑
Q Ci
Co
S3
S2
S2 S1
Co2
S0
∑
A3 B3
Co
P
∑
Q Ci
Co
DIGITALE TECHNIEKEN
S3
A+B = 6+1
A+B = 7+1
Co
HOOFDSTUK 7
7. 2
Merk op dat alle uitgangen een verschillende tijdsvertraging bezitten. Het resultaat op S2 moet immers wachten op Co1 voordat het resultaat stabiel wordt. Stellen we dat de vertragingstijden van elke poort binnen de full ader 10 ns bedraagt, dan zijn de verschillende looptijden als volgt:
Ci
=1
A0
S0
20 ns
Co0
30 ns
S1
40 ns
=1
B0
&
≥1
&
=1
A1
=1
B1
&
≥1
Co1 50 ns
&
=1
A2
S2
60 ns
C02
70 ns
S3
80 ns
Co
90 ns
=1
B2
&
≥1
&
=1
A3
=1
B3
&
≥1
&
Elke extra sombit levert een bijkomende vertraging op van 20 ns. Deze structuur volgt het ripple carry principe. Dit nadeel wordt grotendeels opgevangen door de inwendige structuur van de schakeling aan te passen. In plaats van de sombit afhankelijk te maken van de voorgaande carry, gaan we deze rechtstreeks naar de ingangen A en B transformeren. Voor de verschillende carrys geldt:
Co 0 Co1 Co 2 Co
= = = =
A 0 B0 + A1B1 + A 2 B2 + A 3B3 +
DIGITALE TECHNIEKEN
Ci( A 0 ⊕ B0 ) Co 0 ( A1 ⊕ B1) Co1 ( A 2 ⊕ B2 ) Co 2 ( A 3 ⊕ B3)
S0 S1 S2 S3
= = = =
A 0 ⊕ B0 ⊕ Ci A1 ⊕ B1 ⊕ Co 0 A 2 ⊕ B2 ⊕ Co1 A 2 ⊕ B2 ⊕ Co 2
HOOFDSTUK 7
7. 3
Na substitutie van de carrys vinden we:
Co 0 Co1 Co 2 Co
= = = =
A 0 B0 + Ci( A 0 ⊕ B0 ) A1B1 + A 0 B0 ( A1 ⊕ B1) + Ci( A 0 ⊕ B0 )( A1 ⊕ B1) A 2 B2 + A1B1 ( A 2 ⊕ B2 ) + A 0 B0 ( A1 ⊕ B1)( A 2 ⊕ B2 ) + Ci( A 0 ⊕ B0 )(A1 ⊕ B1)(A 2 ⊕ B2 ) A 3B3 + A 2 B2 ( A 3 ⊕ B3) + A1B1 ( A 2 ⊕ B2 )( A 3 ⊕ B3) + A 0 B0 ( A1 ⊕ B1)( A 2 ⊕ B2 )( A 3 ⊕ B3) + Ci( A 0 ⊕ B0 )( A1 ⊕ B1)( A 2 ⊕ B2 )( A 3 ⊕ B3)
Het schema volgens deze structuur geeft op elke sombit, na S0, een vertraging van 40 ns. Voor een 4-bit full adder geeft dit een snelheidswinst van 200 %. (Schema t.e.m. S2 getekend.)
Ci A0
=1
S0
20 ns
Co0
30 ns
S1
40 ns
Co1
30 ns
=1
B0
&
≥1
&
=1
A1
=1
&
B1
≥1
& &
=1
S2
40 ns
&
A2
=1
B2
&
≥1
Co2
30 ns
& &
Een ontwerp volgens bovenstaande structuur volgt het look-ahead principe. Als componenten vernoemen we de 74xx83 (ripple carry 4-bit adder) en de 74xx283 (look-ahead 4-bit adder).
DIGITALE TECHNIEKEN
HOOFDSTUK 7
7. 4
3. 4-bit op-afteller. 3.1 4-bit afteller. Uit hoofdstuk 3 weten we dat elke aftelling te herleiden is tot een optelling (A - B = A + /B + 1). Het volstaat dus elke bit van woord B te inverteren en samen met woord A naar de opteller te brengen. Eén bijtellen gebeurt door de carry-in op 1 te zetten. Het resultaat van de bewerking wordt in 2-complement zichtbaar op de uitgangen S3…S0. 74…83 10 8 3 1 11 7 4 16
A0 A1 A2 A3 1
B0
B1
1
B2
1
B3
1
∑
0
} { } P
3 0
∑
Q
3 1 3 Ci
0 9 6 2 3 15
S0 S1 S2 S3
CO 1 4
Co
+5V
3.2 Gecombineerde op-afteller. Met behulp van een Mode-ingang werkt de schakeling als opteller (Mode = 0) of afteller (Mode = 1). Het al dan niet inverteren van woord B wordt eveneens bepaald door de toestand van de Mode, langs een EXOR. Verbind de Mode met de carry-in om de op-afteller volledig functioneel te maken. 74…83
A0 A1 A2 A3 B0
B1
B2
B3
=1
=1
10 8 3 1 11 7 4 16
0
∑
} { } P
3 0
3 1 3 Ci
∑
Q
0 9 6 2 3 15
S0 S1 S2 S3
CO 1 4
Co
=1
=1
Mode
DIGITALE TECHNIEKEN
HOOFDSTUK 7
7. 5
3.3 Gecombineerde op-afteller met zevensegment uitlezing. Onderstaand blokschema beschrijft de werking van deze schakeling. LED "Min" Mode
Som/verschil
Woord A +/-
7/segment decoder
?
Co
Woord B
LED "OV"
Met behulp van de Mode kiezen we voor A + B (Mode = 0) of A - B (Mode = 1). Om het resultaat van de bewerking zichtbaar op het display te brengen volstaat het niet om de sombits van de op-afteller rechtstreeks naar de 7-segment decoder te sturen. Het resultaat kan immers negatief zijn. Als voorbeeld: A = (5)10 en B = (7)10. A - B = (-2)10 = (1110)2. De 7-segment decoder (74xx47) ontvangt deze informatie en op het display verschijnt alles behalve het cijfer "2". Onderstaande figuur geeft de segmentvoorstelling van de verschillende 4-bit combinaties .
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
Om het juiste cijfer op het display te brengen, gaan we het resultaat van de op-aftelling bewerken voordat het op de decoder komt. Het resultaat van de bewerking is een positief getal (0000 … 0111). Geeft de informatie rechtstreeks naar de decoder. Het resultaat van de bewerking is een negatief getal (1000 … 1111). Maak het resultaat positief (2-complement) en geeft dit naar de decoder. Een extra LED (Min) licht op zodra het resultaat van de bewerking negatief is. Het 2-complement, voor de decoder, wordt eveneens gerealiseerd met EXOR-poorten. De meestbeduidende sombit bepaalt wat er uiteindelijk naar de decoder gaat. Bijhorend schema voldoet aan de gestelde eisen. Ga zelf de volledige werking na. Vervolledig het schema met een overflow detectie. Zodra overflow optreedt, dooft zowel het segment als het minteken. De LED "OV" licht op.
DIGITALE TECHNIEKEN
HOOFDSTUK 7
7. 6
74…83
Woord A C 8 4 0
D 9 5 1
E A 6 2
=1
Woord B C 8 4 0
D 9 5 1
10 8 3 1 11 7 4 16
F B 7 3
E A 6 2
F B 7 3
∑
0
} { } P
3 0
∑
Q
HEX-display
E
CO 1 4
3 1 3 Ci
=1
0 9 6 2 3 15
=1
=1
Mode 1 0
LED " OV" Z
74…47 4
BIN/7-SEG [T1] ≥1
+5V 5 3
74…83
=1
=1
=1
10 8 3 1 11 7 4 16
0
∑
} { } P
3 0
3 1 3 Ci
∑
Q
0 9 6 2 3 15
7 1 2 6
CO 1 4
G21
& CT=0 V20 1 2 4 8
a b c d e f g
20,21 20,21 20,21 20,21 20,21 20,21 20,21
13 12 11 10 9 15 14
7-segment
LED "Min"
2
1 =1
DIGITALE TECHNIEKEN
HOOFDSTUK 7
7. 7
4. Opteller met variabele woordlengte. De optelling van woorden met meer of minder dan 4 bits is eveneens realiseerbaar met een parallel opteller. Als voorbeeld maken we gebruik van een 74xx83.
4.1 Woorden kleiner dan 4 bits. Verbind de overbodige adder-ingangen met massa. Onderstaande schema's illustreren enkele mogelijke oplossingen van voor de optelling van 2 x 3-bit woorden met carry-out. 74…83
A0 A1 A2 B0 B1 B2
10 8 3 1 11 7 4 16
74…83
∑
0
} { } P
3 0
0 9 6 2 3 15
∑
Q
CO 1 4
3 1 3 Ci
S0 S1 S2 Co
10 8 3 1 11 7 4 16
A0 A1 A2 B0 B1 B2
∑
0
} { } P
3 0
∑
Q
3 1 3 Ci
0 9 6 2 3 15
S0 S1 S2
CO 1 4
Co
4.2 Woorden groter dan 4 bits. Verbind de Co van de laagst beduidende adder met de Ci van de volgende. Als voorbeeld het schema van een 2 x 7-bit optelschakeling. 74…83
A0 A1 A2 A3 B0 B1 B2 B3
10 8 3 1 11 7 4 16
S0 S1 S2 S3
∑
0
} { } P
3 0
0 9 6 2 3 15
∑
Q
CO 1 4
3 1 3 Ci
74…83 10 8 3 1 11 7 4 16
A4 A5 A6 B4 B5 B6
0
∑
} { } P
3 0
∑
Q
0 9 6 2 3 15
S4 S5 S6 Co
CO 1 4
3 1 3 Ci
5. 4-bit serie-opteller. De werking van de schakeling wordt geïllustreerd aan de hand van een blokschema. Beide op te tellen woorden worden in een schuifregister geladen. Deze gaat, onder invloed van een kloksignaal, de informatie rechts doorschuiven. De optelling verloopt langs een 1-bit full adder. A-register (4 bits) A3
B3
A2
B2
A1
B1
∑
A0
B0
B-register (4 bits)
DIGITALE TECHNIEKEN
S-register (4 bits) S3
P
∑
Q Ci
Co
C-register (1 bit)
S2
S1
S0
klok
HOOFDSTUK 7
7. 8
Eerst laden we het A- en B-register, elk met één getal. Het S- en C-register worden gereset of gecleared ( laden met 0). Op elk moment blijft de inhoud van A0, B0 en C verbonden met de full adder en zal deze de optelling uitvoeren. Het resultaat staat dadelijk klaar om door het S- en C-register gelezen te worden. De adder is immers klokonafhankelijk. Bij een actieve klokflank, wordt de informatie in alle registers geschreven. De sombit staat dan op S3. Gelijktijdig schuift de informatie binnen alle registers één plaats naar rechts (C naar links). Afhankelijk van het type registers wordt de linkse bit met een 0 gevuld (zoals in ons voorbeeld), ofwel behoudt deze zijn waarde. Na vier klokpulsen staat het resultaat van de bewerking volledig in het S- en de carry in het C-register. Onderstaande tabel verduidelijkt de werking.
Beginstand na 1e clk na 2e clk na 3e clk na 4e clk
A3 A2 A1 A0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0
B3 1 0 0 0 0
B2 1 1 0 0 0
B1 0 1 1 0 0
B0 1 0 1 1 0
C 0 0 0 1 1
S3 0 1 1 0 0
S2 0 0 1 1 0
S1 0 0 0 1 1
S0 0 0 0 0 1
Een alternatieve oplossing bestaat erin het resultaat van de bewerking terug te voeren naar het A-register, en de inhoud van B te roteren. Bij een optelling van meer dan twee woorden, gaan we als volgt te werk. Schrijf het eerste en tweede woord in het A- en B-register. Na vier klokpulsen staat de som in het A-register. Lees het derde woord in het B-register. Tijdens de vier volgende klokpulsen wordt het resultaat van de eerste optelling bij het derde woord geteld en verschijnt het resultaat terug in A.…
A-register (4 bits) A3
A2
A1
∑
A0
∑
P Q
B3
B2
B1
B0
B-register (4 bits)
Beginstand na 1e clk na 2e clk na 3e clk na 4e clk
A3 A2 A1 A0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1
Co
Ci
C-register (1 bit)
B3 0 1 0 1 0
B2 1 0 1 0 1
B1 0 1 0 1 0
klok
B0 1 0 1 0 1
C 0 0 0 1 1
Merk op dat de serie-opteller veel trager werkt dan de parallel-opteller.
DIGITALE TECHNIEKEN
HOOFDSTUK 7
7. 9
6. 4-bit BCD opteller. Een BCD optelling kan gebeuren met een 4-bit binaire opteller (bv: 74xx83). Het resultaat vraagt dan wel een aanpassing zodra de som groter wordt dan 9 (zie hoofdstuk 4). Het volstaat bij deze de binaire optelling nogmaals met zes te verhogen. Dit gebeurt eveneens met een 74xx83. De correctieterm H bepaalt of het resultaat al dan niet met zes dient verhoogd te worden. H = 1 indien de som groter wordt dan (9)10. Met andere woorden. H = S3 (S2 + S1) + Co Resultaat van de BIN optelling
Binaire optelling 74…83
A0 A1 A2 A3 B0 B1 B2 B3
10 8 3 1 11 7 4 16
74…83
} { } P
3 0
∑
Q
S0 S1 S2 S3
0 9 6 2 3 15
10 8 3 1 11 7 4 16
CO 1 4
3 1 3 Ci
S3...S0 + 0HH0
D
∑
0
≥1
0
∑
} { } P
3 0
∑
Q
0 9 6 2 3 15
BCD0 BCD1 BCD2 BCD3
CO 1 4
3 1 3 Ci
Co &
≥1
H = BCD4
0 1 2 3 4 5 6 7 8 9 AB C DE F Strobe
A0 A1 A2 A3
0 1 2 3 4 5 6 7 8 9 AB C DE F Strobe
B0 B1 B2 B3
BCD4 1
BCD0 BCD1 BCD2 BCD3
3
HEX displays
Merk op dat het resultaat van de BCD optelling vijf bits vraagt. (9)10 + (9)10 = (18)10 = (11000)BCD.
7. 4-bit vermenigvuldiging. De binaire vermenigvuldiging (zonder tekenbit) kwam reeds aan bod in hoofdstuk 3. Elke vermenigvuldiging kan herleid worden tot een reeks van optellingen.
(11)10 x (6)10 (66)10
x 1 10 +000 0100
DIGITALE TECHNIEKEN
10 01 00 01 11 0 00
11 10 00 1
10
vermenigvuldigtal vermenigvuldiger Deelterm 1 Deelterm 2 Deelterm 3 Deelterm 4 Produkt
A3…A0 B3…B0 T13…T10 T24…T21 T35…T32 T46…T43 P7…P0
HOOFDSTUK 7
7. 10
A0 &
T10
P0 74…83
A1 &
T11
A2 &
T12
B0
&
T13
B1
&
T21
&
T22
&
T23
&
T24
A3
10 8 3 1 11 7 4 16
0
∑
} { } P
3 0
∑
Q
0 9 6 2 3 15
P1
CO 1 4
3 1 3 Ci
74…83
B2
&
T32
&
T33
&
T34
&
T35
10 8 3 1 11 7 4 16
0
∑
} { } P
3 0
∑
Q
0 9 6 2 3 15
P2
CO 1 4
3 1 3 Ci
74…83
B3
&
T43
&
T44
&
T45
&
T46
10 8 3 1 11 7 4 16
0
∑
} { } P
3 0
∑
Q
3 1 3 Ci
0 9 6 2 3 15
P3 P4 P5 P6
CO 1 4
P7
Het vermenigvuldigtal wordt overgenomen indien de desbetreffende bit binnen de vermenigvuldiger 1 is. Is de betreffende bit 0, dan worden er nullen genoteerd. De realisatie van deze logica zit vervat in de AND-poorten. T1x = Ax . B0 T2(x+1) = Ax. B1
DIGITALE TECHNIEKEN
T3(x+2) = Ax. B2 T4(x+3) = Ax. B3
(met x = 0…3)
HOOFDSTUK 7
7. 11
Het links schuiven bij de optelling van elke volgende deelterm gebeurt langs de ingangen van de verschillende adders. Het resultaat van de vermenigvuldiging kan als volgt worden omschreven. (Vergeet vooral de overdrachtsbits niet mee te verwerken in de hogergelegen som.) P0 = T10 P1 = T11 + T21 P2 = T12 + T22 + T32 + Co(P1) P3 = T13 + T23 + T33 + T43 + Co(P2)
P4 = T24 + T34 + T44 + Co(P3) P5 = T35 + T45 + Co(P4) P6 = T46 + Co(P5) P7 = Co(P6)
Enkele simulatievoorbeelden bewijzen de werking van bijhorende schakeling. Zowel het toetsenbord als het display geven hexadecimale codes weer. (7)10 x (7)10 = (49)10 = (0011 0001)2 0 1 2 3 4 5 6 7 8 9 AB C DE F Strobe
A0 A1 A2 A3
0 1 2 3 4 5 6 7 8 9 AB C DE F Strobe
B0 B1 B2 B3
P4 P5 P6 P7
3
P0 P1 P2 P3
1
E
P0 P1 P2 P3
1
(15)10 x (15)10 = (225)10 = (1110 0001)2 0 1 2 3 4 5 6 7 8 9 AB C DE F Strobe
A0 A1 A2 A3
0 1 2 3 4 5 6 7 8 9 AB C DE F Strobe
B0 B1 B2 B3
P4 P5 P6 P7
8. BCD - BIN codeomvormer met adders. Het verband tussen een codeomvormer met behulp van adders is misschien niet meteen duidelijk. Laten we daarom even het verband tussen beide voorstellingsvormen van naderbij bekijken. We gaan er van uit dat het BCD-getal uit twee cijfers bestaat. Enkele voorbeelden: (0011 0111)BCD = (37)10 = (100101)2 (1001 1001)BCD = (99)10 = (1100011)2 Het grootste BCD-getal is 99. Deze acht bits noemen we B7…B0. Zeven bits volstaan voor het natuurlijk binaire equivalent (N6…N0). De logica achter de omzetting ziet er als volgt uit. Bepaal het gewicht van elke bit binnen de BCD notatie (B0 heeft als gewicht (1)10, B1 staat voor (2)10, B4 voor (10)10, …). Zet vervolgens deze gewichten om naar een binair getal. (1)10 geeft (1)2, (2)10 geeft (10)2, (10)10 geeft (1010)2,… Tel vervolgens alle binaire deelgetallen met elkaar op. Uitgewerkt op een voorbeeld vinden we: (1001 0111)BCD (1 0 0 1 0 1 1 1)BCD
(1100001)2
DIGITALE TECHNIEKEN
( ( ( ( ( ( 0 ( 00 (+ 1 0 1 ( 1 10
0 1 0 0 0 0
1 0 0 0 0 0 0
1 0 0 1 0 0 0 0
1)2 0)2 0)2 0)2 0)2 0)2 0)2 0)2 1)2
Algemene oplosmethode (B7 B6 B5 B4
B5 B6 0 + B7 0 B7 (N6 N5 N4
B3 B2 B1 B0)BCD
B3 B4 0 B6 0 N3
B2 B1 B0 0 B4 0 B5 0 0 0 0 0 0 0 0 N2 N1 N0 )2
HOOFDSTUK 7
7. 12
Uit de algemene oplosmethode vinden we: N0 N1 N2 N3
= = = =
B0 B1 + B4 B2 + B5 + Co(N1) B3 + B4 + B6 + Co(N2)
N4 = B5 + B7 + Co(N3) N5 = B6 + Co(N4) N6 = B7 + Co(N5)
N0
B0 74…83
B1 B2 B3 B4 B5
10 8 3 1 11 7 4 16
0
∑
} { } P
3 0
∑
Q
3 1 3 Ci
N1 N2
0 9 6 2 3 15
74…83 10 8 3 1 11 7 4 16
CO 1 4
B6 B7
0 1 2 3 4 5 6 7 8 9 AB C DE F Strobe
0
∑
} { } P
3 0
∑
Q
CO 1 4
3 1 3 Ci
B4 B5 B6 B7
DIGITALE TECHNIEKEN
0 1 2 3 4 5 6 7 8 9 AB C DE F Strobe
B0 B1 B2 B3
N3 N4 N5 N6
0 9 6 2 3 15
N4 N5 N6
2
N0 N1 N2 N3
5
HEX displays
HOOFDSTUK 7
7. 13
9. Toepassingen. 1. Teken het schema voor een 2 x 10 bit opteller. 2. Vervolledig de tabel voor een serie-opteller met somregister. (A = (2)10 en B = (5)10)
A3 A2 A1 A0
B3
B2
B1
B0
C
S3
S2
S1
S0
Beginstand na 1e clk na 2e clk na 3e clk na 4e clk 3. Vervolledig de tabel voor een serie-opteller zonder somregister. (A = (3)10 en B = (-6)10)
A3 A2 A1 A0
B3
B2
B1
B0
C
Beginstand na 1e clk na 2e clk na 3e clk na 4e clk 4. Teken het schema voor een 3-bit x 2-bit vermenigvuldiger.
DIGITALE TECHNIEKEN
HOOFDSTUK 7
7. 14
HOOFDSTUK 8 Pariteitscontrole. Zoals in hoofdstuk 4 (ASCII-code) reeds werd aangehaald, bestaan er een aantal technieken om de juistheid van informatie te controleren. Bij het verzenden van parallelle informatie over een transmissielijn, wordt een extra bit (pariteitsbit) toegevoegd. De ontvanger kan op het totaal aantal bits (data + pariteit) testen uitvoeren en vervolgens een beslissing nemen. Zodra één van de bits foutief ontvangen wordt (0 verzonden wordt als 1 ontvangen of omgekeerd) geeft de pariteitscontroler een foutmelding. Door de foutdetectie te melden aan de zender, weet deze dat hij de voorgaande informatie nogmaals moet opsturen. Het genereren van een pariteitsbit verloopt volgens een bepaalde structuur. Oneven pariteit wil zeggen dat het totaal aantal bits (data- en pariteitsbit) een oneven aantal enen bevat. Bij een even pariteit is het totaal aantal enen even. Onderstaande tabel geeft de toestand van de pariteitsbit in functie van een 4-bit woord.
A3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
A2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
A1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
A0 OPB EPB 0 1 0 1 0 1 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 1 1 0
OPB = oneven pariteitsbit EPB = even pariteitsbit
1. 4-bit pariteitsgenerator. 4-bit pariteitsgenerator betekent uit 4 databits een vijfde pariteitsbit genereren. EPB
A1,A0 00
1
1
DIGITALE TECHNIEKEN
10
1 1
1
11 10
11
1
A3,A2 00 01
01
EPB
= A 3 ⊕ A 2 ⊕ A1 ⊕ A 0
OPB
= A 3 ⊕ A 2 ⊕ A1 ⊕ A 0
1 1
HOOFDSTUK 8
8. 1
+5V
A0
0 1 2 3 4 5 6 7 8 9 AB C DE F Strobe
1 OPB
=1
A1
=1 =1
A2 0 EPB
=1
A3
Bovenstaande schakeling kan tevens dienst doen als 4-bit pariteitscontroler. Let op : binnen deze 4 bits zit dan eveneens de paritietsbit (3 data- en 1 pariteitsbit). Zodra er een fout optreedt bij oneven pariteit, wordt uitgang OPB hoog. Voor een 4-bit datatransmissie met extra pariteitsbit bevat de zender een 4-bit pariteitsgenerator en de ontvanger een 5-bit pariteitscontroler.
2. De 74xx280 (9-bit parity generator / checker). De 74280 bevat 9 ingangen en 2 uitgangen. 74…280 2K
8 9 10 11 12 13 1 2 4
5
∑E
6
∑O
2k staat voor een even pariteitselement (2k+1 voor oneven). Zodra het aantal enen op de 9 ingangen even is, komt uitgang ∑E hoog en de inverse uitgang (∑O) laag. Met andere woorden: aantal enen even (0, 2, 4, 6 of 8 enen) dan wordt ∑E = 1 en ∑O = 0. aantal enen oneven (1, 3, 5, 7 of 9 enen) dan wordt ∑E = 0 en ∑O = 1. Verder bestaat de mogelijkheid tot uitbreiding van het aantal ingangen. Onderstaand schema geeft een 25-bit oneven pariteitsgenerator met P als pariteitsbit.
A0 8 A1 9 A2 1 0 A3 1 1 A4 1 2 A5 1 3 A6 1 A7 2 A8 4
74…280 2K
DIGITALE TECHNIEKEN
5
6
A9 A10 A11 A12 A13 A14 A15 A16 A17
8 9 10 11 12 13 1 2 4
74…280 2K 5
6
A18 A19 A20 A21 A22 A23 A24
8 9 10 11 12 13 1 2 4
74…280 2K
HOOFDSTUK 8
P 5
6
8. 2
3. Oneven pariteitstransmissie. Over de transmissielijn wordt een ASCII-code verzonden met een oneven pariteitsbit (A6…A0 en PB geeft 8 bits in totaal). Zowel de zender als de ontvanger maken gebruik van een 74xx280. A0 A1 A2 A3 A4 A5 A6 PB 8 9 10 11 12 13 1 2 4
74…280 2K 5
6
Enkele voorbeelden. 0 1 2 3 4 5 6 7 8 9 AB C DE F Strobe
A4 A5 A6
8 9 10 11 12 13 1 2 4
74…280 2K 5
error
6
A = (101 0110)2 geeft een PB =1.
0 1 2 3 4 5 6 7 8 9 AB C DE F Strobe
A0 A1 A2 A3
1
0 PB
error
A = (010 1010)2 geeft een PB =0. 0 1 2 3 4 5 6 7 8 9 AB C DE F Strobe
A4 A5 A6
0 1 2 3 4 5 6 7 8 9 AB C DE F Strobe
A0 A1 A2 A3
0
0 PB
error
Uitgang "error" stelt een eventuele transmissiefout vast. Bij een correcte transmissie geeft deze altijd een 0. Bij een fout wordt error = 1.
4. Toepassingen. 1. Ontwerp een 3-bit pariteitsgenerator. Een M-ingang bepaalt de pariteit (M = 0 geeft even pariteit, M = 1 oneven pariteit). 2. Pas het schema van de oneven pariteitstransmissie aan tot een even pariteitstransmissie. 3. Vergelijk twee 4-bit woorden met elkaar . Het resultaat wordt op afstand weergegeven op LED's. A ≥ B : LED1 licht op. A < B : LED2 licht op. Om eventuele transmissiefouten op te sporen, sturen we een pariteitsbit mee (even beeld). Zodra de ontvanger een fout waarneemt doven beide LED's en zal LED3 oplichten.
DIGITALE TECHNIEKEN
HOOFDSTUK 8
8. 3
HOOFDSTUK 9 Flipflops. Zodra een digitaal systeem wordt uitgerust met geheugenelementen, spreekt men van een sequentiële schakeling. De nieuwe toestand van de uitgangen wordt bepaald door een aantal, van elkaar onafhankelijke, ingangen en door de toestand waarin het systeem zich momenteel bevindt. Denk hierbij maar aan een binaire op-afteller. Het volgende getal wordt bepaald door het huidige getal en de toestand van de ingang die bepaalt in welke richting de verdere telling verloopt.
Combinatorische schakeling
Sequentiële schakeling
Eén of meerdere uitgangen worden teruggekoppeld. Een flipflop, als één bit geheugen, is het basiselement van alle sequentiële schakelingen. Het aantal flipflops binnen een sequentieel systeem wordt bepaalt door het aantal toestanden. Enkele voorbeelden ter illustratie. * Een schakeling waarbij men met behulp van één druktoets een lamp aan- en uitschakelt bevat maar één flipflop. * Ook een TV toestel heeft een aantal flipflops aan boord. Eenmaal het juiste station gekozen op de afstandsbediening, onthoudt het TV toestel dit en kan de gebruiker de druktoets loslaten. * Een vier bit binaire opteller bestaat uit vier flipflops (één flipflop voor elke uitgangsbit). De teller onthoudt de uitgangscode en telt er vervolgens één bij. De overgang naar de volgende toestand gebeurt op welbepaalde tijdstippen onder invloed van een kloksignaal. * Een computer met 4 MByte aan RAM geheugen kan 4 x 1048576 x 8 = 33554432 bits bewaren en bevat dus ongeveer 34 miljoen flipflops.
Indien alle uitgangsbits van een schakeling op hetzelfde ogenblik, onder invloed van een klok, naar hun nieuwe toestand overgaan, dan noemt men dit een synchroon systeem. Is dit niet het geval, dan spreekt men van een asynchroon systeem. In dit hoofdstuk komen de verschillende flipfloptypes aan bod. Naast de werking en de inwendige structuur van de componenten gaan we de timing van enkele eenvoudige flipflop schakelingen bespreken. Het ontwerpen van een sequentiële schakeling wordt uitvoerig besproken in hoofdstuk 10 (Toestandsmachines).
1. SR flipflop. Een Set/Reset of kortweg SR flipflop is het eenvoudigste geheugenelement dat men kan ontwerpen. Het bevat twee NAND- ofwel twee NOR-poorten. Naast S en R als ingangen hebben we een Q en zijn inverse als uitgangen. Deze component bevat GEEN klokingang en komt dus niet in aanmerking om synchrone systemen te ontwerpen. De ingang S staat voor "set". Deze zet de uitgang Q op 1. R staat voor "reset" en zet Q op 0.
DIGITALE TECHNIEKEN
HOOFDSTUK 9
9. 1
1.1 SR flipflop met NOR-poorten. R ≥1
Q S
≥1
S
R
Q
S R Q Q
S geheugen
R geheugen S !!! toggle verboden
R
geheugen
Toestandstabel. Een toestandstabel is in feite de waarheidstabel van een sequentiële schakeling. Naast S en R komt ook Q in het ingangsgedeelte van de tabel. In het uitgangsgedeelte staat eveneens Q. Om verwarring te voorkomen noteren we op de ingang QT (de huidige toestand van Q) en op de uitgang QNT (de nieuwe of volgende toestand van Q).
S 0 0 0 0 1 1 1 1
R 0 0 1 1 0 0 1 1
QT QNT /QNT 0 0 1 1 1 0 0 0 1 1 0 1 0 1 0 1 1 0 0 0 0 1 0 0
(1) (2) (3) (3) (4) (4) (5) (5)
S 0 0 0 1 1
R 0 0 1 0 1
QT QNT /QNT 0 0 1 1 1 0 x 0 1 x 1 0 x 0 0
(1) (2) (3) (4) (5)
Zodra één of meerdere ingangen van een NOR poort op 1 staan, zal de uitgang 0 worden. In toestand 3 betekent dit dat uitgang Q wordt gereset en dit onafhankelijk van de vorige toestand van Q. In toestand 4 wordt de flipflop geset. Ook hier is de vorige toestand onbelangrijk. In toestand 5 komen beide uitgangen laag. Deze ingangscombinatie wordt dus best vermeden (verboden toestand). In toestand 1 en 2 blijft de vorige toestand van Q bewaard. De component staat in zijn geheugenstand. Indien, na een verboden toestand, beide ingangen S en R gelijktijdig op 0 komen, dan is het nieuwe uitgangsniveau onvoorspelbaar. Beide poorten gaan theoretisch continu van toestand wisselen (zie simulatie). De vertragingstijden van de poorten bepalen de oscillatiefrequentie. In werkelijkheid zijn de vertragingstijden van beide poorten niet volledig identiek en zullen de uitgangen na verloop van tijd in een bepaalde, niet te voorspellen, toestand blijven hangen. We kunnen bovenstaande tabel als volgt samenvatten.
DIGITALE TECHNIEKEN
HOOFDSTUK 9
9. 2
S 0 0 1 1
R 0 1 0 1
QNT QT 0 1 0
/QNT /QT 1 0 0
Geheugen Reset Set Verboden
Excitatietabel. Een excitatietabel geeft aan welke ingangscombinatie er nodig is om van de ene uitgangstoestand naar de andere over te gaan. Dit wordt een belangrijke tabel bij het ontwerpen van sequentiële schakelingen.
QT QNT 0 0 0 1 1 0 1 1
S 0 1 0 x
R x 0 1 0
De uitgang staat op 0 en we wensen hem daar te houden. Dit kan door de flipflop in geheugenstand te zetten ( S = 0 en R = 0) of door de reset te activeren ( S = 0 en R = 1). Het volstaat dus de setingang op nul te houden. De toestand van R is hierbij onbelangrijk (S = 0 en R = x). De verboden toestand laten we hier buiten beschouwing. Om de uitgang van 0 naar 1 te brengen setten we de flipflop. Om van 1 naar 0 over te gaan resetten we de flipflop. Ook hier laten we de verboden toestand buiten beschouwing. Een 1 op de uitgang bewaren kan langs de geheugentoestand of de set. Opm: zoals reeds aangehaald ga je Nooit rechtstreeks over van de verboden naar de geheugentoestand. Het gedrag van de flipflop wordt hierdoor onvoorspelbaar. Onderstaand schema is dus uit den boze. In
Uit
S
1 0
R
1.2 SR flipflop met NAND-poorten. S
Q & S
R
&
Q
R
Deze SR flipflop heeft laag actieve ingangen. Ga zelf de werking, de toestandstabel en de exitatietabel na.
S R Q Q
DIGITALE TECHNIEKEN
HOOFDSTUK 9
9. 3
Toestandstabel.
S 0 0 1 1 1
R 0 1 0 1 1
QT QNT /QNT x 1 1 x 1 0 x 0 1 0 0 1 1 1 0
S 0 0 1 1
R 0 1 0 1
QNT 1 1 0 QT
/QNT 1 0 1 /QT
Verboden Set Reset Geheugen
Excitatietabel.
QT QNT 0 0 0 1 1 0 1 1
S 1 0 1 x
R x 1 0 1
2. Enkele nuttige toepassingen met een SR flipflop. 2.1 Anti-dender schakeling. Zodra het contact van een mechanische schakelaar sluit, ontstaat er dender. Het contact "klappert" even voor het in zijn stabiele toestand terecht komt. +5V
S gesloten
S open
Out
Zodra dit signaal als klok fungeert, bijvoorbeeld op een teller, dan zal elke druk op de toets niet één maar meerdere actieve kloppulsen genereren. Hierdoor zijn er teveel (ongewilde) flanken aanwezig. Dit probleem kan men eenvoudig oplossen door de wisselschakelaar op de ingangen van een SR flipflop te plaatsen. S +5V +5V
R Out S R
Out Sckakelaar in bovenste stand
DIGITALE TECHNIEKEN
Sckakelaar in onderste stand
HOOFDSTUK 9
9. 4
Als de schakelaar in de onderste stand staat, wordt de flipflop gereset (out = 0). Tijdens het omschakelen van de schakelaar komen beide ingangen gedurende een korte tijd hoog. Tijdens deze actie staat de flipflop in geheugenstand (out blijft 0). Zodra de schakelaar de set raakt komt de uitgang hoog (out = 1). Tijdens het denderen van het contact op de S-ingang behoudt de uitgang zijn niveau. Er wordt immers gedurende een korte tijd continu geschakeld tussen set en geheugen. Klikken we de schakelaar een tweede maal om, dat komen we via de geheugenstand naar reset. De uitgang komt laag. Deze schakeling elimineert de contactdender op de flipflopuitgang.
2.2 Startstop schakeling. Onderstaande schakeling beschrijft het aan- en uitschakelen van een toestel met behulp van twee druktoetsen. Merk op dat de stop voorrang heeft op de start. Worden immers beide toetsen gelijktijdig bediend, vervallen we in de verboden toestand van de flipflop en blijft de uitgang laag. +5V
+5V
Stop
+5V
K1
Start
K1
S R
Daar een flipflopuitgang meestal niet de juiste spanning en stroom kan leveren om rechtstreeks een belasting (bijvoorbeeld een motor) te sturen, kan de schakeling worden uitgebreid met een relaisbekrachtiging. Bij een hoog niveau op de flipflopuitgang komt de transistor in geleiding. Het relais wordt bekrachtigd en sluit zijn maakcontact. Dit contact voorziet de bijhorende schakeling, de motor, van spanning. De stoptoets brengt de flipflopuitgang laag. De transistor komt uit geleiding. De relaisbekrachtiging verdwijnt en opent het maakcontact. Plaats steeds een vrijloopdiode over de spoel van het relais om beschadiging van de transistor te voorkomen.
2.3 Links/rechts sturing met vergrendeling. Met behulp van drie druktoetsen wordt een links/rechts sturing van een motor gerealiseerd. Toets L brengt uitgang LINKS op 1, terwijl toets R uitgang RECHTS activeert. Toets STOP deactiveert beide uitgangen. De overgang van LINKS naar RECHTS, of omgekeerd, gaat niet rechtstreeks. Druk eerst op stop en activeer vervolgens de gewenste toestand. +5V
L LINKS S R
+5V
≥1
STOP +5V
RECHTS S
R
DIGITALE TECHNIEKEN
R ≥1
HOOFDSTUK 9
9. 5
L R STOP LINKS RECHTS
Dit schema wordt bijvoorbeeld ook toegepast bij een quiz. De schakeling registreert op deze manier de kandidaat die het snelst afdrukt. Ontwerp zelf een gelijkaardig schema voor drie kandidaten.
3. JK flipflop. Door een aantal poorten toe te voegen aan een SR flipflop ontstaat een JK flipflop. De J set de flipflopuitgang terwijl de K de flipflop reset. Als voordeel kunnen we aanhalen dat de JK flipflop geen verboden toestand kent. Verder is er altijd een klokingang voorzien. Dit maakt het mogelijk synchrone schakelingen te ontwerpen. Als optie bevatten de meeste componenten een asynchrone set en/of reset ingang.
3.1 Basisschema van een JK flipflop. De werking van de JK flipflop kan aan de hand van onderstaand schema afgeleid worden. J
&
K
Q S
CLK
C1
R &
1J
Q
1K
CLK J K Q Q
Zolang het kloksignaal op 0 staat, kan de flipflop niet van toestand veranderen. De ingebouwde SR flipflop staat immers in zijn geheugenstand. De J en K ingang kunnen de uitgang enkel beïnvloeden tijdens het hoog zijn van de klok. De verschillende combinaties hierbij zijn: * J en K zijn 0. De uitgangen veranderen niet. De SR flipflop staat in zijn geheugentoestand. * J = 1, K = 0 en QT = 1. De SR flipflop staat in geheugentoestand. (QNT = QT = 1) J = 1, K = 0 en QT = 0. De SR flipflop wordt geset en vervolgens in geheugentoestand geplaatst. (QNT = 1) Dus indien J = 1 en K = 0 wordt de JK flipflop geset.
DIGITALE TECHNIEKEN
HOOFDSTUK 9
9. 6
* J = 0, K = 1 en QT = 1. De SR flipflop wordt gereset en vervolgens in geheugentoestand geplaatst. (QNT = 0) J = 0, K = 1 en QT = 0. De SR flipflop staat in geheugentoestand. (QNT = QT = 0) Dus indien J = 0 en K = 1 wordt de JK flipflop gereset. * J en K zijn 1. De uitgang inverteert continu (toggle). De frequentie wordt bepaald door de vertragingstijden van de inwendige poorten. Op het moment dat de klok laag komt, stopt het inverteren en is de toestand van de uitgang niet te voorspellen. De schakeling vervalt in een onbepaalde toestand.
CLK 0 0 1 1 1 1 1 1 1 1
J x x 0 0 0 0 1 1 1 1
K QT QNT /QNT x 0 0 1 x 1 1 0 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1
CLK 0 1 1 1 1
J x 0 0 1 1
K QNT x QT 0 QT 1 0 0 1 1 /QT
/QNT /QT /QT 1 0 QT
Geheugen Geheugen Reset Set Toggle
Om dit ongecontroleerd inverteren in de hand te houden, kan men de actieve klokpuls zodanig verkorten dat de JK flipflop juist één maal de kans krijgt om te inverteren. Hierdoor wordt de schakeling terug voorspelbaar. Volgens dit principe werkt de flankgevoelige JK flipflop. Een tweede oplossing om het toggelen onder controle te houden bestaat erin twee JK flipflops achter elkaar te plaatsen en elk op afzonderlijke tijdstippen de aangeboden informatie te laten verwerken. Dit noemen we de JK master/slave flipflop. De JK flipflop volgens het basisschema komt men, omwille van het ongecontroleerd inverteren, in de praktijk nooit tegen. De flankgevoelige en master/slave flipflop wel.
3.2 Flankgevoelige JK flipflop. J CLK 1 &
&
K
Q S
CLK'
C1
R &
1J
Q
1K
CLK CKL' J K Q Q
Het inverteren van de klok gaat gepaard met een kleine tijdsvertraging. De AND-functie van de klok en zijn inverse geven dus gedurende enkele nanoseconden een hoog op CKL'. Hierdoor wordt de informatie
DIGITALE TECHNIEKEN
HOOFDSTUK 9
9. 7
op J en K kortstondig op de SR flipflop gebracht. Gedurende het laag zijn van CKL' staat de SR flipflop in zijn geheugenstand. Het lijkt net alsof de JK flipflop reageert op de stijgende flank van de klok CLK. Indien CLK' = 1 en J = K = 1, kan de flipflop inverteren. Zodra de uitgangen hun nieuwe toestand hebben ingenomen verschijnen deze op de NAND-poorten. Ondertussen staat CLK' reeds op 0. De JK flipflop kan dus maar één keer inverteren per actieve klokpuls.
3.3 JK Master/Slave flipflop. J
FF1
&
FF2
&
S
CLK K
&
Q
S
R
R
&
Q'
1
CLKS
CLKM
De master/slave flipflop bevat twee SR flipflops. FF1 is de master en FF2 de slave. CLK = 0. FF1 staat in geheugentoestand. FF2 verwerkt de informatie die hij ontvangt van de master, en geeft het resultaat op zijn uitgangen weer. FF1 1
S
1
FF2
1
Q
S
R
1
R
Q
CLK = 1. FF1 verwerkt de aangeboden informatie terwijl FF2 in zijn geheugenstand staat. De toestand van de uitgangen kan dus niet veranderen.
J
FF1
& S
CLK K
&
R
FF2
1
Q
S
1
R
Q'
Hoe verloopt de dataflow indien J = K = 1 ? Veronderstel dat de uitgang Q op 0 staat. Zodra CLK op 1 komt, wordt FF1 geset. FF2 staat in geheugenstand en merkt hier dus niets van. Op het moment dat CLK laag wordt, zal FF2 worden geset. De uitgang is dus geïnverteerd (toggle). De gebruiker merkt de toestandsverandering van de uitgang op het moment dat de klok laag komt. Verder worden de NAND-poorten zo ontworpen dat op de stijgende en dalende flank van de klok, beide flipflops heel even in hun geheugentoestand staan. In onderstaand tijdsdiagram is een sterke uitvergroting van het kloksignaal. De helling van het kloksignaal wordt hierdoor zichtbaar. Deze helling is belangrijk bij het interpreteren van het schema bij een overgang van CLK = 1 naar CLK = 0 en omgekeerd. CLKM staat voor de enable op de NAND-poorten op de master, CLKS voor de enable op de slave.
DIGITALE TECHNIEKEN
HOOFDSTUK 9
9. 8
Omslagniveau master
CLK
Omslagniveau slave CLKS
1
0
1
0
CLKM
0
1
0
1
Toestand
A
B
C
D
A
B
C
De omslagniveaus of herkenningsniveaus voor een logische 0 en 1 op de NAND-poorten van de master en de slave zijn verschillend. Voor de verschillende toestanden geldt: A: B: C: D:
Master geïsoleerd van J en K. Master geïsoleerd van J en K. Master verbonden met J en K. Master geïsoleerd van J en K.
Slave verbonden met master. Slave geïsoleerd van master. Slave geïsoleerd van master. Slave geïsoleerd van master.
3.4 JK flipflop met asynchrone set en reset. Een asynchrone set en reset beïnvloeden de flipflopuitgangen rechtstreeks, dus onafhankelijk van de klok. Ter illustratie volgen de volledige schema's van een JK flipflop met een laag actieve set en reset, met het bijhorende IEC-symbool. S &
J CLK
& 1
&
K
S
Q
R
/Q
& &
R
S 1J C1 1K R
S J
FF1
& S
CLK K
&
&
R
Q
S R
& &
R
FF2
&
Q'
S 1J C1 1K R
1
De klok beïnvloedt zowel J als K. Vandaar dat beide notaties worden voorafgegaan door een cijfer dat refereert naar de klok. Het driehoekje binnen het symbool duidt op de flankgevoeligheid van deze ingang. Vergelijken we het symbool van een flankgevoelige flipflop met deze van een master/slave.
DIGITALE TECHNIEKEN
HOOFDSTUK 9
9. 9
flankgevoelig: uitgang verandert op de dalende klokflank
C1
flankgevoelig: uitgang verandert op de stijgendeklokflank
C1
master-slave: uitgang verandert op de dalende klokflank
C1
master-slave: uitgang verandert op de stijgendeklokflank
C1
Merk op dat er zeer weinig SR flipflops in de TTL-reeks voorkomen, in vergelijking met JK's, wat duidt op het minieme gebruik van deze flipflops binnen digitale schakelingen. Meestal zal de ontwerper zelf zijn SR flipflop configureren met twee NAND- of twee NOR-poorten. Een andere oplossing bestaat erin enkel de set en resetingang van een JK flipflop te gebruiken. Verbind de overige ingangen met de massa of met de voedingsspanning. S
S 1J C1 1K R
R
Q
3.5 Toestands- en excitatietabel. Bijna alle JK flipflops bezitten hoogactieve J, K en laagactieve S, R ingangen. Wat de klok betreft komen alle mogelijkheden in aanmerking ( flankgevoelig of master/slave waarbij de uitgangen op de stijgende of dalende flank hun nieuwe toestand aannemen.) Voor al deze flipflops kunnen we één toestandstabel met bijhorende excitatietabel opstellen.
S 0 0 1 1 1 1 1
S 1J C1 1K R
S 1J C1 1K R
S 1J C1 1K R
S 1J C1 1K R
R 0 1 0 1 1 1 1
J x x x 0 0 1 1
K x x x 0 1 0 1
QNT ? 1 0 QT 0 1 /QT
huidige toest. QT 0 0 1 1
Verboden toestand Asynchrone set Asynchrone reset Geheugen Synchrone reset Synchrone set Synchrone toggle
volgende toest. QNT 0 1 0 1
J 0 1 x x
K x x 1 0
Uitgang reageert dadelijk Uitgang reageert op de actieve flank
van de klok
De excitatietabel maakt enkel gebruik van de synchrone uitgangsveranderingen. Een uitgangsverandering van 0 naar 1 gebeurt bij een synchrone set (J = 1 en K = 0) of bij een toggle (J = 1 en K = 1). Het volstaat dus J op 1 te brengen (J = 1 en K = x). Hierbij zijn S en R niet actief. ( Beiden 1 dus.) Ga zelf de overige toestanden na.
DIGITALE TECHNIEKEN
HOOFDSTUK 9
9. 10
3.6 Enkele voorbeeldschakelingen. 3-bit asynchrone teller.
+5V
Q0 S 1J C1 1K R
CLK
Q1
+5V
Q2
+5V
S 1J C1 1K R
S 1J C1 1K R
De laagste bit van deze teller ontvangt de basisklok. Door de Q uitgang van een minderbeduidende flipflop te verbinden met de klok van de meerbeduidende flipflop, ontstaat een asynchrone (op)teller. Alle flipflops staan continu in hun toggle-mode. Op de dalende klokflank inverteert de flipflopuitgang zijn vorige toestand.
CLK Q0 Q1 Q2
Merk op dat de overgang van (Q2 … Q0) 011 naar 100 gedurende een korte tijdspanne een aantal tussenstappen doorloopt. Eerst verandert Q0 van 1 naar 0. Vervolgens wijzigt Q2 en pas daarna Q3. Dan pas is de nieuwe toestand stabiel. De volledige overgang ziet er dus als volgt uit. 011
-> 010 -> 000 -> 100
Het asynchrone gedrag van deze teller maakt hem onpopulair bij ontwerpers. De tussenliggende onstabiele toestanden kunnen de schakeling danig in de war sturen. Er ontstaan immers spikes en glitches. Een goed sequentieel ontwerp is altijd synchroon. 3-bit asynchrone afteller.
Q0
+5V
CLK
S 1J C1 1K R
Q1
+5V S 1J C1 1K R
Q2
+5V S 1J C1 1K R
CLK Q0 Q1 Q2
Verbind de inverse flipflop uitgang naar de klokingang van de meerbeduidende flipflop.
DIGITALE TECHNIEKEN
HOOFDSTUK 9
9. 11
3-bit synchrone teller.
+5V
FF0
Q0
+5V
S 1J C1 1K R
CLK
FF1
Q1
+5V
S 1J C1 1K R
FF2
Q2
S 1J C1 1K R
JK2 &
De klok is nu voor alle flipflops gemeenschappelijk. Hierdoor reageren alle flipflop uitgangen op hetzelfde moment, dus synchroon. Om de werking van synchrone schakelingen vlot te evalueren bekijken we de toestand van J en K op elke flipflop tijdens de actieve klokflank. Naast deze actieve flank kunnen de uitgangen immers niet van toestand veranderen. FF0 staat continu in zijn toggle-toestand. De J en K-ingang van FF1 en Q0 zijn met elkaar verbonden. Zolang Q0 0 is staat FF2 in zijn geheugenstand en blijft zijn uitgang onveranderd. Bij Q0 = 1 inverteert FF2. De AND-functie van Q0 en Q1 sturen de J en K van FF2. Ga zelf de wijzigingen van Q2 na.
CLK Q0 Q1 JK2 Q2
5-teller.
+5V
CLK
FF0 S 1J C1 1K R
Q0
+5V
FF1
Q1
+5V
S 1J C1 1K R
FF2
Q2
S 1J C1 1K R
Res
& &
Bovenstaand schema stelt een 5-teller voor (van 0 tot 4). Herken de synchrone 3-bit teller uit voorgaand schema. Met behulp van de asynchrone reset op elke flipflop zijn we in staat de teller op het gewenste moment terug naar 000 te brengen. Zodra op de telleruitgangen binair getal 5 (101) verschijnt, maken we alle reset ingangen actief.
DIGITALE TECHNIEKEN
HOOFDSTUK 9
9. 12
Res
QT1,QT0 00 01
11
10
QT2 0
1
1
1
1
1
1
0
x
x
Re s = QT 2 QT 0
Merk op dat de teller hierdoor terug asynchroon reageert. Een volledig synchrone 5-teller maakt geen gebruik van de reset van de flipflop. Meer hierover in hoofdstuk 11.
CLK Q0 Q1 Q2 Res
4. D flipflop. 4.1 Basisstructuur. Een D flipflop is een vereenvoudigde versie van de JK flipflop. Verbind K met het inverse van J en breng deze als één ingang op de component. Als voorbeeld geven we het schema en het bijhorend tijdsdiagram van een flankgevoelige D flipflop. +5V S 1J C1 1K R
D 1
Q
S C1 1D R
CLK
CLK D Q
Leid de toestands- en excitatietabel af uit deze van de JK flipflop. D = 0 staat voor J = 0 en K = 1. D = 1 staat voor J = 1 en K = 0.
S 0 0 1 1 1
R 0 1 0 1 1
D x x x 0 1
DIGITALE TECHNIEKEN
QNT ? 1 0 0 1
Verboden toestand Asynchrone set Asynchrone reset Synchrone reset Synchrone set
huidige toest. QT 0 0 1 1
volgende toest. QNT 0 1 0 1
HOOFDSTUK 9
D 0 1 0 1
9. 13
4.2 Enkele voorbeeldschakelingen. 2-bit synchrone teller. +5V
+5V
Q0 CLK
Q1
S C1 1D R
D0
S C1 1D R
=1
D1
Controleer de toestand van de D-ingangen op de stijgende flank van de klok. Op dit moment neemt de uitgang de toestand van de bijhorende ingang over.
CLK Q0 Q1 D0 D1
4-bit schuifregister (FIFO). +5V
Data in Clear
FF1 S C1 1D R
+5V
+5V
FF2 S C1 1D R
+5V
FF3 S C1 1D R
FF4 S C1 1D R
Data uit
CLK
Dit schuifregister ontvangt een seriële bitstroom op de D-ingang van FF1. Na 4 klokcyclussen verschijnt deze informatie op de uitgang van FF4. Ingang Clear ledigt alle registers. Onderstaande tabel beschrijft de dataflow binnen deze schakeling aan de hand van een voorbeeld.
Clear 0 1 1 1 1 1 1 1
act. flank Data in QFF1 QFF2 QFF3 Data out x x 0 0 0 0 1e 1 1 0 0 0 e 2 0 0 1 0 0 e 3 0 0 0 1 0 4e 1 1 0 0 1 5e 1 1 1 0 0 e 6 0 0 1 1 0 e 7 1 1 0 1 1
Merk op dat QFF1 de seriële data synchroniseert met de klok. QFF2 vertraagt deze datastroom met een tijdsvertraging van één klokperiode. Elke bijkomende flipflop geeft een extra tijdsvertraging van één klokperiode.
DIGITALE TECHNIEKEN
HOOFDSTUK 9
9. 14
4-bit serieel naar parallel omvormer (SIPO). Parallel uit
P3
P2
&
P1
&
P0
&
&
Read +5V
+5V
FF1 S C1 1D R
Ser. in Clear
+5V
+5V
FF3
FF2 S C1 1D R
FF4
S C1 1D R
Ser. uit
S C1 1D R
CLK
Met een kleine uitbreiding aan voorgaande schakeling ontstaat een serieel naar parallel omvormer. De 4bit data komt serieel binnen en na vier klokcyclussen is deze parallel beschikbaar op de flipflopuitgangen. Breng Read op 1 en de data verschijnt op de P-uitgangen. Als voorbeeld lezen we het getal 1310 serieel binnen (LSB eerst).
Clear Read act. flank Ser in QFF1 QFF2 QFF3 ser out 0 0 x x 0 0 0 0 1 0 1e 1 1 0 0 0 1 0 2e 0 0 1 0 0 e 1 0 3 1 1 0 1 0 e 1 0 4 1 1 1 0 1 1 1 voor 5e x 1 1 0 1
P3 0 0 0 0 0 1
P2 0 0 0 0 0 1
P1 0 0 0 0 0 0
P0 0 0 0 0 0 1
Merk op dat vanaf de vierde t.e.m. de zevende klokflank de data terug serieel beschikbaar is op de uitgang van FF4 (Ser.out).
5. D latch. We spreken van een latch in plaats van flipflop indien de klok niveau gevoelig reageert. Voor een D latch met een hoog actieve klok, zal de uitgang het ingangssignaal overnemen zolang het kloksignaal hoog is. Zodra de klok 0 wordt, komt de latch in zijn geheugenstand terecht. Een D latch bestaat meestal uit een geklokte SR flipflop (SR latch), waarvan de S- en R-ingang tot één D-ingang zijn verenigd. D &
CLK &
Q S
1D
R
C1
1
CLK D Q
DIGITALE TECHNIEKEN
HOOFDSTUK 9
9. 15
6. Toepassingen. 1. Vervolledig het tijdsdiagram van onderstaande schakelingen. Vertrek steeds vanaf een reset. Q0
+5V S 1J C1 1K R
CLK
Q1
+5V
Q2
+5V
S 1J C1 1K R
Q3
+5V
S 1J C1 1K R
S 1J C1 1K R
CLK Q0 Q1 Q2 Q3
Q0
+5V
CLK
S 1J C1 1K R
Q1
+5V S 1J C1 1K R
Q2
+5V S 1J C1 1K R
&
Q3
+5V S 1J C1 1K R
&
CLK Q0 Q1 Q2 Q3
DIGITALE TECHNIEKEN
HOOFDSTUK 9
9. 16
Q0
+5V S 1J C1 1K R
CLK
Q1
+5V
Q2
+5V
S 1J C1 1K R
Q3
+5V
S 1J C1 1K R
S 1J C1 1K R
&
CLK Q0 Q1 Q2 Q3
Q0
+5V
CLK
S C1 1D R
Q1
+5V
S C1 1D R
Q2
+5V
Q3
+5V
S C1 1D R
S C1 1D R
≥1
CLK Q0 Q1 Q2 Q3
DIGITALE TECHNIEKEN
HOOFDSTUK 9
9. 17
2. Hoe reageert deze schakeling in functie van de tijd? +5V
FF1 S C1 1D R
CLK
FF2
+5V
S C1 1D R
FF3 S C1 1D R
+5V
Start
Start 0 1 1 1 1 1 1 1
act. flank QFF1 QFF2 QFF3 x 1e 2e 3e 4e 5e 6e 7e
3. Wat stelt onderstaande schakeling voor ? Ga de werking na bij Mode = 1 en Mode = 0. Q0
+5V
CLK
Mode
DIGITALE TECHNIEKEN
S 1J C1 1K R
Q1
+5V
=1
S 1J C1 1K R
HOOFDSTUK 9
9. 18
HOOFDSTUK 10 Toestandsmachines. Een toestandsmachine (finite state machine) is een digitale schakeling, waarbij de uitgangen een eindig aantal unieke toestanden doorlopen. Neem bijvoorbeeld een BCD teller. De schakeling doorloopt in functie van de tijd en onder invloed van een kloksignaal een welbepaalde cyclus. Een bepaalde uitgangscombinatie noemen we een toestand of state. De volgende toestand wordt bepaald door de huidige toestand, de klok en eventueel het logisch niveau op een ingang (vb: op-af teller).
1. Blokschema (Mealy machine). Algemeen bestaat een toestandsmachine uit drie deelfuncties. IN0
IN1
Volgende toestandsdecoder
Toestandsregisters
IN2
m
IN3
Q NTx
Combinatorisch
Uitgangsdecoder n
UIT1
Q Tx
Sequentieel
UIT0
UIT2
Combinatorisch
CLK Toestandsmachin
Toestandsregisters. De toestandsregisters bevatten enkel flipflops. Meestal zijn dit D of JK flipflops die synchroon werken met het kloksignaal CLK. Het aantal flipflops wordt bepaald door het aantal unieke toestanden dat de schakeling kent. Voor een BCD teller volstaan vier flipflops (2 4 = 16 unieke combinaties). De uitgangen QTX zijn rechtstreeks afkomstig van de flipflop. QNTx staat voor de nieuwe toestand van flipflop x. Deze informatie wordt vervolgens herwerkt naar de flipflop ingangen Dx of Jx en Kx. Voor een toestandsregister met D flipflops is m = n = aantal flipflops. Gebruiken we JF flipflops dan is m = 2n = 2x aantal flipflops. QNTx is afhankelijk van QTx en CLK.
Volgende toestandsdecoder. De volgende toestand wordt bepaald door de huidige toestand en eventueel door een aantal ingangsvoorwaarden. Voor een op-af teller bijvoorbeeld volstaat één ingang om de telrichting aan te geven. QNTx zijn afhankelijk van INx en QTx.
DIGITALE TECHNIEKEN
HOOFDSTUK 10
10. 1
Uitgangsdecoder. De uitgangsdecoder bepaalt de uiteindelijke toestand van de verschillende uitgangen. Deze is afhankelijk van de huidige toestand van de registers en eventueel van een aantal ingangsvoorwaarden. Door de ingangsvoorwaarden mee te betrekken in de uitgangsdecoder zal deze niet meer synchroon reageren! Vooral bij gekoppelde toestandsmachines kan dit, omwille van de timingfouten die ontstaan, leiden tot een ongecontroleerd gedrag. Merk op dat bepaalde schakelingen (zoals de meeste tellers) geen uitgangsdecoder vereisen. De flipflop uitgangen worden dan rechtstreeks naar buiten gebracht. OUTx zijn afhankelijk van QTx en eventueel van INx. De uitgangsdecoder en de volgende toestandsdecoder bevatten uitsluitend combinatorische componenten. Wij beperken ons tot het gebruik van poorten. Afhankelijk van de toepassing kan men in het combinatorisch blok eventueel andere componenten verwerken zoals multiplexers, comparators enz…
2. Het toestandsdiagram. Het toestandsdiagram (algoritmic state machine chart of ASM chart) beschrijft grafisch het functioneel gedrag van de schakeling. Zodra de ontwerper het toestandsdiagram heeft opgesteld, ligt de verdere uitwerking volledig vast. Het aantal flipflops en de verschillende toestandscodes worden hierin immers beschreven. Uit het toestandsdiagram volgt een toestandstabel die het combinatorisch gedeelte (de volgende toestandsdecoder en de uitgangsdecoder) volledig beschrijft. Het toestandsdiagram bestaat uit drie functionele blokken die onderling met elkaar worden verbonden. * Het toestandsblok. * Het beslissingsblok. * Het conditioneel uitgangsblok. De pijlen in het diagram geven de richting aan waarin het systeem zich evolueert.
2.1 Het toestandsblok. Het toestandsblok of state box wordt weergegeven door een rechthoek met één toekomend en één weggaand pad.
010
Lamp1 aan L1
state name
(QT2 QT1 QT0) state value
output name
Het aantal toestandsblokken wordt bepaald door de functie van de schakeling. Zo zal een looplicht, dat bestaat uit 6 lampen, ook 6 toestandsblokken bevatten. Om aan elk blok een unieke code toe te kennen zijn er 3 flipflops nodig (23 = 8 toestanden waarvan er 6 gebruikt worden.). Buiten het toestandsblok vermelden we rechtsboven de bijhorende uitgangscode van de flipflops (QT2, QT1 en QT0) en linksboven de naam. Deze naam vergemakkelijkt enkel het "lezen" van het diagram en heeft verder geen betekenis. Indien er in het toestandsblok een uitgang wordt vermeld, betekent dit dat deze actief is zolang het systeem in deze toestand blijft.
DIGITALE TECHNIEKEN
HOOFDSTUK 10
10. 2
De overgang naar de volgende toestand gebeurt op bevel van de klok. (stijgende of dalende flank, afhankelijk van de gebruikte flipflops.) Als voorbeeld beschouwen we het toestandsdiagram van een sequentie waarin twee LED's om beurten oplichten en vervolgens gedurende één klokcyclus doven. S0
(Q T1 QT0) 00
S1
01
CLK QT1 QT 0
LED1
LED1 LED2
11
S2
S0
S1
S2
S0
S1
S2
S0
LED2
Drie toestanden (S0, S1 en S2) volstaan, dus gebruiken we twee flipflops. Aan elke toestand wordt, door de ontwerper, een willekeurige code toegekend. Merk op dat er één code niet wordt gebruikt. In dit voorbeeld de code 10.
2.2 Het beslissingsblok. Het beslissingsblok of decision box duidt op de invloed van een ingang op het systeem.
0
1
input = 0
IN 1
input = 1 input name
Het beslissingsblok wordt verbonden met één ingangspad en twee uitgangspaden (ingang is actief of niet actief) en fungeert dus als richtingaanwijzer. Afhankelijk van het ingangsniveau zal het te volgen pad worden aangegeven. Als voorbeeld een LED sequentie waarbij, afhankelijk van de mode, LED1 of LED2 flikkert op het ritme van de klok. Merk op dat het niveau op de MODE ingang, op het moment dat de klok actief is, de volgende toestand bepaald vanuit START. MODE = 1. Na START volgt toestand L2. MODE = 0. Na START volgt toestand L1.
DIGITALE TECHNIEKEN
HOOFDSTUK 10
10. 3
00
START
0
1 MODE
01
L1
10
L2
LED1
LED2
De verandering van "MODE" wordt nu pas verwerkt!
CLK MODE QT1 QT 0 LED1 LED2
START
L1
START
L1
START
L2
START
L2
START
2.3 Het conditioneel uitgangsblok. Het conditioneel uitgangsblok of de conditional output box wordt tussen een bepaald doorstroompad geplaatst en duidt aan dat de desbetreffende uitgang actief wordt.
OUT 0
DIGITALE TECHNIEKEN
output name
HOOFDSTUK 10
10. 4
Merk op dat een leeg toestandsblok, gevolgd door een conditioneel uitgangsblok, het zelfde betekent dan een toestandsblok waarbinnen de betreffende uitgang wordt gedefinieerd. 000
S1
000
S1
OUT 1
= OUT 1
Wordt een conditioneel uitgangsblok voorafgegaan door een beslissingsblok, dan zal de uitgang pas actief zijn vanaf het moment dat de betreffende ingang het juiste niveau aanneemt. De uitgang zal nu asynchroon bediend worden. 00
S0
LED1
0
1 MODE
LED2
S1
01
S2
10
LED1
Indien MODE = 0 zal LED1 constant branden en LED2 altijd doven. Is MODE = 1 dan zullen beide LED's flikkeren op het ritme van de klok.
DIGITALE TECHNIEKEN
HOOFDSTUK 10
10. 5
CLK MODE QT 1 QT 0 LED1 LED2
S1
S0
S1
S0 (1)
S2
S0 (2)
(1): Indien de MODE verandert gedurende toestand S0, dan blijft LED1 actief. LED2 komt actief zodra de MODE één wordt. Na de volgende actieve klokflank komen we in toestand S2 terecht. (2): Verandert de MODE ingang gedurende toestand S0, dan zal LED2 deze verandering dadelijk volgen. Uitgang LED1 verandert steeds synchroon in functie van de klok. LED2 reageert asynchroon.
3. De toestandstabel en het schema. We zullen het opstellen van de toestandstabel bespreken aan de hand van een voorbeeld. Onder invloed van een MODE ingang zullen drie LED's (LED1, LED2 en LED3) om beurten worden geactiveerd (MODE = 0) of samen flikkeren op het ritme van de klok (MODE = 1). Er zijn 3 (MODE = 0) + 2 (MODE = 1) = 5 unieke toestanden nodig. Dus 3 flipflops volstaan. De ontwerper is vrij het soort flipflops te kiezen.
Volgende toestand decoder
Toestand registers
QT2
Uitgang decoder
QT1
LED3 LED2
QT0 MODE
LED1
CLK Toestandmachine
Vervolgens stelt hij het toestandsdiagram op dat aan de gestelde eisen voldoet. Zo kan het niveau van de MODE na elke toestand worden getest of eenmaal per cyclus. We opteren voor het laatste.
DIGITALE TECHNIEKEN
HOOFDSTUK 10
10. 6
0
1 MODE
L1
001
L123
LED1
L2
111 LED1
010 LED2
LED2
L3
100 LED3
LED3
L000
000
3.1 Oplossing met D flipflops (74175).
huidige volgende toestand toestand uitgangen naam MODE QT2 QT1 QT0 QNT2 QNT1 QNT0 LED3 LED2 toest. D2 D1 D0 L000 (1) 0 0 0 0 0 0 1 0 0 L000 (2) 1 0 0 0 1 1 1 0 0 L1 x 0 0 1 0 1 0 0 0 L2 x 0 1 0 1 0 0 0 1 L3 (1) 0 1 0 0 0 0 1 1 0 L3 (2) 1 1 0 0 1 1 1 1 0 L123 x 1 1 1 0 0 0 1 1
DIGITALE TECHNIEKEN
HOOFDSTUK 10
LED1 0 0 1 0 0 0 1
10. 7
De huidige toestandstabel beschrijft alle gebruikte combinaties van de ingang(en) (MODE) en flipflop uitgangen (QT2…QT0) om naar een volgende toestand over te gaan. De bijhorende gegevens om in de volgende toestand (QNT2…QNT0) terecht te komen, worden beschreven in de volgende toestandstabel. Belangrijker is de informatie die we de flipflop aanbieden. Een D flipflop neemt de data over op zijn uitgang (zie excitatietabel), vandaar dat QNTx = Dx. Vervolgens wordt bij elke huidige toestand de bijhorende toestand van de uitgangen (LED3…LED1) gedefinieerd. Bij toestand L3 horen de volgende gegevens. De huidige toestand van de flipflops zijn QT2 = 1, QT1 = 0 en QT0 = 0. Bij een MODE = 0 gaan we over naar toestand L1. Hiervoor geldt QNT2 = D2 = 0, QNT1 = D1 = 0 en QNT0 = D0 = 1. Bij toestand L3 horen volgende uitgangen. LED3 = 1, LED2 en LED1 = 0. Deze logica wordt beschreven in rij L3 (1). Is de MODE = 1 komen we, na toestand L3, in L123 terecht. Alle flipflops verwachten dan een 1 op hun D ingang. De bijhorende uitgangscombinaties blijven natuurlijk hetzelfde. Zie rij L3 (2). Niet alle toestanden zijn afhankelijk van de MODE. Neem bijvoorbeeld toestand L2. Deze gaat altijd over naar toestand L3. De MODE is onbelangrijk, vandaar dat er een don't care wordt ingevuld op rij L2. Uit de toestandstabel volgen de vergelijkingen voor de verschillende functies. Voor de flipflop ingangen : D2, D1en D0. Voor de uitgangen : LED3, LED2 en LED1. De verschillende karnaughkaarten worden ingevuld in functie van de huidige toestandstabel! QT1,QT0 00 MODE,QT2 00
D2 01
L000 (1) L1
11
10
-
L2
QT1,QT0 00 01
MODE,QT2 00
01
L3 (1)
-
L123
-
01
11
L3 (2)
-
L123
-
11
1
-
L2
10
1
10
D1
L000 (2) L1
QT1,QT0 00 01
MODE,QT2 00
1
01
-
11
1
-
10
1
1
DIGITALE TECHNIEKEN
D0 11
-
-
10
-
1
-
-
-
-
QT1,QT0 00 01
10
11
-
1
11
10
MODE,QT2 00
1
-
-
01
1
-
-
-
11
1
-
-
10
1
HOOFDSTUK 10
-
10. 8
LED3
QT1,QT0 00 01
LED2 11
10
-
MODE,QT2 00
11
10
-
1
MODE,QT2 00
01
1
-
1
-
01
-
1
-
11
1
-
1
-
11
-
1
-
-
1
-
10
LED1
QT1,QT0 00 01
11
10
10
MODE,QT2 00
1
-
01
-
1
-
11
-
1
-
10
1
-
D2 = QT 0 QT1 + QT 0 MODE
LED3 = QT 2
D1 = QT1 QT 0 + QT1 MODE
LED2 = QT1
D 0 = QT1 QT 0
LED1 = QT 0
CKL
QT1,QT0 00 01
toestandsregisters volgende toestandsdecod 1 0
LED3 LED2 74…17
≥1
MODE
&
1 0
1 9
D2 D1
≥1
4 5
D0 12 13
0
R C1 1D
LED1
0
0
2 3 7 6 10 11 15 14
&
&
DIGITALE TECHNIEKEN
HOOFDSTUK 10
10. 9
CKL MODE D2 D1 D0 LED1 LED2 LED3
Merk op dat de uitgangen rechtstreeks van de flipflops afkomstig zijn. De uitgangsdecoder bevat dus geen poorten.
3.2 Oplossing met JK flipflops (74112).
naam toest. L000 (1) L000(2) L1 L2 L3 (1) L3 (2) L123
huidige volgende toestand toestand MODE QT2 QT1 QT0 QNT2 J2 K2 0 0 0 0 0 0 x 1 0 0 0 1 1 x x 0 0 1 0 0 x x 0 1 0 1 1 x 0 1 0 0 0 x 1 1 1 0 0 1 x 0 x 1 1 1 0 x 1
QNT1 J1 K1 0 0 x 1 1 x 1 1 x 0 x 1 0 0 x 1 1 x 0 x 1
QNT0 J0 K0 1 1 x 1 1 x 0 x 1 0 0 x 1 1 x 1 1 x 0 x 1
uitgangen LED3 LED2 LED1 0 0 0 0 1 1 1
0 0 0 1 0 0 1
0 0 1 0 0 0 1
In een toestandstabel voor JK flipflops zal men de code van de nieuwe toestand moeten herwerken naar de J en K ingang van de betreffende flipflop. Hiervoor maken we gebruik van de excitatietabel.
huidige toest. QT 0 0 1 1
volgende toest. QNT 0 1 0 1
J 0 1 x x
K x x 1 0
Voor L000 (1) geldt : flipflop 2 en 1 behouden in de volgende toestand een 0 op hun uitgangen. Dit wordt bekomen door J = 0 en K = x. Flipflop 0 gaat van 0 naar 1, dus J = 1 en K = x.
DIGITALE TECHNIEKEN
HOOFDSTUK 10
10. 10
J2
QT1,QT0 00 01
MODE,QT2 00
K2
QT1,QT0 00 01
11
10
-
1
MODE,QT2 00
x 1
01
x
-
x
-
01
11
x
-
x
-
11
10
1
-
1
10
J1
QT1,QT0 00 01
K1 11
10
x
11
10
x
-
x
-
1
-
-
1
-
x
-
x
11
10
QT1,QT0 00 01
MODE,QT2 00
1
-
x
MODE,QT2 00
x
x
-
1
01
-
x
-
01
x
-
1
-
11
1
-
x
-
11
x
-
1
-
10
1
1
-
x
10
x
x
-
1
11
10
11
10
J0
QT1,QT0 00 01
K0
MODE,QT2 00
1
x
-
01
1
-
x
11
1
-
x
10
1
x
-
MODE,QT2 00
x
1
-
x
-
01
x
-
1
-
-
11
x
-
1
-
10
x
1
-
x
J 2 = QT1 + QT 0 MODE
LED3 = QT 2
K 2 = MODE + QT1 J1 = QT 0 + MODE K1 = 1
LED2 = QT1
J 0 = QT1 K0 = 1
DIGITALE TECHNIEKEN
QT1,QT0 00 01
LED1 = QT 0
HOOFDSTUK 10
10. 11
&
LED3 LED2 LED1
+5V
0
74…112
MODE
≥1
1 0 ≥1 1 ≥1
4 3 1 2 15
S 1J C1 1K R
10 11 13 12 14
1
0
5 6
9 7
74…112
CLK
4 3 1 2 15 10 11 13 12 14
S 1J C1 1K R
5 6
9 7
CLK MODE LED1 LED2 LED3
4. Interpretatie van de verboden toestanden. Zodra een schakeling niet gedefinieerde toestanden bevat, moet de ontwerper nagaan hoe de schakeling reageert bij het opstarten vanaf een onbepaalde toestand. Het is immers niet zo dat bij het opstarten alle flipflops automatisch vanaf "0" vertrekken. Er kan dus eender welke combinatie op de flipflop uitgangen verschijnen. De controle bestaat erin na te gaan of de schakeling, vanuit een verboden toestand, automatisch in de werkingscyclus terecht komt. De kans bestaat immers dat twee verboden toestanden naar elkaar verwijzen. We zeggen dan dat de schakeling "hangt". Er bestaan een aantal mogelijkheden om dit euvel weg te werken. * Vul één of meerdere verboden toestanden zodanig in dat deze naar een gedefinieerde toestand verwijzen. * Stuur de set- of resetingangen zodanig (hardwarematig, met een RC-keten) dat, bij het opstarten van de schakeling, het circuit in de gewenste toestand terecht komt.
DIGITALE TECHNIEKEN
HOOFDSTUK 10
10. 12
Het contoleren van de verboden toestanden gebeurt best via de karnaughkaarten. QT1,QT0 00 01
11
10
-
MODE,QT2 00
QT1,QT0 00 01
11
10
V1
MODE,QT2 00
01
-
-
01
V2
V3
11
-
-
11
V5
V6
-
10
V4
10
Ken aan elke verboden toestand een naam toe (V1…V6). Ga vervolgens na of de verboden toestand als 1 of 0 wordt beschouwd in de karnaughkaart. Een 1 betekent dat de verboden toestand binnen een vereenvoudigingslus valt. Wordt de toestand niet opgenomen in een vereenvoudigingslus, betekent dit een 0. Voor flipflop 2 vinden we: J2
QT1,QT0 00 01
MODE,QT2 00
K2 11
10
V1
1
QT1,QT0 00 01
11
10
MODE,QT2 00
x
x
V1
x
1
V2
1
V3
V5
1
V6
x
V4
x
01
x
V2
x
V3
01
11
x
V5
x
V6
11
10
1
V4
1
10
x
In toestand V1 is zowel J als K omsloten door een vereenvoudigingslus. Beide zijn op dat moment 1. Vandaar dat flipflop 2 de volgende klokpuls toggelt, dus 1 zal worden. Deze logica gaan we na voor alle verboden toestanden. Onderstaande tabel geeft het resultaat.
verboden MODE QT2 QT1 QT0 toestand V1 0 0 1 1 V2 0 1 0 1 V3 0 1 1 0 V4 1 0 1 1 V5 1 1 0 1 V6 1 1 1 0
DIGITALE TECHNIEKEN
flipflop volgende ingangen toestand J2 K2 J1 K1 J0 K0 QNT2 QNT1 QNT0 volgende toestand 1 1 1 1 0 1 1 0 0 L3 0 1 1 1 1 1 0 1 0 L2 1 1 0 1 0 1 0 0 0 L000 1 1 1 1 0 1 1 0 0 L3 0 0 1 1 1 1 1 1 0 V6 1 1 1 1 0 1 0 0 0 L000
HOOFDSTUK 10
10. 13
De schakeling start bijvoorbeeld op vanuit toestand V5. De volgende klokpuls zal flipflop 2 zijn toestand behouden terwijl flipflop1 en 0 toggelen. Verandert de MODE niet, dan komen we in toestand V6 terecht. Na V6 volgt toestand L000. De schakeling zal vanaf nu de vooraf gedefinieerde cyclus doorlopen.
CLK
LED1 = QT0 LED2 = QT1 LED3 = QT2
MODE LED1 LED2 LED3
V5
V6
L000
L123
L000
L123
Vertrekkend vanaf toestand V3 komen we in de juiste cyclus terecht via L000.
CLK
LED1 = QT0 LED2 = QT1 LED3 = QT2
MODE LED1 LED2 LED3
V3
L000
L1
L2
L3
L1
Uit de tabel leiden we af dat er voor onze schakeling geen problemen optreden. Er is geen extra aanpassing nodig. Hoe kunnen we de schakeling aanpassen om, tijdens het opstarten, vanuit een bepaalde toestand te vertrekken? Voorzie op elke component een RC-keten die, via de reset- of setingang, de schakeling dwingt vanaf een bepaalde toestand te starten. +Vcc
de schakeling wordt opgestart Vx
Vx 0
1
Zodra de schakeling wordt opgestart, kan de condensator zich exponentieel opladen tot Vcc. Het logische niveau dat hieraan wordt toegekend verandert, in een korte tijdspanne, van 0 tot 1. Zolang de schakeling opstaat blijft dit 1. Wensen we onze schakeling te starten vanaf toestand L100, dan bekomen we volgend schema.
DIGITALE TECHNIEKEN
HOOFDSTUK 10
10. 14
&
LED3 LED2 LED1
+5V
1
74…112
MODE
≥1
1 0 ≥1 1 ≥1
4 3 1 2 15
S 1J C1 1K R
10 11 13 12 14
0
+5V
0
5
Vx
6
9 7
74…112
CLK
4 3 1 2 15
S 1J C1 1K R
10 11 13 12 14
5 6
9 7
Flipflop 2 wordt initieel geset terwijl flipflop 1 en 0 op dat moment gereset worden. Indien een schakeling wordt uitgebreid met een dergelijke set/reset sturing is het niet meer nodig het effect van de verboden toestanden na te gaan. We zijn immers zeker dat deze zich niet kunnen voordoen. Merk op dat een aantal flipflopcomponenten enkel een resetingang bezitten. Dan is het wel belangrijk dat men de toestand van waaruit men wenst op te starten steeds als 0…0 definieert.
5. Een toestandsmachine volgens More. Volgens More worden de uitgangen in een sequentieel systeem steeds aan een toestand gekoppeld. Hierdoor blijft een uitgang actief gedurende minstens één periode van de klok. De uitgangswaarden veranderen dus synchroon en zo hoort het ook. Een asynchroon systeem is veel minder betrouwbaar dan een synchroon systeem en wordt dus beter vermeden. Alle toepassingen die volgen, worden opgelost volgens het More principe. Het toestandsdiagram bestaat nog steeds uit toestands-, beslissings- en conditionele uitgangsblokken. Een beslissingsblok gevolgd door een conditioneel uitgangsblok zorgt voor het asynchroon gedrag van een uitgang en wordt dus nooit gebruikt.
DIGITALE TECHNIEKEN
HOOFDSTUK 10
10. 15
6. Algemene oplosmethode. * Beschrijf het ontwerp in een nauwkeurig opgesteld toestandsdiagram. Vermijd asynchrone uitgangen! * Ken aan elk toestandsblok een unieke code toe. Het aantal flipflops wordt bepaald door: - het aantal toestanden (aantal toestanden ≤ 2 aantal flipflops). De schakeling bevat in de meeste gevallen een uitgangsdecoder. - het aantal uitgangen (aantal flipflops = aantal uitgangen). De schakeling bevat geen uitgangsdecoder. * Kies een type flipflop. * Stel een toestandstabel op. Deze beschrijft, in functie van de ingangen en de huidige toestand, het logisch niveau van de uitgangen en de informatie die elke flipflop nodig heeft om in de volgende toestand terecht te komen. * Vereenvoudig de vergelijkingen. * Ga na of het systeem al dan niet vastloopt indien het vanaf een verboden toestand vertrekt. Voorzie eventueel een automatische set/reset sturing bij het opstarten. * Construeer of simuleer de schakeling om de juiste werking te controleren.
7. Enkele uitgewerkte voorbeelden. 7.1 3-bit Johnsonteller. Een Johnsonteller, of gekruiste ringteller, is een teller waarbij de bits elkaar univariant opvolgen. Het toestandsdiagram ziet er als volgt uit.
S1
001
S6
110
S3
011
S4
100
S7
111
S0
000
De schakeling wordt uitgewerkt met D flipflops (1 x 74157). Uit de toestandstabel volgt:
DIGITALE TECHNIEKEN
HOOFDSTUK 10
10. 16
naam toest. S0 S1 S3 S4 S6 S7
huidige volgende toestand toestand QT2 QT1 QT0 QNT2 QNT1 QNT0 D2 D1 D0 0 0 0 0 0 1 0 0 1 0 1 1 0 1 1 1 1 1 1 0 0 0 0 0 1 1 0 1 0 0 1 1 1 1 1 0
QT0 0
1
D2
QT0 0
D1
QT0 0
QT2,QT1 00
S0
S1
QT2,QT1 00
01
S2
S3
01
-
1
01
11
S6
S7
11
1
1
10
S4
S5
10
-
1
D0 1
QT0 0
1
1
QT2,QT1 00
1
1
1
01
-
1
11
1
11
10
-
10
QT2,QT1 00
-
-
D2 = QT1 D1 = QT 0 D 0 = QT 2 Voor de verboden toestanden geldt:
naam toest. S2 S5
huidige volgende toestand toestand QT2 QT1 QT0 QNT2 QNT1 QNT0 D2 D1 D0 0 1 0 1 0 1 1 0 1 0 1 0
Het schema is op deze manier niet bruikbaar. Beide verboden toestanden verwijzen naar elkaar en is daardoor niet zelfstartend. Een mogelijke oplossing bestaat erin dat één van beide verboden toestanden naar een geldige toestand verwijst. S2 verwijst bijvoorbeeld naar S7.
DIGITALE TECHNIEKEN
HOOFDSTUK 10
10. 17
QT0 0
D2
QT0 0
D1
QT0 0
1
QT2,QT1 00
S0
S1
QT2,QT1 00
01
S2
S3
01
1
1
01
11
S6
S7
11
1
1
10
S4
S5
10
-
1
D0 1
QT0 0
1
1
QT2,QT1 00
1
1
1
01
1
1
11
1
11
10
-
10
QT2,QT1 00
1
-
D2 = QT1 D1 = QT 0 + QT 2 QT1 D 0 = QT 2
1 0 74…17
CLK
1 9 4 ≥1
5
& 12 13
R C1 1D
T2
T1
T0
1
1
0
2 3 7 6 10 11 15 14
CLK Q T2 Q T1 T0
DIGITALE TECHNIEKEN
HOOFDSTUK 10
10. 18
7.2 Looplicht. Ontwerp een schakeling waarbij vijf LED's om beurten oplichten. De uitgangen zijn laag actief. Met behulp van een MODE ingang wordt de looprichting bepaald. MODE = 0: rechts circulerend ( L5, L4, L3, L2, L1, L5, …). MODE = 1: rechts - links ( L5, L4, L3, L2, L1, L2, L3, L4, L5, L4, L3,…). De schakeling wordt opgebouwd rond een 74175. L5
L4
L3
L2
L1
CLK Mode
De toestand van MODE wordt enkel getest indien L1 brandt.
S5
101 0 L5
MODE 1
S4
100
S21
L4
S3
L2
011
S31
L3
S2
110 L3
010 L2
S1
000
S41
111 L4
001 L1
Drie flipflops volstaan om de acht unieke toestanden te beschrijven.
DIGITALE TECHNIEKEN
HOOFDSTUK 10
10. 19
huidige volgende toestand toestand naam MODE QT2 QT1 QT0 QNT2 QNT1 QNT0 toest. D2 D1 D0 S5 x 1 0 1 1 0 0 S4 x 1 0 0 0 1 1 S3 x 0 1 1 0 1 0 S2 x 0 1 0 0 0 1 S1 (1) 0 0 0 1 1 0 1 S1 (2) 1 0 0 1 0 0 0 S21 x 0 0 0 1 1 0 S31 x 1 1 0 1 1 1 S41 x 1 1 1 1 0 1 QT1,QT0 00 01 MODE,QT2 00
uitgangen L5 L4 L3
L2
L1
0 1 1 1 1 1 1 1 1
1 1 1 0 1 1 0 1 1
1 1 1 1 0 0 1 1 1
1 0 1 1 1 1 1 1 0
D2
1 1 0 1 1 1 1 0 1
QT1,QT0 00 01
11
10
S21 S1(1) S3
S2
MODE,QT2 00
1
11
10
1
01
S4
S5
S41 S31
01
1
1
1
11
S4
S5
S41 S31
11
1
1
1
10
S21 S1(2) S3
11
10
D1
QT1,QT0 00 01
S2
10
D0 11
QT1,QT0 00 01
10
1
1
MODE,QT2 00
1
1
01
1
1
01
1
1
1
11
1
1
11
1
1
1
10
1
MODE,QT2 00
1
1
1
10
D2 = QT 2 QT1 + QT 2 QT 0 + QT 2 QT1 QT 0 + MODE QT 2 QT1 D1 = QT1 QT 0 + QT 2 QT1 QT 0 + QT 2 QT 0 D 0 = QT1 QT 0 + QT 2 QT1 + QT 2 QT 0 + MODE QT 2 QT1 QT 0
DIGITALE TECHNIEKEN
HOOFDSTUK 10
10. 20
L5
QT1,QT0 00 01
QT1,QT0 00 01
11
10
1
1
MODE,QT2 00
10
1
1
1
01
1
1
1
01
1
1
11
1
1
1
11
1
1
10
1
1
1
1
10
QT1,QT0 00 01
11
10
L2
1
1
1
1
1
QT1,QT0 00 01
11
10
1
1
MODE,QT2 00
1
1
01
1
1
1
01
1
1
1
1
11
1
1
1
11
1
1
1
1
10
1
1
1
1
L1
QT1,QT0 00 01
1
1
11
MODE,QT2 00
L3
1
L4
1
11
10
1
1
MODE,QT2 00
1
01
1
1
1
1
11
1
1
1
1
10
1
1
1
MODE,QT2 00
10
L 5 = QT 2 QT1 QT 0 L 4 = QT 2 + QT1 ⊕ QT 0 L3 = QT1 + QT 2 ⊕ QT 0 L 2 = QT 2 + QT 0 L1 = QT 2 QT1 QT 0 .
DIGITALE TECHNIEKEN
HOOFDSTUK 10
10. 21
1 0
CLK
D2
≥1
D1 ≥1
D0
1 9
74…17 R C1
4
1D
+5V
2 3 7 6 10 11 15 14
5 12 13
L5 &
L4 ≥1 =1
L3
≥1
=1
1
≥1
&
L2 ≥1 &
L1 & &
&
QT2 = pin 2
&
QT1 = pin 7 QT0 = pin 10
&
&
&
&
&
1 0
1
MODE
10 0
20 0
CLK MODE QT2 QT1 QT0 D2 D1 D0 L5 L4 L3 L2 L1
DIGITALE TECHNIEKEN
HOOFDSTUK 10
10. 22
7.3 Spoorwegsignalisatie. Een bewaakte spoorwegovergang kan als volgt gedefinieerd worden. Twee sensoren, één voor en één na de spoorwegovergang, bepalen de stand van de lichtsignalisaties. Zodra de trein in zicht komt, geeft de eerste sensor (SV) een impuls die dadelijk het rode flikkerlicht aanstuurt. Deze toestand blijft behouden totdat de trein de volgende sensor (SN) passeert en het witte flikkerlicht actief zet. Verder zijn beide sensoren gedurende minstens één klokpuls actief. Ontwerp de schakeling met JK flipflops (74112).
00
WIT
11
ROOD1
W
R1
NIETS
01
ROOD2
10
R1 = rood licht 1 R2 = rood licht 2 W = wit licht
R2
SV = sensor voor SN = sensor na
0
1
0
SV
naam toest. WIT NIETS (1) NIETS (2) ROOD1 ROOD2 (1) ROOD2 (2)
1 SN
huidige toestand SV SN x 0 1 x x x
DIGITALE TECHNIEKEN
x x x x 0 1
QT1 QT0 0 0 0 1 1 1
0 1 1 1 0 0
volgende toestand QNT1 J1 K1 0 0 x 0 0 x 1 1 x 1 x 0 1 x 0 0 x 1
QNT0 J0 K0 1 1 x 0 x 1 1 x 0 0 x 1 1 1 x 0 0 x
uitgangen R1 R2 W 0 0 0 1 0 0
0 0 0 0 1 1
HOOFDSTUK 10
1 0 0 0 0 0
10. 23
J1
QT1,QT0 00 01
K1
QT1,QT0 00 01
11
10
SV,SN 00
x
x
SV,SN 00
x
x
01
x
x
01
x
x
1 1
11
1
x
x
11
x
x
10
1
x
x
10
x
x
QT1,QT0 00 01
11
10
1
J0
K0
SV,SN 00
1
x
x
01
1
x
11
1
10
1
R1
QT1,QT0 00 01
11
10
11
10
SV,SN 00
x
1
1
x
x
01
x
1
1
x
x
x
11
x
1
x
x
x
1
10
x
1
x
QT1,QT0 00 01
11
10
11
10
R2
QT1,QT0 00 01
SV,SN 00
1
SV,SN 00
1
01
1
01
1
11
1
11
1
10
1
10
1
W
QT1,QT0 00 01
11
10
J1 = SV QT 0
SV,SN 00
1
01
1
J 0 = SN + QT1
11
1
K 0 = SV + QT1 R1 = QT1 QT 0
10
1
R 2 = QT1 QT 0
K1 = SN. QT 0
W = QT1 QT 0
DIGITALE TECHNIEKEN
HOOFDSTUK 10
10. 24
1 0
74…112 4 3 1 2 15
CLK
SN 1 0
1
≥1
SV 1 0
≥1
R1
R2
0
0
W 1
QT1
S 1J C1 1K R
5 & 6
QT0
10 11 13 12 14
&
9 7
&
1
&
&
100
200
CLK SV SN QT1 QT0 R1 R2 W
8. Toepassingen. 1. Flikkerlicht. Ontwerp een schakeling die voldoet aan het toestandsdiagram van pagina 4. * met D flipflops.
huidige volgende toestand toestand uitgangen naam MODE QT1 QT0 QNT1 QNT0 LED2 LED1 toest. D1 D0
DIGITALE TECHNIEKEN
HOOFDSTUK 10
10. 25
* met JK flipflops.
naam toest.
huidige volgende toestand toestand uitgangen MODE QT1 QT0 QNT1 QNT0 LED2 LED1 J1 K1 J0 K0
Starten beide schakelingen op vanaf de verboden toestand ? 2. "101" herkenner. Ontwerp een schakeling die uit een seriële bitstroom, op het ritme van de klok, de code "101" herkent. Ontwerp de schakeling met D flipflops. Start
00
H10
11
0
Klok
0 Data
Data
"101"
?
1
Data
H1
01
1
H101
10
"101"
1
0
0
Data
Data 1
naam toest.
huidige toestand Data QT1
DIGITALE TECHNIEKEN
QT0
volgende toestand uitgang QNT1 QNT0 "101" D1 D0
HOOFDSTUK 10
10. 26
3. Elektronische Dobbelsteen. De schakeling stuurt 7 LED's, die in de vorm van dobbelsteenogen worden geplaatst. Op een hoge klokfrequentie worden de verschillende toestanden (1,…6,1,…) na elkaar doorlopen. Een schakelaar staat in serie met de klok. Staat deze open, dan stopt de dobbelsteen op een (pseudo) willekeurig getal. Merk op dat een aantal LED's dezelfde functie beschrijven. Vier uitgangen volstaan dus. Ontwerp de schakeling met een 74175. Deze bevat 4 D flipflops. Dit volstaat dus om de schakeling te ontwerpen zonder uitgangsdecoder! Stel de verschillende functies op en sluit tevens de LED's correct aan. De schakeling bevat vrij veel verboden toestanden, vandaar dat we best een hardware resetsturing voorzien. Omdat de code 0000 (na een reset) niet tot de cyclus behoort, laten we deze verwijzen naar een geldige toestand, bijvoorbeeld Dob1. Dob1
Dob2
Dob3
B Dob4
Dob5
Dob1
Dob6
Dob6
naam toest. reset
D
C
B
Dob3 B
Dob5 .....
C
D
Dob2 A
A
A,C Dob4
.......
huidige volgende toestand toestand QT3 QT2 QT1 QT0 QNT3 QNT2 QNT1 QNT0 D3 D2 D1 D0 0 0 0 0
DIGITALE TECHNIEKEN
.......
uitgangen D C B
HOOFDSTUK 10
A
10. 27
HOOFDSTUK 11 Tellers. Een teller is een sequentiële schakeling die een aantal klokpulsen telt en volgens een bepaalde code op de uitgangen brengt. We spreken van een synchrone teller indien alle uitgangen op dezelfde klokflank van toestand veranderen. Bij een asynchrone teller treden er kleine tijdsverschillen op tussen de verschillende uitgangsveranderingen. Asynchrone tellers zijn vaak de oorzaak van een slecht werkende schakeling. Bij het combineren van een aantal telleruitgangen tot één signaal, ontstaan er vaak spikes (korte, ongewilde spanningspulsen). Als voorbeeld geven we het tijdsdiagram van een 4-bit binaire teller. Vergelijk het resultaat van F (Q0 EXOR Q1), bekomen uit een asynchrone (links) en synchrone teller (rechts).
CLK
CLK
Q0
Q0
Q1
Q1
Q2
Q2
Q3
Q3
F
F
De spikes zijn in bovenstaande simulatie sterk overdreven. In werkelijkheid zijn ze enkele nanoseconden breed. Indien F een LED stuurt, kan dit eventueel asynchroon gebeuren. De spikes zijn immers niet zichtbaar. Dient F als kloksignaal voor een flipflop, dan ontstaan er wel degelijk problemen. Asynchroon zijn er te veel (ongewilde) flanken.
1. Geïntegreerde synchrone tellers. Tellers krijgen binnen het symbool de afkorting "CTR" mee. Een aantal tellers zijn volledig synchroon. De meeste bezitten eveneens een aantal extra faciliteiten: reset, load, RCO, … Als voorbeeld bespreken we een aantal binaire en BCD-tellers uit de TTL-reeks.
1.1 74xx160 (BCD decade counter). 74...160
CLR/ 1 9 LOAD/ ENT 1 0 ENP 7 2 CLK
74LS160
CTRDIV10 CT=0 M1 M2 G3 3CT=9 1 5 RCO G4 C5/2,3,4+
A
3
1,5D [1]
B
4
C D
1 9 10 7 2
CTRDIV10 CT=0 M1 M2 G3 3CT=9 1 5 G4 C5/2,3,4+
1 4 QA
3
1,5D [1]
14
[2]
13
QB
4
[2]
13
5
[4]
12
QC
5
[4]
12
6
[8]
11
QD
6
[8]
11
DIGITALE TECHNIEKEN
HOOFDSTUK 11
11. 1
De 74xx160 is een BCD-opteller. DIV 10 staat voor 10-deler, ofwel 10 telcombinaties vertrekkend vanaf 0000. Afhankelijk van de gebruikte technologie (LS, HCT, …) zijn de flipflops flankgevoelig of master/slave. Voor de gebruiker is dit niet belangrijk. De telleruitgangen (QA (LSB) … QD (MSB)) veranderen voor beide technologieën op de stijgende flank van de klok. Het gewicht dat elke bit vertegenwoordigt wordt aangegeven met een getal tussen rechte haakjes, binnen elke flipflopcel. De uitgangen veranderen enkel van toestand bij een stijgende klokflank, op voorwaarde dat zowel ENT, ENP (EN = enable) en LOAD/ hoog zijn. Indien aan één van deze vier voorwaarden niet wordt voldaan, stopt de teller en blijven de uitgangen onveranderd. CLR/ staat voor een asynchrone clear. Uitgang RCO (Ripple Carry Out) komt hoog zodra de teller op 9 (1001) staat en ENT = 1. Bij een LOAD/=0 wordt de teller "geladen" met de waarde op ingangen A…D. Op de volgende stijgende klokflank verschijnt de ingelezen waarde op de uitgangen. Deze optie laat de gebruiker toe de 74xx160 als willekeurige teller van xxxx tot 1001 te gebruiken (met xxxx van 0000 tot 1001).
D C B A CLR/ LOAD/ ENT ENP RCO CLK QA QB QC QD
tellen
clear
tellen
load (7)
tellen
stop
tellen
Bij een cascadeschakeling van meerdere 74xx160 tellers stuurt RCO de enable voor de meerbeduidende teller. Onderstaand schema beschrijft een 3-digit BCD-teller. +5V 1 9
CLK
10 7 2
+5V
74LS160 CTRDIV10 CT=0 M1 M2 G3 3CT=9 1 5 G4 C5/2,3,4+
1 9 10 7 2
74LS160
+5V
CTRDIV10 CT=0 M1 M2 G3 3CT=9 1 5 G4 C5/2,3,4+
1 9 10 7 2
74LS160 CTRDIV10 CT=0 M1 M2 G3 3CT=9 1 5 G4 C5/2,3,4+
3
1,5D [1]
1 4 B00
3
1,5D [1]
1 4 B10
3
1,5D [1]
1 4 B20
4
[2]
1 3 B01
4
[2]
1 3 B11
4
[2]
1 3 B21
5
[4]
1 2 B02
5
[4]
1 2 B12
5
[4]
1 2 B22
6
[8]
1 1 B03
6
[8]
1 1 B13
6
[8]
1 1 B23
Ontwerp zelf een teller die volgende cyclus doorloopt: 0011, 0100, 0101, 0110, 0111, 0011, …
DIGITALE TECHNIEKEN
HOOFDSTUK 11
11. 2
1.2 74xx161 (4-bit binary counter). 74LS161
74...161 1 9 10 7 2
CTRDIV16 CT=0 M1 M2 G3 3CT=15 1 5 G4 C5/2,3,4+
10 7 2
CTRDIV16 CT=0 M1 M2 G3 3CT=15 1 5 G4 C5/2,3,4+
1 9
3
1,5D [1]
14
3
1,5D [1]
14
4
[2]
13
4
[2]
13
5
[4]
12
5
[4]
12
6
[8]
11
6
[8]
11
Een 74xx161 is een 16-deler (DIV 16), ofwel een 4-bit binaire opteller. De ripple carry reageert op de uitgangscode 1111. Verder zijn alle functies binnen de 74xx161 identiek aan deze van de 74xx160.
1.3 74xx162 en 74xx163. 74...163
74...162 1 9 10 7 2
CTRDIV10 5CT=0 M1 M2 G3 3CT=9 1 5 G4 C5/2,3,4+
10 7 2
1 9
CTRDIV16 5CT=0 M1 M2 G3 3CT=15 1 5 G4 C5/2,3,4+
3
1,5D [1]
14
3
1,5D [1]
14
4
[2]
13
4
[2]
13
5
[4]
12
5
[4]
12
6
[8]
11
6
[8]
11
Een 74xx162 is vergelijkbaar met een 160 (BCD decade counter), een 163 vergelijkbaar met een 161 (4bit binary counter). Het enige verschil is de synchrone clear of reset (5 CT=0 in plaats van CT=0). Onderstaand tijdsdiagram geeft het verschil tussen een synchrone en een asynchrone reset.
CLK CLR/
clear 162 en 163 clear 160 en 161 Teken zelf het schema van een 6-teller (0000…0101) met een 74xx160 en vervolgens met een 74xx162. Maak hierbij gebruik van de clear.
1.4 74xx190 (up/down decade counter). De 74xx190 is een synchrone BCD-op/afteller. Ingang D/U bepaalt de telrichting. CTEN/ staat voor countenable. Is deze niet actief, dan stopt de teller. Aftellen: op de stijgende flank van de klok, indien CTEN/ = 0 en D/U = 1. Optellen: op de stijgende flank van de klok, indien CTEN/ = 0 en D/U = 0.
DIGITALE TECHNIEKEN
HOOFDSTUK 11
11. 3
CTEN/ D/U
4 5
CLK 1 4 LOAD/ 1 1 A 15
74...190 CTRDIV10 2(CT=0)Z6 G1 M2[D] 3(CT=9)Z6 M3[U] 1,2-/1,3+ 6,1,4 G4 C5 5D
[1]
+-
1 2 MAX/
11
74ALS190 CTRDIV10 2(CT=0)Z6 G1 M2[D] 3(CT=9)Z6 M3[U] 1,2-/1,3+ G4 6,1,4 C5 5D
4 5
MIN
14 1 3 RCO/ 3
QA
15
[1]
12
13 3
+-
1
[2]
2
QB
1
[2]
2
C 10
[4]
6
QC
10
[4]
6
D 9
[8]
7
QD
9
[8]
7
B
De LOAD/ laadt de filpflops met het aangeboden getal. Merk op dat deze onafhankelijk van de klok reageert. De uitgangen nemen de nieuwe waarde over op de stijgende klokflank. De toestand van MAX/MIN is afhankelijk van de telrichting. Voor de opteller wordt deze uitgang 1 bij een tellerstand van 9 (1001= teller op maximum ). Voor de afteller is dit getal 0 (0000 = teller op minimum). Z6 binnen het symbool geeft een inwendige doorverbinding met RCO/. Deze wordt 0 indien MIN/MAX = 1, CTEN/ = 0 en CLK =0.In onderstaand tijdsdiagram wordt op een bepaald moment getal 6 (0110) geladen.
CLK D/U LOAD/ QA QB QC QD MAX/MIN RCO
aftellen
load (6)
aftellen
optellen
Onderstaande schakeling geeft een op- aftelcyclus tussen getallen 3 en 8. De U/D ingang wordt gestuurd langs een JK-flipflop. Op het moment dat getal 8 van de telleruitgangen verschijnt, wordt de flipflop geset (U/D = 1). Bij de volgende actieve klokflank start het aftellen. Getal 3 reset de flipflop (U/D = 0) en brengt ons naar de optelcyclus. Daar niet alle combinaties voorkomen, leiden we de vergelijkingen van J en K af uit een Karnaughkaart.
Merk op dat de actieve flank van de flipflop tegengesteld is aan de actieve flank van de teller. Is dit niet het geval, dan reageren beiden op hetzelfde tijdstip. De verandering van U/D komt dan een fractie te laat.
DIGITALE TECHNIEKEN
HOOFDSTUK 11
11. 4
J
Q3,Q2
Q1,Q0 00 01
x
00
K 11
Q1,Q0 00 01
10
x
x
Q3,Q2
01
00
11
10
x
x
1
x
-
-
-
-
x
-
-
01
11
-
-
-
-
11
10
1
x
-
-
10
Uit het tijdsdiagram blijkt duidelijk dat het systeem in zijn werkcyclus terecht komt, ook al start deze op vanaf 0.
11
74...190 CTRDIV10 2(CT=0)Z6 G1 M2[D] 3(CT=9)Z6 M3[U] 1,2-/1,3+ 6,1,4 G4 C5
15
5D
4 5
CLK 14
+5V
[1]
+-
J 12 & 1
K
S 1J C1 1K R
U/D
13 +5V 3
Q0
1
[2]
2
Q1
10
[4]
6
Q2
9
[8]
7
Q3
200 J K CLK U/D Q3 Q2 Q1 Q0
De spikes die verschijnen op de K-ingang van de flipflops zijn afkomstig van de poortvertragingen die aan de K voorafgaan. Indien we gebruik zouden maken van een SR-flipflop, dan worden deze ook zichtbaar op U/D. De teller wordt hierdoor niet verstoord. De toestand van U/D wordt enkel geïnterpreteerd op de stijgende klokflank. De reden waarom we geen SR-flipflop nemen ligt elders. Uit het tijdsdiagram zien we dat zowel J en K (S en R dus) gelijktijdig actief worden en vervolgens samen op 0. Deze volgorde brengt U/D in een niet te voorspellen toestand. De volledige schakeling is onvoorspelbaar, dus onbruikbaar.
DIGITALE TECHNIEKEN
HOOFDSTUK 11
11. 5
1.5 74xx191, 74xx192 en 74xx193. Vergelijk de drie tellers met de 74xx190.
4 5
11
G1 2(CT=0)Z6 M2[D] 3(CT=15)Z6 M3[U] 1,2-/1,3+ 6,1,4 G4 C5
15
5D
14
11
74...192 CTRDIV10 CT=0 1CT=9 2+ G1 2CT=0 1G2 C3
3
15
3D
74...191 CTRDIV16
[1]
12
14 5 4
13
+-
11
74...193 CTRDIV16 CT=0 1CT=15 2+ G1 2CT=0 1G2 C3 3D
12
14 5
13
4
[1]
3
15
12 13
[1]
3
1
[2]
2
1
[2]
2
1
[2]
2
10
[4]
6
10
[4]
6
10
[4]
6
9
[8]
7
9
[8]
7
9
[8]
7
2. Geïntegreerde asynchrone tellers. De meeste geïntegreerde tellers zijn semi-asynchroon. Hiermee bedoelen we dat één component meerdere synchrone tellers bevat, elk met een eigen klokingang. Een aantal extra functies zoals clear e.d. zijn gemeenschappelijk. Door de verschillende tellers te combineren ontstaat een asynchrone teller. Als voordeel noteren we dat het aantal telcombinaties groter is dan met een volledig synchroon geïntegreerde teller. In deze paragraaf bespreken we een aantal tellers uit de TTL-reeks, gevolgd door de populaire 4040 en 4060.
2.1 74xx90 (decade counter). De 74xx90 bevat één 2- en één 5-deler. De reset en preset beïnvloeden beide tellers.
2 3 6 7
R0(1) R0(2) R9(1) R9(2) CLKA 1 4 CLKB
1
74...90 CTR & CT=0 &
CLKA QA
Z3
+ DIV2 3CT=1 + DIV5 0 CT 2 3CT=4
{
12
QA
9 8 11
QB QC QD
CLKB QD QC QB
Indien beide R0(x)-ingangen 1 zijn, worden alle telleruitgangen asynchroon gereset. Zijn beide R9(x)-ingangen 1, dan komt de teller, asynchroon, op 9 (preset naar 9). De AND-functie is inwendig verbonden met beide tellers. De 2-teller komt op 1 en de 5-teller op 4. Interpreteer alle uitgangen als één geheel en lees QD…QA = 1001.
DIGITALE TECHNIEKEN
HOOFDSTUK 11
11. 6
R0( 1)
R0(1)
R0( 2)
R0(2)
R9( 1)
R9(1)
R9( 2)
R9(2)
CLKA
CLKA
QA
QA
CLKB
CLKB
QD
QD
QC
QC
QB
QB
reset
preset
Door QA te verbinden met CLKB ontstaat een BCD-teller. QD verbinden met CLKA geeft een teller volgens de bi-quinary code.
2 3 6 7
CLK 14 1
Figuur A
Figuur B
74...90 CTR & CT=0
74...90 CTR & CT=0
&
Z3
+ DIV2 3CT=1 + DIV5 0 CT 2 3CT=4
QD 0 0 0 0 0 0 0 0 1 1 0 0 0
2 3 6 7
{
QC 0 0 0 0 1 1 1 1 0 0 0 0 0
QB 0 0 1 1 0 0 1 1 0 0 0 0 1
12
14
QA CLK
9 8 11
QB QC QD
QA 0 1 0 1 0 1 0 1 0 1 0 1 0
1
QD 0 0 0 0 1 0 0 0 0 1 0 0 0
&
Z3
+ DIV2 3CT=1 + DIV5 0 CT 2 3CT=4
{
QC 0 0 1 1 0 0 0 1 1 0 0 0 1
QB 0 1 0 1 0 0 1 0 1 0 0 1 0
12
QA
9 8 11
QB QC QD
QA 0 0 0 0 0 1 1 1 1 1 0 0 0
De verschillende combinaties die de 74xx90 toelaat zijn: DIV2: 2-teller. DIV5: 2-, 4- en 5-teller. DIV2 in combinatie met DIV5: 4-, 8- en 10-teller.
DIGITALE TECHNIEKEN
HOOFDSTUK 11
11. 7
2.2 74xx92 (divide by 12 counter). De 74xx92 bevat drie tellers. Twee met een eigen klokingang en een derde waarvan de klok afhankelijk is van uitgang QC. 74...92 CTR
R0(1) R0(2)
6 7
CLKA 1 4 1
QA
& CT=0 +
DIV2 DIV3
CLKB
CLKA
+ CT 4+
{
1 2 QA 0 1 1 QB 9 QC 1Z4
DIV2
8
CLKB QB QC
QD
QD
De onderste teller reageert op de stijgende flank van /QC (= dalende flank van QC). Verder is er een gemeenschappelijke reset voorzien. Vervolledig zelf de toestandstabel indien CLKB = QA en indien CLKA = QD. 74...92 CTR 6 7 14
6 7
& CT=0 +
DIV2 DIV3
1
74...92 CTR
+ CT 4+
QD 0
DIGITALE TECHNIEKEN
{
DIV2
QC 0
12
QA
14
0 11 9 1Z4
QB
1
+
DIV2 DIV3
QC
8
QB 0
& CT=0
QD
QA 0
+ CT 4+
QD 0
{
DIV2
QC 0
12
QA
0 11 9 1Z4
QB QC
8
QB 0
QD
QA 0
HOOFDSTUK 11
11. 8
2.3 4040 (12-stage binary counter). De 4040 is een 12-bit, volledig asynchrone, binaire teller met een gemeenschappelijke reset. 4040 CTR12 0 9 7 10 + 6 5 1 1 CT = 0 3 2 CT 4 13 12 14 15 11 1
CLK
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11
CLK Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
Een gedeelte van de uitgangen zijn opgenomen in het tijdsdiagram. Let vooral op de tijdsvertragingen bij de overgang van 000000111111 naar 000001000000. Het inwendig schema is vrij eenvoudig. De uitgang van een minder beduidende flipflop stuurt de klokingang van de volgende meer beduidende flipflop. Q0
+5V
CLK
S C1 1D R
1
Q1
S C1 1D R
Q2
S C1 1D R
Q11
…
S C1 1D R
R 1
2.4 4060 (14-stage binary counter/ divider and oscillator). De 4060 is een 14-bit, volledig asynchrone, binaire teller met een gemeenschappelijke reset. De flipflop structuur is identiek aan deze van de 4040, met uitzondering dat niet alle flipflopuitgangen uitwendig beschikbaar zijn (Q0, Q1, Q2 en Q10). 4060
CLK
9 10 11 12
CTR14 !G
CX RX RCX
+
CT = 0
CT
7 5 4 6 14 13 9 15 11 1 2 13 3 3
Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q11 Q12 Q13
200 CLK Q3 Q4
De 4060 is tevens in staat een eigen blokgolf te genereren, met behulp van een kristal of met een RC-keten. De verschillende mogelijkheden worden hieronder weergegeven.
DIGITALE TECHNIEKEN
HOOFDSTUK 11
11. 9
Externe klok 4060 9 10 11 12
CTR14 !G CX RX RCX CT = 0
RC-oscillator
Kristaloscillator
Rb
4060
Ct 9 10 11 12
Rt R2
CTR14 !G CX RX RCX
XTAL
CT = 0
C2
1 2, 5 Rt Ct R2 ≈ 2Rt R2 C2 << RtCt fosc =
4060
R2
C3
9 10 11 12
CTR14 !G CX RX RCX CT = 0
C2
fosc = fXTAL R2 = 2K 2 R b = 100k…1M C 2 = 100pF C3 = 22pF…37pF
Zowel de 4040 als de 4060 worden dikwijls in een schakeling verwerkt als frequentiedeler.
3. Ontwerpen van synchrone tellers. In bepaalde toepassingen kan het voorkomen dat een geïntegreerde teller niet aan de gestelde eisen voldoet. Dan zal de ontwerper zelf zijn teller uitwerken met flipflops (JK of D). Beschouw het ontwerpen van een teller als een toepassing op toestandsmachines (hoofdstuk 10). In bijhorende voorbeelden wordt het toestandsdiagram weggelaten. De logica van een teller is meestal eenduidig beschreven, zodat het toestandsdiagram geen meerwaarde bezit. De voorbeelden zijn steeds uitgewerkt met een JK en vervolgens met een D flipflop. Het ontwerp van een volledig asynchrone teller wordt buiten beschouwing gelaten, daar deze tellers praktisch niet voorkomen in een deftig ontwerp. Merk op dat de nieuwe toestand QNTx rechtstreeks als telleruitgang gebruikt wordt. De uitgangsdecoder is overbodig. QNT0 = Q0 van de teller.
3.1 3-bit binaire opteller met reset. Oplossing met JK flipflops.
Teller toest. 0 1 2 3 4 5 6 7
huidige volgende toestand toestand QT2 QT1 QT0 QNT2 J2 K2 0 0 0 0 0 x 0 0 1 0 0 x 0 1 0 0 0 x 0 1 1 1 1 x 1 0 0 1 x 0 1 0 1 1 x 0 1 1 0 1 x 0 1 1 1 0 x 1
DIGITALE TECHNIEKEN
QNT1 J1 K1 0 0 x 1 1 x 1 x 0 0 x 1 0 0 x 1 1 x 1 x 0 0 x 1
QNT0 J0 K0 1 1 x 0 x 1 1 1 x 0 x 1 1 1 x 0 x 1 1 1 x 0 x 1
J 2 = QT1 QT 0 K 2 = QT1 QT 0 J1 = QT 0 K1 = QT 0 J0 = 1 K0 = 1
HOOFDSTUK 11
11. 10
J2
QT0 0
K2
QT0 0
1
QT2,QT1 00
0
0
01
0
11 10
1
QT2,QT1 00
x
x
1
01
x
x
x
11
x
x
10
Q0 74…112 + 5 V
CLK
4 3 1 2 15 10 11 13 12 14
S 1J C1 1K R
J1
QT0 0
1
QT2,QT1 00
0
1
x
01
x
0
1
11
0
0
10
+ 5 V &
9 7
QT0 0
1
QT2,QT1 00
x
x
x
01
0
1
x
x
11
0
1
0
1
10
x
x
Q2
Q1
5 6
K1
74…112 4 3 1 2 15 10 11 13 12 14
S 1J C1 1K R
5 6
Q2 = QNT2 Q1 = QNT1 Q0 = QNT0
9 7
R/
R/ CLK Q0 Q1 Q2
De resetsturing wordt rechtstreeks verbonden met de resetingangen van de gebruikte flipflops en vraagt geen extra componenten. Daar deze teller geen verboden toestanden kent, is de schakeling altijd zelfstartend.
DIGITALE TECHNIEKEN
HOOFDSTUK 11
11. 11
Oplossing met D flipflops.
Teller toest. 0 1 2 3 4 5 6 7
huidige volgende toestand toestand QT2 QT1 QT0 QNT2 QNT1 QNT0 D2 D1 D0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 0 0 0
D2
QT0 0
D1
QT0 0
1
1
QT2,QT1 00
0
0
QT2,QT1 00
0
1
01
0
1
01
1
11
1
0
11
10
1
1
10
D2 = QT 2 ⊕ (QT1 QT 0 ) D1 = QT1 ⊕ QT 0 D 0 = QT 0
D0
QT0 0
1
QT2,QT1 00
1
0
0
01
1
0
1
0
11
1
0
0
1
10
1
0
Door de verschillende functies om te vormen naar AND- en EXOR-poorten, volstaan eveneens 3 IC's om de volledige schakeling op te bouwen.
R/
CLK
74…17 1 9 4 5 12 13
Q0
R C1 1D
Q1 Q2 &
2 3 7 6 10 11 15 14
=1 =1
Q2 = QNT2 Q1 = QNT1 Q0 = QNT0
R/ CLK Q0 Q1 Q2
DIGITALE TECHNIEKEN
HOOFDSTUK 11
11. 12
3.2 AIKEN opteller met preset naar 1011. Oplossing met JK flipflops.
huidige toestand AIKEN QT3 QT2 QT1 QT0 cijfer. 0 0 0 0 0 1 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 0 1 0 0 5 1 0 1 1 6 1 1 0 0 7 1 1 0 1 8 1 1 1 0 9 1 1 1 1 J3
QT1,QT0 00 01
volgende toestand QNT3 J3 K3 0 0 x 0 0 x 0 0 x 0 0 x 1 1 x 1 x 0 1 x 0 1 x 0 1 x 0 0 x 1
QNT2 J2 K2 0 0 x 0 0 x 0 0 x 1 1 x 0 x 1 1 1 x 1 x 0 1 x 0 1 x 0 0 x 1
QNT1 J1 K1 0 0 x 1 1 x 1 x 0 0 x 1 1 1 x 0 x 1 0 0 x 1 1 x 1 x 0 0 x 1
K3 11
QT1,QT0 00 01
10
QT3,QT2 00
QT3,QT2
x
x
x
x
-
-
-
-
-
-
01
11
x
x
x
x
11
10
-
-
x
-
10
11
10
K2
1
QT3,QT2 00
QT3,QT2
1
-
-
-
11
x
x
x
x
11
10
-
-
1
-
10
QT1,QT0 00 01
11
10
1
x
x
-
-
1 -
-
DIGITALE TECHNIEKEN
10
x
01
10
11
x
-
11
-
x
-
1
-
x
-
01
-
00
x
QT3,QT2 00
1
QT1,QT0 00 01
01
J1
10
x
1
QT1,QT0 00 01
11
00
01
J2
QNT0 J0 K0 1 1 x 0 x 1 1 1 x 0 x 1 1 1 x 0 x 1 1 1 x 0 x 1 1 1 x 0 x 1
K1
1 -
-
QT1,QT0 00 01
x
-
11
10
00
x
x
1
-
01
x
-
-
x
x
11
x
x
1
x
-
10
-
-
1
QT3,QT2
HOOFDSTUK 11
-
-
11. 13
J 3 = QT 2
J 2 = QT1 QT 0
J 1 = QT 0 + Q T 3 Q T 2 J 0 = 1
K 3 = QT 2 QT1 QT 0
K 2 = QT 3 + Q T 1 Q T 0
K 1 = QT 0
Q0
PR/
K0 = 1
Q1
Q2
Q3
+5V 74…111
+5V
&
≥1
2 4 5 1 3
S 1J C1 1K R
14 12 11 15 13
74…111 7
&
6 ≥1 9 10
&
2 4 5 1 3 14 12 11 15 13
S 1J C1 1K R
7 6
9 10
CLK
PR/ CLK Q0 Q1 Q2 Q3
De presetingang bedient rechtstreeks de setingang van Q0, Q1 en Q3 en de resetingang van Q2. Ga zelf na of de teller al dan niet zelfstartend is. Pas het schema eventueel aan.
verb. QT3 QT2 QT1 QT0 toest. V1 0 1 0 1 V2 0 1 1 0 V3 0 1 1 1 V4 1 0 0 0 V5 1 0 0 1 V6 1 0 1 0
DIGITALE TECHNIEKEN
flipflop volgende ingangen toestand J3 K3 J2 K2 J1 K1 J0 K0 QNT3 QNT2 QNT1 QNT0 volgende toestand
HOOFDSTUK 11
11. 14
Oplossing met D flipflops. Daar de D flipflop enkel één gemeenschappelijke reset bezit, is het dus onmogelijk de preset 1011 aan de schakeling toe te voegen. Als alternatief heeft onderstaande teller een resetsturing.
huidige volgende toestand toestand AIKEN QT3 QT2 QT1 QT0 QNT3 QNT2 QNT1 QNT0 cijfer. D3 D2 D1 D0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 0 2 0 0 1 0 0 0 1 1 3 0 0 1 1 0 1 0 0 4 0 1 0 0 1 0 1 1 5 1 0 1 1 1 1 0 0 6 1 1 0 0 1 1 0 1 7 1 1 0 1 1 1 1 0 8 1 1 1 0 1 1 1 1 9 1 1 1 1 0 0 0 0 D3
QT1,QT0 00 01
11
-
11
1
1
10
-
-
D1
QT1,QT0 00 01
01
1
11 10
-
1
-
DIGITALE TECHNIEKEN
D 0 = QT 0
QT1,QT0 00 01
11
-
01
1
11
1
1
-
10
-
-
00
1
-
01
1
1
1
11
1
-
-
10
-
-
1
-
QT1,QT0 00 01
10
-
QT3,QT2
11
10
1
00
D0
1
QT3,QT2 00
D1 = QT1 ⊕ QT 0 + QT 3 QT 2
10 QT3,QT2
1
D2 = QT 3 QT1 QT 0 + QT 2 QT1 QT 0
D2
QT3,QT2 00 01
D3 = QT 2 QT1 QT 0 + QT 3QT 2
-
1
1
-
11
10
1 -
-
1
-
HOOFDSTUK 11
-
11. 15
Q0 Q1 Q2 Q3 R/
CLK
74…17 1 9 4
&
R C1
& 2 3 7 6 10 11 15 14
1D
5 12 13
=1
≥1
&
≥1
&
&
≥1
& 1
R/ CLK Q0 Q1 Q2 Q3
Ga na of er eventueel problemen ontstaan bij het opstarten vanaf een verboden toestand.
verboden toestand V1 V2 V3 V4 V5 V6
QT3 QT2 QT1 QT0 0 0 0 1 1 1
1 1 1 0 0 0
0 1 1 0 0 1
flipflop volgende ingangen toestand D3 D2 D1 D0 QNT3 QNT2 QNT1 QNT0 volgende toestand
1 0 1 0 1 0
4. Toepassingen. 1. Ontwerp een XC3 teller met een 74xx161. 2. Ontwerp een decoder voor een bidirectioneel looplicht (6 LED's). Gebruik de 74xx190 als teller. (0, 1, … 5, 4, 3, … 0, 1, …)
DIGITALE TECHNIEKEN
HOOFDSTUK 11
11. 16
3. Ontwerp een synchrone 10-opteller met JK flipflops.
Dec. cijfer. 0 1 2 3 4 5 6 7 8 9
huidige volgende toestand toestand QT3 QT2 QT1 QT0 QNT3 QNT2 QNT1 QNT0 J3 K3 J2 K2 J1 K1 J0 K0
Is deze teller zelfstartend ? 4. Ontwerp een synchrone 10-afteller met D flipflops.
Dec. cijfer. 0 1 2 3 4 5 6 7 8 9
huidige volgende toestand toestand QT3 QT2 QT1 QT0 QNT3 QNT2 QNT1 QNT0 D3 D2 D1 D0
Is deze teller zelfstartend ? 5. Ontwerp een synchrone 5-afteller met D flipflops. Ga de verboden toestanden na.
Dec. cijfer. 0 1 2 3 4
DIGITALE TECHNIEKEN
huidige volgende toestand toestand QT2 QT1 QT0 QNT2 QNT1 QNT0 D2 D1 D0
HOOFDSTUK 11
11. 17
6. Ontwerp een synchrone 12-opteller in 6/4/2/1-mode met JK flipflops.
Inp.
huidige volgende toestand toestand QT3 QT2 QT1 QT0 QNT3 QNT2 QNT1 QNT0 J3 K3 J2 K2 J1 K1 J0 K0
0 1 2 3 4 5 6 7 8 9 10 11 Is deze teller zelfstartend ? 7. Synchrone 3-bit op/afteller met JK flipflops. Ontwerp een schakeling waarbij de ingang U/D de telrichting bepaalt. U/D = 0 : aftellen. U/D = 1 : optellen. De toestand van U/D wordt na elke toestand gecontroleerd.
Dec. cijfer. 012345670+ 1+ 2+ 3+ 4+ 5+ 6+ 7+
huidige volgende toestand toestand U/D QT2 QT1 QT0 QNT2 QNT1 QNT0 J2 K2 J1 K1 J0 K0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1
DIGITALE TECHNIEKEN
HOOFDSTUK 11
11. 18
Literatuurverwijzing. S. Nelissen
Synthese van digitale systemen Die Keure ISBN : 90 6200 601 9
J. Cuppens, H Saeys
Digitale technieken. Combinatorische en sequentiële logica. 1A en 1B
Die Keure L. Schilling
Digital integrated Electronics. McGraw Hill ISBN : 07 085788 1
M. Fogiel
The electronics problem solver REA ISBN: 0 87891 543 5
J. Buchanan
CMOS/TTL digital Systems Design McGraw Hill ISBN : 0 07 008711 3 Logica symboliek.
R.L. Polis
Toelichting op het IEC-systeem.
Kluwer Technische Boeken ISBN : 90 201 1439 5 E.A. Lacy
DIGITALE TECHNIEKEN
Complete guide to understanding electronics diagrams. Pentice Hall ISBN : 0 13 160920 3
Literatuurverwijzing.