Digitaltechnik. 1 Kombinatorische. Schaltungen. Revision 1.01

Ähnliche Dokumente
2.3 Logikoptimierung. Überblick digitale Synthese. Logikoptimierung

5. Vorlesung: Normalformen

Electronic Design Automation (EDA) Logikoptimierung

Boolesche (Schalt-) Algebra (8)

DuE-Tutorien 16 und 17

Teil 1: Digitale Logik

DuE-Tutorien 17 und 18

Einführung in Computer Microsystems Sommersemester Vorlesung Dr.-Ing. Wolfgang Heenes

Bisher. minimale DNF. logischen Formeln Booleschen Funktionen Schaltungen

Minimalpolynome und Implikanten

Boolesche Algebra (1)

Kapitel 6 Programmierbare Logik. Literatur: Kapitel 6 aus Oberschelp/Vossen, Rechneraufbau und Rechnerstrukturen, 9. Auflage

Boolesche (Schalt-) Algebra (1)

03 Boolesche Algebra. Technische Grundlagen der Informatik

Technische Grundlagen der Informatik

Computersysteme. 2. Grundlagen Digitaler Schaltungen 2.10 Minimierung Boole scher Funktionen 2.11 CMOS Komplexgatter

Normalformen boolescher Funktionen

Schaltfunktion, Definition

Teil III. Schaltnetze und ihre Optimierung

Kapitel 1.3. Normalformen aussagenlogischer Formeln. Mathematische Logik (WS 2010/11) Kapitel 1.3: Normalformen 1 / 1

Teil 1: Digitale Logik

Konjunktive und disjunktive Normalformen

Ab 5.11.: Vorlesung im HSG H.001

kanonische disjunktive Normalform (KDNF, DKF) Disjunktion einer Menge von Mintermen mit gleichen Variablen

C.34 C Normalformen (4) 5.7 Hauptsatz der Schaltalgebra. 5.7 Hauptsatz der Schaltalgebra (2) 5.7 Hauptsatz der Schaltalgebra (3)

Technische Informatik I

Digitaltechnik. 5 Verifikation. Revision 1.04

2.1 Boole sche Funktionen

6. Vorlesung: Minimalformen

Rechnerstrukturen, Teil 1. Vorlesung 4 SWS WS 14/15

Eingebettete Systeme

6. Minimierung Boolescher Polynome

Grundlagen der Informationsverarbeitung:

Was bisher geschah: klassische Aussagenlogik

Grundlagen der Technischen Informatik. 7. Übung

C Beispiel: Siebensegmentanzeige. Typische Anzeige für Ziffern a. f g. e d. Gesucht: Schaltfunktion für die Ansteuerung des Segmentes d

DuE-Tutorien 17 und 18

Rechnerstrukturen. Michael Engel und Peter Marwedel SS TU Dortmund, Fakultät für Informatik

DuE-Tutorien 4 und 6. Tutorien zur Vorlesung Digitaltechnik und Entwurfsverfahren Christian A. Mandery. WOCHE 4 AM

Rechnerstrukturen. Michael Engel und Peter Marwedel WS 2013/14. TU Dortmund, Fakultät für Informatik

Aufgabe 1 Minimieren Sie mit den Gesetzen der Booleschen Algebra 1.1 f a ab ab 1 = + + Aufgabe 2. Aufgabe 3

Algorithmen und Datenstrukturen (für ET/IT)

Die Folgerungsbeziehung

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?

Informationsverarbeitung auf Bitebene

Aussagenlogik. Formale Methoden der Informatik WiSe 2012/2013 teil 6, folie 1

Rechnerstrukturen, Teil 1. Vorlesung 4 SWS WS 15/16

Theorie der Informatik. Theorie der Informatik. 2.1 Äquivalenzen. 2.2 Vereinfachte Schreibweise. 2.3 Normalformen. 2.

Verwendung eines KV-Diagramms

f ist sowohl injektiv als auch surjektiv.

Aussagenlogik. Übersicht: 1 Teil 1: Syntax und Semantik. 2 Teil 2: Modellierung und Beweise. Aussagenlogik H. Kleine Büning 1/25

Implementierung als Funktionstabelle Systemtheorie 1 Formale Systeme 1 # WS 2006/2007 Armin Biere JKU Linz Revision: 1.2

