Hallo, ist es in VHDL eigentlich möglich und sinnvoll, eine Art watchdog Funktion einzubauen? Soll heißen: ich habe mehrere Prozesse in der entity und möchte einen weiteren Prozess einbauen, in dem immer dann Konstanten gesetzt werden, wenn die anderen Prozesse durchlaufen sind. Diese Konstanten sollen mit dem Grundtakt dekrementiert werden. Sollte eine der Konstanten Null sein (Prozess aufgehängt), soll ein Gesamtreset erfolgen. Ich bin mir jedoch nicht sicher, ob dies funktioniert, weil: angenommen in einem Prozess läuft eine statemachine und ich sage in dem watchdog Prozess, dass aufgrund des Wertes Null der entsprechenden Konstanten für diesen Prozess, der Zustand der statemachine wieder eins, also der Ursprungszustand sein soll, würde ich ausgehend von zwei verschiedenen Prozessen den Zustand der statemachine beeinflussen ... hm, ist nicht so sinnvoll, oder? Gruß Sebastian
Das hört sich sehr nach Softwaredenken an. Was du mit VHDL beschreibst wird in Hardware realisiert. Da hängt sich nichts auf, ausser du beschreibst was falsch. Aber dann wird auch dein "Watchdog" nichts bringen, weil du den ja wahrscheinlich auch mit der falschen Hardwarebeschreibung entwickelt hast. Was es bei einer Statemachine gibt ist es eine Parität für die Statewechsel zu berechnen und dadurch zu überprüfen ob nur erlaubte Statewechsel stattfinden.
Hallo Sebastin, Hallo Alban, wenn ich Dich, Sebastian, recht verstehe, geht es im Eigentlichen um eine Art Prozeßsynchronisation bzw. "Point of Save Return (PSR)" auf HW-Ebene. Ich hatte ein ähnliches Problem kürzlich. Dabei laufen drei Zustandsmaschinen (FSM) teils voll parallel; warten aber teils auch auf Ergebnisse der Nachbar-FSMs. So einfach, wie Du, Alban, es darstellst, ist es bisweilen leider nicht. Wenn, wie es bei meinem - mittlerweile gelösten Problem - um das Auswerten und Einsychronisieren von externen Daten geht (Disk-Emulator f. Apple II+, Lesen, Schreiben). Wartende FSMs bleiben sehr wohl hängen, wenn eine z.Zt. aktive FSM keine Daten mehr an Nachbar-FSMs liefert, weil z.B. externe Trigger-Signale ausbleiben. Ich habe zur Lösung dieses Problems sog. "Token" eingeführt, die zwischen den FSMs ausgetauscht werden. Verbleibt ein Token zu lange in einer FSM, wird ein PSR-Signal für alle beteilligten FSMs vom WatchDog erzeugt und setzt diese FSMs auf einen PSR zurück. Der WatchDog ist auf die jeweilige FSM, die den Token hat, parametrierbar, was z.B. Zeitdauer/Zyklenanzahl angeht. Wegen der Komplexität der Beschreibung und Simulation verwende ich allerdings den HDL Designer v. Mentor und ModelSim. Für weitergehende Unterstützung stehe ich Dir gerne zur Verfügung. Auch für Codierung, Simulation und ggf. Testbenches (TestBencherPro). Gruß + viel Erfolg Jens
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.