Technische Informatik II (für Bachelor) Vorlesung 4: Implementierung kombinatorischer Schaltungen 03.05.2008 , v7 Themen: 1. 2. 3. Schaltnetzrealisierung Praktischer Schaltungsentwurf, PLA, PAL FI, FO, Hazards Quellen: Zum Teil aus den Unterlagen „Digitale Systeme“, Prof. Schimmler, Prof. Loogen IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 1 Praktische Grundfunktionen Realisierung verwendet DNF oder KNF (SOP, POS), also hauptsächlich AND- und OR- Funktionen. In der Praxis NAND und NOR (Technologie und Ressourcenabhängig). IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 2 Praktische Grundfunktionen Konjunktion (AND) y = x 0 x1 x2 y = x 0 + x1 + x 2 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 3 Praktische Grundfunktionen Disjunktion (ODER) y = x 0 + x1 + x 2 y = x 0 x1 x 2 IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 4 Realisierung einer Funktion in DNF mit NAND Gattern (Beispiel) NAND Grundfunktion ab + ab Funktion in DNF IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 5 Realisierung einer Funktion in KNF mit NOR Gattern (Beispiel) NOR Grundfunktion (a+b) · (a+b) Funktion in KNF IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 6 Funktion eines Dekodierers (Decoder) Decoder-Verhalten IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 7 Realisierung eines Dekodierers (Decoder) X 0 x1 x2 X 0 x1 x2 Realisierung IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 8 Funktion eines Multiplexers e0 … y eN-1 x0 Xn-1 N = 2n MUX-Verhalten Einer aus vielen Eingängen wird nach Ausgang y durchgeschaltet IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 9 Funktion eines De-Multiplexers y0 e … yN-1 x0 Xn-1 N = 2n DEMUX-Verhalten Ein Eingang wird auf einer aus vielen Ausgänge durchgeschaltet IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 10 Funktion eines Vergleichers Bit-Vergleicher Realisierung IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 11 Arithmetische Grundfunktionen Computer-Arithmetik In diesem Abschnitt sollen einige grundlegende Techniken vorgestellt werden, mit denen in Computern arithmetische Operationen ausgeführt werden. Das dabei erworbene Wissen werden wir später in den Abschnitten über Schaltwerke, ALU-Aufbau und Rechnerarchitektur vertiefen. Addition Wir kennen bereits einen Volladdierer. Es ist ein Schaltnetz mit drei Eingängen a, b, c in und zwei Ausgängen s und cout. Der Volladdierer ist in der Lage, drei Bits zu addieren und das Ergebnis als 2-Bit-Zahl auszugeben. Das Ergebnis der Addition liegt zwischen 0 und 3 und ist daher in zwei Bits zu codieren. Wir sehen hier das Schaltbild eines Volladdierers und im folgenden seine Wertetabelle: a b cin VA cout s IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 12 Voll-Addierer (VA) a b cin s cout 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 1 Häufig realisiert man einen Volladdierer nicht in DMF sondern in einer mehrstufigen Form, wobei man sogenannte Halbaddierer benutzt. Halbaddierer sind Schaltnetze, die zwei Bits addieren können (und demzufolge ein Ergebnis im Bereich 0 bis 2 produzieren). Durch Zusammenschalten von zwei Halbaddierern und einem Oder-Gatter erhält man die Funktionalität eines Volladdierers. Wir sehen im folgenden das Schaltsymbol eines Halbaddierers, seine Wertetabelle und den Aufbau eines Volladdierers aus Halbaddierern. IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 13 Halb-Addierer Zwei Zahlen A und B, je 1 Bit werden addiert, um die Summe S und den Übertrag C zu berechnen: A HA B S C Eingang A B Ausgang S C 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 S =A B + A B C = AB A B S A B A B IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) C S A B C Seite 14 Volladdierer aus zwei Halbaddierern a b cin HA HA cout s IDA, Technische Universität Braunschweig a b HA S A B C cout s Volladdierer aus zwei Halbaddierern und einem Oder-Gatter Technische Informatik II (INF 1211) Seite 15 Nun wollen wir aber in der Regel längere Operanden addieren, zum Beispiel die Binärzahlen A= a n1an-2...a1a0 und B= bn-1bn-2...b1b0 . Natürlich könnte man ein dafür erforderliches Addierwerk in DNF oder DMF aufbauen. Dies bringt aber eine Reihe von Problemen mit sich: • Für jedes n ergibt sich eine völlig andere Realisierung. • Das Fan-in und das Fan-out an den Gattern wächst polynomial mit n. Insbesondere wegen dieser zweiten Eigenschaft ist der zweistufige Aufbau z.B. in DMF nicht sinnvoll. Stattdessen verwendet man im einfachsten Fall eine Kette von Volladdierern, die im Grunde genau das machen, was wir von der Addition in der „Schulmethode“ kennen. Man beginnt mit den LSBs (least significant bits), addiert diese, erzeugt einen Übertrag, mit dessen Kenntnis man das nächste Bit bearbeiten kann, usw. Ein entsprechendes Schaltnetz sieht dann so aus: an-1bn-1cinn-1 an-2bn-2cinn-2 VA coutn-1 sn-1 VA coutn-2 sn-2 =1 IDA, Technische Universität Braunschweig a2 b2 cin2 a1 b1 cin1 a0 b0 cin0 = 0 VA VA VA cout2 s2 cout1 s1 cout0 s0 Overflow 2-Komplement (Überlauf) Technische Informatik II (INF 1211) Seite 16 Programmierbare Grundstrukturen Produkt Terme OR-Verknüpfung DNF-Implementierung in 2 stufiger AND/OR/NOT Logik IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 17 ROM-Programmierung ROM: Read Only Memory (Festwert-Speicher) Abstrakte ROM-Programmierung IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 18 PLA-Programmierung PLA: Programmable Logic Array Abstrakte PLA-Programmierung IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 19 PLA-Programmierung PLA: Programmable Logic Array Abstrakte PLA-Programmierung IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 20 Praktische Betrachtungen zum Schaltungsentwurf Fan In FI : Eingangslastfaktor Fan Out FO : Ausgangslastfaktor Ausgangs-Belastbarkeit FO > 8 Da 8xFI als Last vorhanden IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 21 Praktische Betrachtungen zum Schaltungsentwurf Verzögerungszeiten tHL, tLH Spannung Zeit Ausgang (ideal Verhalten) (Real-Verhalten) IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 22 Praktische Betrachtungen zum Schaltungsentwurf Verzögerungszeiten tHL, tLH Berechnungsbeispiel FI=4 Spannung L cm Zeit tu Verzögerungsbeitrag Pro Last (Real-Verhalten) Verzögerungszeit tHL= ( 4 x tu + k · L + .. ) ns IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) K Verzögerungsbeitrag Pro cm Seite 23 Praktische Betrachtungen zum Schaltungsentwurf statischer und dynamischer Hazard Spannung statischer 1 Hazard Zeit Spannung statischer 0 Hazard Zeit (statischer Hazard) Spannung dynamischer 0-1 Hazard Zeit Spannung dynamischer 1-0 Hazard Zeit (dynamischer Hazard) IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 24 Praktische Betrachtungen zum Schaltungsentwurf Funktions-Hazard Hazard-frei da - Unit-Distance Sprung (nur ein Bit wechselt!) 0 1 4 5 13 Spannung Spannung statischer 0 Hazard Zeit statischer 1 Hazard Zeit Die Reihenfolge der Belegungswechsel ist entscheiden, ob ein Hazards auftritt oder nicht! IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 25 Praktische Betrachtungen zum Schaltungsentwurf Struktur-Hazards Wechsel von x15 zu x7 Hazards Beseitigung: X3 durch den Inverter verzögert, dadurch beide UND-Gatter kurz auf 0 => y0 kommt kurz auf 0 Vermeiden eines struktur Hazards durch redundante Terme IDA, Technische Universität Braunschweig Technische Informatik II (INF 1211) Seite 26