Einführung in die technische Informatik

Logische Äquivalenz. Definition Beispiel 2.23

Satz von De Morgan A B A + B A + B A B A. Transistoren: A B U a A 0 0 Vcc Vcc Vcc V 0

Diskrete Strukturen und Logik WiSe 2007/08 in Trier. Henning Fernau Universität Trier

Physikalisches Praktikum für Vorgerückte. an der ETH Zürich. vorgelegt von. Mattia Rigotti Digitale Elektronik

Rechnerstrukturen, Teil 1

Technische Informatik I 4. Vorlesung. 2. Funktion digitaler Schaltungen... wertverlaufsgleiche Umformungen

Syntax der Aussagenlogik. Vorlesung Logik Sommersemester 2012 Universität Duisburg-Essen. Formel als Syntaxbaum. Teilformel A 3 A 1 A 4

Grundlagen der Technischen Informatik. 5. Übung

Grundlagen der Technischen Informatik. 8. Übung

GTI ÜBUNG 8 NELSON/PETRICK, QUINE/MCCLUSKEY, NAND

Rechnerstrukturen WS 2012/13

3 Boole'sche Algebra und Aussagenlogik

Grundlagen der Technischen Informatik. 7. Übung

Mütze und Handschuhe trägt er nie zusammen. Handschuhe und Schal trägt er immer zugleich. (h s) Modellierung als Klauselmenge

Überblick über die Aussagenlogik, Teil 2. Nicole Stender

Technische Informatik I, SS03. Boole sche Algebra, Kombinatorische Logik

Minimierung von logischen Schaltungen

Informatik III. Christian Schindelhauer Wintersemester 2006/ Vorlesung

Rechnerstrukturen WS 2012/13

Lösungsvorschlag 1. Übung Technische Grundlagen der Informatik II Sommersemester 2009

Einführung in die Boolesche Algebra

6.3 NP-Vollständigkeit. alle anderen Probleme in NP darauf polynomiell reduzierbar. 1 Polynomielle Reduzierbarkeit p

GETE DIGITAL TECHNIK CODIERUNG BCD: BINARY CODED DIGITAL. Hr. Houska

2. Tutorium Digitaltechnik und Entwurfsverfahren

Was ist Logik? Was ist Logik? Aussagenlogik. Wahrheitstabellen. Geschichte der Logik eng verknüpft mit Philosophie

Grundlagen der Rechnerarchitektur

Formale Grundlagen der Informatik 1 Kapitel 16 Normalformen und Hornformeln

Zusammenfassung Syntax: Formale Grundlagen der Informatik 1 Kapitel 15 Normalformen und Hornformeln. Zusammenfassung

Ein Signal ist eine zeitlich veränderliche physikalische Größe, die eine auf sie abgebildete Information trägt.

Formale Grundlagen der Informatik 1 Kapitel 15 Normalformen und Hornformeln

Rechnerstrukturen WS 2012/13

Übung 4: Aussagenlogik II

Darstellung von negativen binären Zahlen

Rechnerstrukturen, Teil 1

Syntax. 1 Jedes A AS AL ist eine (atomare) Formel. 2 Ist F eine Formel, so ist auch F eine Formel. 3 Sind F und G Formeln, so sind auch

Formale Methoden 2. Gaetano Geck Lehrstuhl I Logik in der Informatik WS 2015/2016

Systemorientierte Informatik 1

Aussagenlogik. (MAF2) MAF(I, t) = t und MAF(I, f ) = f. Die Semantik aussagenlogischer Formeln ist durch die Funktion

Rechnerstrukturen. Michael Engel und Peter Marwedel SS TU Dortmund, Fakultät für Informatik

Allgemeingültige Aussagen

8. Tutorium Digitaltechnik und Entwurfsverfahren

Algorithmen für OBDD s. 1. Reduziere 2. Boole sche Operationen

1. Grundlagen der Informatik Boolesche Algebra / Aussagenlogik

Transkript:

Digitaltechnik Kombinatorische Schaltungen A Revision.

Boole sche Algebra Gatter Rechenregeln Minimierung kombinatorischer Schaltungen Kombinatorische Schaltungen in Verilog

