Digitaltechnik
BiereKroening
Weissenbacher • Wintersteiger

(vergrössern)

1 Kombinatorische Schaltungen
   1.1 Die Boole'sche Algebra
   1.1.1 Syntax und Semantik
   1.1.2 Rechenregeln der Boole'schen Algebra
   1.2 Implementierung Boole'scher Funktionen
   1.2.1 Gatter und Bäume
   1.2.2 Zweistufige Logik
   1.3 Minimierung von Schaltungen
   1.3.1 Karnaugh-Diagramme
   1.3.2 Primimplikanten und Quine-McCluskey
   1.3.3 Vereinfachung mit Don't-cares
   1.3.4 Mehrstufige Logik
   1.4 Kombinatorische Schaltungen in Verilog
   1.5 Aufgaben
   1.6 Literatur

2 Technologie
   2.1 Abstrakte Schalter
   2.2 Schalter in Hardware
   2.2.1 Dioden und Transistoren
   2.2.2 Feldeffekt-Transistoren
   2.2.3 CMOS
   2.2.4 Gatter
   2.2.5 Multiplexer
   2.2.6 Threestate-Buffer
   2.2.7 Störabstand
   2.3 Fanout
   2.4 Schaltzeiten
   2.4.1 Transitionszeit und Propagierungsverzögerung
   2.4.2 Der längste Pfad
   2.4.3 Hazards
   2.5 Latches
   2.6 Flipflops und Clocks
   2.7 Metastabile Zustände
   2.7.1 Vermeidung
   2.7.2 Fundamental Mode
   2.8 FPGAs
   2.8.1 Anwendung
   2.8.2 Logik-Blöcke
   2.8.3 Das Verbindungsnetzwerk
   2.8.4 Input und Output
   2.8.5 Zusatzkomponenten
   2.9 Aufgaben
   2.10 Literatur

3 Sequenzielle Schaltungen
   3.1 Transitionssysteme
   3.2 Synchroner sequenzieller Entwurf
   3.2.1 Die Implementierung von Zustandsmaschinen
   3.2.2 Ausgabesignale
   3.2.3 Komposition von Zustandsmaschinen
   3.3 Zustandsmaschinen in Verilog
   3.4 Timing-Analyse
   3.5 Aufgaben

4 Arithmetik
   4.1 Zahlendarstellungen
   4.1.1 Zahlensysteme
   4.1.2 Darstellung negativer Zahlen: Komplemente
   4.1.3 Gleitkommazahlen
   4.1.4 Addition von Zahlen in Komplementdarstellung
   4.2 Volladdierer
   4.3 Ripple-Carry-Addierer
   4.4 Carry-Look-Ahead Addierer
   4.4.1 Aufbau
   4.4.2 Kosten des Carry-Look-Ahead-Addierers
   4.5 Carry-Save-Addierer
   4.6 Multiplizierer
   4.6.1 Booth Recoding
   4.7 Aufgaben
   4.8 Literatur

5 Verifikation
   5.1 Motivation
   5.2 Spezifikation
   5.2.1 Formal vs. informal
   5.2.2 System Verilog Assertions
   5.3 Fehlersuche mit Simulation
   5.4 Event-Queue-Semantik
   5.5 Formale Methoden
   5.5.1 Combinational Equivalence Checking
   5.5.2 Formale Beweise
   5.5.3 Model Checking
   5.6 Aufgaben
   5.7 Literatur

6 Speicherelemente
   6.1 Adressen
   6.2 Read-Only Memory -- ROM
   6.3 Random Access Memory -- RAM
   6.3.1 Statisches RAM
   6.3.2 Dynamisches RAM
   6.4 Datenbusse
   6.4.1 Speicherbus-Protokolle
   6.4.2 Row- und Column-Address-Strobe
   6.5 Caches
   6.5.1 Bus-Bursts
   6.6 Aufgaben
   6.7 Literatur

7 Ein einfacher CISC-Prozessor
   7.1 Die Y86 Instruction Set Architecture
   7.1.1 Befehle, Register und Speicher
   7.1.2 Ein kleines Assembler-Beispiel
   7.2 Der Y86 in C++
   7.2.1 Die Abstraktionshierarchie
   7.2.2 Die Klasse cpu_Y86t
   7.3 Eine sequenzielle Y86-Implementierung
   7.3.1 Aufteilung in Befehlsphasen
   7.3.2 Die Kontrolleinheit der sequenziellen Maschine
   7.3.3 Die Hardware der einzelnen Stufen
   7.4 Eine Y86-Implementierung mit Pipeline
   7.4.1 Fließbänder für Instruktionen
   7.4.2 Ressourcenkonflikte
   7.4.3 Daten- und Kontrollabhängigkeiten
   7.5 Aufgaben
   7.6 Literatur