mikrocontroller.net

Forum: FPGA, VHDL & Co. WinCUPL, WinSim, SR-FlipFlop


Autor: Falk S. (smoothcriminal)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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!

Autor: Logi Ker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: U.G. L. (dlchnr)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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:

/** Inputs **/

PIN 2 = S;
PIN 3 = R;

/** Outputs  **/

PIN 18 = Q;
PIN 19 = N;

/** Program **/

Q  = !(R # N);
N  = !(S # Q);


Autor: U.G. L. (dlchnr)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ein SR-Flip-Flop:

/** Inputs **/

PIN 2 = S;
PIN 3 = R;

/** Outputs  **/

PIN 18 = Q;
PIN 19 = N;

/** Program **/

Q = !(!S & N)
N = !(!R & Q)


: Bearbeitet durch User
Autor: U.G. L. (dlchnr)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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):
/** Inputs **/

PIN 2 = S;
PIN 3 = R;

/** Outputs  **/

PIN 18 = Q;

/** Program **/

Q = S           /* setzen */
  # Q.io & !R;  /* halten */

Autor: U.G. L. (dlchnr)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!

Autor: Falk S. (smoothcriminal)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!
/** Inputs **/

PIN 2 = S;
PIN 3 = R;

PIN 11 = ENA;

/** Outputs  **/

PIN 18 = Q;

/** Program **/

Q = ( !Q & S & !R ) # ( Q & !R ); 
Q.OE = ENA;

Simulation:
ORDER: S, R, ENA, Q; 
VECTORS:
0000
001L
101H
001H
011L
001L
101H
111L
111L
101H
101H
001H
001H
001H

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.