Kombinatorische Schaltungen Kombinatorische Schaltungen haben Eingänge und Ausgänge, und sind zyklusfrei Abstraktion: Die Werte der Ausgänge sind durch eine Boole sche Funktion der Eingänge gegeben Wirklichkeit: Schaltverzögerung! (später) Digitaltechnik Kapitel : Kombinatorische Schaltungen 3

Boole sche Algebra George Boole (85 864) Zwei Wahrheitswerte: {, } (Konstanten) Variablen: V = {x, y, z,...} Boolesche Operatoren:,,,, (absteigende Priorität) Rechenregeln (später) Digitaltechnik Kapitel : Kombinatorische Schaltungen 4

Semantik der Boole schen Algebra Semantik der Operatoren: x y x x y x y x y x y Digitaltechnik Kapitel : Kombinatorische Schaltungen 5

Semantik der Boole schen Algebra eine Belegung β ist eine Abbildung β : V {, } eine Belegung wird rekursiv über die Formel-Struktur ausgewertet eine Belegung β erfüllt eine Formel f gdw. β(f) = Digitaltechnik Kapitel : Kombinatorische Schaltungen 6

Semantik der Boole schen Algebra eine Belegung β ist eine Abbildung β : V {, } eine Belegung wird rekursiv über die Formel-Struktur ausgewertet eine Belegung β erfüllt eine Formel f gdw. β(f) = eine Formel heißt erfüllbar gdw. es eine erfüllende Belegung gibt (engl. satisfiable SAT) eine Formel heißt Tautologie gdw. alle Belegungen erfüllend sind Formel g wird von Formel f impliziert (f g) gdw. f g Tautologie Formeln f und g sind äquivalent (f g) gdw. f g Tautologie Digitaltechnik Kapitel : Kombinatorische Schaltungen 6

Basis nicht alle Operatoren sind notwendig eine Basis B ist eine funktionale minimale Anzahl von Operatoren funktional, heißt alle anderen lassen sich damit darstellen Digitaltechnik Kapitel : Kombinatorische Schaltungen 7

Basis nicht alle Operatoren sind notwendig eine Basis B ist eine funktionale minimale Anzahl von Operatoren funktional, heißt alle anderen lassen sich damit darstellen Beispiel: x y (x x) (y y) wenn nur NAND vorhanden technologisch bedingt ist das NAND sehr beliebt Software Repräsentation von Schaltkreisen mit B = {, } Signed-And-Graphs Digitaltechnik Kapitel : Kombinatorische Schaltungen 7

Gatter Teil I Bezeichnung Boolesche Algebraische Traditionelles IEEE (Verilog) Logik Schreibweise Schaltbild Schaltbild Disjunktion ( ) Negierte Disjunktion (nicht in Verilog) x y x + y (x y) x + y Konjunktion (&&) x y x y (oder x.y, xy,...) & Negierte Konjunktion (nicht in Verilog) (x y) x y & Digitaltechnik Kapitel : Kombinatorische Schaltungen 8

Gatter Teil II Bezeichnung Boolesche Algebraische Traditionelles IEEE (Verilog) Logik Schreibweise Schaltbild Schaltbild Exklusiv-Oder (ˆ) Äquivalenz (==) x y (oder x y) x y (oder x = y) x y x y Implikation (nicht in Verilog) x y Negation (!) x x (oder x ) Digitaltechnik Kapitel : Kombinatorische Schaltungen 9

Einfache Rechenregeln der Booleschen Algebra Konjunktive Disjunktive Formulierung Formulierung Kommutativität x y y x x y y x Assoziativität x (y z) (x y) z x (y z) (x y) z Distributivität x (y z) (x y) (x z) x (y z) (x y) (x z) De Morgan (x y) x y (x y) x y Idempotenz x x x x x x Controlling Value x x Neutraler Wert x x x x Doppelte Negation ( x) x Digitaltechnik Kapitel : Kombinatorische Schaltungen

De Morgan in Action Und-Oder Schaltung lässt sich einfach als NAND-Schaltung darstellen! Digitaltechnik Kapitel : Kombinatorische Schaltungen

