Verständnis vom Aufbau und Funktionsweise von kombinatorischen Logiksystemen als Grundelemente des Datenpfades von RT Systemen
Verständnis vom Entwurf von arithmetischen Funktionsblöcken mit Basiszellen oder Basisblöcken
Aufbau und Funktionsweise von Datenpfadselektoren (für RTL)
Verwendung von Datenpfadselektoren als Programmierbare Digitallogik!
Kombinatorische Logik besteht nur aus den Logikfunktionen und Gattern:
Das Verhalten von Kombinatorischer Logik lässt sich vollständig mit Boolescher Algebra beschreiben → Zeit- und zustandsloses Modell
Technische kombinatorische Logik hat aber ein Zeitmodell durch Signallaufzeiten und Verzögerungen!
Werte aus der Vergangenheit bestimmen den aktuellen Wert der Ausgangsvariable(n) nicht. Im folgenden werden fundamentale Beispiele für Schaltnetze gezeigt.
D.h., ein Schaltnetz oder kombinatorische Logik ist eine logische Schaltung, deren Ausgangsvariable(n) nur von den am Eingang anliegenden Werten, den Eingangsvariablen, abhängt.
Die Zeit, die ein Signal vom Eingang eines Logikgatters oder einer damit aufgebauten Logikschaltung bis zum Ausgang benötigt, nennt man Laufzeit.
Die Laufzeit bei elektronischen Schaltungen resultiert aus der verwendeten Transistortechnologie, und ist bei CMOS-Technologie in der Zeit begründet, um eine (parasitäre) Kapazität bei einem Logikpegelwechsel umzuladen. Insbesondere die Gate-Source Kapazität hat Einfluss auf die Schaltzeit des Transistors.
Jede steuerende Transistorstufe, jede Zuleitung besitzt einen ohmschen (und induktiven) Widerstand, der zusammen mit der technologischen Kapazität C ein RC-Glied bildet.
Eine Ausgangsstufe eines Logikgatters muss die effektive par. Kapazität umladen. Je mehr Logikgattereingänge auf einen Ausgang geschaltet sind, desto größer die belastende Kapazität, und umso größer die Verzögerungszeit (FANIN/FANOUT).
Es findet eine Akkumulation der einzelnen Signallaufzeiten entlang eines Signalpfades statt:
Die gesamte Laufzeit in einem Pfad ist dann:
Die Kombinatorische Logik bildet den RT Datenpfad
Wichtige Komponenten sind u.A.:
Ein Halbaddierer besitzt zwei Eingangsvariablen a und b, und zwei Ausgangsvariablen, die Summe und der Übertrag Carry, mit folgender Funktionstabelle:
Erweiterung eines Halbaddierers durch einen Volladdierer, der eine zusätzliche Eingangsvariable, den Übertrag einer weiteren Addiereinheit, enthält.
Man erhält folgende boolesche Funktion für die Ausgangsvariablen Summe und Übertrag:
Ein Addierer zur Addition zweier N-Bit breiten Bitvektoren lässt sich mit verschiedenen Architekturen aufbauen, die unterschiedliche Eigenschaften besitzen. Alle Architekturen involvieren Volladdierer.
Bei dieser Architektur werden N Volladdierer kaskadiert, wie in folgender Abbildung gezeigt ist.
Dabei findet eine Übertragsignal-Propagierung vom niederwertigsten zum höchstwertigen Bit statt, d.h. die Berechnung des N-ten Bits erfordert die Ergebnisse der vorherigen N-1 Addierer.
Implementiere einen 3-Bit Ripple-Carray Addierer in Retro mit elementaren Gattern (Und, Oder, XOR, Not)
Teste die Schaltung mit einigen exemplarischen Eingangswerten. Wo befindet sich der längste kombinatorische Pfad und wie groß ist die Verzögerungszeit?
Gibt es Hazards?
Der Ripple-Carry-Addierer ist aufgrund der Signallaufzeit langsam, da die gesamte Laufzeit für das höchstwertige Bit den LKP bestimmt.
Jedes Carry-Signal als Eingang für einen Volladdierer hängt nur noch von den primären Eingangssignalen ab.
Nachteil: bei großem N werden große Anzahl von Und-Gattern benötigt. Daher wird meistens ein hierarchischer Aufbau mit Teilkomponenten für den Lookahead Addierer verwendet, mit den Bestandteilen:
Diese Und-Oder-Struktur ist charakteristisch für programmierbare Logikbausteine.
Abbildung auf Adresssignale ai des Multiplexers
Ausgangssignal Q des Multiplexers
Gegeben durch Eingangssignale E