Logische Variablen besitzen die Wertemenge {0,1}
Die technologische Umsetzung und Implementierung von logischen Zuständen {0,1} findet i.A. durch elektronische Schaltungstechnik statt.
Logische Funktionen werden mit Funktions- oder Wahrheitstabellen beschrieben, die alle Kombinationen von Logikwerten der Eingangsvariablen auf ein oder mehrere Ausgangswerte abbilden.
Den logischen Zuständen werden i.A. zwei verschiedene Spannungspegel zugeordnet, deren Werte abhängig von der Schaltungstechnologie sind.
Es werden keine festen Spannungswerte sondern Spannungsbreiche (Intervalle) verwendet, z.B. für die TTL-Technologie, die mit einer Versorgungsspannung von 5V betrieben wird
Der Grund von Spannungsintervallen liegt in einem möglichst großen Störabstand begründet, d.h. Immunität gegen Störungen, da digitale Spannungssignale bei der Technologieumsetzung tatsächlich als analoge Signale auftreten, d.h. wert- und zeitkontinuierliche Signale.
Ein nicht vermeidbares Phänomen, das Signalrauschen, welches physikalisch bedingt ist, führt immer zu einer Unsicherheit des Spannungspegels von digitalen Signalen.
Weiterhin können sich Logikpegel nihct beliebig schnell ändern (0 → 1, 1 → 0), und es gibt immer eine Zeitspanne in der sich ein technisches Logiksignal in einem undefinierten Zustand befindet!
[1]
Es gibt verschiedene Schaltungstechnologien, mit denen Digitallogikschaltungen auf Transistorebene realisiert werden können.
Bipolare Transistortechnik mit folgenden Eigenschaften:
Complementary Metall Oxide Substrate → Feldeffekt-Transistortechnik, Heute dominierender Technologieprozeß mit folgenden Eigenschaften:
Emitter-Coupled-Logic → bipolare Transistortechnik mit folgenden Eigenschaften:
Logische Grundfunktionen der kombinatorischen Logik
| x | y=¬ x |
| 0 | 1 |
| 1 | 0 |
CMOS: Complimentary Metal Oxide Substrate Technologie
Die Transistorschaltung besteht aus einem sog. N-Kanal (unten) und dazu im Verhalten komplementären P-Kanal (oben) MOS-Feldeffekttransistor, mit selbstsperrenden Verhalten.
Weitere elektronische Bauelemente sind zur Implementierung im Gegensatz zu der Bipolartransistortechnik nicht erforderlich.
Das in der Digitaltechnik gewünschte Schaltverhalten {0,1} ergibt sich aus dem analogen Übertragungsverhalten der Transistoren, d.h. der Kennlinie eines N-/P-MOSFET-Transistors.
Vereinfacht kann ein Transistor als steuerbarer Schalter verstanden werden. Jedoch: Ein FET Transistor ist eine spannungsgesteuerte Stromquelle.
Dieser Anschluss ist als Ladungslieferant zu verstehen, d.h. der Quelle für elektrische Ladungsträger, den Elektronen (neg.), oder den sog. Löchern (pos.).
Gegenüber der Ladungsquelle befindet sich die Ladungssenke, über den ein Fluss von Ladungsträgern stattfinden kann.
Der Gate-Anschluss beeinflusst den Ladungstransport zwischen Source und Drain-Anschluss, und ermöglicht eine spannungsgesteuerte Stromquelle.
Der andere Zustand eines Transistors ist der leitende Zustand, bei dem ein elektrischer Strom zwischen Source und Drain-Anschluss IDS fließen kann.
Neben den drei Anschlüssen {S,G,D} gibt einen sog. Substrat-Anschluss, der mit einem fixen Potential verbunden ist.
Aus Gründen der Übersichtlichkeit verwendet man vereinfachte elektronische Transistorsymbole, die im folgenden ausschließlich verwendet werden.
Elektronische Schaltsymbole von MOSFET Transistoren
www.electrical4u.com
Man kann einen Inverter mit zwei Transistoren oder einem Transistor und einem Widerstand aufbauen. Überlege, was elektrotechnisch der Vorteil und der Nachteil wären.
Warum sind bipolare Transistoren gegenüber Feldeffekttransistoren in der Digitallogik unterlegen?
Welchen Nachteil haben FET Transistoren (physikalisch)
Wo kommen die für einen P-Kanal MOSFET benötigten negativen Steuerspannungen her?
Logische Funktion: Und-Verknüpfung → Konjunktion
| x | y | z=f(x,y) | ¬z |
| 0 | 0 | 0 | 1 |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 0 |
CMOS Technologie ist grundsätzlich invertierend → Inverter ist Elementarzelle der CMOS Logik!
Daher ist einfachste Implementierung eine Und Gatters ein Nicht-Und Gatter (NAND) → 4 Transistoren
Logische Funktion: Oder-Verknüpfung → Disjunktion
| x | y | z=f(x,y) | ¬z |
| 0 | 0 | 0 | 1 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 1 | 0 |
Logische Funktion: Exklusiv-Oder-Verknüpfung → 1-Bit-Addierer!
| x | y | z=f(x,y) |
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
Eine Logikschaltung besitzt Ein- und Ausgänge, d.h., beschrieben durch Vektoren X=(x1,x2,..,xn) und Y=(y1,y2,..,ym)
Eine Logikschaltung ist eine Netzliste aus elementaren Logikgattern (z.B. aus einer Standardbibliothek)
Ein Logiksimulator kann ereignisbasiert die Änderung der Ausgangssignale bei einer Änderung der Eingangssignale und allen inneren Signalen berechnen
Wichtig: Ein technologisches Zeitmodell für die Signalausbreitung ist erforderlich und muss vom Simulator unterstützt werden
Das Eingabemuster wird gleichzeitig auf die LUT und die zu testende Schaltung (DUT, Dvice under Test) gegeben
Ein Komparator oder bei m=1 ein EXOR Gatter wird verwendet um das Ergebnis zu evaluiren
Ein nachfolgendes Register “sampled” das Vergleichsergebnis (Assertion true/false)
Implementiere die Boolesche Gleichung eines EXOR Gatters in ReTro mit elementaren Logikgattern
Füge die Schaltung in eine Testumgebung ein (siehe Abb. 10), um die Wahrheitstabelle testen zu können.
Die Boolesche Algebra besteht aus drei Operationen:
Boolesche Werte besitzen eine Wertmenge {0,1}.
Boolesche Funktionen bilden n Variablen (n-dimensionaler Vektor) auf m Ergebniswerte (m-dimensionaler Vektor) ab:
I.A. ist m=1, d.h. Verwendung von skalaren booleschen Funktionen.
Jede m-dimensionale Boolesche Funktion kann in einen Satz aus m skalaren Funktionen zerlegt werden (ohne weitere Transformation)
Boolesche Algebra ist Hilfsmittel beim Entwurf von digitalen Schaltungen.
Eine Aufgabenstellung definiert Schaltbedingungen, die in einer Funktions-/Wahrheitstabelle dargestellt werden.
Dabei können in einer Tabelle beliebige m-dimensionale Boolesche Funktionen als Verhaltensbeschreibung dargestellt werden, d.h., wie Eingangs- auf Ausgangswerte abgebildet werden.
| switch1 | switch2 | motor1 | light2 |
| 0 | 0 | 0 | 1 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 0 |
Diese Schaltbedingungen können auch durch boolesche Funktionen dargestellt werden, die aus der Funktionstabelle abgeleitet werden.
Die so gewonnenen Funktionen werden mittels Gesetzen der Booleschen Algebra umgeformt und vereinfacht, so dass eine technische Realisierung mit minimalen Aufwand erfolgen kann.
Aus Funktionstabellen werden im ersten Entwurfsschritt sog. Normalformen von logischen Funktionen abgeleitet. Man unterscheidet:
Eine Summe aus Produkttermen (SOP)
Ein Produkt aus Summentermen (POS)
| ai | aj | q | |
| x | x | 1 | → Teilterm |
| x | x | 0 | |
Beispiel einer SOP Normalform
| A | B | Q | |
| 0 | 1 | 1 | → (¬ A • B) |
| 1 | 0 | 1 | → (A • ¬ B) |
| 0 | 0 | 0 | |
| 1 | 1 | 0 | |
→ Q = (¬A•B) + (A•¬B)
Jede Boolesche Operation (+ *) wird auf Logikgatter abgebildet.
Negation werden auf Inverter abgebildet und ggfs. direkt in einer Verknüpfung integriert
Die boolesche Funktion Q führt zu folgender Digitallogikschaltung:
Jeder Teilterm besteht aus einer Oder-Verknüpfung der Eingangsvariablen, die entweder negiert oder nicht negiert im Term auftreten.
Alle Teilterme werden und-verknüpft und ergeben die boolesche Funktion:
| ai | aj | q | |
| x | x | 0 | → Teilterm |
| x | x | 1 | |
Beispiel einer POS Normalform
| A | B | Q | |
| 1 | 1 | 0 | → (¬ A + ¬ B) |
| 0 | 0 | 0 | → (A + B) |
| 0 | 1 | 1 | |
| 1 | 0 | 1 | |
→ Q = (¬ A + ¬ B) • (A + B)
Beide Normalformen sind i.A. noch redundant, d.h. sie können vereinfacht werden.
Eine Schaltmatrix mit drei Eingängen X=(A,B,C) und einem Ausgang Y soll bestimmt werden.
Immer wenn zwei Tasten gleichzeitig gedrückt werden (Xi=1,Xj=1), soll die Lampe leuchten (Y=1).
Aufgabe: Bestimmung der Funktionstabelle aus obigen Anforderungen und Vereinbarungen
Leite die Disjunktive Normalform aus der Wahrheitstabelle des technischen Beispiels ab.
Leite die Konjunktive Normalform aus der Wahrheitstabelle des technischen Beispiels ab.
|
|
|
Term 1:
Term 2:
Term 3:
DNF:
Term 1: , Term 2:
Term 3: , Term 4:
Term 5:
DNF:
Die boolesche Algebra kennt nur die zweiwertige Menge {0,1} zur Zustandsbeschreibung eines digitalen Wertes. Bei der technologischen Umsetzung können mehrwertige Logikzustände auftreten:
Starker logischer Wert False. Ein Signal mit diesem Wert darf mit keinem anderen starken Signal überlagert bzw. zusammengeschlossen werden (elektrisch: Kurzschluss!).
Starker logischer Wert True. Ein Signal mit diesem Wert darf mit keinem anderen starken Signal überlagert bzw. zusammengeschlossen werden.
Schwacher logischer Wert False. Schwache Signale können überlagert und mittels einer Auflösungsfunktion einen summierten Wert bilden.
Schwacher logischer Wert True. Schwache Signale können überlagert und mittels einer Auflösungsfunktion einen summierten Wert bilden.
Hochohmiger Zustand. Mehrere Signale können überlagert und einen gemeinsamen Bus bilden. Der Zustand Z entkoppelt den schreibenden (treibenden) Zugriff eines Kommunikationsteilnehmers von einer Signalleitung. Die Signalleitung kann bidirektional verwendet werden. Lesender Zugriff ist aber jederzeit möglich.
Logischer Zustand ”Don’t-Care”. Bei der Evaluierung von booleschen Funktionen können dieses Zustände ignoriert werden, mit der Möglichkeit der Logikoptimierung.
Zweiwertige Logik {0,1}
Mehrwertige Logik {0,1,L,H,Z,X,..}
Example 1. (Beispiele in VHDL)
signal x: std_logic_vector(3 downto 0);
...
process triStateDriver(we,addr)
begin
if we = ′1′ and addr=”00” then
x <= ”0000”;
elsif we = ′1′ and addr=”01” then
x <= ”0001”;
else
x <= ”ZZZZ”; −− Tristate BUS State Disconnected
end if;
end process;Ziel der Minimierung:
Möglichst kleine Anzahl von Logikgattern bei der elektronischen Implementierung bei gleichzeitig geringer Signallaufzeit,
Man unterscheidet vier grundlegenden Verfahren:
Die KV-Diagramm-Methode ist anschaulich und intuitiv, und soll als Einstieg verstanden werden.
Es findet eine Darstellung der Funktionstabelle in Zeilen und Spalten eines Diagramms statt. Dabei sind die Diagrammfelder so angeordnet, dass sich bei einem Übergang von einem zu einem anderen Feld immer nur eine Variable ändert.
Es existieren unterschiedliche Diagramme für DNF (SOP) und KNF (POS) Darstellungen.
In jedem Feld wird der zu den Werten der Eingangsvariablen gehörende Ausgangszustand/wert Fi,j={0,1} eingetragen.
Das Diagramm ist zyklisch: der Übergang von rechten Rand zum linken, und von unteren zum oberen ist möglich → Torusoberfläche
Bei drei Eingangsvariablen reduziert sich das Diagramm um zwei Zeilen.
Folgende Schritte sind zur Ableitung einer minimalen d.h. reduzierten DNF (RDNF) notwendig:
Benachbarte Felder Fi,j=1 werden zu Flächen mit 2N Elementen zusammengefasst. Die größtmöglichen Flächen/Gruppen sollen gebildet werden.
Alle Felder müssen in mindestens einer Fläche/Gruppe erfasst werden.
Ableitung eines neuen Teilterms der RDNF aus einer Fläche/Gruppe: Produkt aus allen Variablen, die allen Feldern der Gruppe gemeinsam sind.
Die Teilterme werden summiert.
Es ist eine Reduktion von ursprünglich 49 booleschen Operationen und 8 Teiltermen auf 11 Operationen und 3 Teiltermen erfolgt! Nimmt man im Mittel 4 CMOS-Transistoren je boolescher Operation an, ergibt sich eine Verringerung der Transistoren von 196 → 44, und eine Verringerung der Chipfläche um den Faktor 2.11
Folgende Schritte sind zur Ableitung einer minimalen d.h. reduzierten KNF (RKNF) notwendig:
Verfahren nach Quine und McCluskey
Die QM-Methode ist formaler als das vorherige Diagrammverfahren. Zum Verständnis einige Definitionen:
Beispiel: .
Summenterme (der KNF) werden als Maxterme bezeichnet, wenn jede Variable einmal auftritt. Bei der vollständigen KNF ist jeder Summenterm ein Maxterm.
Ein Produktterm P heißt Implikant der booleschen Funktion Q, wenn aus P=1 ⇒ Q=1 folgt. Jeder Produktterm der DNF ist ein Implikant.
Beispiel: sowohl als auch
sind Implikanten von Q.
Beispiel: Q=A•¬B•C•¬D + A•B•C + ¬A•¬B•C•¬D
Terme, in denen eine Variable komplementär auftreten, lassen sich verkürzen:
(2435) ⇒ X1X0
(2345) ⇒ X1X0
(14) →
(46) →
Verkürzte (minimierte) boolesche Funktion:
Einzelne Primterme sind möglicherweise noch redundant. Ihre Anzahl lässt sich durch Bestimmung der minimalen Überdeckung noch minimieren.
Im Beispiel: Suche der Überdeckungen zwischen Produkt- und Primtermen:
Alle Überdeckungen werden markiert (X), d.h. wenn ein Primterm vollständig in einem Minterm enthalten ist.
Alle Primterme können weggelassen werden, solange in jeder Zeile mindestens eine Überdeckung vorhanden ist. Im Beispiel ist keine weitere Reduzierung möglich!
Binary-Decision-Diagram (BDD)
Beispiel: f(x1,x2)=¬x1+¬x2
Erzeugung eines BDD’s aus BF schrittweise durch Evaluierung der einzelnen Variablen {x1,..,x2} mit den Werten {0,1}:
Jeder innere Knoten stellt eine neue (Sub-) BF dar:
Die Tatsächliche Größe und Struktur eines BDD’s hängt von der Variablenreihenfolge bei der Erzeugung ab! (Ausnahme: symmetrische BF).
Beispiel zweier BDDs erzeugt aus f(x1,x2,x3)=x1 • x2 + x3