Hallo! Ich habe in WinCUPL ein SR-FlipFlop für einen GAL16V8 erstellt. Das möchte ich auch gern simulieren, aber es klappt nicht richtig, da (wie ich denke) dem Simulator der Startwert für Q nicht bekannt ist. Fehlermeldung: [0020sa] unstable output Gibt es da eine Möglichkeit die ich übersehe? Vielen Dank!
Gast
#5668951
Versuchs mal mit Q.d = S # (Q & !R); Bedingung beim RS-FlipFlop ist immer dass nur einer von beiden Eingängen aktiv sein darf. Das kann man natürlich in die Eingangsbedingungen mit hineinverknüpfen. In diesem Fall ist die Polarität der Eingänge aktiv high. Klammern helfen dabei die Rangfolge der Operatoren nicht zu übersehen oder zu fehlinterpretieren.
Logi Ker schrieb: > Q.d = S # (Q & !R); "Q.d" bedeutet Verwendung eines Registers - um ein RS-Flip-Flop nachzubilden, benöigt man aber kein Register, sondern zwei Nand oder zwei NOR! So, z.B. wird's ein RS-Flip-Flop:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
ein SR-Flip-Flop:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
Falk S. schrieb: > Fehlermeldung: [0020sa] unstable output Die Fehlermeldung wundert übrigens nicht, der linke Teil ("Q = !Q & S") führt sicherlich zu einem "instabilen" Simulationsergebnis, sowie S gleich "1" wird, denn !0 & 1 => 1 und !1 & 1 => 0. U.U. würde die Simulation noch funktionieren, wenn auf der rechten Seite der Gleichung "Q.io" statt "Q" steht - um ein Verhalten ähnlich einem SR-Flip-Flop unter Verwendung von nur einem Ausgang zu erzielen, wird man aber besser schreiben (ist dann aber natürlich kein SR-Flip-Flop mehr):
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
U.G. L. schrieb: > (ist dann aber natürlich kein SR-Flip-Flop > mehr): eigentlich müsste man sagen - ist dann kein "klassisches" (kreuzweise Nand oer NOR und so...) SR-Flip-Flop mehr, also eines, wie Du es vermutlich im Sinn hattest - denn es ist SR-Flip-Flop!
Die Lösung war, dass man bei der Simulation im ersten Vector die Startwerte festlegen und erst im zweiten Vector den Output Enable schalten muss. Dann kommt ein sinnvolles Simulationsergebnis heraus. Vielen Dank für die hilfreichen Antworten!
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
Simulation:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.