Digitale technieken Combinatorische en sequentiële logica ir. Patrick Colleman
1 Inleiding. 1 0.1 Systemen. 1 0.2 Voordelen van digitale systemen 4 0.3 Nadelen van digitale systemen 6 Hoofdstuk 1 : Logische uitdrukkingen. 6 1.1 Inleiding. 6 1.2 Voorbeeld 1. 7 1.3 Binaire voegwoorden. 8 1.4 Waarheidstabel 9 1.5 Wetten van De Morgan. 9 1.6 Alle functies kunnen met NEN- of NOF-poorten gerealiseerd worden. 10 1.7 Logische symbolen. 11 1.8 Ontwerp theoretisch logicaschema. 12 1.9 Uitgewerkte oefening 2. 14 1.10 Oefeningen. 15 Hoofdstuk 2 : Algebra van Boole. 15 2.1 Inleiding. 15 2.2 Postulaten. 16 2.3 Dualiteit. 16 2.4 Enkele stellingen en lemma's. 19 2.5 Gebruik van NAND en NOR poorten 20 2.6 Oefeningen. 21 Hoofdstuk 3 : Minimalisatie van Boolse functies. 21 3.1 Inleiding. 21 3.2 Standaardvorm van een Boolse functie. 22 3.3 Standaardvorm uit een waarheidstafel. 23 3.4 Karnaughkaart voor het vereenvoudigen van Boolse funkties. 23 3.4.1 Karnaughkaart voor 2 variabelen 24 3.4.2 Karnaughkaart voor 3 variabelen 26 3.4.3 Vereenvoudigingsregels 26 3.4.4 Karnaughkaart voor 4 variabelen 28 3.5 Functies met niet relevante toestanden. 30 3.6 Minimalisatie met meer dan 4 ingangen 30 3.6.1 Karnaughkaart voor 5 variabelen 31 3.6.2 Karnaughkaart voor 6 variabelen 32 3.6.3 Quine - Mc Cluskey 37 3.7 Meervoudige functies. 40 3.8 Hazards. 44 3.9 Oefeningen.
44 Hoofdstuk 4 : Digitale logische families. 44 4.1 Resistor Transistor Logica (RTL) en Diode Transistor Logica (DTL). 45 4.2 Standaard TTL. 47 4.3 Begrippen 47 4.3.1 Vertragingstijd td - rise en fall time. 49 4.3.2 Vermogenverbruik P. 50 4.3.3 Fan-in. 50 4.3.4 Fan-out. 50 4.3.5 Open collector - wired and en wired or 53 4.3.6 Hoog impedante toestand. 54 4.3.7 Logische niveaus. 56 4.3.8 Transferkarakteristiek. 56 4.3.9 Hysteresis. 57 4.3.10 SSI, MSI, LSI, VLSI. 57 4.4 Andere types TTL componenten 57 4.4.1 Low power en high speed TTL. 57 4.4.2 Schottky en low power Schottky TTL. 58 4.4.3 Advanced low power Schottky en advanced Schottky. 58 4.4.4 Vergelijking tussen de verschillende TTL types. 59 4.5 ECL - EECL. 60 4.6 HNIL. 60 4.7 IIL. 60 4.8 De MOS familie. 61 4.8.1 N-MOS. 62 4.8.2 CMOS. 64 4.8.3 SOS,VMOS,HMOS, LOCMOS, DMOS, HEXMOS, enz... 65 4.8.4 Berekening van het vermogenverbruik van CMOS schakelingen. 66 4.9 Tweelagenlogica met NAND en NOR poorten 67 4.10 Gebruik van componenten op een print 68 4.11 Oefeningen. 69 Hoofdstuk 5 : Praktische realisatie van logische schakelingen. 69 5.1 Bestaande poortschakelingen. 70 5.2 Hoog- en laagactieve signalen. 71 5.3 Poorten en hun waarheidstabel. 72 5.3.1 2 input AND poort 72 5.3.2 2 input NAND poort 72 5.3.3 2 input OR poort 73 5.3.4 2 input NOR poort 73 5.3.5 2 input EXOR poort 73 5.4 Praktische realisatie van oefening 1. 74 5.5 Ingangsschakelingen. 75 5.5.1 Debouncing met condensator 76 5.5.2 Debouncing met omschakelcontact 76 5.5.3 Softwarematige debouncing 77 5.6 Ingangsschakelingen met galvanische scheiding.
77 5.7 Uitgangsschakelingen. 79 5.8 Uitgangsschakelingen met galvanische scheiding. 80 5.9 Overdracht van een digitaal signaal over een langere afstand. 81 Hoofdstuk 6 : Combinatorische bouwblokken. 81 6.1 Multiplexers. 81 6.1.1 Bespreking van multiplexers 82 6.1.2 Realisatie van een functie met behulp van een multiplexer. 85 6.2 Demultiplexers. 85 6.3 Analoge multi-/demultiplexers. 86 6.4 Decoders. 86 6.5 Encoders. 87 6.6 Code omzetters. 87 6.7 Optelschakelingen. 87 6.7.1 Half adder. 87 6.7.2 Full adder. 89 6.7.3 4-bit full adder. 89 6.7.4 Seriële optelschakeling 90 6.8 Comparator. 91 6.9 Arithmetic and logical unit. 91 6.10 Pariteitsgenerator. 92 6.11 Programmeerbare bouwstenen 95 6.12 Oefeningen. 96 Hoofdstuk 7 : Latches en Flip-Flops. 96 7.1 Inleiding. 96 7.2 De set-reset-latch. 98 7.3 Latches en flip-flops met een controle of klok ingang. 98 7.3.1 Pulse triggered SR latches 99 7.3.2 Set reset FF s met flank getriggerde (edge triggered) controle ingang 99 7.3.3 Master-Slave FF's 101 7.3.4 Data lock out FF's 101 7.4 De JK-FF. 102 7.5 De Data FF (D latch of D FF). 103 7.6 De Toggle FF. 103 7.7 De SCAN-FF. 104 7.8 Golfvormen. 105 7.9 Opzet- en aanhoudtijd (setup en hold time). 105 7.10 Registers.
107 Hoofdstuk 8 : Tellers en schuifregisters. 107 8.1 Werking van een synchroon sequentieel systeem. 108 8.2 Transitie of exitatietabel. 109 8.3 Synchrone binaire opteller. 112 8.4 Synchrone decade teller. 113 8.5 Onderzoek naar niet geldige of illegale toestanden. 115 8.6 Synchrone binaire op- /afteller met parallelle laad ingangen. 117 8.7 Kaskadeschakeling van tellers. 119 8.8 Synchrone n-teller. 120 8.9 Modulo n-teller. 121 8.10 Tellers met gedecodeerde uitgangen. 121 8.11 Asynchrone tellers. 122 8.12 Schuifregisters. 124 8.13 Enkele speciale schakelingen. 124 8.13.1 Een impuls halen uit een signaal 124 8.13.2 Storingsimpulsen tot een controlecyclus lang uitfilteren. 125 8.14 Synchronisatie van de ingangen. 127 8.15 Oefeningen. 128 Hoofdstuk 9 : Synthese van Finite State Machines. 128 9.1 Blokschema en toestandsdiagramma van sequentiële systemen 130 9.2 Voorbeelden met Moore architectuur 130 9.2.1 Een eenvoudig rekenvoorbeeld 136 9.2.2 Een looplicht 138 9.2.3 Codewoorddetectie 140 9.2.4 Een flessenteller 142 9.2.5 Een blokspanningsgenerator en frequentiedeler 145 9.2.6 Een dobbelsteen 148 9.3 Voorbeeld met de Mealy architectuur 148 9.3.1 De dobbelsteen 151 9.4 Vergelijking Moore - Mealy 153 9.5 Minimalisatie van toestanden 157 Hoofdstuk 10 : VHDL 158 10.1 Beschrijving van de ingangen en uitgangen van een schakeling 161 10.2 Architectuurblok 163 10.3 Block statement 163 10.4 Gebruik van vectoren 164 10.4.1 Concatenatieoperator 164 10.5 Processen 166 10.5.1 If - Then - Else 167 10.5.2 Case 168 10.6 When - Else 168 10.7 With - select 169 10.8 Beschrijving van geheugens ( flipflops)
170 10.9 Guarded blocks 171 10.10 Andere 171 10.11 IEEE 172 10.11.1 std logic 1164 189 10.11.2 std logic arith 194 10.11.3 std logic signed 195 10.11.4 std logic unsigned 197 10.12 Enkele voorbeelden 197 10.12.1 Een 4 bit comparator 197 10.12.2 Een flipflop 197 10.12.3 Een latch 198 10.12.4 Een resetbaar 8 bit register 198 10.12.5 Een 4 bit shift register 199 10.12.6 Een eenvoudig ALU 200 10.12.7 Een eenvoudig FSM 201 10.12.8 Een upcounter (met integers) 201 10.12.9 Binnenverlichting van een wagen 203 10.12.10 Een drankautomaat 205 10.12.11 Sturing van de lichten van een kruispunt 206 10.12.12 Voorbeeld van een Mealy architectuur 207 10.13 ABEL 208 Hoofdstuk 11 : Asynchrone sequentiële systemen 208 11.1 Inleiding 209 11.2 Consequenties van de keuze voor asynchroon ontwerpen 210 11.3 Het voorkomen van hazards in de toestandsbepaling ten gevolge van input-variaties 211 11.4 Het voorkomen van hazards in de bepaling van de volgende toestand 212 11.5 Inventarisatie van de extra eisen ten behoeve van asynchroon ontwerpen 214 11.6 De draairichtingsdetector 220 11.7 Een seriële pariteit generator 221 11.8 Een bus arbiter 223 11.9 De edge triggered D flipflop 229 11.10 Toestandsminimalisatie (Moore) 233 11.11 Toestandsminimalisatie (Mealy) 236 Hoofdstuk 12 : Analoog digitaal en digitaal analoog convertoren 237 12.1 Begrippen 240 12.2 Nyquist 242 12.3 Digitaal analoog convertoren 242 12.3.1 Inleiding 242 12.3.2 Op basis van spanningen 243 12.3.3 Op basis van stromen 244 12.3.3.1 Met gewogen weerstanden 245 12.3.3.2 R/2R netwerk 246 12.3.3.3 Stroomspiegels
246 12.3.4 Op basis van switched capacitors 247 12.4 Analoog digitaal convertoren 247 12.4.1 ADC op basis van up counter 248 12.4.2 Successive approximation ADC 249 12.4.3 Flash ADC 250 12.4.4 Pipeline ADC 252 12.4.5 Dual slope ADC 253 12.4.6 Sigma delta ADC
Voorwoord Deze basiscursus digitale elektronica gaat over de beginselen van combinatorische en sequentiële schakelingen. In het eerste deel, dat over combinatorische logica gaat, worden Boolse functies besproken en de verschillende manieren om ze te vereenvoudigen, met natuurlijk de Karnaughkaart voorop. De verschillende logische families, waaronder de TTL reeksen en CMOS, en hun kenmerken worden eveneens besproken. In hoofdstuk 5 gaat het over de meer praktische kant van het gebruik van logische poorten, waaronder de principes van dender. In hoofdstuk 6 tenslotte gat het over combinatorische bouwblokken die men als dusdanig kan kopen. We denken hierbij aan multiplexers, demultiplexers, decoders, adders en programmeerbare bouwstenen. In het tweede deel, dat over sequentiële logica gaat, bespreken we eerst de basisbouwsteen: de flipflop met al zijn varianten. Deze gaan we dan toepassen in de studie van de verschillende soorten tellers. Uiteindelijk gaat hoofdstuk 9 over de synthese van een FSM, waarbij een teller duidelijk een speciaal soort FSM is. In dit hoofdstuk worden de principes duidelijk gemaakt aan de hand van vele voorbeelden. Ook de (theoretische) verschillen tussen Moore en Mealy worden besproken. In het derde deel, dat over hardware description languages gaat (of programmeertalen om schakelingen te beschrijven), bespreken we VHDL Deze taal wordt zeer veel gebruikt in de industrie. Wanneer we dan de moderne technieken kennen om synchrone machines te ontwerpen, gaan we in het vierde deel de asynchrone sequentiële machines bestuderen. In het vijfde deel, dat over ADC en DAC gaat, bespreken we de principes van analoogdigitaal en digitaal-analoog omzetting. ir. Patrick Colleman. Boortmeerbeek, 5 juli 2001