Vorwort | 5 |
Inhaltsverzeichnis | 7 |
Notation | 10 |
1 Schaltungsentwurf mit Hardwarebeschreibungssprachen | 11 |
1.1 Vom Schaltplan zur Schaltungssynthese | 11 |
1.2 Logische Operationen in digitalen Schaltungen | 16 |
1.3 Dualarithmetik | 20 |
1.4 Strukturbeschreibung digitaler Systeme | 24 |
1.5 Hardwarebeschreibungssprache VERILOG | 25 |
1.6 Hardwarebeschreibungssprache VHDL | 28 |
1.7 Registrierung und Download für System ISE WebPACK | 34 |
2 VHDL-Beschreibung kombinatorischer Schaltungen | 35 |
2.1 Logik-Operatoren in VHDL | 35 |
2.2 Verhaltensbeschreibung in VHDL | 36 |
2.3 Alternative VHDL-Beschreibungen kombinatorischer Schaltungen | 42 |
2.4 Vektor-Operationen | 45 |
2.5 VHDL-Modelle für kombinatorische Grundschaltungen | 48 |
2.5.1 Multiplexer | 48 |
2.5.2 Codierer, Decoder und Code-Wandler | 50 |
2.5.3 Komparatoren | 51 |
2.5.4 Addierschaltungen | 53 |
2.5.5 Barrelshifter | 55 |
2.5.6 Tristate-Treiber | 59 |
2.6 Logik-Elemente in programmierbaren Bauelementen | 61 |
2.7 Zusammengesetzte kombinatorische Schaltungen | 63 |
2.8 VHDL-Testbench | 66 |
2.9 Einführung in das VHDL-Entwurfssystem XILINX ISE | 69 |
3 VHDL-Beschreibung sequenzieller Schaltungen | 79 |
3.1 Speicherelemente-Typen | 79 |
3.1.1 Latch-Speicherelemente | 79 |
3.1.2 Taktflankengesteuerte D-Flipflops | 81 |
3.1.3 Funktions-Flipflops | 85 |
3.2 Speicherelemente in programmierbaren Logikbausteinen | 88 |
3.3 Synchrone sequenzielle Schaltungen | 89 |
3.4 Funktionaler Entwurf sequenzieller Schaltungen | 94 |
3.5 Automatenbeschreibung sequenzieller Schaltungen | 99 |
3.5.1 Automatentypen | 99 |
3.5.2 Automaten-Entwurf | 102 |
3.5.3 VHDL-Beschreibung von Zustandsautomaten | 103 |
3.6 Asynchrone sequenzielle Schaltungen | 105 |
3.7 Synthese sequenzieller Schaltungen mit dem Entwurfssystem ISE | 107 |
4 Zähler-Entwurf | 111 |
4.1 Schaltungssynthese für Dualzähler | 111 |
4.2 Zusammengesetzte Zähler | 121 |
4.3 Dezimalzähler | 122 |
4.4 Entwurf schneller Zähler | 126 |
4.5 Grundschaltungen mit Zählerelementen | 130 |
4.6 Frequenz-Vervielfachung mit PLL-Schaltungen | 134 |
4.7 Takt-Management mit DLL-Schaltungen | 137 |
4.8 Schaltungsentwurf mit Schaltbild im System ISE | 139 |
5 Schieberegister | 143 |
5.1 VHDL-Modelle für Schieberegister | 143 |
5.2 Ringzähler | 146 |
5.3 Automaten-Entwurf mit Schieberegistern | 147 |
5.4 LFSR-Zähler | 151 |
5.5 Scrambler | 154 |
5.6 CRC-Berechnung | 158 |
5.7 Implementierung von CPLD-Bausteinen im System ISE | 161 |
6 Schaltungen mit Speicherblöcken | 165 |
6.1 VHDL-Modelle für Speicherblöcke | 165 |
6.2 Verteilte Speicherblöcke in FPGAs | 168 |
6.3 Blockspeicherelemente in FPGAs | 172 |
6.4 ROM-Speicher | 176 |
6.5 Registerschaltungen | 179 |
6.6 Schieberegister mit Speicherblöcken | 187 |
6.7 FIFO-Speicher | 191 |
6.8 CAM-Speicher | 197 |
6.9 Implementierung von FPGA-Bausteinen im System ISE | 202 |
7 Arithmetik-Schaltungen | 205 |
7.1 Schnelle Addierschaltungen | 205 |
7.2 Multiplikations-Algorithmen | 207 |
7.3 Sequenzielle Multiplikations-Schaltungen | 210 |
7.4 Divisions-Algorithmen | 217 |
7.5 Sequenzielle Divisions-Schaltungen | 219 |
7.6 Konstanten-Multiplizierer | 223 |
7.7 Gleitpunktarithmetik-Baugruppen | 226 |
7.7.1 Gleitpunktdatenformate | 226 |
7.7.2 Gleitpunkt-Multiplikation | 227 |
7.7.3 Gleitpunkt-Division | 231 |
7.7.4 Gleitpunkt-Addition | 233 |
7.8 Konvertierung der Datenformate | 238 |
7.8.1 Konvertierung zwischen Integer- und Gleitpunkt-Darstellungen | 238 |
7.8.2 Konvertierung zwischen Gleitpunkt- und Integer-Darstellungen | 241 |
7.9 Core-Generator im System ISE | 242 |
8 Peripherieschaltungen für Mikroprozessoren | 247 |
8.1 Prozessorschnittstellen | 247 |
8.2 BUS-Systeme | 252 |
8.3 Register-Interface | 258 |
8.4 FIFO-Interface | 263 |
8.5 Timer | 265 |
8.6 Echtzeituhr | 271 |
8.6.1 Dezimalzählermodule | 271 |
8.6.2 Strukturbeschreibung | 274 |
8.7 100-Jahres-Kalender | 277 |
8.8 Konfigurationsverfahren für FPGAs | 281 |
Literaturverzeichnis | 283 |
Sachwortverzeichnis | 286 |