Komplexe Rechenregeln Teil I Shannonsches Expansionstheorem (Fallunterscheidung) e x e[/x] x e[/x] mit e, f Boolesche Ausdrücke, x Variable, e[f/x] Substitution von x durch f in e. Digitaltechnik Kapitel : Kombinatorische Schaltungen 2

Beispiel Shannonsches Expansionstheorem Beispiel: (zwei Darstellungen für Exklusiv-Oder) (x y) ( x y) x ( y) ( y) x ( y) ( y) x ( y) x y ( y) x y x y x y x y Algebraische Schreibweise: (= statt ist auch erlaubt) (x + y) (x + y) x y + x y Digitaltechnik Kapitel : Kombinatorische Schaltungen 3

Komplexe Rechenregeln Teil II Abschwächung x y x, falls x y (y schwächer als x). Digitaltechnik Kapitel : Kombinatorische Schaltungen 4

Komplexe Rechenregeln Teil II Abschwächung x y x, falls x y (y schwächer als x). Verstärkung x + y x, falls y x (y stärker als x). Digitaltechnik Kapitel : Kombinatorische Schaltungen 4

Komplexe Rechenregeln Teil II Abschwächung x y x, falls x y (y schwächer als x). Verstärkung x + y x, falls y x (y stärker als x). Konsensus (Fallunterscheidung und Abschwächung) x y + x z + y z x y + x z Intuition: If-Then-Else schwächer als Konjunktion von Then und Else. Digitaltechnik Kapitel : Kombinatorische Schaltungen 4

Beweis Konsensus-Regel mit Funktionstabelle x y z x y + x z x y + x z + y z Mühsam für viele Variablen (exponentielle Laufzeit)! Digitaltechnik Kapitel : Kombinatorische Schaltungen 5

Regelbasierter Beweis Konsensus-Regel (x y + x z + y z)[/x] y + z + y z Substitution + z + y z Controlling Value + z + y z Non-Controlling Value z + y z Non-Controlling Value + z + y z Non-Controlling Value ( + y) z Distributivität z Controlling Value + Digitaltechnik Kapitel : Kombinatorische Schaltungen 6

Regelbasierter Beweis Konsensus-Regel (x y + x z + y z)[/x] y + z + y z Substitution + z + y z Controlling Value + z + y z Non-Controlling Value z + y z Non-Controlling Value + z + y z Non-Controlling Value ( + y) z Distributivität z Controlling Value + Analog erhält man (x y + x z + y z)[/x] y Digitaltechnik Kapitel : Kombinatorische Schaltungen 6

Regelbasierter Beweis Konsensus-Regel (x y + x z + y z)[/x] y + z + y z Substitution + z + y z Controlling Value + z + y z Non-Controlling Value z + y z Non-Controlling Value + z + y z Non-Controlling Value ( + y) z Distributivität z Controlling Value + Analog erhält man (x y + x z + y z)[/x] y Mit Shannonschem Expansionstheorem: x y + x z + y z x (x y + x z + y z)[/x] + x (x y + x z + y z)[/x] x y + x z Digitaltechnik Kapitel : Kombinatorische Schaltungen 6

Disjunktive Normalform (DNF) gegeben eine feste Menge von Variablen ein Literal ist eine negierte oder unnegierte Variable, z.b. x, x, a, z,... ein Produktterm ist eine Konjunktion von Literalen, z.b x y, b c,... ein Minterm ist ein maximaler Produktterm (enthält alle Variablen) eine DNF ist eine Disjunktion von Produkttermen (wie im Beispiel) Digitaltechnik Kapitel : Kombinatorische Schaltungen 7

DNF-Beispiel Literal a c + c b + a b d DNF Produktterm man bezeichnet eine DNF auch als ein Polynom die Produktterme heißen dann Monome Digitaltechnik Kapitel : Kombinatorische Schaltungen 8

PLA in 2 in in out out Digitaltechnik Kapitel : Kombinatorische Schaltungen 9

PLA in 2 in in out out PLAs implementieren DNF Digitaltechnik Kapitel : Kombinatorische Schaltungen 9

Regelbasierte Minimierung Annahme: Chipgröße in etwa linear in der Größe der Formel Gegeben: Zu implementierende Funktion f dargestellt als Formel Gesucht: (möglichst) minimal große Formel g mit f g Digitaltechnik Kapitel : Kombinatorische Schaltungen 2

