Gast
#706655
Hallo, hab' grad ein kleines CPLD-Projekt. Hauptbestandteil ist eine Statemachine. Mit folgenden prinzipiellen Ablauf: S1: Setze Out-Pins -- Sicherheitsschaltung stimulieren S2: Teste In-Pins -- Sicherheitsschaltung prüfen Jetzt habe ich folgendes Problem, wenn ich in S1 bin setze ich dort die Output-Pins, leider werden diese aber erst im nächsten Takt am Ausgang tatsächlich gesetzt. Mir wäre es viel, viel lieber wenn diese Outputpin sofort gesetzt würden, wenn ich in den S1 State komme. Hier mal ein Snippet (count_outi ist zu testzwecken mein Outputpin) when OPIN_P1 => count_outi := "001"; --> erscheint erst mit nächsten Takt am Ausgang state <= IPIN_P1; when IPIN_P1 => --> Also hier werden Ausgänge erst gesetzt if SPG_TR1 = '0' then --> Hier wird aber dann schon Input-pin getestet state <= OPIN_P2; else state <= ERR; end if; count_outi := "000"; Klar ich könnte jetzt noch einen zwischen State einführen. Ist aber nicht sehr elegant und verschwenderisch. Wie kann ich erreichen dass unter OPIN_P1 sofort der Ausgang gesetzt wird. Im RTL sieht man auch ganz schön das der Ausgang über die Clock geführt wird. Genau das will ich aber nicht. Im Anhang ist mein reduzierter Code. Ich freue mich auf Eure Vorschläge. Sebastian.