Kleine Formelsammlung für Digitaltechnik Florian Franzmann 24. Februar 2005 Inhaltsverzeichnis 1 Arithmetik 2 1.1 Multiplikation (Skript S. 2-29)........................ 2 2 Flip-Flops 2 2.1 D-Latch (Skript S. 7-47)............................ 2 2.2 RS-Latch (Skript S. 7-46)........................... 2 2.3 T-Latch (Skript S. 6-31)............................ 4 2.4 JK-FlipFlop (Skript S. 6-30,33)........................ 4 3 Automatentheorie 5 3.1 Quine-McClusky (Skript S. 5-25)....................... 6 4 CMOS 8 4.1 Transistoren................................... 8 4.2 Transfer-Gate.................................. 9 5 Kondensator 9 6 Überdeckungsverfahren (Skript S. 5-44) 10 6.1 Petrick...................................... 10 6.2 Michalski.................................... 10 7 Von-Neumann-Maschinen (Skript S. 3-53) 11 7.1 Befehle...................................... 11 7.2 Register..................................... 12 7.3 Steuerleitungen................................. 12 7.4 Wichtige Anweisungen:............................. 13 8 Pipelines (Skript S. 9-39) 13 siflfran@hawo.stw.uni-erlangen.de 1
9 Reflexion (Skript S. 8-38) 13 9.1 Quellenreflexionsfaktor............................. 13 9.2 Abschlußreflexionsfaktor............................ 13 9.3 Spannungsteiler................................. 13 1 Arithmetik 1.1 Multiplikation (Skript S. 2-29) for k = 0 to 7 do C (C) + b k (A) 2 8 C (C)/2 end 2 Flip-Flops 2.1 D-Latch (Skript S. 7-47) D Q C Abbildung 1: D-Latch 2.2 RS-Latch (Skript S. 7-46) C H D Q transparent L Speicher vom Eingang getrennt, Speicher liegt weiter am Ausgang an q ν q ν+1 R S 0 0-0 0 1 0 1 1 0 1 0 1 1 0-2
3 S8 (x + y)y = xy S8 xy + y = x + y S9 (x + y) + z = x + y + z = x + y + z S9 (xy)z = x(yz) = xyz S10 xy + xz = x(y + z) S1 x + 0 = x S1 x 1 = x Identität S2 x + 1 = 1 Eins-Element S2 x 0 = 0 Null-Element S3 x + x = x S3 x x = x Idempotenz S4 x = x Involution S5 x + x = 1 S5 x x = 0 Komplement Kommutativgesetz S6 x + y = y + x S6 xy = yx Absorptionsgesetz S7 x + xy = x S7 x(x + y) = x Assoziativgesetz Distributivgesetz S10 (x + y)(x + z) = x + yz S11 (x + y)(x + z)(y + z) = (x + y)(x + z) Konsens S11 xy + xz + yz = xy + xz S12 (x + y)(x + z) = xz + xy S13 x 1 + x 2 +... + x n = x 1 x 2... x n De Morgan S13 x 1 x 2... x n = x 1 + x 2 +... + x n S14 f(x 1,x 2,...,x n,,+) = f(x 1,x 2,...,x n,+, ) S15 f(x 1,...,x n ) = x 1 f(1,x 2,...,x n ) + x 1 f(0,x 2,...,x n ) S15 f(x 1,...,x n ) = [x 1 + f(0,x 2,...,x n )] [x 1 + f(1,x 2,...,x n )] Tabelle 1: Regeln der Schaltalgebra Kleine Formelsammlung f ur Digitaltechnik
S Q C R Abbildung 2: RS-Latch T Q C Abbildung 3: T-Latch 2.3 T-Latch (Skript S. 6-31) 2.4 JK-FlipFlop (Skript S. 6-30,33) q ν q ν+1 T 0 0 0 0 1 1 1 0 1 1 1 0 J Q C K Abbildung 4: JK-FlipFlop q ν q ν+1 J K 0 0-0 0 1-1 1 0 1-1 1 0-4
A A lambda lambda A E E E delta delta delta Speicher Speicher Speicher (a) Mealy (b) Moore Abbildung 5: Automaten (c) Medwedew 3 Automatentheorie Primimplikant: Term zum Primeinsblock Primimplikat: Term zum Primnullblock Minterm: verundet Maxterm: verodert DNF: Summe von Mintermen KNF: Produkt von Maxtermen Kern: Block, der 1en (0en) enthält, die von keinem anderen Block überdeckt werden. asynchroner Set: Setzen auf 1 asynchroner Reset: Setzen auf 0 5
3.1 Quine-McClusky (Skript S. 5-25) Dezimal Hex Okt Dual 0 0 00 0000 1 1 01 0001 2 2 02 0010 3 3 03 0011 4 4 04 0100 5 5 05 0101 6 6 06 0110 7 7 07 0111 8 8 10 1000 9 9 11 1001 10 A 12 1010 11 C 14 1100 12 B 13 1011 13 D 15 1101 14 E 16 1110 15 F 17 1111 G Hex Okt Dual 0 0 00 0000 1 1 01 0001 2 02 0010 4 04 0100 8 10 1000 2 3 03 0011 5 05 0101 6 06 0110 9 11 1001 A 12 1010 C 14 1100 3 7 07 0111 B 13 1011 D 15 1101 E 16 1110 4 F 17 1111 1. Überführung des Ausdrucks in eine Form bestehend aus und, oder und nicht. 2. Erweiterung auf konjunktive/disjunktive Normalform 3. Ersetzen der Min-/Maxterme durch die zugehörige Belegung. Ermittlung der Belegungsindizes. Falls die Funktion durch Tabelle oder KV-Diagramm gegeben ist: 1. und 2. entfällt 3. vereinfacht sich zur direkten Ermittlung der Belegungsindizes aus Tabelle/Diagramm. 4. Ordnen der Belegungen nach aufsteigendem Gewicht G (G = Zahlt der 1en im Block) 5. Beginne mit G = 0 und vergleiche alle Blöcke vom Gewicht G mit allen Blöcken vom Gewicht G + 1 a) Zusammenfassung zweier Blöcke, die sich nur in einer Position unterscheiden, gemäß der Regel (...,0,...) (...,1,...) = (...,,...). b) Eintragen des neu gebildeteten Blocks in die neue Liste. Die Indizes werden mitgeführt um die Herkunft des Blocks feststellen zu können. 6
c) Abhaken der Blöcke, aus denen der neue hervorgegangen ist. Die neue Liste entsteht bei diesem Vorgehen nach wachsendem Gewicht geordnet. Wiederholung des 5. Schritts mit den Blöcken in der jeweils neuen Liste, bis das Verfahren abbricht, weil keine weitere Liste mehr entsteht. 6. Die nicht abgehakten Blöcke aller Listen sind die Prim-Einsblöcke/Prim-Nullblöcke der Funktion. Zusammenstellen der Primblöcke in einer Liste. Bildung der zugehörigen Primimplikanten/Primimplikate. 7. Anlegen der Überdeckungstabelle Alle Einsstellen/Nullstellen der Funktion (ohne Freistellen) bilden die Spalten, alle Primeinsblöcke/Primnullblöcke die Zeilen der Tabelle. Ein Feld wird markiert, wenn der betreffende Primblock die betreffende Belegung umfaßt. (Indexmenge aus Teil 1 benutzen!). In einer Zusatzspalte stehen die Kosten der Primterme. 8. Aufsuchen der Kernterme Untersuchen der Tabelle nach solchen Spalten, die nur eine Markierung tragen. Jede der jeweils markierten Zeilen gehört zu einem sogenannten Kernterm, d. h. zu einem Primterm, der in jede Minimallösung aufgenommen werden muß. Die Kernterme werden notiert, die betreffenden Zeilen und die darin markierten Spalten gestrichen. Falls jetzt eine Resttabelle vorhanden ist, erfolgt Schritt 9 usw., sonst gleich Schritt 12A 9. Streichen dominierender Spalten Durchstreichen von Spalten, die mindestens in denselben Zeilen ungestrichene Markierungen tragen wie eine andere Spalte (von mehreren gleich markierten Spalten bleibt eine stehen). Entstehen im 8. oder 9. Schritt Zeilen, deren Markierungen sämtlich gestrichen wurden, so kann sie ebenfalls gestrichen werden. 10. Es müssen drei Fälle unterschieden werden man kann a) alle (kosten-)minimalen Lösungen oder b) wenigstens eine (kosten-)minimale Lösung oder c) alle irrendundanten Lösungen suchen Je nach Auswahl führt man folgenden Schritt durch: 7
(a) p-kanal- Transistor (b) n-kanal- Transistor Abbildung 6: MOSFET-Transistoren a) Zeilen, die höchstens in denselben Spalten ungestrichene Markierungen tragen wie eine andere Zeile, werden gestrichen, wenn die andere Zeile billiger ist. b) Wie a, jedoch darf gestrichen werden, wenn die andere Zeile billiger oder gleich billig ist. c) Es darf überhaupt nicht gestrichen werden. 11. Aus der nicht mehr weiter zu vereinfachenden Resttabelle werden gerade so viele (nicht gestrichene) Primterme (Zeilen) ausgewählt, daß die Gesamtheit der zugehörigen Markierungen jede noch ungstrichene Spalte mindestens einmal erfaßt. Im Allgemeinen sind mehrere verschiedene Auswahlen möglich. 12. a) Disjunktive/konjunktive Zusammenfassung der Kernimplikanten und (falls notwendig) b) aller Primterme je einer irrendundanten Auswahl zu je einem logischen Ausdruck für die Schaltfunktion. 13. Bestimmung der Kosten der verschiedenen Ausdrücke. Die Lösung(en) mit den geringsten Kosten sind die Minimallösung(en). 4 CMOS Gatterlaufzeit ist abhängig von Temperatur, Versorgungsspannung und Prozeßtechnologietoleranzen Anstiegszeit t LH, t HL gemessen von 10% bis 90% des Signalhubs Signalübergang t PLH, t PHL gemessen an den 50%-Punkten der Flanken 4.1 Transistoren Pro Eingang fallen zwei Transistoren an, zwei weitere, falls der Ausgang nichtinvertierend ist. 8
Abbildung 7: Transfer-Gate S1 S1 S2 S2 Abbildung 8: Multiplexer als Baum 4.2 Transfer-Gate 5 Kondensator Energie eines Kondensators: E = U2 0 C 2 Dynamische Verlustleistung: P = 1 2 C U2 0 f Aufladungsvorgang eines Kondensators: u = U 0 (1 e t RC ) 9
i = U 0 R e t RC Entladevorgang eines Kondensators: u = U 0 e t RC i = U 0 R e t RC Wirkungsgrad des Ladevorgangs: 50%. Werte für e x : x 4 0.018 3 0.050 2 0.135 1 0.368 0 1 1 2.718 2 7.389 3 20.086 4 54.598 e x 6 Überdeckungsverfahren (Skript S. 5-44) 6.1 Petrick Findet die optimale Lösung des Auswahlproblems 1. Überdeckungstabelle aufstellen 2. Zugehörige DNF aufstellen, ggf. vereinfachen 3. In irredundante Lösungen zerlegen 4. kostenminimale Lösung auswählen 6.2 Michalski 1. W = W = W U = {} 2. Bilde S(w j ) für ein beliebiges w j W : S(w j ) = {u j u j w j,u j U} 3. Entferne aus W alle Elemente w k, die von S(w j ) überdeckt werden: W = W \{w k u j w k, u j S(w j )} 10
4. Wähle ein u k S(w j ) und bilde U = U u k (Eine günstige Auswahl kann dasjenige u j sein, das die meisten Elemente von W überdeckt). 5. Entferne aus W alle Elemente w k, die von u k überdeckt werden: W = W \{w k u k w k } 6. Falls W fahre bei 2. fort 7. Falls W = ist U eine vollständige optimale Überdeckung. Andernfalls wähle u k U und bilde U = U u k so, daß die Überdeckung vollständig wird (U ist dann nicht unbedingt optimal). 7 Von-Neumann-Maschinen (Skript S. 3-53) Speicher Adressleitung Datenleitung Rechenwerk Leitwerk E/A Werk Steuerleitung Abbildung 9: Von-Neumann-Architektur 7.1 Befehle LAK <Adresse>: Schreibe Wert aus Hauptspeicher in Akku SAK <Adresse>: Schreibe Wert aus Akku in Hauptspeicher ADD <Adresse> ADU <Adresse>: Addieren mit Übertrag SUB <Adresse> SBU <Adresse>: Subtrahieren mit Übertrag UND <Adresse> (auch ODER, EXOR) SLA: Akku nach links shiften 11
SLR: Akku nach rechts shiften SPR <Adresse>: direkter Sprung SPI <Adresse der Sprungadresse>: indirekter Sprung SPB <Bedingung> <Adresse>: bedingter Sprung SUP <Adresse> <Rücksprungadresse>: Unterprogrammsprung, speicher Rücksprungadresse RVU <Adresse>: Rücksprung aus Unterprogramm 7.2 Register BR: Befehlsregister PZ: Programmzähler HR: Hilfsregister 7.3 Steuerleitungen SSP: Speicher schreiben (D-BUS) SP LSP: Speicher lesen (SP) D-BUS SAKDB: (AK) D-BUS LAKDB: (D-BUS) AK SPZAB: (PZ) A-BUS SPZDB: (PZ) D-BUS SHRAB: (HR) A-BUS SHRIPZ: (HR + 1) PZ INKPZ: (PZ) + 1 PZ LBRDB: (D-BUS) BR LHRDB: (D-BUS) HR BEDUE: Bedingungstest BEDVZ: Bedingungstest (VZ) LPZDB: bedingter Sprung 12
7.4 Wichtige Anweisungen: Operand holen: Schritt PZ A-BUS Speicher D-BUS BR ALE HR n (PZ) + 1 PZ (PZ) lesen Adresse halten - (D-BUS) HR Nächsten Befehl holen: Schritt PZ A-BUS Speicher D-BUS BR ALE HR n (PZ) + 1 PZ (PZ) lesen nächster Befehl (D-BUS) BR (?) - 8 Pipelines (Skript S. 9-39) Latenzzeit: Zeit vom Start der Operation bis zum Vorliegen des Ergebnis am Ende der Pipeline. Taktzyklen für n Berechnungen: n + Stufen der Pipeline 1 9 Reflexion (Skript S. 8-38) Keine Reflexion für Z = Z 0 r = 1 für Z = 0 (Kurzschluß) r = 1 für Z 9.1 Quellenreflexionsfaktor r Q = U r(0) U f (0) = Z Q Z 0 Z Q + Z 0 9.2 Abschlußreflexionsfaktor r A = U r(l) U f (L) = Z A Z 0 Z A + Z 0 9.3 Spannungsteiler U Q (t = 0) = Z 0 Z 0 + Z Q U 0 13