26
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

Fakultätfür Elektrotechnik und Informatik Lehrstuhl für

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Fakultätfür Elektrotechnik und Informatik Lehrstuhl für

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

Page 2: Fakultätfür Elektrotechnik und Informatik Lehrstuhl für

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

Page 3: Fakultätfür Elektrotechnik und Informatik Lehrstuhl für

BME-MIT

FPGA labor

Minimierungs-Algorithmen

• Weitere Minimierungsmöglichkeiten

• Mehrstufige Realisationen

• Mehrausgängige Realisationen

Page 4: Fakultätfür Elektrotechnik und Informatik Lehrstuhl für

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)

Page 5: Fakultätfür Elektrotechnik und Informatik Lehrstuhl für

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

Page 6: Fakultätfür Elektrotechnik und Informatik Lehrstuhl für

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.

Page 7: Fakultätfür Elektrotechnik und Informatik Lehrstuhl für

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)

Page 8: Fakultätfür Elektrotechnik und Informatik Lehrstuhl für

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.

Page 9: Fakultätfür Elektrotechnik und Informatik Lehrstuhl für

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

Page 10: Fakultätfür Elektrotechnik und Informatik Lehrstuhl für

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

Page 11: Fakultätfür Elektrotechnik und Informatik Lehrstuhl für

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)

Page 12: Fakultätfür Elektrotechnik und Informatik Lehrstuhl für

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

Page 13: Fakultätfür Elektrotechnik und Informatik Lehrstuhl für

BME-MIT

FPGA labor

Funktionale Einheiten : Dekoder

• Aufbau eines einstufigen, direkten Dekoders

• Mit Inverters oder negierte Eingänge (schwierig zu

zeichnen und lesen)

Page 14: Fakultätfür Elektrotechnik und Informatik Lehrstuhl für

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

Page 15: Fakultätfür Elektrotechnik und Informatik Lehrstuhl für

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

Page 16: Fakultätfür Elektrotechnik und Informatik Lehrstuhl für

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

Page 17: Fakultätfür Elektrotechnik und Informatik Lehrstuhl für

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

Page 18: Fakultätfür Elektrotechnik und Informatik Lehrstuhl für

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

Page 19: Fakultätfür Elektrotechnik und Informatik Lehrstuhl für

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

Page 20: Fakultätfür Elektrotechnik und Informatik Lehrstuhl für

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

Page 21: Fakultätfür Elektrotechnik und Informatik Lehrstuhl für

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

Page 22: Fakultätfür Elektrotechnik und Informatik Lehrstuhl für

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))

Page 23: Fakultätfür Elektrotechnik und Informatik Lehrstuhl für

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)

Page 24: Fakultätfür Elektrotechnik und Informatik Lehrstuhl für

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)

Page 25: Fakultätfür Elektrotechnik und Informatik Lehrstuhl für

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)

Page 26: Fakultätfür Elektrotechnik und Informatik Lehrstuhl für

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)