Regelbasierte Minimierung Annahme: Chipgröße in etwa linear in der Größe der Formel Gegeben: Zu implementierende Funktion f dargestellt als Formel Gesucht: (möglichst) minimal große Formel g mit f g Beispiel: ac cb abd Minimierung: ac cb abd ac cb ab abd Konsenus über c ac cb ab Verstärkung ac cb Konsensus über c Digitaltechnik Kapitel : Kombinatorische Schaltungen 2

Zweistufige Logik a c b a c b d. Stufe 2. Stufe. Stufe 2. Stufe (gleiches Beispiel wie bei der Minimierung) Digitaltechnik Kapitel : Kombinatorische Schaltungen 2

Karnaugh-Diagramme auch Karnaugh-Veitch-Diagramme, KV-Diagramme, Karnaugh-Maps, etc. praktikabel bis zu 5 Variablen 2-Dimensionale Anordnung einer Funktionstabelle benachbarte Zellen unterscheiden sich in einem Bit c d 2 3 2 Variablen MinTerm Index 2 3 c d c d Digitaltechnik Kapitel : Kombinatorische Schaltungen 22

Erzeugung des Gitters von Karnaugh-Diagrammen d d d Variable 2 Variablen c 5 4 5 4 2 3 7 c 2 3 2 3 7 b 3 Variablen 6 c 8 9 d 6 5 4 3 b 4 Variablen 2 a Digitaltechnik Kapitel : Kombinatorische Schaltungen 23

Lesen von Karnaugh-Diagrammen 8er und 4er Blöcke d d d c c c a a a c b cd b ac b Digitaltechnik Kapitel : Kombinatorische Schaltungen 24

Lesen von Karnaugh-Diagrammen 2er und er Blöcke d d d c a c a c a b b b abd acd abcd Digitaltechnik Kapitel : Kombinatorische Schaltungen 25

Minimierung mit Karnaugh-Diagrammen ➀ Hinreichend großes Gitternetz erstellen ➁ Positive Literale markieren ➂ Zu maximalen Blöcken zusammenfassen ➃ Minimale Überdeckung ablesen Zur Übung: http: //tech-www.informatik.uni-hamburg.de/applets/kvd/ Digitaltechnik Kapitel : Kombinatorische Schaltungen 26

Karnaugh-Diagramme Beispiel Minterm Index a b c d ac + cb + abd c 5 4 2 3 8 9 d 7 5 6 4 3 2 b a 2 3 4 5 6 7 8 9 2 3 4 5 Digitaltechnik Kapitel : Kombinatorische Schaltungen 27

Karnaugh Maps mit Don t Cares c 2 3 d d d c 2 3 c 2 3 MinTerm Index cd + cd c + d c + d 3 2 c d f Don t Cares können zur Vergrößerung von Blöcken verwendet werden (müssen aber nicht abgedeckt werden) Digitaltechnik Kapitel : Kombinatorische Schaltungen 28

Implikanten und Primimplikanten ein Implikant einer DNF ist ein implizierender Produktterm z.b. ein Monom oder der Konsensus zweier Monome Block im Karnaugh-Diagramm ein Primimplikant ist ein maximaler Implikant entspricht maximalen Block, der in keine Richtung erweitert werden kann ein Kernimplikant überdeckt einen sonst nicht überdeckten Minterm ein redundanter Primimplikant wird von Kernimplikanten überdeckt z.b. der Konsens von zwei Primimplikanten Digitaltechnik Kapitel : Kombinatorische Schaltungen 29

Abstrakte Minimierungsmethode Einfache Konsensusregel x y + x y y (Beweis im Buch) Auch für mehr als zwei Variablen: a b c d + a b c d b c d. Generiere alle Primimplikanten durch einfache Konsensusregel 2. Gib Kernimplikanten aus, da in jeder minimalen DNF enthalten 3. Entferne redundante Primimplikanten 4. Wähle minimale Überdeckung aus restlichen Primimplikanten Digitaltechnik Kapitel : Kombinatorische Schaltungen 3

Quine-McCluskey-Verfahren Gegeben Funktionstabelle Minterm Index a b c d Minterm Index a b c d Funktionswert Funktionswert 8 9 2 3 4 2 5 3 6 4 7 5 (Achtung: anderes Beispiel als beim Karnaugh-Diagramm) Digitaltechnik Kapitel : Kombinatorische Schaltungen 3

