Suchen und Finden
Service
Infos und Kontakt
3 Aufbau eines Rechenwerks (S. 79-80)
In diesem Kapitel zeigen wir, wie sich die arithmetischen und die logischen Operationen eines Mikroprozessors in Hardware realisieren lassen. Da wir dabei konstruktiv vorgehen wollen, werden wir die Schaltungen, die wir erstellen, mit Hilfe der Sprache Verilog [Lee02, Pal03] strukturell beschreiben. Dies hat den Vorteil, dass wir die Funktionsweise der von uns erstellten Schaltungen mit Hilfe eines Simulators überprüfen können. Verilog ist eine so genannte Hardware-Beschreibungs-Sprache: Mit Hilfe von Verilog können Schaltungen auf verschiedenen Abstraktionsebenen beschrieben werden. Im Laufe dieser Vorlesung werden wir Schaltungen auf drei verschiedenen Ebenen mit Verilog beschreiben:
1. Strukturell, indem wir genau angeben, welche logischen Gatter wir verwenden und wie wir diese Gatter untereinander verbinden. Eine strukturell beschriebene Schaltung kann unmittelbar in einen Schaltplan umgesetzt werden.
2. Auf Register-Transfer-Ebene (RTL-Ebene). Hier können wir die Funktion einer Schaltung abstrakt mit Hilfe von Gleichungen de.nieren. Mit Hilfe eines so genannten Synthese-Compilers kann aus einer Verilog-Schaltungsbeschreibung, die auf RTL-Ebene vorliegt, automatisch ein Schaltplan generiert werden.
3. Verhaltensbasiert. Auf dieser Ebene funktioniert Verilog fast wie eine Programmiersprache. Der wesentliche Unterschied zu konventionellen Programmiersprachen besteht darin, dass verschiedene Module in Verilog gleichzeitig laufen, so wie das beispielsweise bei verschiedenen Threads in Java auch der Fall ist.
Eine verhaltensbasierte Schaltungsbeschreibung dient zunächst nur dazu, das Verhalten einer Schaltung abstrakt zu beschreiben und auf dieser Ebene testen zu können. Um eine auf diese Art beschriebene Schaltung zu implementieren wird die verhaltensbasierte Schaltungsbeschreibung zu einer Schaltungsbeschreibung auf RTL-Ebene verfeinert.
Moderne Synthese-Compiler sind mittlerweile in der Lage, für eingeschränkte Klassen von verhaltensbasierten Schaltungsbeschreibungen unmittelbar einen Schaltplan zu generieren.
3.1 Addition von Bits
Wir beginnen damit, dass wir eine digitale elektronische Schaltung entwickeln, mit deren Hilfe Zahlen im Zweier-System addiert werden können. Dazu entwickeln wir zunächst einmal eine Schaltung, die zwei Bits addieren kann. Abbildung 3.1 zeigt einen Halbaddierer. Die Schaltung hat zwei Eingänge A und B und zwei Ausgänge Sum und Carry.
Die Schaltung addiert die Werte der beiden Eingänge A und B. Da die beiden Eingänge nur die Werte 0 und 1 annehmen können, liegt das Ergebnis in der Menge {0, 1, 2}. Um das Ergebnis im Zweier-System darstellen zu können, sind zwei Bits notwendig. Das unterste Bit trägt den Namen Sum, es wird genau dann auf 1 gesetzt, wenn ein Eingang den Wert 0 und der andere Eingang den Wert 1 hat. Ein logisches Gatter, das dies leistet, ist das xor-Gatter. Das oberste Bit trägt den Namen Carry (Deutsch: übertrag) und wird genau dann auf 1 gesetzt, wenn beide Eingänge den Wert 1 haben. Das oberste Bit kann mithin durch ein and-Gatter berechnet werden.
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.; Ersparnis im Vergleich zur Printversion




















