Hallo, habe mir gerade einen counter gebastelt, der mit einem wert geladen wird, dann soll der counter solange hochzählen bis ein zielwert erreicht ist. das klappt auch alles wunderbar, ich habe meinen process(clk, reset) und mit jedem takt zählt der counter hoch (binärcounter). im eigentlichen process() mache ich noch andere sachen, aber eigentlich nur if esle anweisungen. mein problem ist jetzt folgendes: der anfangswert soll geladen werden und dann sollen die jeweiligen schritte des counters auch ausgegeben werden. ich habe mit variablen gearbeitet und eine zuweisung am ende des processes gemacht, ohne erfolg. wenn ich aber direk in das ausgangssignal schreibe klappt es. Problem dabei ist jedoch, dass das ausgangssignal um einen taktzyklus zu spät ausgegeben wird und der letzte wert, also der endwert, gar nicht ausgegeben wird. irgendwas läuft da schief. ich verstehe auch nicht warum es nicht mit der variablen zuweisung am ende klappt. muss ich mein vorhaben sonst in 2 processe unterteilen? gruß
>Problem dabei ist jedoch, dass das ausgangssignal um einen taktzyklus >zu spät ausgegeben wird Nein, der wird nicht einen Takt zu spät ausgegeben. Sondern du erwartest ihn einen Takt zu früh. Bei der 1-Prozess-SM wird jeder Ausgangswert (sofern er registriert ist) mit der nächsten Taktflanke ausgegeben. Was da als if- oder case-Abfrage drin ist, wird also erst beim nächsten Takt ausgegeben bzw. aktualisiert. >und der letzte wert, also der endwert, gar nicht ausgegeben wird. Das kommt auf die Abfrage an... Aber nachdem du schon mal an der Latency (so heißt der Effekt, wenn alles später passiert als erwartet) gescheitert bist, dürfte das auch so ein Seiteneffekt sein. Poste der Einfachheit halber einfach mal deinen Code, das macht die Diagnose einfacher.
Oh je... Leute das tut mir leid... ich mach hier schon seit 3Tagen rum und kein erfolg, deswegen heute der post, und siehe da, nochmal rübergeschaut und fehler gefunden. Ich habe irgendwie meine signale vermischt (signale und variablen) deswegen die verzögerung. man kann von einer fehlerhaften zuweisung sprechen. Nun ist alles so wie es sein sollte, aber vielen dank für die schnellen antworten. das nächste mal poste ich auch gleich den source code, hab ich vorhin nur vergessen sorry...
@ ace
> Ich habe irgendwie meine signale vermischt (signale und variablen)
Ja, schmeiß die Variablen weg ;-)
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.