Einschu: Zhlendrstellung und Codes (Unvollständige Drstellung) DST SS23 - Codes und KMAPs P. Fischer, TI, Uni Mnnheim, Seite
Binärzhlen N-stellige Binärzhl:... Einzelne Stellen heißen Bits (inry digits) i Ds niederwertigste Bit (Lest Significnt Bit, LSB) steht rechts, ds höchstwertigste Bit (N-) (Most Significnt Bit, MSB) steht links. Die i-te Stelle ht ds Gewicht 2 i Der Wert einer Binärzhl ist lso Z = S 2 i i, die Summe läuft von i=...(n-) Die Umwndlung Deziml Binär erfolgt durch wiederholte Division durch 2 und Anschreien des Rests - Beispiel: 9 : 2 = 9 Rest 9 : 2 = 4 Rest 4 : 2 = 2 Rest 2 : 2 = Rest : 2 = Rest 9 = 2 Gruppen von Bits können zur einfcheren Schreiweise zusmmengefßt werden. Mn geht dnn vom 'Zweiersystem' z.b. zum 'Achtersystem' oder '6er-System' üer. Die Bsis wird oft durch einen nchgestellten Index spezifiziert. Oktlzhlen (ungeräuchlich): Je 3 Bit werden zusmmengefßt und durch,,2,...,7 ersetzt. Die i-te Stelle ht die Wertigkeit 8 i Beispiel: 44 = 2 = 54 8. 44 = 32 6 8 4 2 = 5 8 4 Hexdezimlzhlen (wichtig!): Je 4 Bit werden durch,,...8,9,a,b,c,d,e,f ersetzt. Die i-te Stelle ht die Wertigkeit 6 i Beispiel: 44 = 2 = 54 8 = 2C 6 44 = 2 6 C = 32 2 DST SS23 - Codes und KMAPs P. Fischer, TI, Uni Mnnheim, Seite 2
Addition von Binärzhlen Die Addition erfolgt stellenweise wie ei Dezimlzhlen mit einem Üertrg (crry): 3 9 6 9 Üertrg Üertrg 8 x64 x32 x8 x4 In jeder Stufe werden lso us den 3 Eingängen,,c in die Ausgänge sum und c out erzeugt. Mn nennt diesen wichtigen Schltungslock den Vollddierer (full dder, FA): c in sum c out 2 2... c out sum c in c out sum c in c out sum c in sum 2 sum sum DST SS23 - Codes und KMAPs P. Fischer, TI, Uni Mnnheim, Seite 3
Sutrktion, er und 2er Komplement Mn knn einen Sutrhierer direkt implementieren. Es geht er einfcher: Ignoriert mn die Stellen >(N-), so gilt für zwei N-Stellige Dulzhlen,: = 2 N = 2 N 2 N ist ds Einer-Komplement von. Mn erhält es sehr einfch, indem ml lle Einsen in der Binärdrstellung von durch Nullen ersetzt und umgekehrt: 2 N esteht us N Einsen. Dher gilt: 2 N = Σ 2 i Σ 2 i i = Σ 2 i ( i ). Mn sutrhiert lso jedes Bit von (dher der Nme), ws einer itweisen Inversion gleich kommt. Also: Mn ildet die Differenz - zweier Binärzhlen und, indem mn die Summe us,, und dem er-komplement von ildet. (Die Addition von implementiert mn in der Prxis, indem mn m -ten Bit c in = nlegt.) Beispiel: = 22, = 3 22 = 2, 3 = 2 Ds Einerkomplement von ist 2 - = = 2 = 9 Test: 22 3 = 9 Ds Zweier-Komplement von ist ds er-komplement. Ds 2er Komplement der N-stelligen Zhl ist 2 N. Mn erhält es direkt, indem mn vom LSB eginnend schreit, is eine uftucht. A dnn (hinter der ) werden lle Bits invertiert. Mn knn die Differenz - lso uch ilden, indem mn die Summe us, und dem 2er-Komplement von ildet. DST SS23 - Codes und KMAPs P. Fischer, TI, Uni Mnnheim, Seite 4
BCD Kodierung, 842-BCD Um Dezimlzhlen zu codieren ist es mnchml günstig (z.b. ei Ziffernnzeigen), jedes Digit einzeln zu codieren. Mn spricht dnn von einem BCD (Binry Coded Digit) Code. Von den 6 möglichen Codes pro Digit werden nur enutzt, der Code ist lso redundnt. Benutzt mn für jedes Dezimldigit eine 4-stellige Binärzhl, so nennt mn ds einen 842-BCD Code: z.b. 3 = Bei der Addition werden die BCD-Drstellungen stellenweise ddiert. Ist ds Ergenis >9, so entsteht ein verotener Code. Zur Korrektur muß sutrhiert oder 6 ddiert werden. Es entsteht ein Crry, ds zur nächsten Stelle ddiert wird. Beispiel: 25 38 = 63 25 = 38 = 'unerluter' Code Summe: Korrektur 6: Ergenis: Bei der Sutrktion wird z.b. ds 9-er Komplement (mn sutrhiert jedes Digit von 9) und ddiert. Beispiel: 78-25 78 99-25 - 9er Komplement 78 74-52 - 53-53 DST SS23 - Codes und KMAPs P. Fischer, TI, Uni Mnnheim, Seite 5
Andere BCD Codes Die Bildung des 9er-Komplements in 842-BCD ist umständlich. Mn enutzt dher mnchml 'selst-komplementierende' Codes, ei denen ds 9er-Komplement durch itweise Komplementierung entsteht. Beispiel Excess-3: Dec. Excess-3 2 3 4 5 6 7 8 9 242-BCD 52-BCD Jeder Excess-3 Code ist um 3 größer lso die Zhl, die er drstellt. Die Summe zweier Excess-3 Digits ist lso um 6 größer. Es muß dher 3 sutrhiert werden. Wird ein Crry erzeugt, so muß 3 ddiert werden.. Ein nderer selst-komplementierender Code ist der 242-BCD-Code ('Aiken'), ein gewichteter Code, ei dem jede Stelle ein festes Gewicht ht. Ähnlich: 52-BCD. Andere Codes (z.b. 742-BCD) hen im Durchschnitt wenig Einsen, ws ei est. Anwendungen Leistung einsprt. DST SS23 - Codes und KMAPs P. Fischer, TI, Uni Mnnheim, Seite 6
Gry Code Beim wichtigen Gry-Code ändert sich in ufeinnderfolgenden Codemustern immer nur ein Bit. Die 'Hmming-Distnz' ist. Konstruktion: Mn ändert immer ds niedrigstmögliche Bit: Dec. Gry O'Brien 2 3 4 5 6 7 8 9......... Es git noch ndere Codes mit Hmming Distnz, z.b. s.o. Anwendung: Erfssung von Meßwerten (z.b. Liner/Winkelcodierer): eine Fehljustierung der Meßstrecke führt nicht zu großem Fehlern Gry: Binär: DST SS23 - Codes und KMAPs Sensor erkennt 3 oder 4 Sensor knn lles erkennen! P. Fischer, TI, Uni Mnnheim, Seite 7
Umwndlung Gry Binär Binär Gry Binärzhl: 4 3 2 Gry-Zhl: g 4 g 3 g 2 g g Prllele Verreitung! Beispiel: 2 = Gry Gry Binär Gry-Zhl: g 4 g 3 g 2 g g Binärzhl: 4 3 2 Sukzessive Verreitung lngsmer! Beispiel: Gry = 2 DST SS23 - Codes und KMAPs P. Fischer, TI, Uni Mnnheim, Seite 8
Andere Codes Thermometer Code: Pro Code-Stufe wird ein Bit enutzt. Die Bits werden sukzessive 'ngeschltet': Anwendung z.b. ei Meßwerterfssung, Anlog/Digitl Wndler. N Codes ei N Bit... von Code: Ähnlich Thermometer. Nur je ein Bit ist eingeschltet: Auswhl von 'Verruchern' (Dekoder). Einfche Zustndscodierung. N Codes ei N Bit... 'Liw-Crig' - Code: Ds Wort wird vom LSB her erst mit Einsen, dnn mit Nullen ufgefüllt: Knn leicht mit einem Schieeregister erzeugt werden Zustndscodierung 2N Codes ei N Bit DST SS23 - Codes und KMAPs P. Fischer, TI, Uni Mnnheim, Seite 9
Kenngrößen von Codes Gewichteter Code: Hmming-Distnz H: Stetiger Code: Jeder Stelle entspricht ein festes Gewicht (Binär, 242-BCD,...) Anzhl unterschiedlicher Stellen zweier enchrter Codeworte H ist für lle enchrten Codes gleich Minimum Bit Chnge: Stetiger Code mit H= Redundnz: Rd = log 2 (N mx /N code ) > N mx = 2 m = Anzhl möglicher Codeworte N code = Anzhl enutzte Codeworte Rd = heißt: Bit 'üerflüssig' Beispiel: 842 BCD: Rd = log 2 (6/) = log 2 (e) ln(.6) = ln(.6)/ ln(2) (.6 / ) =.678 Anwendungen: - Dtenspeicherung: Kurze Codes (kleine Redundnz) - Dtenüertrgung: Codes mit Redundnz (Fehlererkennung, Fehlerkorrektur) - Signlverreitung: Codes, die einfches Rechnen ermöglichen - Meßwerterfssung: Einfch strukturierte Codes - Low-Power Design: Codes mit wenig Bitänderungen (H=), Gry Code! - Zustndsutomten: Leicht zu erzeugende und zu dekodierende Codes DST SS23 - Codes und KMAPs P. Fischer, TI, Uni Mnnheim, Seite
Kennen wir lle Verknüpfungen? DST SS23 - Codes und KMAPs P. Fischer, TI, Uni Mnnheim, Seite
Verknüpfungen von N Eingängen Ausgng E E 2 f Q E N N Eingngsvrilen können M = 2 N verschiedene Muster nnehmen (Jeder hinzukommende Eingng verdoppelt die Zhl der Muster: xx...xx, xx...xx) Für N=: Muster = {, } Für N=2: Muster = {,,, } Eine Verknüpfung f weist dem Ausgng für jedes der M Eingngsmuster einen Wert ( oder) zu. Es git dher 2 M mögliche Verknüpfungen. Bei N Eingngsvrilen git es 2 2N mögliche Verknüpfungen (Funktionen) f N: 2 3 4 M: 2 4 8 6 f: 2 4 6 256 65536 Die Möglichkeiten steigen lso SEHR SCHNELL n. Mn knn nicht für jede Möglichkeit ein Buteil hen! DST SS23 - Codes und KMAPs P. Fischer, TI, Uni Mnnheim, Seite 2
N =, N = : f Q = Funktion Bezeichnung englisch Q = Nie flse Identität! Negtion NOT Immer true N = : f Q Funktion Bezeichnung englisch Q = Nie flse Immer true DST SS23 - Codes und KMAPs P. Fischer, TI, Uni Mnnheim, Seite 3
N = 2 = = Funktion Bezeichnung englisch!!!()!!!!!( ) Nie Konjuntion f Q Identität Identität Antivlenz Disjunktion Negierte Disjunktion Äquivlenz Negtion Negtion Negierte Konjunktion Immer flse AND XOR OR NOR XNOR NOT NOT NAND true DST SS23 - Codes und KMAPs P. Fischer, TI, Uni Mnnheim, Seite 4
N = 3 c f Q = = c = Funktion Bezeichnung Zu viele Möglichkeiten wir ruchen eine llgemeinere Beschreiung! DST SS23 - Codes und KMAPs P. Fischer, TI, Uni Mnnheim, Seite 5
Krnugh-Digrmme DST SS23 - Codes und KMAPs P. Fischer, TI, Uni Mnnheim, Seite 6
Krnugh-Digrmme Eine weitere Drstellungsform für Funktionen/Ausdrücke enutzt zweidimensionle Tfeln, die uch ls Krnugh(-Veitch)-Digrmme (KMAPs) ezeichnet werden Sie geen einen grfischen Eindruck der Funktion und können zur Logikminimierung enutzt werden Für eine Funktion von 2 Vrilen (4 mögliche Eingngskomintionen) zeichnet mn: Feld für =, = Feld für =, = Feld für =, = Einfche Beispiele: NAND2 NOR2 XOR2 XNOR2 DST SS23 - Codes und KMAPs P. Fischer, TI, Uni Mnnheim, Seite 7
Größere KMAPs Für Funktionen mit >2 Vrilen werden die Tfeln erweitert Sie sind esonders nützlich, wenn für jede Vrile die Einsen in den Zeilen/Splten einen Block ilden. Dies knn nur für je 2 Vrilen pro Dimension erfüllt werden. Sie sind dnn Gry-codiert. Für >4 Vrilen muß mn in die dritte Dimension gehen, 7 Vrilen wird's schwierig... 3 Vrilen: 4 Vrilen: c d = = c c= c d 4 Vrilen - Alterntive: d c d d ildet keine zusmmenhängende Gruppe DST SS23 - Codes und KMAPs P. Fischer, TI, Uni Mnnheim, Seite 8
Visulisierung der Nchrschft Die Nchrschft in n-stelligen Codes mit Hmming-Distnz H= wird in einer n-dimensionlen Drstellung esser verständlich: N=: Codewort = oder = N=2: Codewort =,,, = N=3: Codewort c =,,... = = = Auf jeder Knte ändert sich genu ein Bit. Ein Hmming Code entsteht lso eim 'Wndern uf Knten' Auf jeder Eene (senkrecht zu einer der Achsen) ist ein Bit konstnt Ds 'Aufklppen' des N-dimensionlen Würfels ergit die KMAP Sie ht so viele Nchrschften, wie der Würfel Knten ht. DST SS23 - Codes und KMAPs P. Fischer, TI, Uni Mnnheim, Seite 9
Numerierung Die Felder können numeriert werden, wenn mn die Eingngsvrile (hier x 3 x 2 x x ) ls Binärzhl uffßt x 2 3 x 3 8 9 2 4 5 3 4 6 7 5 x 2 x Eine elieige Funktion der N Vrilen wird durch ds / Muster in der Tfel festgelegt. (Für N=4 git es 2 24 = 2 6 = 65536 verschiedene Funktionen) In einer kompkten Schreiweise führt mn die Eingngswerte uf, für die in der Tfel eine steht und schreit z.b. F = Σ(,,3,5,6,7,8,9,,) x x 3 x 2 x DST SS23 - Codes und KMAPs P. Fischer, TI, Uni Mnnheim, Seite 2
UND und ODER in K-MAPS c d c d d d c d c d c d c d Die UND-Verknüpfung ller N Vrilen (direkt oder invertiert) selektiert EIN Feld. Mn nennt diese 6 möglichen Ausdrücke MINTERME, weil sie in der Tfel die minimle Fläche einnehmen. Die ODER-Verknüpfung der N Vrilen selektiert ALLE AUSSER EINEM Feld. Mn nennt einen solchen Ausdruck MAXTERM, weil er in der Tfel die mximle Fläche einnimmt. Die UND-Verknüpfung von N- Vrilen ilden einen x2 oder 2x Block. (Dies gilt nur, wenn die Vrilen Gry-codiert sind!). Im Beispiel oen ist f =! c d!!c d =! d (c!c) =! d. Die UND-Verknüpfung von N-2 Vrilen ilden einen Block us 4 Zellen (x4, 4x oder 2x2), etc... Blöcke können uch üer den Rnd hinus gehen (s. rechtes Beispiel)! Entsprechendes gilt für ds ODER von weniger ls N Vrilen DST SS23 - Codes und KMAPs P. Fischer, TI, Uni Mnnheim, Seite 2
Knonische Formen Die Disjunktive Normlform (DN) eines Ausdrucks ht die Form (Disjunktion = ODER!) K K K 2... woei die K i Konjunktionen (UND-Verknüpfungen) us einfchen oder negierten Vrilen ('Literlen') sind. Mn nennt die K i uch Produktterme oder Einsterme Entsprechend ht die Konjunktive Normlform (KN) (ds Dule Pendnt) die Form D D D 2... Mit den Disjunktionen D i, die mn uch Nullterme nennt. Diese Knonischen Formen sind z.b. wichtig, weil in PALs die entsprechende Struktur in Hrdwre implementiert wird. Die Formen werden eindeutig, wenn mn verlngt, dß in jedem Eins/Nullterm jedes Literl genu einml vorkommt (Minterm/Mxterm!). Mn spricht dnn von usgezeichneten Normlformen. Beispiel: y =!c! c =!c! c (!) =!c! c!! c Die usgezeichnete Disjunktive Normlform ist die einfchste Summe von Mintermen. Die usgezeichnete Konjunktive Normlform ist ds einfchste Produkt von Mxtermen. Welcher Ausdruck (KN/DN) einfcher ist (weniger Terme ht), hängt von der Funktion DST SS23 - Codes und KMAPs P. Fischer, TI, Uni Mnnheim, Seite 22
P. Fischer, TI, Uni Mnnheim, Seite 23 DST SS23 - Codes und KMAPs Beispiel Konjunktive/Disjunktive Normlform Beispiel DN: y =!c! c Umwndlung zur KN durch Aus-UND-en: y = (!) (!) (!c!) (c) (c) (!cc) = (!) (!c!) (c) (c) Test:!c y!c c!!c! c c y
Auffinden des Komplements einer Funktion Gegeen sei die Funktion Sie ht z.b. die KMAP F = c!!c. F: c Die KMAP der inversen Funktion!F findet mn sehr leicht durch Vertuschen von und :!F: c Mn sieht sofort, dß diese die Drstellung!F =! c!c ht. Mit den Regeln der Schltlger ist ds deutlich umständlicher: F = c c = c c = ( c) ( c) = c c cc = c c = (c c) c c = c c c c = c c c c = (c c) ( )c = c c DST SS23 - Codes und KMAPs P. Fischer, TI, Uni Mnnheim, Seite 24
Auffinden des einfchsten Ausdruck für eine Funktion F = c c d Term ist redundnt d c c d c d Ist eine Funktion üer ein Muster in der KMAP gegeen, so sucht mn lle möglichen Üerdeckungen der Einsen mit möglichst großen rechteckigen Blöcken... Die Funktion ist dnn die ODER-Verknüpfung ll dieser sogennnten 'Primterme' (Der Block eines Primterms knn nicht vergrößert werden) Es knn sein, dß eine Teilmenge der Primterme zur vollständigen Üerdeckung usreicht. Mit einer Telle knn mn systemtisch nch der kleinsten Teilmenge suchen. Im Beispiel sieht mn, dß der erste Term!c ereits durch den zweiten (!c d) und vierten (!d) gedeckt wird. (Dies knn mn eweisen, indem mn!c d!d =!c!!c d c!d zeigt...) Ds Ergenis knn mn uch (ufwendiger) durch Umformung von F = Σ(,,3,5,6,7,8,9,,) =!!!c!d!!!c d!! c d... finden. N.B.: Einen Ausdruck in UND-Form () (!cd)... Findet mn durch Adecken der Nullen in der KMAP DST SS23 - Codes und KMAPs P. Fischer, TI, Uni Mnnheim, Seite 25
KMAPs mit leeren Feldern (don't cre) Es kommt oft vor, dß nicht lle Eingngskomintionen vorkommen können. Ddurch leien Felder in der KMAP 'leer', sie werden meist mit 'x' mrkiert. Diese Felder können so mit oder elegt werden, dß die Funktion möglichst einfch wird, i.e. dß die Einsen mit möglichst wenigen, möglichst großen Blöcken üerdeckt werden können. Beispiel: Ansteuerung einer Sieensegment-Anzeige mit eine BCD-Zhl: Mn schreit z.b. für Segment e: e=sm(,2,6,8) Sd(,,2,3,4,5). Dei steht 'm' für Minterm und 'd' für don't cre f e g d c x 3 x 2 x x BCD to 7seg c d e f g x 3 2 3 8 X X 9 2 X 4 X 5 X 3 X 4 6 7 5 x x x 2 Adeckung nur der Einsen erfordert 2 Felder x2, d.h zwei Primterme mit 3 Termen: e =!x!x!x 2!x x!x 3 Ersetzt mn zwei der don't cre Felder durch Einsen, so knn mn den zweiten Term vereinfchen: e =!x!x!x 2!x x Je mehr don't cres des git, desto stärkere Vereinfchungen sind möglich. Mn sollte die Funktion lso nicht unnötig einschränken. DST SS23 - Codes und KMAPs P. Fischer, TI, Uni Mnnheim, Seite 26
Minimierung nch Quine-McCluskey Für mehr ls 4 Eingngsvrile wird ds grfische Verfhren der KMAPs unüersichtlich. Ein Algorithmus zum Auffinden der einfchsten Summendrstellung mit Primtermen ist ds Quine- McCluskey Verfhren. Es unterteilt sich in 2 Schritte: - Auffinden ller Primterme - Bestimmung der minimlen Üerdeckung (Verwerfen von redundnten Primtermen) Auffinden ller Primterme:. Schritt: - Schreie die Binärdrstellung ller Einsen in die erste Splte einer Telle. Don't cres werden ls Eins gewertet! - Dei werden Gruppen von Termen mit keiner Eins, einer, zwei Einsen etc. geildet. 2. Schritt: - Für lle ufeinnderfolgenden Gruppenpre werden lle Elemente prweise verglichen. ( exp. Aufwnd!) - Wenn ein Elementepr sich nur in einer Stelle unterscheidet, existiert ein Term, der diese Stelle nicht enthält. - Alle solche Terme werden Gruppenweise in der Form - etc. in die nächste Splte notiert. - Die Terme in der ersten Splte, die eine Nchrschft ufweisen werden mit einem Hken ls nicht-prim mrkiert. Der 2. Schritt wird spltenweise wiederholt, is sich keine Pre mehr finden. Die '-' Zeichen müssen dei eim Vergleich n der gleichen Stelle sitzen. 3. Schritt: - Die Terme ohne Hken sind die Primterme. - In ihrer Menge werden mit einer Telle die zur Üerdeckung notwendigen Primterme gesucht. DST SS23 - Codes und KMAPs P. Fischer, TI, Uni Mnnheim, Seite 27
Quine McCluskey Telle F = Σm(4,5,6,8,9,,3)Σd(,7,5) Splte Splte2 Splte3 Splte4 x - - keine - - keine - -- - -- - keine - - -- - -- x 3 X X X x x 2 - - Ergenis: Die 7 Primterme sind -, -, -, -, -, --, -- DST SS23 - Codes und KMAPs P. Fischer, TI, Uni Mnnheim, Seite 28
Auffinden der Minimlen Üerdeckung Für F = Σm(4,5,6,8,9,,3)Σd(,7,5) wurden die Primterme -, -, -, -, -, --, -- gefunden Trge in einer Telle ein, welche Primterme welche Einsen der Funktion (d.h. Minterme) decken (keine don't cres!): Primterm Üerdeckte Minterme 4 5 6 8 9 3 Minterme von F -,4 X -,8 X - 8,9 X X Wesentliche Primterme - 8, X X - 9,3 X X -- 4,5,6,7 X X X -- 5,7,3,5 X X Die Wesentlichen Primterme sind diejenigen, die unedingt notwendig sind, weil ein Minterm nur von ihnen üerdeckt wird. Sie werden ufgesucht (hier für 6 und ) und lle Minterme usgestrichen, die dmit gedeckt sind. Die restlichen Minterme werden mit möglichst wenigen Primtermen üerdeckt. Im Beispiel reicht -. Ergenis: F = x 3!x 2!x x 3!x x!x 3 x 2 DST SS23 - Codes und KMAPs P. Fischer, TI, Uni Mnnheim, Seite 29
Schlußemerkungen Weitere Methoden zur Logikminimierung lernen wir später kennen. Die isherigen Verfhren führen uf Knonische Drstellungen, die z.b. für PALs interessnt sind. Für FPGAs, Stndrdzellen und Full-Custom Designs versucht mn, die ngeotenen Resourcen (z.b. uch gemischte Gtter) möglichst optiml zu nutzen. Mn nennt diesen Vorgng 'Technology Mpping' Es hndelt sich um komplizierte Optimierungsverfhren, die die logische Funktion mit den zur Verfügung stehenden Resourcen implementieren und dei z.b. die Chipfläche oder die Verzögerung minimieren. Will mn us N Eingngsvrilen M Ausgngsvrile erzeugen, so knn mn im Prinzip für jede der M Ausgänge ds Verfhren wiederholen. Mn knn jedoch viele Resourcen spren, wenn mn Zwischenterme ildet und diese weiterenutzt. Diese Multiple Output Minimiztion (MOM) ist wichtig. Sie wird evtl. später noch ehndelt. Triviles Beispiel: N=6, M=2, y = cde, y2 = cdf: e d c y f d c y2 d c x e x x f y y2 DST SS23 - Codes und KMAPs P. Fischer, TI, Uni Mnnheim, Seite 3