Christian Siemers, Axel Sikora
Taschenbuch Digitaltechnik
Vorwort zur 1. Auflage
8
Inhaltsverzeichnis
10
1 Grundlagen
20
1.1 Einführung in die Digitaltechnik
20
1.1.1 Analoge und digitale Signale
21
1.1.2 Umsetzung zwischen analogen und digitalen Werten
23
1.1.3 Binäre Zustände
24
1.1.4 Zeichen, Alphabet und Code
24
1.1.5 Mehrwertige Logik
25
1.1.6 Programmierbare digitale Systeme
25
1.2 Klassifizierung von digitalen Schaltungen
25
1.2.1 Zeitunabhängige Schaltungen
26
1.2.2 Zeitabhängige Schaltungen
26
1.3 Zielfunktionen
27
1.3.1 Zielfunktionen in der Rechnertechnik
28
1.3.2 Zielfunktionen in der Kommunikationstechnik
28
1.3.3 Weitere Zielfunktionen
29
1.4 Einheiten und Größen der Digitaltechnik
29
2 Halbleitertechnologie und Schaltungstechnik
31
2.1 Einführung
31
2.2 Technologische Grundlagen
31
2.2.1 Eigenschaften von Atomen im Verbund
31
2.2.2 Eigenschaften von Halbleitern
34
2.2.3 Herstellung von Halbleitern
35
2.2.4 Skalierung von Halbleiterbauelementen
37
2.2.5 Weiterentwicklung von Halbleitern
38
2.3 Bauelemente
40
2.3.1 Bipolardioden
40
2.3.2 Bipolartransistoren
42
2.3.3 Feldeffekttransistoren
44
2.3.3.1 Isolierschicht-FET
44
2.3.3.2 Sperrschichtisolierte FET
47
2.3.4 CMOS-Technologien
48
2.3.5 Metallisierungssysteme
49
2.4 Schaltungstechniken
50
2.4.1 Überblick
50
2.4.2 TTL
51
2.4.3 ECL
53
2.4.4 NMOS
53
2.4.5 CMOS
55
2.4.5.1 Grundaufbau
55
2.4.5.2 Zeitverhalten
58
2.4.5.3 Transmission-Gates
59
2.4.6 BiCMOS
59
2.4.7 Ausgangsschaltungen
60
2.4.8 Schaltkreisfamilien
62
3 Zahlensysteme und Codierung
63
3.1 Zahlensysteme
63
3.1.1 Additionssysteme
63
3.1.2 Stellenwertsysteme
64
3.1.3 Zahlensystemkonvertierung
64
3.2 Binäre Codierung von Zahlen und Zeichen
64
3.2.1 Darstellung positiver ganzer Zahlen
64
3.2.2 Darstellung negativer ganzer Zahlen
65
3.2.3 Darstellung rationaler Zahlen
68
3.2.3.1 Festkommadarstellung
68
3.2.3.2 Gleitkommadarstellung
69
3.2.4 Tetraden-Codes
72
3.2.5 Zeichencodes
73
3.2.5.1 ASCII
73
3.2.5.2 ISO 8859
74
3.2.5.3 Unicode
75
3.2.5.4 Universal Transformation Format (UTF)
75
3.3 Grundbegriffe der Codierungstheorie
76
3.4 Quellencodierung
79
3.4.1 Grenzen der Kompression
79
3.4.1.1 Informationsgehalt und Entropie
79
3.4.1.2 Theorem von Shannon
80
3.4.2 Verlustfreie Kompression
82
3.4.2.1 Fano-Codierung
83
3.4.2.2 Huffman-Codierung
84
3.4.2.3 Lauflängencodierung
85
3.4.2.4 Lempel-Ziv-Codierung
85
3.4.2.5 Arithmetische Codierung
86
3.4.3 Verlustbehaftete Kompression
87
3.4.3.1 Sprachkompression
88
3.4.3.2 Bildkompression
88
3.4.3.3 Audio- und Videokompression
89
3.5 Kanalcodierung
89
3.5.1 Hamming- und Code-Distanz
90
3.5.2 Fehlererkennende Codes
90
3.5.2.1 Paritäts-Codes
91
3.5.2.2 CRC-Codes
91
3.5.3 Fehlerkorrigierende Codes
94
3.5.3.1 Hamming-Code
94
3.5.3.2 Matrix-Codes
96
3.5.4 Grenzen der Datenübertragung
96
3.6 Leitungscodierung
98
3.6.1 Signalbildung
98
3.6.2 Modulation
100
4 Boole'sche Algebra
101
4.1 Grundlagen
101
4.1.1 Elementare Boole'sche Operatoren
101
4.1.1.1 Null- und Eins-Theoreme
102
4.1.1.2 Idempotenz
102
4.1.1.3 Komplement
102
4.1.2 Boole'sche Funktionen
102
4.1.2.1 Funktionen mit einem Eingang und Ausgang
103
4.1.2.2 Funktionen mit zwei Eingängen
103
4.1.2.3 Boole'sche Funktionen mehrerer Variabler
105
4.1.3 Rechenregeln der Schaltalgebra
106
4.1.3.1 Kommutativgesetze
106
4.1.3.2 Assoziativgesetze
106
4.1.3.3 Distributivgesetze
106
4.1.3.4 Kürzungsregeln
106
4.1.3.5 De Morgan'sche Gesetze
107
4.1.3.6 Dualitätsprinzip, Shannon'sches Gesetz
107
4.1.4 Vollständige Logiksysteme
108
4.1.4.1 Vollständiges System aus UND, ODER, NICHT
108
4.1.4.2 Vollständige Systeme mit NAND- oder mit NOR-Operator
109
4.2 Normalformen
109
4.2.1 Disjunktive Normalform (DNF)
109
4.2.1.1 Minterm
109
4.2.1.2 DNF-Beschreibung Boole'scher Funktionen
109
4.2.2 Konjunktive Normalform (KNF)
110
4.2.2.1 Maxterm
110
4.2.2.2 KNF-Beschreibung Boole'scher Funktionen
111
4.2.3 Vertauschen der UND/ODER-Operatoren
111
4.3 Minimieren Boole'scher Funktionen
111
4.3.1 Minimierungsverfahren
112
4.3.2 KV-Diagramm
112
4.3.2.1 KV-Diagramm für zwei Eingangsvariable
112
4.3.2.2 KV-Diagramm für drei Eingangsvariable
113
4.3.2.3 KV-Diagramme mit bis zu sechs Eingangsvariablen
114
4.3.2.4 Implikanten
114
4.3.2.5 Minimieren Boole'scher Funktionen
115
4.3.3 Ausnutzen von Redundanzen
117
4.3.4 Verfahren von Quine und Mc Cluskey
117
4.4 Funktionszerlegung
119
4.4.1 Disjunkte Zerlegung
119
4.4.2 Iterative Zerlegung
120
4.4.3 Shannon-Zerlegung
120
4.4.4 Geordnete binäre Entscheidungsgraphen
122
5 Kombinatorische Schaltungen
124
5.1 Wichtige Grundschaltungen
124
5.1.1 Multiplexer
124
5.1.1.1 Funktionsweise eines Multiplexers
125
5.1.1.2 Schaltsymbol
125
5.1.1.3 Realisierung Boole'scher Funktionen
126
5.1.2 Demultiplexer
126
5.1.2.1 Funktionsweise eines Demultiplexers
126
5.1.2.2 Schaltsymbol
127
5.1.2.3 Realisierung Boole'scher Funktionen
127
5.1.3 Code-Umsetzer
128
5.1.3.1 Prioritäts-Encoder
128
5.1.3.2 Binär/Gray-Code-Umsetzer
129
5.1.4 Addition und Subtraktion von Zahlen
129
5.1.4.1 Addition einzelner Bits
129
5.1.4.2 Addition positiver Festkommazahlen
130
5.1.4.3 Addition von 2er-Komplementzahlen
131
5.1.4.4 Subtraktion von Festkommazahlen
131
5.1.4.5 Rechenwerk zur Addition und Subtraktion
132
5.1.4.6 Beschleunigung der Addition
133
5.2 Hazards
134
5.2.1 Entstehung von Hazards
135
5.2.2 Eliminieren von Hazards
136
5.3 Schaltungen mit externer asynchroner Rückkopplung
136
5.3.1 Gedankliche Auftrennung der Rückkopplungssignale
137
5.3.2 Spezifikation asynchron rückgekoppelter Schaltungen
137
5.3.2.1 Spezifikation mittels Funktionstabelle
137
5.3.2.2 Spezifikation durch Zustandsdiagramm
138
5.3.3 Realisierung asynchron rückgekoppelter Schaltungen
139
6 Sequenzielle Schaltungen
142
6.1 Grundlagen
142
6.1.1 Realisierung von bistabilen Kippstufen (Flipflops)
142
6.1.1.1 Grundlegendes
142
6.1.1.2 Asynchrone Flipflops
143
6.1.1.3 Synchrone Flipflops
144
6.1.2 Zeitverhalten von Flipflops
149
6.1.3 Schmitt-Trigger
151
6.2 Asynchrone Schaltwerke
153
6.3 Synchrone Schaltwerke
154
6.3.1 Endliche Zustandsautomaten
154
6.3.1.1 Übersicht
154
6.3.1.2 Diskretisierung der Zeit
157
6.3.1.3 Entwurf endlicher Zustandsautomaten
157
6.3.1.4 Modellierung endlicher Zustandsautomaten
158
6.3.1.5 Codierung
165
6.3.2 Timing-Bedingungen
165
6.3.2.1 Synchroner Fall
165
6.3.2.2 Taktversatz
166
6.3.2.3 Minimierung des Taktversatzes
168
6.3.3 Pipelining
168
6.3.4 Verlustleistung
169
6.3.5 Hilfsschaltungen
170
6.3.5.1 Realisierung von Multivibratoren (Oszillatoren)
170
6.3.5.2 Realisierung von Reset-Schaltungen
172
6.4 Zähler und Frequenzteiler
172
6.4.1 Asynchrone Zähler
173
6.4.2 Synchrone Zähler
174
6.5 Schieberegister
175
7 Entwurfsverfahren für digitale Schaltungen
178
7.1 Schritte im Entwurfsprozess
180
7.2 Modellierung digitaler Systeme
185
7.2.1 Modelleingabe
186
7.2.1.1 Schaltplaneingabe
186
7.2.1.2 HDL-Modelleingabe
187
7.2.1.3 Grafische Modelleingabe
187
7.2.2 Einfaches Entwurfsbeispiel
188
7.2.2.1 Spezifikation auf algorithmischer Ebene
188
7.2.2.2 Strukturierung auf RT-Ebene
189
7.2.2.3 Verhaltensmodellierung auf RT-Ebene
190
7.2.2.4 Synthese und Implementierung des RT-Modells
192
7.2.2.5 Analyse auf Gatterebene
193
7.2.2.6 Redesign als Ripple-Carry-Addierer
193
7.2.2.7 Gatternetzliste einer CPLD-Implementierung
194
7.2.2.8 Übergang auf die Transistorebene
195
7.3 Simulation
196
7.3.1 Grundlagen der Simulation
196
7.3.1.1 Simulationsarten
197
7.3.1.2 Simulationsmethoden
199
7.3.1.3 Grenzen der Simulation
200
7.3.1.4 Verzögerungsmodelle
201
7.3.2 Ereignisgesteuerte Simulation
203
7.4 Synthese
205
7.4.1 Verhaltenssynthese
207
7.4.2 RT-Synthese
209
7.5 Physikalische Implementierung
210
7.5.1 Translate
211
7.5.2 Technology Mapping und Place & Route
211
7.5.2.1 CPLD Optimierung
211
7.5.2.2 Mehrstufige Logikoptimierung
211
7.5.2.3 Optimierung für SRAM-FPGAs
213
7.5.3 Place & Route
213
7.5.4 Neuere Trends
214
7.6 Verifikation
214
7.6.1 Funktionale Verifikation
215
7.6.1.1 Verifikationssimulation
216
7.6.1.2 Hardware-Emulation
216
7.6.1.3 FPGA-Prototypen
217
7.6.2 Statische Timinganalyse
217
7.6.3 Formale Verifikation
218
7.6.3.1 Logikverifikation
219
7.6.3.2 Verifikation durch Modellprüfung
219
7.7 Entwicklungstrends
220
7.7.1 Hierarchisierung
220
7.7.2 Hardware-Software-Codesign
221
8 Hardware-Modellierung
223
8.1 Hardware-Beschreibungssprachen
223
8.2 VHDL
224
8.2.1 Grundkonzepte von VHDL
225
8.2.1.1 Sprachelemente
225
8.2.1.2 Schnittstellenbeschreibung durch entity, port und generic
230
8.2.1.3 Architekturbeschreibung und lokale Signale
232
8.2.1.4 Datenflussbeschreibung durch nebenläufige Signalzuweisungen
232
8.2.1.5 Verhaltensbeschreibungen durch Prozesse
233
8.2.1.6 Strukturbeschreibung mit Komponenten
238
8.2.1.7 Unterprogramme
240
8.2.1.8 Verwendung von Bibliotheken
241
8.2.1.9 Testumgebungen
243
8.3 VHDL-AMS
244
8.3.1 VHDL-AMS-Konzepte
244
8.3.2 Verhaltensbeschreibungen
246
8.3.3 Strukturmodelle
248
8.4 Verilog im Vergleich zu VHDL
249
8.4.1 Sprachelemente
249
8.4.2 Strukturelle Beschreibung
249
8.4.3 Verhaltensbeschreibung
251
8.5 SystemC
256
8.5.1 Grundkonzepte von SystemC
257
8.5.2 RT-Verhaltensbeschreibungen
258
8.5.3 Strukturbeschreibungen
260
8.5.4 Entwurf einer Testbench
261
8.5.5 Besonderheiten bei der Verwendung von Signalen und Variablen
264
9 Test und Diagnose
265
9.1 Grundlagen
265
9.2 Fehlermodelle und Testmethoden
267
9.2.1 Ausbeutemodelle
267
9.2.2 Fehlermodelle
267
9.3 Testmustererzeugung und Fehlersimulation
270
9.3.1 Schaltungspartitionierung und Fehlerreduktion
271
9.3.2 Fehlersimulation
272
9.3.3 Testbarkeitsmaße und Zufallstests
272
9.3.4 Automatische Testmustererzeugung
273
9.3.5 Diagnostische Tests
273
9.3.6 Testmethoden ohne Haftfehlerannahme
274
9.3.7 Teststrategien und Produktqualität
275
9.4 Prüfgerechter Entwurf
276
9.4.1 Prüfpfadbasierender Entwurf
276
9.4.2 Ad-hoc-Techniken des prüfgerechten Entwurfs
278
9.4.3 Verlustleistung im Testbetrieb
278
9.5 Selbsttest und eingebetteter Test
279
9.5.1 Prüfpfadbasierender Selbsttest
280
9.5.2 Mustererzeugung im Selbsttest
280
9.5.3 Auswertung der Testantworten im Selbsttest
282
9.5.4 Eingebetteter Test
283
9.6 Test von Speicherfeldern
284
9.7 Standardisierung
285
9.7.1 IEEE 1149.1 Boundary Scan (JTAG)
285
9.7.2 Standard zum Test von Systems on Chip (SoC)
287
10 Realisierung digitaler Schaltwerke
289
10.1 Grundlagen
289
10.1.1 Layout
289
10.1.2 Chip-Layout
289
10.1.3 Entwurfsarten
290
10.2 Full-Custom-Entwurf
291
10.3 Semi-Custom-Entwurf
291
10.3.1 Standardzellentwurf
291
10.3.2 Gate-Array
292
10.3.3 Embedded-Array
293
10.4 Systemintegration
293
10.4.1 Anforderungen und Herausforderungen
293
10.4.2 Bereitstellung von Makros
295
10.4.3 Positionierung der Hersteller
296
10.4.4 SoC-Standards
297
10.4.5 Produktbeispiele von Makros
297
10.4.5.1 Voraussetzungen
297
10.4.5.2 Speicher
297
10.4.5.3 Prozessorkerne
298
10.4.5.4 Kommunikationscontroller
298
10.4.5.5 Schnittstellen
299
10.4.5.6 Proprietäre Bibliotheken
299
10.4.6 Erweiterungen
299
11 Digitale Halbleiterspeicher
300
11.1 Übersicht
300
11.2 Halbleiterspeicher – Einteilung, Strukturen, Kenngrößen
301
11.2.1 Einteilung von Halbleiterspeichern
301
11.2.2 Strukturen von Matrixspeichern
305
11.2.3 Kenngrößen von Halbleiterspeichern
306
11.3 Flüchtige Speicher
308
11.3.1 SRAM
309
11.3.1.1 SRAM-Speicherzelle
309
11.3.1.2 SRAM-Bausteine
310
11.3.2 DRAM
312
11.3.2.1 DRAM-Speicherzelle
312
11.3.2.2 DRAM-Bausteine
313
11.3.2.3 Weiterentwicklung von DRAM-Technologien
316
11.3.3 SDRAM und DDR-RAM
319
11.3.3.1 SDRAM
319
11.3.3.2 Ansätze zur Erhöhung der Datentransferrate
320
11.3.3.3 DDR-RAM
320
11.3.3.4 Rambus DRAM (RDRAM)
321
11.3.4 Kenngrößen von SRAM und DRAM
322
11.3.5 Weiterentwicklungen flüchtiger Speicher
323
11.4 Nichtflüchtige Speicher
324
11.4.1 Maskenprogrammierte ROM
325
11.4.2 PROM
327
11.4.3 EPROM
328
11.4.3.1 EPROM-Speicherzelle
328
11.4.3.2 Programmierung der FAMOS-Speicherzelle
329
11.4.3.3 Lesen einer FAMOS-Speicherzelle
329
11.4.3.4 Löschen einer FAMOS-Zelle
329
11.4.3.5 EPROM-Bausteine
330
11.4.4 EEPROM
330
11.4.4.1 EEPROM-Speicherzellen
330
11.4.4.2 Programmieren von EEPROM-Zellen
331
11.4.4.3 Löschen von EEPROM-Zellen
332
11.4.4.4 Lesen von EEPROM-Zellen
332
11.4.4.5 EEPROM-Baustein
332
11.4.5 Flash-EEPROM
333
11.4.5.1 Flash-EEPROM-Speicherzelle
333
11.4.5.2 Flash-Architekturen
334
11.4.5.3 Flash-Bausteine
336
11.4.5.4 Weiterentwicklungen der Flash-Technologie
337
11.5 NVRAM/NOVRAM
338
11.5.1 Überblick
338
11.5.2 Flüchtige RAM-Speicher mit Energiespeichern
338
11.5.3 RAM-/EEPROM-(Flash-EEPROM-)Architekturen
338
11.5.4 Ferroelectric RAM (FeRAM/FRAM)
339
11.5.5 Magneto-resistives RAM (MRAM)
340
11.5.6 Phase Change RAM (PCRAM, PRAM)
342
11.6 Entwicklungstrends
342
12 Mikroprozessortechnik
344
12.1 Einführung
344
12.1.1 Bestandteile eines Mikrocomputers
345
12.1.2 Gegenstand der Mikroprozessortechnik
347
12.1.3 Historische Entwicklung
347
12.1.4 Differenzierung von Mikroprozessoren
350
12.2 Aufbau und Funktion einfacher Mikroprozessoren
353
12.2.1 Komponenten eines Mikroprozessors
353
12.2.1.1 Register
353
12.2.1.2 ALU
355
12.2.1.3 Steuerwerk
357
12.2.1.4 Adresswerk
358
12.2.1.5 Systembus
359
12.2.2 Ausgewählte Funktionsprinzipien
360
12.2.2.1 Ablauf der Befehlsabarbeitung
360
12.2.2.2 Bussteuerung
362
12.2.2.3 Stackfunktion
365
12.2.2.4 Polling und Interrupt-Steuerung
367
12.2.3 Basis-Architekturen
368
12.2.3.1 Vorbemerkungen
368
12.2.3.2 CISC-Prozessoren
369
12.2.3.3 RISC-Prozessoren
370
12.3 Programmiermodell eines Mikroprozessors
371
12.3.1 Registersatz
371
12.3.2 Speichermodell
373
12.3.3 Befehlssatz
374
12.3.4 Adressierungsarten
375
12.4 Erhöhung der Verarbeitungsleistung
376
12.4.1 Pipelining
377
12.4.2 Cache-Speicher
379
12.4.3 Superskalare Prozessoren
381
12.4.4 Multicore-Prozessoren
383
12.5 Architekturmerkmale eines ausgewählten Mikroprozessors
385
12.6 Trends
389
13 Architekturen programmierbarer Logikbausteine
391
13.1 Programmierbare Logikbausteine
391
13.1.1 Allgemeines PLD-Modell
391
13.1.2 Basisblöcke
393
13.1.2.1 Logikblöcke in Look-Up-Table-Struktur
393
13.1.2.2 Logikblöcke in PAL-Struktur
393
13.1.2.3 Logikblöcke mit Multiplexer
394
13.1.2.4 Speicherfunktion mit Bypass
395
13.1.2.5 Aufbau des konfigurierbaren Routings
395
13.1.3 Input-/Output-Blöcke
396
13.1.3.1 Speicher- und Pufferfunktionen bei I/O
396
13.1.3.2 Elektrische Anpassungen im I/O-Block
397
13.1.4 Programmiertechnologien
398
13.1.4.1 Pass-Transistoren
399
13.1.4.2 Technologien im PLD-Codespeicher
399
13.1.5 Aufbau von Simple- und High-Density-PLDs
401
13.1.5.1 Simple-PLDs
402
13.1.5.2 High-Density-PLDs
402
13.1.6 Klassifizierungen
403
13.1.6.1 Klassifizierung nach Mikroarchitektur
403
13.1.6.2 Klassifizierung nach Programmierbarkeit
404
13.1.6.3 Weiterentwicklungen
405
13.2 Übersicht zu Herstellern von PLDs
406
13.2.1 Programmierbare Logikbausteine
406
13.2.2 Software-definierte Mikroprozessorkerne
407
13.3 Simple Programmable Logic Devices (SPLD)
408
13.3.1 GAL/PAL 16V8
408
13.3.2 GAL/PAL 22V10
410
13.4 Complex Programmable Logic Devices (CPLD)
411
13.4.1 Basisarchitektur
411
13.4.2 Erweiterungen
413
13.4.2.1 Erweiterung der PAL-Struktur
413
13.4.2.2 Integration von SRAM-basierten Datenspeicher
415
13.4.2.3 Hierarchische Organisation des Bausteins
416
13.5 Field-Programmable Gate Arrays (FPGA)
416
13.5.1 Basisarchitektur
416
13.5.2 Erweiterungen
418
13.5.2.1 Zusammenfassung der Look-Up Tables (LUT)
418
13.5.2.2 Integration von SRAM-basierten Datenspeicher
419
13.5.2.3 Integration von Elementen zur arithmetischen Verarbeitung
419
14 Digital/Analog-Umsetzer und Analog/Digital-Umsetzer
420
14.1 Grundlagen der Digitalisierung und Analogisierung
420
14.1.1 Digitale Systeme mit ADC und DAC
420
14.1.2 Abtastung, Quantisierung und Rekonstruktion
422
14.1.3 Weitere Kenngrößen von ADC und DAC
427
14.2 Digital/Analog-Umsetzer (DAC)
428
14.2.1 Grundprinzipien der Digital/Analog-Umsetzung
428
14.2.2 Umsetzer mit Widerstandskettenleitern
429
14.2.3 Umsetzer mit geschalteten Stromquellen
431
14.2.4 Umsetzer mit Pulsweitenmodulator
432
14.2.5 Umsetzer mit Sigma-Delta-Modulation
433
14.2.6 DAC im Signalweg
434
14.2.7 Stand der Technik
435
14.3 Analog/Digital-Umsetzer
435
14.3.1 Grundprinzipien der Analog/Digital-Umsetzung
436
14.3.2 Umsetzer mit Parallelverfahren
438
14.3.3 Parallelumsetzer mit Pipeline
440
14.3.4 Umsetzer mit sukzessiver Approximation
441
14.3.5 Umsetzer mit Integration
443
14.3.6 Umsetzer mit Sigma-Delta-Modulator
445
Abkürzungsverzeichnis
447
Literaturverzeichnis
456
Sachwortverzeichnis
470
© 2009-2024 ciando GmbH