Quine-McCluskey-Verfahren: Generierung der Primimplikanten Generierung aller Primimplikanten Schritt Minterm Indizes a b c d Anzahl Einsen 2 8 5 2 2 2 2 3 3 5 4 Primimplikant (Gruppeneinteilung nach Anzahl Einsen reduziert Konsensusversuche) Digitaltechnik Kapitel : Kombinatorische Schaltungen 32

Quine-McCluskey-Verfahren: Generierung der Primimplikanten Generierung aller Primimplikanten Schritt Minterm Indizes a b c d Anzahl Einsen nein 2 nein 8 nein 5 2 nein 2 nein 2 2 nein 3 3 nein 5 4 nein Primimplikant (Gruppeneinteilung nach Anzahl Einsen reduziert Konsensusversuche) Digitaltechnik Kapitel : Kombinatorische Schaltungen 32

Quine-McCluskey-Verfahren Generierung aller Primimplikanten Schritt 2 Minterm Indizes a b c d Anzahl Einsen, 2, 8 2, 8, 8,2 5,3 2 2,3 2 3,5 3 Primimplikant Digitaltechnik Kapitel : Kombinatorische Schaltungen 33

Quine-McCluskey-Verfahren Generierung aller Primimplikanten Schritt 2 Minterm Indizes a b c d Anzahl Einsen, 2 nein, 8 nein 2, nein 8, nein 8,2 ja 5,3 2 ja 2,3 2 ja 3,5 3 ja Primimplikant Digitaltechnik Kapitel : Kombinatorische Schaltungen 33

Quine-McCluskey-Verfahren Generierung aller Primimplikanten Schritt 3 Minterm Indizes a b c d Anzahl Einsen Primimplikant,2,8,,8,2, Digitaltechnik Kapitel : Kombinatorische Schaltungen 34

Quine-McCluskey-Verfahren Generierung aller Primimplikanten Schritt 3 Minterm Indizes a b c d Anzahl Einsen Primimplikant,2,8, ja,8,2, redundant Digitaltechnik Kapitel : Kombinatorische Schaltungen 34

Quine-McCluskey-Verfahren Generierung aller Primimplikanten Schritt 3 Minterm Indizes a b c d Anzahl Einsen Primimplikant,2,8, ja,8,2, redundant Alle nicht weiter vereinfachbaren Implikanten sind Primimplikanten: 8,2 5,3 2,3 3,5,2,8, a c d b c d a b c a b d b d Digitaltechnik Kapitel : Kombinatorische Schaltungen 34

Quine-McCluskey-Verfahren Finde minimale Überdeckung mit Primimplikantentafel 2 5 8 2 3 5 8,2 5,3 2,3 3,5,2,8, Digitaltechnik Kapitel : Kombinatorische Schaltungen 35

Quine-McCluskey-Verfahren Finde minimale Überdeckung mit Primimplikantentafel 8,2 5,3 2,3 3,5,2,8, 2 5 8 2 3 5 = Minterme in Primimplikanten = Minterme in Kernimplikanten = Minterme überdeckt von Kernimplikanten Digitaltechnik Kapitel : Kombinatorische Schaltungen 35

Quine-McCluskey-Verfahren Finde minimale Überdeckung mit Primimplikantentafel 8,2 5,3 2,3 3,5,2,8, 2 5 8 2 3 5 = Minterme in Primimplikanten = Minterme in Kernimplikanten = Minterme überdeckt von Kernimplikanten Minimalpolynom enthält alle Kernprimimplikanten, aber nur entweder 8,2 oder 2,3 Digitaltechnik Kapitel : Kombinatorische Schaltungen 35

Quine-McCluskey-Verfahren: Zusammenfassung ➀ Alle Wahrheitsbelegungen mit Wahrheitswert aus der Funktionstabelle auswählen ➁ Mit der einfachen Konsensusregel alle Primimplikanten generieren ➂ Kernimplikanten suchen, redundante Primimplikanten entfernen und Überdeckung aller Primimplikanten bestimmen ➃ Die Disjunktion der Primimplikanten der Überdeckung ergibt die gewünschte minimierte Formel Digitaltechnik Kapitel : Kombinatorische Schaltungen 36

