Flipflops und Zählerentwurf - Technische Informatik
Flipflops und Zählerentwurf - Technische Informatik
Flipflops und Zählerentwurf - Technische Informatik
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Copyright (C) <strong>Technische</strong> <strong>Informatik</strong><br />
Universität Duisburg-Essen<br />
PRAKTIKUM<br />
Gr<strong>und</strong>lagen der<br />
<strong>Technische</strong>n <strong>Informatik</strong><br />
VERSUCH 3<br />
<strong>Flipflops</strong><br />
<strong>und</strong> <strong>Zählerentwurf</strong><br />
Name: Matrikelnummer:<br />
Vorname: Gruppennummer:<br />
Betreuer: Datum:<br />
Vor Beginn des Versuchs sind die Fragen, die mit F1 bis Fn gekennzeichnet<br />
sind, zu beantworten. Die mit A1 bis An gekennzeichneten Aufgaben sind<br />
während des Praktikums zu bearbeiten<br />
Prof. Dr.Ing. Axel Hunger<br />
Dipl.Ing. Joachim Zumbrägel<br />
Universität Duisburg-Essen<br />
Fakultät Ingenieurwissenschaften<br />
Fachgebiet <strong>Technische</strong> <strong>Informatik</strong>
Praktikum GTI Versuch 3: Flip-flops <strong>und</strong> <strong>Zählerentwurf</strong><br />
Einführung<br />
In dem vorangegangenen Versuch wurden mehrere Schaltungen simuliert <strong>und</strong> analysiert. Die<br />
wichtigsten Funktionen des Simulationsprogramms OrCAD Capture wurden vorgestellt <strong>und</strong><br />
angewendet. Diese Erkenntnisse sollen jetzt dazu benutzt werden, einige Schaltungen selbst zu<br />
entwerfen <strong>und</strong> zu simulieren.<br />
1. Flip-flops (FFs)<br />
Bei allen logischen Schaltungen, die wir bis jetzt bearbeitet haben, handelte es sich um rein<br />
„kombinatorische“ Schaltungen, auch Schaltnetze genannt. Bei Schaltnetzen handelt es sich<br />
um eine Komposition von reinen Logik-Gattern ohne Rückkopplung. Der Ausgang von<br />
Schaltnetzen ist immer nur von der aktuellen Eingangsbelegung abhängig.<br />
Im Gegensatz dazu handelt es sich bei „sequentiellen“ Schaltungen (Schaltnetze) um<br />
Schaltungen, deren Ausgangssignale nicht mehr ausschließlich von den Eingangssignalen<br />
der Schaltung abhängig sind, sondern zusätzlich von den inneren Zuständen der Schaltung.<br />
Diese wiederum sind abhängig von der „Sequenz“ der vorangegangen Eingangssignale.<br />
Flip-Flops sind die allgemeinsten <strong>und</strong> gr<strong>und</strong>legendsten Speicherbauelemente, die für<br />
Informationsspeicherung in den sequentiellen Schaltungen benutzt werden. Ein Flip-Flop kann<br />
in einem von zwei logischen Zuständen bleiben. Um seinen Zustand zu ändern, benötigt es ein<br />
neues Eingangssignal. Dieses macht das Flip-Flop zu einem 1 bit Speicherbauelement. Es gibt<br />
drei gr<strong>und</strong>legende Arten von Flip-Flops:<br />
• Speicher Flip-Flop (RS-FF)<br />
• Auffang Flip-Flop (D-FF)<br />
• Toggle Flip-Flop (T-FF)<br />
1.1 Reset Set (RS) Flip-flop<br />
Das RS-FF ist ein einfaches Speicher FF mit zwei Eingängen, S für das Setzen (set) <strong>und</strong> R für<br />
das Zurücksetzen (reset) des FFs. Das RS-FF speichert seine Zustände solange die Eingänge S<br />
<strong>und</strong> R gleich 0 sind. Der Ausgang des RS-FFs wird 1 sobald der Eingang S auf 1 gesetzt wird.<br />
Eine 1 am R Eingang erzwingt eine 0 am Ausgang. Dieses Verhalten wird durch die<br />
Wahrheitstabelle 1.1.1 veranschaulicht (Q n ist der vorhergehende Zustand von Q n+1 ).<br />
2/20
Praktikum GTI Versuch 3: Flip-flops <strong>und</strong> <strong>Zählerentwurf</strong><br />
S R Q n Q n+1 Funktionalität<br />
0 0 0 0 Beide Eingänge sind 0, der<br />
vorherige Zustand wird<br />
0 0 1 1 gespeichert<br />
0 1 0 0<br />
0 1 1 0<br />
Der reset Eingang ist 1, d.h.<br />
der Ausgang Q wird 0<br />
1 0 0 1 Ist der Setzeingang 1, so<br />
wird das FF gesetzt, d.h. der<br />
1 0 1 1 Ausgang Q wird 1.<br />
1 1 0 X Dieser Zustand darf beim<br />
RS-FF nicht auftreten. Der<br />
1 1 1 X<br />
Ausgangszustand des FF ist<br />
nicht definiert.<br />
Tabelle 1.1.1: Wahrheitstabelle für einen RS Flip-Flop<br />
RS-<strong>Flipflops</strong> können sowohl mit NAND- als auch mit NOR-Gattern aufgebaut werden. Bild<br />
1.1.1 zeigt den gr<strong>und</strong>legenden Aufbau eines auf NOR-Gattern basierenden RS-FF.<br />
Bild 1.1.1: Ungetaktetes RS-FF aus NOR-Gattern<br />
(RS-LATCH)<br />
Bild 1.1.3 zeigt den Aufbau eines NAND-Gatter basierten RS-FFs mit Takteingang. Bild<br />
1.1.4 zeigt das dazugehörige Symbolschaltbild des RS-FFs. Mit Hilfe des Takts (CLK) wird<br />
definiert, wann die Eingangssignale S <strong>und</strong> R wirken. Ein getaktetes RS-FF wird häufig mit<br />
clear (CLR) <strong>und</strong> pre-set (PRE) Anschlüssen versehen, die es erlauben das FF unabhängig vom<br />
Takt <strong>und</strong> Vorzustand in einen wohl definierten Zustand zu versetzen. Die Eingänge CLR <strong>und</strong><br />
RRE dürfen nicht gleichzeitig verwendet werden.<br />
S<br />
R<br />
Bild 1.1.2<br />
Q<br />
Q<br />
3/20
Praktikum GTI Versuch 3: Flip-flops <strong>und</strong> <strong>Zählerentwurf</strong><br />
Bild 1.1.3: Getaktetes NAND-Gatter RS-FF mit pre-set <strong>und</strong> clear<br />
S<br />
CLK<br />
R<br />
CLR<br />
PRE<br />
Bild 1.1.4<br />
1.2 Jump Kill (JK) Flip-flop<br />
Neben dem RS-Flipflop existieren noch eine Reihe weiterer <strong>Flipflops</strong>. Da sich die<br />
verschiedenen Flipflop-Arten durch die äußere Beschaltung voneinander unterscheiden, wird<br />
ein universelles Flipflop vorgestellt, nämlich das J-K Flipflop. Mit Hilfe dieses <strong>Flipflops</strong> ist es<br />
möglich andere Flipflop-Typen zu realisieren. Tabelle 1.2.1 stellt das zeitliche Verhalten des<br />
JK-FF, sowie des RS-FF, D-FF <strong>und</strong> des T-FF dar. Dabei steht Q n für den letzten Zustand am<br />
Ausgang Q, <strong>und</strong> Q n+1 für den Zustand, der sich bei der gegebenen Eingangsbelegung als<br />
Folgezustand am Ausgang Q einstellt. Ein X bedeutet dabei, dass diese Eingangsbelegung der<br />
Eingänge J <strong>und</strong> K verhindert werden muss.<br />
Inputs Q n Q n+1<br />
J K JK-FF RS-FF D-FF T-FF<br />
0 0 0 0 0 X 0<br />
0 0 1 1 1 X 1<br />
0 1 0 0 0 0 X<br />
0 1 1 0 0 0 X<br />
1 0 0 1 1 1 X<br />
1 0 1 1 1 1 X<br />
1 1 0 1 X X 1<br />
1 1 1 0 X X 0<br />
Tabelle 1.2.1<br />
Q<br />
Q<br />
4/20
Praktikum GTI Versuch 3: Flip-flops <strong>und</strong> <strong>Zählerentwurf</strong><br />
Hier wird kurz auf die Funktionsweise des JK-FF eingegangen:<br />
Falls die Bedingungen J = 0 <strong>und</strong> K = 0 erfüllt sind, bleibt der Ausgang Q unverändert erhalten.<br />
("Speichern")<br />
Falls die Bedingungen J = 1 <strong>und</strong> K = 1 erfüllt sind, ändert sich der FF-Ausgang bei jedem Takt<br />
("Toggle").<br />
Falls die Bedingungen J = 0 <strong>und</strong> K = 1 oder J = 1 <strong>und</strong> K = 0 erfüllt sind, werden an den<br />
Ausgang auch diese Zustände weitergegeben, falls diese Zustände am Ausgang nicht bereits<br />
herrschen.<br />
n<br />
Die charakteristischen Gleichungen für das JK-FF lautet: Q<br />
n + 1<br />
= K ⋅ Q<br />
n<br />
+ J ⋅ Q .<br />
Wir können anhand der Wahrheitstabelle (Tabelle 1.2.1) die Gleichungen <strong>und</strong> die Eingänge<br />
anderer FFs ableiten, die aus dem JK-FF abgeleitet werden können.<br />
Ein RS-FF kann aus einem JK-FF gebildet werden, indem verhindert wird, daβ die Eingänge J<br />
<strong>und</strong> K gleichzeitig den logischen Pegel "1" erhalten. Es soll die Bedingung J⋅K = 0 erfüllt<br />
werden.<br />
1.3 Delay (D) Flip-flop<br />
Wie der Name andeutet, ist der Zweck eines D-FFs das Speichern (oder Verzögern) einzelner<br />
Bits. Mit jedem Taktsignal wird das aktuelle Signal D am Ausgang Q übernommen. Bild 1.3.1<br />
zeigt das Gattersymbol eines D-FFs.<br />
Anhand der Wahrheitstabelle (Tabelle 1.2.1) lässt sich erkennen, wie ein D-FF aus einem JK-<br />
FF abgeleitet werden kann. Relevant sind für das D-FF nur die Eingangsbelegungen für die<br />
gilt, dass J ungleich K ist. Dies lässt sich leicht durch ein NOT-Gatter realisieren (Bild 1.3.2).<br />
Somit ist die geforderte Bedingung K = J immer erfüllt.<br />
D Q<br />
CLK<br />
Bild 1.3.1<br />
Q<br />
J Q<br />
CLK<br />
1.4 Trigger (T) Flip-flop<br />
Erneut betrachten wir die Wahrheitstabelle (Tabelle 1.2.1) um festzustellen, wie ein T-FF aus<br />
einem JK-FF abgeleitet werden kann. Relevant sind für das T-FF nur Eingangsbelegungen für<br />
die gilt, das J gleich K ist. Dies wird durch eine Verbindung zwischen J <strong>und</strong> K sichergestellt<br />
(Bild 1.4.1). Somit gilt: T = J = K<br />
D<br />
K<br />
Bild 1.3.2<br />
Q<br />
5/20
Praktikum GTI Versuch 3: Flip-flops <strong>und</strong> <strong>Zählerentwurf</strong><br />
T<br />
J Q<br />
CLK<br />
K<br />
Bild 1.4.1<br />
Die charakteristische Gleichung für T-FFs kann der<br />
Wahrheitstabelle entnommen werden:<br />
n<br />
Q T Q<br />
n+1<br />
= ⊕<br />
Für T = 1 gilt: Q n<br />
Q n+1<br />
= , das bedeutet, dass der<br />
Ausgang mit jedem Takt zwischen 0 <strong>und</strong> 1<br />
umschaltet (Toggle). Das hat zur Folge, dass die<br />
Frequenz des Ausgangsignals gleich der Hälfte der<br />
CLK-Frequenz ist.<br />
F1: Bild 1.1 zeigt die Schaltung zweier Flip-Flops. Welches Flip-Flop arbeitet als D-FF <strong>und</strong><br />
warum?<br />
Bild 1.1<br />
F2: Welcher Zustand ist für ein RS-FF verboten?<br />
Q<br />
6/20
Praktikum GTI Versuch 3: Flip-flops <strong>und</strong> <strong>Zählerentwurf</strong><br />
F3: Mit welchen Eingangsbelegungen wird das RS-FF gesetzt bzw. gelöscht?<br />
F4: Manche FFs haben zusätzliche Eingänge, wie clear (CLR) <strong>und</strong> pre-set (PRE). Welche<br />
Funktion haben diese Eingänge?<br />
F5: Notieren Sie den charakteristischen Ausdruck für einen D-FF?<br />
2. Register<br />
Ein Register ist ein Schaltkreis der ganze Datenwörter speichern kann. Ein Register entsteht<br />
durch die Verbindung mehrer FFs. Also besteht ein n-bit Register aus n FFs. Bild 2.1<br />
veranschaulicht einen 4 Bit Register aus D-FFs.<br />
Bild 2.1<br />
F6: Wie muss die serielle Eingangssequenz für den Eingang D lauten, damit das Muster<br />
(D3 D2 D1 D0) = (1010) in dem 4-Bit-Register gespeichert wird?<br />
7/20
Praktikum GTI Versuch 3: Flip-flops <strong>und</strong> <strong>Zählerentwurf</strong><br />
F7: Wo kann ein Register angewendet werden? Nennen Sie zwei Beispiele.<br />
F8: Wie würden Sie die Schaltung in Bild 2.1 ändern, um ein Ring-Register zu erzeugen?<br />
Erklären Sie Ihre Antwort <strong>und</strong> zeichnen Sie die Modifikation in das Bild.<br />
3. Zähler<br />
Bevor wir uns mit dem Entwurf eines Zählers beschäftigen, wollen wir kurz auf die<br />
charakteristische Gleichungen von Schaltnetzen bzw. Schaltwerken eingehen.<br />
Für kombinatorische Schaltungen (Schaltnetzen) gilt, dass die Ausgänge (Q) immer nur von<br />
der aktuellen Eingangsbelegung (X) abhängig sind. Es gilt also:<br />
n<br />
Q =<br />
f ( X<br />
Der Ausgang einer sequentiellen Schaltung (Schaltnetz) hingegen, hängt nicht nur von<br />
gegenwärtigen Eingängen, sondern auch von den inneren Zuständen der Schaltungen ab, die<br />
wiederum aus vorhergehenden Eingängen resultieren. Folglich gilt:<br />
Q<br />
n<br />
n<br />
)<br />
n<br />
= f ( X , Q<br />
Eine der typischsten Anwendungen für sequentielle Schaltungen ist ein Zähler. Besitzt der<br />
Zähler außer dem Takteingang keine weiteren Eingänge, so hängt der Zustand des Zählers nur<br />
vom vorhergehenden Zustand ab:<br />
Q<br />
n<br />
= f ( Q<br />
3.1 (5-3-2-1 Code) Zähler<br />
Im Praktikum soll ein (5-3-2-1 Code) Zähler entwickelt werden, der über ein Schaltnetz eine<br />
7-Segment-Anzeige ansteuert. Die Dezimalzahlen 0-9, die später auf der 7-Segment-Anzeige<br />
dargestellt werden, sind im 5-3-2-1 Code codiert (siehe Tabelle 3.1.1). Das Schaltwerk soll<br />
mit einem Takt (CLK) die Sequenz 0,1,2,3,4,5,6,7,8,9,0,1,… generieren, d.h. die 7-Segment-<br />
Anzeige soll nacheinander die einzelnen Dezimalzahlen darstellen <strong>und</strong> folglich nach der Zahl<br />
9 wieder mit der 0 beginnen. Bevor wir mit dem eigentlichen Entwurf beginnen, noch einige<br />
Erläuterungen:<br />
• Aufwärtszählend bedeutet, dass der Zähler ausgehend vom aktuellen Zählerstand mit<br />
dem nächsten Takt den nächsthöheren Wert annimmt.<br />
• Selbstanlaufend bedeutet, dass der Zähler zusätzlich beim Einschalten mit dem<br />
Startzustand (hier 0) beginnt.<br />
n−1<br />
n−1<br />
)<br />
)<br />
8/20
Praktikum GTI Versuch 3: Flip-flops <strong>und</strong> <strong>Zählerentwurf</strong><br />
• Bei einem synchronenen Zähler werden alle <strong>Flipflops</strong> durch einen gemeinsamen Takt<br />
gesteuert.<br />
• Bei einem asynchronen Zähler werden die <strong>Flipflops</strong> nicht durch einen gemeinsamen Takt<br />
gesteuert, sondern werden z.B. von den Ausgängen anderer <strong>Flipflops</strong> getaktet.<br />
• Der 5-3-2-1 Code ist ein 4-Bit Binärcode, wobei die jeweiligen Bit-Stellen genau dem<br />
Dezimalwert entsprechen, wie er im Namen vorgegeben ist. Beispiel: Dezimal 7<br />
4-Bit Dual Code : 0111 = 0·2 3 + 1·2 2 + 1·2 1 + 1·2 0 = 7<br />
4-Bit 5-3-2-1 Code : 1010 = 1·5 + 0·3 + 1·2 + 0·1 = 7<br />
3.2 Entwurf des Schaltwerks für einen (5-3-2-1 Code) Zähler<br />
Es soll nun der Zähler mit Hilfe von vier JK-FFs realisiert werden. Dazu ist die<br />
Codierungstabelle des Zählers wie folgt gegeben:<br />
Dezimalzahl<br />
(Zählerzustand)<br />
Stellenwert/FF-Ausgänge<br />
5 3 2 1<br />
Q4 Q3 Q2 Q1<br />
0 0 0 0 0<br />
1 0 0 0 1<br />
2 0 0 1 0<br />
3 0 1 0 0<br />
4 0 1 0 1<br />
5 1 0 0 0<br />
6 1 0 0 1<br />
7 1 0 1 0<br />
8 1 1 0 0<br />
9 1 1 0 1<br />
Tabelle 3.1.1<br />
Es stellt sich nun die Frage, wie die einzelnen FFs miteinander verb<strong>und</strong>en werden müssen, um<br />
die Funktionalität des Zählers so zu realisieren, dass sie der Wahrheitstabelle (Tabelle 3.1.1)<br />
entspricht. Dazu betrachten wir zunächst die Ausgangsgleichung Q<br />
n+<br />
1 eines FFs:<br />
Q<br />
n+<br />
1<br />
(<br />
n<br />
, Q<br />
n<br />
, Q<br />
n<br />
, Q<br />
n<br />
a = f Qa<br />
b c d<br />
)<br />
Für die charakteristische Gleichung des JK-FFs gilt :<br />
a<br />
9/20
Praktikum GTI Versuch 3: Flip-flops <strong>und</strong> <strong>Zählerentwurf</strong><br />
Q<br />
n + 1<br />
=<br />
n n<br />
a K ⋅Q<br />
a + J ⋅Q<br />
a<br />
Wir müssen nun die allgemeine Ausgangsgleichung in eine Form bringen, die uns den<br />
Koeffizientenvergleich mit der charakteristischen Gleichung erlaubt, so dass wir Folgendes<br />
ableiten können:<br />
J a = f ( Q<br />
b<br />
, Qc,<br />
Q<br />
d<br />
)<br />
K a = f ( Q<br />
b<br />
, Qc,<br />
Q<br />
d<br />
)<br />
Um die Ausgangsgleichungen für die FFs zu bestimmen, soll nun ein KV-Diagramm<br />
verwendet werden.<br />
F9: Vervollständigen Sie das KV-Diagramm für den 5-3-2-1 Code:<br />
Q1<br />
Q2<br />
Bild. 3.2.1: KV-Diagramm des 5-3-2-1 Code<br />
Nun führen Sie für jedes FF folgende Schritte durch:<br />
1. Auflisten aller Zählerzustände ( n<br />
Z ), für die gilt, dass der Folgezustand Z<br />
n+<br />
1des<br />
Zählers<br />
zu einer 1 an dem jeweiligen Ausgang des betrachteten FFs führt ( Q<br />
n+<br />
1<br />
= 1).<br />
n+<br />
1 n n n n<br />
2. Bestimmen sie nun die Ausgangsgleichung Q a = f ( Qa<br />
, Q<br />
b<br />
, Qc<br />
, Q<br />
d<br />
) für das FF entweder<br />
mit Hilfe der Wahrheitstabelle oder mit Hilfe des KV-Diagramms (einfacher).<br />
3. Leiten Sie nun die Gleichungen für Ja <strong>und</strong> Ka her, indem Sie die Funktion<br />
charakteristischen Gleichung des FFs vergleichen.<br />
X<br />
2 7<br />
Q4<br />
8 3<br />
Q3<br />
a<br />
n+<br />
1<br />
a<br />
Q mit der<br />
10/20
Praktikum GTI Versuch 3: Flip-flops <strong>und</strong> <strong>Zählerentwurf</strong><br />
Beispiel:<br />
Um die Vorgehensweise zu verdeutlichen, wird diese am Beispiel der Belegungen für J 3 <strong>und</strong><br />
K 3 ausführlicher beschrieben.<br />
1. Zunächst werden aus der Codierungstabelle des Zählers die Zustände herausgesucht,<br />
deren Folgezustand ( Z<br />
n+<br />
1)<br />
dazu führt, dass am Ausgang 1<br />
3 + n<br />
Q eine "1" anliegt. Dies ist<br />
bei den Zuständen 2,3,7,8 der Fall, da bei den entsprechenden Folgezuständen 3,4,8,9<br />
1 n<br />
Q den Wert 1 annimmt.<br />
3 +<br />
2. Nun kann mit der Tabelle die disjunktive Normalform für diese 4 Zustände (2,3,7,8)<br />
aufgestellt werden oder direkt aus dem KV-Diagramm eine vereinfachte Darstellung<br />
abgelesen werden :<br />
n+<br />
1 n n n n n n<br />
= Q ⋅Q<br />
⋅Q<br />
+ Q ⋅Q<br />
⋅Q<br />
Q3 1 2 3 1 2 3<br />
Hinweis: Bei der Vereinfachung muss darauf geachtet werden, dass der Vorzustand in<br />
n+<br />
1<br />
jedem Term enthalten ist, d.h. beim Aufstellen der Gleichungen für Q i muss jeder Term<br />
den Zustand Q i enthalten, da sonst später kein Vergleich mit der charakteristischen<br />
Gleichung des JK-FF möglich ist, ohne den Term zu erweitern.<br />
3. Obige Gleichung wird nun mit der charakteristischen Gleichung des JK-FFs verglichen.<br />
Sie lautet für diesen speziellen Fall:<br />
n + 1 n n<br />
Q = K ⋅Q<br />
+ J ⋅Q<br />
3 3 3<br />
Durch Koeffizientenvergleich erhält man:<br />
J<br />
3<br />
= Q<br />
n<br />
1<br />
⋅Q<br />
n<br />
2<br />
<strong>und</strong><br />
daraus folgt<br />
K<br />
3<br />
= Q<br />
n<br />
1<br />
n<br />
1<br />
K 3 = Q<br />
⋅Q<br />
+ Q<br />
Zur Bestimmung der anderen Funktionen wird analog vorgegangen.<br />
n<br />
2<br />
n<br />
2<br />
11/20
Praktikum GTI Versuch 3: Flip-flops <strong>und</strong> <strong>Zählerentwurf</strong><br />
F10: Leiten Sie nun die Funktionen für die fehlenden Eingänge J1, J2, J4, K1, K2, K4 der FFs<br />
ab. Verwenden Sie nicht die „Don’t care“ Zustände!<br />
Q =<br />
n+<br />
1<br />
1<br />
J1 =<br />
K1 =<br />
Q =<br />
n+<br />
1<br />
2<br />
J2 =<br />
K2 =<br />
Q =<br />
n+<br />
1<br />
4<br />
J4 =<br />
K4 =<br />
F11: Ist es möglich die Funktion der Eingänge J <strong>und</strong> K zu vereinfachen? Wenn ja, wie?<br />
12/20
Praktikum GTI Versuch 3: Flip-flops <strong>und</strong> <strong>Zählerentwurf</strong><br />
F12: Vervollständigen Sie den Schaltkreis in Bild 3.2.2 unter Verwendung der Gleichungen<br />
von F10.<br />
Fig. 3.2.2: 5-3-2-1 Counter<br />
F13: Was ist der Unterschied zwischen einem synchronen <strong>und</strong> einem asynchronen Zähler?<br />
Welche Art Zähler stellt der Schaltkreis in Bild 3.2.2 dar? Erklären Sie Ihre Antwort.<br />
13/20
Praktikum GTI Versuch 3: Flip-flops <strong>und</strong> <strong>Zählerentwurf</strong><br />
4. Entwurf des Schaltnetzes zur Steuerung einer 7-Segment-Anzeige<br />
Zur Ansteuerung der 7-Segment-Anzeige wird nun ein Schaltnetz benötigt, welches die<br />
Ausgänge des entwickelten Zählers so codiert, dass eine Ansteuerung der 7-Segment-Anzeige<br />
möglich ist. Die Anordnung der einzelnen Segmente der Anzeige ist in Bild 4.1 gegeben. Ein<br />
Segment leuchtet, sobald es mit einer logischen 0 angesteuert wird. Die Schaltung soll so<br />
realisiert werden, dass beim Auftreten einer nicht definierten Kombination alle Segmente<br />
leuchten (d.h. sie werden mit einer logischen "0" angesteuert).<br />
S6 S3<br />
S1<br />
S4<br />
S7<br />
S2 S5<br />
F14: Vervollständigen Sie folgende Wahrheitstabelle:<br />
S6 S3<br />
S6 S3<br />
Number Q4 Q3 Q2 Q1 S7 S6 S5 S4 S3 S2 S1<br />
0 0 0 0 0 0 0 0 1 0 0 0<br />
1 0 0 0 1<br />
2 0 0 1 0<br />
3 0 1 0 0<br />
4 0 1 0 1<br />
5 1 0 0 0<br />
6 1 0 0 1<br />
7 1 0 1 0<br />
8 1 1 0 0<br />
S1<br />
S4<br />
S7<br />
S1<br />
S4<br />
S7<br />
S2 S5<br />
S2 S5<br />
Bild 4.1<br />
9 1 1 0 1<br />
Tabelle 4.1: Wahrheitstabelle der 7-Segment-Anzeige<br />
S6 S3<br />
S6 S3<br />
S1<br />
S4<br />
S7<br />
S1<br />
S4<br />
S7<br />
S2 S5<br />
S2 S5<br />
S6 S3<br />
S6 S3<br />
S1<br />
S4<br />
S7<br />
S1<br />
S4<br />
S7<br />
S2 S5<br />
S2 S5<br />
S6 S3<br />
S6 S3<br />
S1<br />
S4<br />
S7<br />
S1<br />
S4<br />
S7<br />
S2 S5<br />
S2 S5<br />
S6 S3<br />
S6 S3<br />
S1<br />
S4<br />
S7<br />
S1<br />
S4<br />
S7<br />
S2 S5<br />
S2 S5<br />
14/20
Praktikum GTI Versuch 3: Flip-flops <strong>und</strong> <strong>Zählerentwurf</strong><br />
F15: Notieren Sie die Disjunktive Normalform von S1 bis S7.<br />
S1=_________________________________________________________________<br />
S2=_________________________________________________________________<br />
S3=_________________________________________________________________<br />
S4=_________________________________________________________________<br />
S5=_________________________________________________________________<br />
S6=_________________________________________________________________<br />
S7=_________________________________________________________________<br />
F16: Vereinfachen Sie die Funktionen für S1,…, S7 von F15 mit Hilfe eines KV-Diagramms<br />
<strong>und</strong> notieren Sie die vereinfachten Gleichungen.<br />
S1=_________________________________________________________________<br />
S2=_________________________________________________________________<br />
S3=_________________________________________________________________<br />
S4=_________________________________________________________________<br />
S5=_________________________________________________________________<br />
S6=_________________________________________________________________<br />
S7=_________________________________________________________________<br />
15/20
Praktikum GTI Versuch 3: Flip-flops <strong>und</strong> <strong>Zählerentwurf</strong><br />
F17: Zeichnen Sie das Schaltnetz für die 7-Segement Anzeige.<br />
Bild 4.2<br />
5 Hierarchische Blöcke<br />
Wenn wir komplexe Schaltungen entwickeln, die entsprechend viele Bauteile enthalten,<br />
werden Schaltungen schnell unübersichtlich. Oft besteht auch der Wunsch bestimmte<br />
Schaltungen zu einer funktionalen Einheit zusammenzufassen, so dass eine solche Einheit<br />
später in anderen Schaltungen wieder verwendet werden kann.<br />
Um diese Probleme zu lösen, bietet OrCAD das Erzeugen von hierarchischen Schaltungen an.<br />
Hierarchische Blöcke sind Schaltungen, die zu einer Einheit zusammen gefügt wurden <strong>und</strong><br />
somit als quasi als „neu erstelltes Bauteil“ innerhalb anderer Schaltungen verwendet werden<br />
können.<br />
16/20
Praktikum GTI Versuch 3: Flip-flops <strong>und</strong> <strong>Zählerentwurf</strong><br />
5.1 Hierarchische Ports<br />
Um eine Schaltung als hierarchischen Block verwenden zu können, muss die Schaltung an den<br />
jeweiligen Ein-<strong>und</strong> Ausgängen mit sogenannten „Hierarchical Ports“ Anschlüssen versehen<br />
werden. Nach dem diese „Ports“ platziert wurden, müssen sie noch entsprechend benannt<br />
werden.<br />
Um hierarchische Anschlüsse zu platzieren wählen Sie „Place → Hierarchical Port„<br />
Wählen Sie die „Capsym.olb“ Bibliothek aus. Aus der „Parts“ Liste wählen Sie den Typ des<br />
Anschlusses <strong>und</strong> benennen Sie den Anschluss. Anschließend bestätigen Sie mit OK. Jetzt<br />
können Sie den „Hierarchical Port“ auf der „Schematic Page“ so verwenden, wie jedes<br />
andere Element.<br />
5.2 Hierarchische Blöcke Platzieren<br />
Hierarchische Blöcke repräsentieren eine „Schematic Page“. Wenn Sie einen hierarchischen<br />
Block erstellen, spezifizieren Sie den Namen „Schematic Page“, die der hierarchische Block<br />
darstellen soll.<br />
Um einen hierarchischen Block zu platzieren, wählen Sie „Place → Hierarchical Block„ im<br />
„Edit“ Menü oder verwenden Sie das Symbol der Werkzeugpalette. Das „Place<br />
Hierarchical Block“ Dialogfeld sollte wie in Bild 5.2.1. dargestellt erscheinen.<br />
Geben Sie den Namen der zu referenzierenden<br />
„Schematic Page” in das Textfeld „Reference“ ein.<br />
Behalten Sie die Einstellung „Default“ bei.<br />
Im Feld „Implementation Type“ wählen Sie<br />
Bild 5.2.1: Place Hierarchical Block<br />
„Schematic View“ aus.<br />
Nun können sie das Feld „Implementation Name“<br />
ausfüllen. Tragen Sie hier den Namen des „Schematic<br />
Folder“ ein, der die „Schematic Page“ enthält, die sie<br />
im Feld „Reference“ angegeben haben.<br />
Bestätigen Sie nun ihre Einstellungen mit „OK“. Sie<br />
können nun den hierarchischen Block platzieren, in<br />
dem Sie mit der linken Maustaste ein Rechteck<br />
zeichnen. Falls Sie alle Einstellungen korrekt vorgenommen haben, werden automatisch die<br />
Pins des hierarchischen Blocks angezeigt. Die Pins korrespondieren mit den „Hierarchical<br />
Ports“, die sie in der zugehörigen „Schematic Page“ definiert haben.<br />
17/20
Praktikum GTI Versuch 3: Flip-flops <strong>und</strong> <strong>Zählerentwurf</strong><br />
6 Design <strong>und</strong> Simulation der Gesamtschaltung<br />
6.1 Schaltwerk des (5-3-2-1 Code) Zählers<br />
A1: Erstellen Sie ein Analog or mixed A/D Projekt <strong>und</strong> nennen Sie es Lab2. Benennen Sie den<br />
„Schematic Folder“ von SCEMATIC1 nach Lab2 um. Die Datei („Schematic Page“) im<br />
„Schematic Folder“ benennen sie bitte von PAGE1 nach Lab2Circuit um.<br />
A2: Erstellen Sie einen neuen „Schematic Folder“ namens Counter. In dem Ordner Counter<br />
erstellen Sie eine neue Datei (new page) namens CounterCircuit. Erstellen Sie in dem<br />
Schematic-Fenster der Schaltung CounterCircuit die Schaltung, die Sie in Aufgabe F12 (Bild<br />
3.2.2) gezeichnet haben <strong>und</strong> platzieren <strong>und</strong> benennen sie die Ports an den Ein- <strong>und</strong> Ausgängen<br />
der Schaltung.<br />
A3: Erstellen Sie innerhalb der Schaltung Lab2Circuit einen hierarchischen Block für den<br />
Counter.<br />
A4: Simulieren Sie den Hierarchischen Block mit entsprechenden Eingangssignalen um die<br />
Funktionalität zu überprüfen.<br />
6.2 Schaltnetz der 7-Segment Anzeige<br />
A5: Erstellen Sie einen neuen „Schematic Folder“ namens Controller. In dem Ordner erstellen<br />
Sie eine neue Datei (new page) namens ControllerCircuit. Erstellen Sie in dem Schematic-<br />
Fenster der Schaltung ControllerCircuit die 7-Segment-Anzeige, die sie in Aufgabe F17 (Bild<br />
4.2) erstellt haben <strong>und</strong> platzieren <strong>und</strong> benennen sie die Ports an den Ein- <strong>und</strong> Ausgängen der<br />
Schaltung<br />
A6:. Erstellen Sie innerhalb der Schaltung Lab2Circuit einen hierarchischen Block für den<br />
Controller.<br />
A7: Verbinden Sie die beiden hierarchische Blöcke des Counters <strong>und</strong> des Controllers.<br />
18/20
Praktikum GTI Versuch 3: Flip-flops <strong>und</strong> <strong>Zählerentwurf</strong><br />
6.3 Simulation der Gesamtschaltung<br />
Bild 6.3.1 zeigt die zu erstellende Gesamtschaltung.<br />
Bild 6.3.1: Gesamtschaltung<br />
A8: Simulieren Sie die Schaltung mit entsprechenden Eingangssignalen um die Funktionalität<br />
zu überprüfen.<br />
19/20
Praktikum GTI Versuch 3: Flip-flops <strong>und</strong> <strong>Zählerentwurf</strong><br />
Digital Components<br />
Symbol-Name Type-Number Library<br />
NOT 7404 7400<br />
AND<br />
2-Input<br />
AND<br />
3-Input<br />
NAND<br />
2-Input<br />
NAND<br />
3-Input<br />
NAND<br />
4-Input<br />
OR<br />
2-Input<br />
NOR<br />
2-Input<br />
NOR<br />
3-Input<br />
7408 7400<br />
7411 7400<br />
7400 7400<br />
7410 7400<br />
7420 7400<br />
7432 7400<br />
7402 7400<br />
7427 7400<br />
XOR 7486 7400<br />
JK-FF<br />
with CLR<br />
JK-FF<br />
with PRE/CLR<br />
JK-FF<br />
with CLR<br />
JK-FF<br />
with PRE/CLR<br />
D-FF<br />
with PRE/CLR<br />
7473 7400<br />
7476 7400<br />
74107 7400<br />
74109 7400<br />
7474 7400<br />
D-FF 7474 7400<br />
D-TYPE<br />
REGISTER<br />
REGISTER<br />
FILE O.C.<br />
PRESETTABLE<br />
BINARY COUNTER<br />
BINARY<br />
COUNTER<br />
ROM 32⋅8<br />
5 Input, 8 Output<br />
32 bytes memory<br />
74LS173A 74ls<br />
74170 7400<br />
74LS197 74ls<br />
7493A<br />
74293<br />
74177<br />
7400<br />
ROM 32⋅8 BREAKOUT<br />
20/20