2x1-Bit Speicher |
Shizmo
Tripel-As
Dabei seit: 16.10.2015
Beiträge: 174
|
|
Weiter gehts
Also hier verwirrt mich die Angabe etwas:
Zitat: |
Entwickeln Sie einen 2x1-Bit Speicher mit JK-Flipflops. Die Schaltung hat einen Adresseingang a, der eines der zwei Bits auswählt, einen Daten-Input i, dessen Zustand in das durch a ausgewählte JK-Flipflop übernommen wird, wenn der Read-Write Eingang w auf 1 ist. Der Ausgang o soll den Zustand des durch a ausgewählten Flipflops ausgeben. |
Okay also ich weiß ich brauch 2 Flipflops, also habe ich auch 2 Bits [Ausgänge] (Q0 und Q1).
Wie setze ich die Werte der Tabelle? Ich hab 5 Variablen, w - a - i - q0 - q1 - Puh also das wären dann 32 Zeilen, da mich bei w aber nur die Werte mit 1 interessieren, kann ich es auf 16 reduzieren oder?
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
|
| w | a | i | q1 | q0 |
|---|---|---|----|----|
| 1 | 0 | | | |
| 1 | 0 | | | |
| 1 | 0 | | | |
| 1 | 0 | | | |
| 1 | 0 | | | |
| 1 | 0 | | | |
| 1 | 0 | | | |
| 1 | 0 | | | |
| 1 | 1 | | | |
| 1 | 1 | | | |
| 1 | 1 | | | |
| 1 | 1 | | | |
| 1 | 1 | | | |
| 1 | 1 | | | |
| 1 | 1 | | | |
| 1 | 1 | | | | |
|
Ich versteh nicht ganz was i macht.
LG
|
|
01.01.2016 19:36 |
|
|
|
Ein Code sagt mehr als tausend Worte (hoffe ich zumindest).
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
|
static int q1 = 0;
static int q0 = 0;
static int takt(int w, int a, int i) {
if (w == 0) { //lesen
if (a == 0) { //schreibe in den einen Speicher
q0 = i; //i wird geschrieben
} else { //a = 1, also der andere Speicher
q1 = i;
}
return 0; //wir wollen das sowieso nicht lesen
} else {//w=1 entspricht schreiben
//hier interessiert i nicht, da wir nichts schreiben wollen
if (a == 0) {
return q0;
} else { //a = 1
return q1;
}
}
} |
|
__________________ Syntax Highlighting fürs Board (Link)
|
|
01.01.2016 20:41 |
|
|
Shizmo
Tripel-As
Dabei seit: 16.10.2015
Beiträge: 174
|
|
Vielen Dank für deine Antwort, kapiere es aber trotzdem nicht.
Habe gerade die Tabelle einer Musterlösung gesehen und die sieht so aus:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
|
w a i q1 q0 J1 K1 J0 K0
----------------------
0 X X X X 0 0 0 0
1 0 0 X 0 0 0 0 X
1 0 0 X 1 0 0 X 1
1 0 1 X 0 0 0 1 X
1 0 1 X 1 0 0 X 0
1 1 0 0 X 0 X 0 0
1 1 0 1 X X 1 0 0
1 1 1 0 X 1 X 0 0
1 1 1 1 X X 0 0 0 |
|
Auch die kann ich nicht nachvollziehen...
|
|
03.01.2016 13:48 |
|
|
Shizmo
Tripel-As
Dabei seit: 16.10.2015
Beiträge: 174
|
|
Zitat: |
Beim Lesen wird der Speicherinhalt nicht geändert, also werden die Flipflops weder gesetzt, noch rückgesetzt. Dabei ist es unerheblich, was an den anderen Eingängen ist. |
Ja okay, deshalb ist Zeile 1 voller X
code: |
1:
2:
3:
|
w a i q1 q0 J1 K1 J0 K0
----------------------
0 X X X X 0 0 0 0 |
|
Zitat: |
In den folgenden 4 Zeilen entscheidet deine Lösung, was in den Speicher geschrieben werden soll und ob es schon drinsteht. Wenn schon eine 0 drin ist und eine 0 geschrieben werden soll, gibt es dafür zwei Möglichkeiten: den Zustand beibehalten oder zurücksetzen.
[...]
Man könnte auch immer setzen bzw. rücksetzen:
[...] |
Okay das ist mir auch klar, das verstehe ich alles soweit, mein Problem ist noch früher.
Wie weiß ich, dass die Tabelle 16 Zeilen hat (in der Musterlösung 9, weil ja die anderen 7 Fälle mit w=0 gleich wären) obwohl ich 5 "Variablen" habe, also sollten es ja schon mal 32 Zeilen sein, minus den 15 w=0 --> 17 Zeilen.
Mein Hauptproblem ist, glaub ich, immer noch, dass ich immer noch nicht ganz verstehe, was das i macht und daraus kann ich dann auch q0 und q1 folgern.
w und a sind klar.
|
|
03.01.2016 23:02 |
|
|
|
Du hast ja schon erkannt, dass mehrere Zeilen zu einer zusammengefasst sind. Dabei kommt es auf die Zahl der 'X' bei den Eingängen an, Für jedes 'X' verdoppelt sich die Zahl der Zeilen, da es ja für 0 oder 1 stehen kann. Also Zeilen =
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
|
w a i q1 q0 J1 K1 J0 K0
----------------------
0 X X X X 0 0 0 0 //16 zeilen
1 0 0 X 0 0 0 0 X //2 zeilen
1 0 0 X 1 0 0 X 1 //2 zeilen
1 0 1 X 0 0 0 1 X //2 zeilen
1 0 1 X 1 0 0 X 0 //2 zeilen
1 1 0 0 X 0 X 0 0 //2 zeilen
1 1 0 1 X X 1 0 0 //2 zeilen
1 1 1 0 X 1 X 0 0 //2 zeilen
1 1 1 1 X X 0 0 0 //2 zeilen |
|
Macht in Summe 32
__________________ Syntax Highlighting fürs Board (Link)
|
|
04.01.2016 07:33 |
|
|
Shizmo
Tripel-As
Dabei seit: 16.10.2015
Beiträge: 174
|
|
Achso
Haha super vielen Dank!!
Und jetzt einfach wieder KV-Diagramme machen und eine Schaltung zeichnen oder? Und am Schluss noch den Ausgang o dazuzeichnen...
|
|
04.01.2016 10:56 |
|
|
|
Genau.
Für den Ausgang am besten einen Multiplexer nehmen.
Beachte, dass es 5 Variablen sind, du brauchst also 2 KV Diagramme übereinander, die auch in der 3. Dimension verbunden sind.
__________________ Syntax Highlighting fürs Board (Link)
|
|
04.01.2016 11:00 |
|
|
Shizmo
Tripel-As
Dabei seit: 16.10.2015
Beiträge: 174
|
|
Okay noch eine Frage:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
|
w a i q1 q0 J1 K1 J0 K0
----------------------
0 X X X X 0 0 0 0
1 0 0 X 0 0 0 0 X
1 0 0 X 1 0 0 X 1
1 0 1 X 0 0 0 1 X
1 0 1 X 1 0 0 X 0
1 1 0 0 X 0 X 0 0
1 1 0 1 X X 1 0 0
1 1 1 0 X 1 X 0 0
1 1 1 1 X X 0 0 0 |
|
Jetzt bei den FF-Eingägen, egal ob J1K1 oder J0K0, wenn ich von irgendwas (X) auf irgendwas (X,0,1) folgt, dann ist in dieser Tabelle immer 0 0. Kann ich das nicht mit X X schreiben, dann kann ich später bei den KV-Diagrammen viel mehr minimieren, als wie wenn ich alles Nullen habe.
UND:
Die 2te und 3te Zeile bei q0 - also von 0 auf 1, warum hat er bei J0-K0 in der Zeile 2: 0 X (0 X würde ja bedeuten von 0 auf 0, wir bräuchten aber ein 1 X) oder übersehe ich da was?
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Shizmo: 04.01.2016 11:43.
|
|
04.01.2016 11:42 |
|
|
|
Versuchst du gerade, die Zustandsübergänge zwischen den Zeilen zu machen? Das ist falsch.
code: |
1:
2:
3:
|
w a i q1 q0 J1 K1 J0 K0
----------------------
1 0 0 X 0 0 0 0 X |
|
qo ist offensichtlich 0. Da i=0, wollen wir eine 0 reinschreiben. Das geht, indem wir nichts machen oder das Flipflop rücksetzen, also 0X für J0K0.
Gleichzeitig soll der Inhalt von q1 erhalten bleiben. Deshalb J1K1 = 00, alles andere könnte den Inhalt überschreiben.
__________________ Syntax Highlighting fürs Board (Link)
|
|
04.01.2016 11:49 |
|
|
Shizmo
Tripel-As
Dabei seit: 16.10.2015
Beiträge: 174
|
|
Ich hab einfach von Anfang an komplett falsch gedacht, jetzt macht das alles Sinn. Danke!
Komme mit den Diagrammen auf:
J0 =
K0 =
J1 =
K1 =
Schaut doch schonmal ganz gut aus.
Zitat: |
Der Ausgang o soll den Zustand des durch a ausgewählten Flipflops ausgeben. |
Also könnte o auch so sein oder?:
|
|
04.01.2016 12:39 |
|
|
Shizmo
Tripel-As
Dabei seit: 16.10.2015
Beiträge: 174
|
|
Wunderbar, vielen Dank für die Hilfe!!!
|
|
04.01.2016 15:28 |
|
|
|