Quine-McCluskey mit Don t Cares Generierung Primimplikanten Schritt MinTerm Index 2 3 c d f Minterm Indizes c d Anzahl Einsen 3 2 Primimplikant Der Don t Care Minterm wird zunächst normal als Minterm behandelt Digitaltechnik Kapitel : Kombinatorische Schaltungen 37

Quine-McCluskey mit Don t Cares Generierung Primimplikanten Schritt MinTerm Index 2 3 c d f Minterm Indizes c d Anzahl Einsen nein nein 3 2 nein Primimplikant Der Don t Care Minterm wird zunächst normal als Minterm behandelt Digitaltechnik Kapitel : Kombinatorische Schaltungen 37

Quine-McCluskey mit Don t Cares Generierung Primimplikanten Schritt 2 Minterm Indizes c d Anzahl Einsen Primimplikant, ja,3 ja Primimplikanten werden wie gewohnt bestimmt Digitaltechnik Kapitel : Kombinatorische Schaltungen 38

Quine-McCluskey mit Don t Cares Minimale Überdeckung mit Primimplikantentafel,,3 3 Ignoriere alle Don t Care Spalten! Digitaltechnik Kapitel : Kombinatorische Schaltungen 39

Zusammenfassung zweitstufiger Minimierung Quine-McCluskey ist exponentiell in der Anzahl Minterme da exponentiell viele Primimplikanten und Überdeckungsproblem NP-vollständig Heuristiken! Espresso von Berkeley als Standardverfahren: Komplementierung: Berechnung der Negation einer DNF als DNF Expansion: Erweitern von Implikanten zu Primimplikanten Reduktion: Entfernen von redundanten Primimplikanten Wiederholung: solange Kosten (z.b. Anzahl Gatter) sich verringern Digitaltechnik Kapitel : Kombinatorische Schaltungen 4

Mehrstufige Logik Kürzere Schaltzeit Weniger Gatter a c b d a b c d e e Beide Schaltkreise sind äquivalent! Digitaltechnik Kapitel : Kombinatorische Schaltungen 4

Minimierung Mehrstufige Logik Faktorisieren: a c + a d e + b c + b d e hat mehr Gatter als (a + b) (c + d e) führt zu mehrstufiger Logik (multi-level logic) Tradeoff zwischen Laufzeit und Platz (siehe später Addierer) keine exakten Verfahren vorhanden! SIS Synthese Werkzeug http://www-cad.eecs.berkeley.edu Digitaltechnik Kapitel : Kombinatorische Schaltungen 42

Verilog Sprache zur Beschreibung von Schaltungen Übersetzung in Schaltung: Synthese Digitaltechnik Kapitel : Kombinatorische Schaltungen 43

Verilog Sprache zur Beschreibung von Schaltungen Übersetzung in Schaltung: Synthese Mehrere Stufen:. Netzliste (Graph aus Gattern) 2. Größendimensionierung der Gatter 3. Gatter werden platziert und verdrahtet (place and route) Vor nicht allzu langer Zeit: CAD Zeichnungen einzelner Transistoren! Digitaltechnik Kapitel : Kombinatorische Schaltungen 43

Verilog Module Verilog Modelle bestehen aus mehreren Modulen jedes Modul hat ein Interface, das die Inputs und Outputs definiert Digitaltechnik Kapitel : Kombinatorische Schaltungen 44

Einfaches Beispiel module main(input clk, schalter, output lampe); wire x; assign x=!schalter; 5 assign lampe=x; endmodule Verbindungsmöglichkeiten werden in der Klammer beschrieben (Semikolon nach der Klammer nicht vergessen) Rumpf des Moduls enthält Implementierung Digitaltechnik Kapitel : Kombinatorische Schaltungen 45

Fortsetzung zum einfachen Beispiel input Eingang, output Ausgang, inout bidirektionale Ports wire generiert ein Kabel mit assign x=!schalter; wird x das Resultat von!schalter zugewiesen (assigned)! ist (wie C/C++, Java,... ) Digitaltechnik Kapitel : Kombinatorische Schaltungen 46

