Forum: FPGA, VHDL & Co. problem mit counter und ausgabe


von ace (Gast)


Lesenswert?

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ß

von Gast (Gast)


Lesenswert?

....Glaskugel?

Poste halt mal deinen Sourcecode

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

>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.

von ace (Gast)


Lesenswert?

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...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

@ 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
Noch kein Account? Hier anmelden.