Bianka
Registrierter Benutzer
Beiträge: 2
|
Erstellt: 29.10.09, 22:12 Betreff: Statemachine -> Case Anweisung -> synthetisierbar -> Ungewollte Latches |
|
|
Hallo,
ich schreibe einen Code der eine Statemachine beinhaltet. Leider erhalte ich beim Synthetisieren immer ungewollte Latches.
Ich habe in meinem Code 4 States:
no_set -> set_hours -> set_minutes -> set_seconds
Wenn z.B. der state "set_hours" aufgerufen wird, soll nur am Anfang, also beim ersten Aufruf ein Signal (signal_a) einen bestimmten Wert bekommen:
signal_a <= signal_b;
Wenn irgendwann wieder der state "set_hours" aufgerufen wird, und die Bedingung (set = '1') erfüllt ist, soll dem Signal signal_a folgender Wert zugewiesen werden:
signal_a <= signal_a + 1;
Wenn der state "set_hours" aufgerufen wird und die Bedingung (set = '0') ist erfüllt, soll dem Signal signal_a aber kein neuer Wert zugewiesen werden, sondern es soll der alte Wert beibehalten werden.
signal_a <= signal_a;
Wie kann ich das im Code realisieren, ohne dass Latches beim Synthetisieren erzeugt werden?
Wenn ich folgendes mache, meckert das Synthese Tool:
when set_hours => if (flag = '0') then signal_a <= signal_b; end if; if (set = '1') then signal_a <= signal_a + 1; elsif (set = '0') then signal_a <= signal_a; end if;
Gruss, Bianka
|
|