Bezeichner, Spaces und Kommentare Verilog unterscheidet Groß- und Kleinschreibung (wie C, JAVA) Bezeichner bestehen aus Buchstaben, Zahlen und (underscore) Escape-Mechanismus: \$ein+fancy%bezeichner zeilenweise Kommentare beginnen mit Prefix // ähnlich den // Kommentaren in C++ Mehrfachzeilen-Kommentare mit /*... */ wie in C Spaces, Zeilenumschaltung, Tabulator trennen Tokens Semikolon definiert das Ende von Befehlen Digitaltechnik Kapitel : Kombinatorische Schaltungen 47

Kombinatorische Schaltungen in Verilog a b c z b c a module combinational function(input a, b, c, output z); assign z = (!a && b) (a && c); 5 endmodule Digitaltechnik Kapitel : Kombinatorische Schaltungen 48

Netzlisten-Implementierung module combinational function(input a, b, c, output z); assign z = (!a && b) (a && c); 5 endmodule Digitaltechnik Kapitel : Kombinatorische Schaltungen 49

Netzlisten-Implementierung module combinational function(input a, b, c, output z); assign z = (!a && b) (a && c); 5 endmodule a INV z AND2 OR2 c b AND2 Synthese des Verilog Codes mit Xilinx ISE generiert strukturelle Netzliste Noch nicht technologieabhängig Digitaltechnik Kapitel : Kombinatorische Schaltungen 49

Netzlisten-Implementierung module add (input a, b, ci, output s, co); assign s = a ˆ b ˆ ci ; assign co = (a && b) (b && ci) (a && ci); endmodule a a co co b b ci ci s XOR3 Digitaltechnik Kapitel : Kombinatorische Schaltungen 5

Kombinatorisches mit dem FPGA-Board (I) 2 2 2 3 2 5 2 4 2 2 FPGA von Xilinx 2 2 Stromversorgung 2 3 Leuchtdioden (LEDs) 2 4 Schiebeschalter 2 5 Taster Digitaltechnik Kapitel : Kombinatorische Schaltungen 5

Kombinatorisches mit dem FPGA-Board (II) Der Prozess Assign Package Pins weist einem Input/Output ein Beinchen des FPGAs zu Die Beinchen sind fest mit den LEDs, Tastern/Schaltern verbunden siehe erste Rechnerübung Digitaltechnik Kapitel : Kombinatorische Schaltungen 52

Kombinatorisches mit dem FPGA-Board (III) Digitaltechnik Kapitel : Kombinatorische Schaltungen 53

Modulhierarchie Module können zu größeren Modulen kombiniert werden: module add2 (input a, b, a, b, ci, output s, s, co); wire c; add A(a, b, ci, s, c); 5 add A2(a, b, c, s, co); endmodule a b module add2 a b a b a wire c ci ci add co ci add s s b co co s s Digitaltechnik Kapitel : Kombinatorische Schaltungen 54

Behavioral Modeling Es gibt eine Alternative zu wire und assign: module also comb(input a, b, ci, output s, co); reg s, co; 5 always @(a, b, ci) begin s = a ˆ b ˆ ci ; co = (a && b) (b && ci) (a && ci); end endmodule Ählich wie sequentielle Programmierspache, aber kombinatorisch! Digitaltechnik Kapitel : Kombinatorische Schaltungen 55

Beispiel module ifthen example(input a, b, c, output x); reg x; 5 always @(a, b, c) begin x=; if (a b c) x=; end endmodule Digitaltechnik Kapitel : Kombinatorische Schaltungen 56

Achtung! Mehrfachzuweisungen möglich Jedes Ausgangssignal muss auf allen Pfaden zugewiesen werden! Die Sensitivitätsliste @(...) muss vollständig sein! Digitaltechnik Kapitel : Kombinatorische Schaltungen 57

Mini-Quiz module thing(input [4:] in, in2, input s, output reg [4:] out); integer i ; 5 reg [4:] t2, t; always @(in, in2, s) begin i=4; while ( i>=) begin t[ i ] = s && in[i ]; t2[ i ] =!s && in2[i ]; i = i ; end out = t t2; 5 end endmodule Welches Bauteil stellt thing dar? (Klausur Frühling 28) Digitaltechnik Kapitel : Kombinatorische Schaltungen 58