rs-flipflop aus zwei nand gattern simulieren

Hallo,

ich wuerde gern wissen, wie man mit der Rekursion umgeht die im folgenden Gatterbild zu sehen ist, wenn man diese Komponente implementieren moechte?

formatting link

Ich wollte einen flipflop in SCADE (Esterel Technologies) implementieren und bekam bei der Simulation eine semantische Fehlermeldung, dass die komponente rekursiv sei.

Jemand eine Ahnung?

Danke.

Safak

Reply to
oekmen
Loading thread data ...

Hallo,

ich wuerde gern wissen, wie man mit der Rekursion umgeht die im folgenden Gatterbild zu sehen ist, wenn man diese Komponente implementieren moechte?

formatting link

Ich wollte einen flipflop in SCADE (Esterel Technologies) implementieren und bekam bei der Simulation eine semantische Fehlermeldung, dass die komponente rekursiv sei.

Jemand eine Ahnung?

Danke.

Safak

Reply to
oekmen

"Im Kopf" geht das so, dass man die Ausgänge mit passenden Werten vorbesetzt. Passend heist hier, dass sie ungleich sein sollten... Wenn der Simulator es richtig macht, sollte er dann spätestens nach der zweiten Iteration auf einen Fixpunkt stossen.

--
         Georg Acher, acher@in.tum.de
         http://www.lrr.in.tum.de/~acher
 Click to see the full signature
Reply to
Georg Acher

Hallo Georg,

Georg Acher schrieb:

der Anfang muß nur logisch eindeutig sein, also Clock=1 und mind. ein Eingang auch auf 1, sonst ist der Anfangs-Speicherzustand unbekannt und alles was dahinter kommt auch. Manche Simulatoren rechnen trotzdem weiter, bis alles eindeutig bekannt ist, sollte also eigentlich nur eine Warnung auftreten.

mfg. Winfried

Reply to
Winfried Salomon
060200010707090801030205 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 8bit

Winfried Salomon schrieb:

Leider weiss ich nicht, wie man R oder S einen Initialwert uebergeben kann. Man kann Clock auf R,S,Q oder Qneg einstellen und man kann auswaehlen ob "Const" oder ob "Optional". Und man kann den Typ bestimmen: Input,Output oder Hidden.

Mir scheint, dass der Uebersetzer sich wenig daran stoeren wuerde, ob ein Initialwert eingestellt wurde oder nicht. Aber ich weiss es nicht.

formatting link

Im angehaengten lustre file kann man sich die rekursive Funktion anschauen.

bGruesse, Safak

Reply to
Safak Oekmen
080606090205020708080008 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 8bit

Winfried Salomon schrieb:

Leider weiss ich nicht, wie man R oder S einen Initialwert uebergeben kann. Man kann Clock auf R,S,Q oder Qneg einstellen und man kann auswaehlen ob "Const" oder ob "Optional". Und man kann den Typ bestimmen: Input,Output oder Hidden.

Mir scheint, dass der Uebersetzer sich wenig daran stoeren wuerde, ob ein Initialwert eingestellt wurde oder nicht. Aber ich weiss es nicht.

formatting link

Im angehaengten lustre file kann man sich die rekursive Funktion anschauen.

bGruesse, Safak

Reply to
oekmen
040409010109010204030003 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 8bit

Winfried Salomon schrieb:

Leider weiss ich nicht, wie man R oder S einen Initialwert uebergeben kann. Man kann Clock auf R,S,Q oder Qneg einstellen und man kann auswaehlen ob "Const" oder ob "Optional". Und man kann den Typ bestimmen: Input,Output oder Hidden.

Mir scheint, dass der Uebersetzer sich wenig daran stoeren wuerde, ob ein Initialwert eingestellt wurde oder nicht. Aber ich weiss es nicht.

formatting link

Im angehaengten lustre file kann man sich die rekursive Funktion anschauen.

bGruesse, Safak

Reply to
oekmen
070805000909040304040604 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 8bit

Winfried Salomon schrieb:

Leider weiss ich nicht, wie man R oder S einen Initialwert uebergeben kann. Man kann Clock auf R,S,Q oder Qneg einstellen und man kann auswaehlen ob "Const" oder ob "Optional". Und man kann den Typ bestimmen: Input,Output oder Hidden.

Mir scheint, dass der Uebersetzer sich wenig daran stoeren wuerde, ob ein Initialwert eingestellt wurde oder nicht. Aber ich weiss es nicht.

formatting link

Im angehaengten lustre file kann man sich die rekursive Funktion anschauen.

bGruesse, Safak

Reply to
oekmen

Hallo Safak,

oekmen schrieb:

also ich habe mir das File mal angesehen, obwohl ich die Software und Syntax nicht kenne, VHDL scheint es wohl eher nicht zu sein. Von Clock sehe ich auch nichts, Dein Programm weicht von der ersten Beschreibung ab.

Ein Fatal Error wäre z.B., wenn Du Ein- und Ausgang eines Inverters verbindest, dann wäre von vornherein keine logische Entscheidung möglich, weder Simulation noch Implementierung wäre möglich.

****************

D:\usr\safak\SCADE_Projects\flipfloop\flipflop_KCG51\Simulation/flipfloop.lus

D:\usr\safak\SCADE_Projects\flipfloop\flipfloop.saofdm (MM/DD/YYYY): 08/23/2007

21:46:18
21:46:18

Das ist doch dasselbe wie:

_LE3_flipflop = not ((_LE0_flipflop) and (_LE1_flipflop) );

Das wäre ein Nand-FF, das low-aktiv ist, also müßte beim Start mind. 1 der Eingänge auf 0 sein.

Müßte nicht hier stehen: result = _LE2_flipflop ;

weiter oben ist es ja noch nicht belegt. Wie gesagt, kenne ich aber die Syntax nicht.

****************

D:\usr\safak\SCADE_Projects\flipfloop\flipflop_KCG51\Simulation/flipfloop.lus

mfg. Winfried

Reply to
Winfried Salomon

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.