BME-MIT FPGA labor Digitaltechnik Vorlesung 3 Technische und Wirtschaftswissenschaftliche Universität Budapest Fakultät für Elektrotechnik und Informatik Lehrstuhl für Messtechnik und Informationssysteme Balázs Renczes BME MIT
BME-MIT
FPGA labor
Digitaltechnik
Vorlesung 3
Technische und Wirtschaftswissenschaftliche Universität BudapestFakultät für Elektrotechnik und Informatik
Lehrstuhl für Messtechnik und Informationssysteme
Balázs Renczes
BME MIT
BME-MIT
FPGA labor
Minimierungs-Algorithmen
• Bis jetzt nur 2-Stufige Realisierung
• Sum-of-Products (SOP)
• (INV) – AND – OR
beziehungsweise
• Product-of-Sums (POS)
• (INV) – OR – AND
BME-MIT
FPGA labor
Minimierungs-Algorithmen
• Weitere Minimierungsmöglichkeiten
• Mehrstufige Realisationen
• Mehrausgängige Realisationen
BME-MIT
FPGA labor
Minimierungs-Algorithmen
• Mehrstufige Realisation
• F = A*B*C+A*B*D+/A*/C*/D+/B*/C*/D
• Unmittelbare Realisation 4 AND3 + 1 OR4 Gatter (16
Gattereingänge)
• X = A*B bzw. Y = C+D Substitution
• F = X*Y + /X*/Y = (A*B)*(C+D) +/(A*B)*/(C+D)
• 3 AND2 + 2 OR2 (10 Gattereingänge)
BME-MIT
FPGA labor
Minimierungs-Algorithmen
• Mehrausgängige Minimierung• z.B.: Übung 2 - BCD-Kode Fehlermeldung
• ERROR = A*B + A*C
• Gemeinsame Realisation:
• 1 AND2 + 5 OR2
• Bitweise Optimierung, Multiplikationsterme wieder verwenden
• A_OUT = A
• B_OUT = B + A*C
• C_OUT = C + A*B
• D_OUT = D + A*B +A*C
• 2 AND2 + 3 OR2
BME-MIT
FPGA labor
Logic Friday
• Demonstrations Programm
• Allgemeiner logischer Entwurf, Maximal 16 Ein-, 16
Ausgänge
• Unabhängige, oder mehrausgängige Minimierung
• Schnelle Laufzeit oder Bessere Minimierungsoption
• Spezifikation: Gleichung,
Wahrheitstabelle, Schaltbild
• Espresso und MIS II Prog.
BME-MIT
FPGA labor
Funktionale Einheiten
• Mithilfe der angezeigten Methoden und Gattern
lassen sich beliebige logische Schaltungen aufbauen
(Bis kleine und mittelmäßige Komplexität).
• Ausgehend von einer angegebenen Spezifikation:
Durchführen der Minimierung (Geschwindigkeit /
wenigsten Bauelemente), und Entwurf des
Realisations mit Gattern
• In meisten Fällen werden die Minimierung und
Optimierung durch das Entwicklungssystem
gemacht. (Basierend auf der Verilogs-spezifikation)
BME-MIT
FPGA labor
Funktionale Einheiten
• Anstatt von Entwurf auf Gatter-”Ebene” ist es
einfacher/effizienter, der Aufbau aus
Standardmodulen zu realisieren (Falls extreme
Optimierung nicht notwendig ist.)
• Das Ziel von Standardmodulen ist, dass man einfache
Lösungen für typische Aufgaben finden kann, die
zuverlässig funktionieren und skalierbar sind.
BME-MIT
FPGA labor
Funktionale Einheiten
• Logische Funktionen für allgemeine Anwendungen
• Logische Funktionen (DEC, MUX, DEMUX)
• Arithmetische Funktionen (ADD, SUB, COMP)
• Andere, noch nötige Funktionen
BME-MIT
FPGA labor
Funktionale Einheiten: Dekoder
• Der Dekoder erzeugt aus den binären Eingängen
durch eine allgemeine logische Funktion alle
Minterme – die Ordinalzahl der Eingabe wird 1
AUS = f (EIN)
• Falls EIN ein n-Bit langer binärer Eingang ist, dann
ist AUS eine 2n große, 1-aus-2n kodierter Bitvektor ,
deswegen heißt es DE-KODIERUNG
• Typische Größen: 1:2, 2:4, 3:8, 4:16. Aber es kann
auch 4:10 sein mit BCD-kodierten Eingängen
• Es kann auch größer sein, aber es ist besser, eine
mehrstufige Zeile / Spalte- oder eine Baumstruktur zu
benutzen
BME-MIT
FPGA labor
Funktionale Einheiten: Dekoder
• Einstufige, direkte Dekoders
• Die Ausgänge eines Dekoders entsprechen den
Minterms einer allgemeinen logischen Funktion mit
n Eingängen. Also alle Variablen tauchen entweder
poniert oder negiert auf.
• z.B. 2 Eingänge:
• Für n Bits n INV und
2n n Eingänige UND ist nötig
(Auf einem Bit nur 1 INV)
BME-MIT
FPGA labor
Funktionale Einheiten : Dekoder• Einer der Ausgänge des Dekoders ist immer aktiv
(Auf dem Eingang existiert immer eine Kombination)
• Deswegen ist est nützlich, ein Freigabesignal
einzuführen: Enable (EN).
• Falls EN = 0, alle Ausgänge inaktiv.
• So ist die Steuerung von weiteren Einheiten einfacher
• Dies ist die
wichtigste Funktion
des Dekoders
• Einfache Erweiterung
BME-MIT
FPGA labor
Funktionale Einheiten : Dekoder
• Aufbau eines einstufigen, direkten Dekoders
• Mit Inverters oder negierte Eingänge (schwierig zu
zeichnen und lesen)
BME-MIT
FPGA labor
Funktionale Einheiten : Dekoder
• Größere Dekoders• 60 Ausgänge: 60 Stück 6-Bit UND Gatter
• In einem Speicher z.B. für 217 Ausgänge
217 (131072) Stück 17-Eingang UND Gatter
• Andere Strategie ist nötig
• Mit Hilfe von EN Signalen eine
mehrstufige, hierarchische Aufbau.
• Speicher: Reihe-Spalte Dekoder,
2-Eingang UND-Gatter
BME-MIT
FPGA labor
Funktionale Einheiten : Dekoder• Große Dekoders (Moderiert Angezeigt)
• 4:16 Dekoder, mit EN Eingang,
• 2:4 Dekoder, Aus EN Dekoders aufgebaut
Hierarchisch 2D, Reihe-Spalte
BME-MIT
FPGA labor
Funktionale Einheiten: Multiplexer
• Grundlegende Funktion: Datenquelle, Datenfluss-richtungen auswählen• Xi, Xj, Xk sind die Dateneingänge• ENi, ENj, ENk Freigabe
• Y = Xi*ENi + Xj*ENj + Xk*ENk• Beliebige Anzahl von Eingängen• Richtige Funktionalität: Die EN Bitvektor soll 1-aus-N-
kodiert werden → Ausgang eines Dekoders
BME-MIT
FPGA labor
Funktionelle Einheiten: Multiplexer• Ein MUX: ein DEK+AND-OR
Mit der Dekoderfunktion gezeigt Auf Gatter-Ebene gezeigt
• Typische Größen: 2:1, 4:1, 8:1, 16:1
BME-MIT
FPGA labor
Funktionelle Einheiten: Multiplexer
• Der MUX ist realisierbar auch hierarchisch, in
Baumstruktur
• Die Struktur ist generierbar von LSB oder von MSB
• Mit LSB angefangen ist der erste Schritt die Wahl
zwischen gerade und ungerade Bits, und so weiter.
• Mit MSB angefangen ist der erste Schritt die
Eingänge zu halbieren (erste-zweite Teile), und
wieder halbieren usw…
• Der Baum ist in 2:1, 4:1, 8:1… Schritten aufzubauen
BME-MIT
FPGA labor
Funktionelle Einheiten: DEMUX
• Der DEMUX Demultiplexer entspricht der inversen
Funktionalität eines Multiplexers
• Eine Datenquelle auf mehrere Ausgänge verteilen
• Im Allgemeinen ist das auch ein DEK + AND Gatter
• Typische Grössen: 1:2, 1:4, 1:8
BME-MIT
FPGA labor
Funktionelle Einheiten: DEMUX• Anwendung von MUX-DEMUX Einheiten
• Übertragung von mehrere Daten auf einer einzigen Linie• Senderseite MUX, Empfängerseite DEMUX
• Die Übertragungslinie ist nur eine einzige Leitung. Sie hat aber eine
wesentlich größere Bandbreite
• Zeitmultiplexer Datenübertrag: an den beiden Seiten identischer Zeitplan
für Auswahlsignale
BME-MIT
FPGA labor
Funktionelle Einheiten: DEMUX• Anwendung von DEMUX-MUX Einheiten
• Parallele Durchführung von langsamenDatenverarbeitungen• Quellenseite 1:4 DEMUX,
• Aufgaben verteilen,
zwischen Einheiten S0, S1, S2, S3
• z. B. Daten mit 100MHz Abtastfreq.
(∆t = 10ns) durch 4x10ns
Einheiten verarbeiten
• An Ausgängen ist in alle 10ns
ein neues Ergebnis vorhanden
• Empfängerseite 4:1 MUX,
Ergebnisse sammeln
BME-MIT
FPGA labor
Universale logische Elemente• Aufgrund der Definition von boolschen Algebra sind alle
logische Funktionen mit 3 Grundoperationen (AND, OR,
INV) erstellbar. Also sind 3 Grundelemente nötig.
• Universales logisches Element: mit einem einzigen
Grundelement sind alle logische Funktionen erstellbar.
Exitiert solche?
• Ja, 2: NAND Gatter und NOR Gatter
• Beweis: die drei Grundfunktionen sind realisierbar
NAND /(A*B) NOR /(A+B)
INV: /(A*A) /(A+A)
AND:/(/(A*B)*/(A*B)) /(/(A+A)+/(B+B))
OR: /(/(A*A)*/(B*B)) /(/(A+B)+/(A+B))
BME-MIT
FPGA labor
Universale logische Elemente
• Also die einfachste universale Elemente
• NAND Gatter und NOR Gatter
• Andere universale Elementbestand:
• Multiplexer
• Speichertabelle (LUT, Look Up Table)
BME-MIT
FPGA labor
Multiplexer als UNIV Element
• Multiplexer als universale Logik
• Eingangsvariablen: Auswahleingänge (SEL)
• Funktion angeben: Werte von Spalte der
Ausgangssignal von der Wahrheitstabelle werden als
konstantes Signal auf die Dateneingänge verbunden
• frühere F1 und F2 Funktionen (1-Bit FADD Si und Co)
BME-MIT
FPGA labor
Multiplexer als UNIV Element• Eingangsvariablen: Auswahleingänge (SEL), aber eine
Variable (oder ihre Negierte) ist auf die Dateneingänge
verbindbar (Größe von MUX wird die Hälfte
• Angabe der Funktion: Die Werte der Ausgangssignale werden
durch das augewählte Signal angegeben
• aufgrund vorigem Beispiel (1-Bit FADD Si und Co)
BME-MIT
FPGA labor
LUT Speicher, als UNIV Element• Speicher = universale Logik
• Eingangsvariablen: Adressenbits des Speichers
• Angabe der Funktion: Werte von Spalte des Ausgangssignals
von der Wahrheitstabelle werden als konstantes Signal auf die
Adresse des Speichers aufrgrund des Zeileindex
eingeschrieben
• frühere F1 und F2 Funktionen (FADD Si und Co)