Liebe Helfer!! Ich habe einen Counter programmiert, der nur bis 9 zählen soll und dann wieder auf 0 umspringt. Das cy wird später für weitere Zähler verwendet. Wenn ich den 2. Prozess lösche funktioniert der Reset. Wenn ich ihn dranlasse geht gar nichts. Ich hab keine Ahnung mehr was ich falsch gemacht habe. BITTE kann mir jemand einen Tip geben. DANKE Gabriel
ohne jetzt groß reinzuschauen: Du hast in beiden Processen ct1s_o <= ... das geht nicht. Die Signale dürfen nur in einem Process geändert werden! Grüße, Kest
Danke!! Das wußte ich nicht. Ich versuch mal das umzuschreiben. LG Gabriel
Ich habs im 2. Prozess ausmaskiert aber es geht immer noch nicht. Werde mich aber in ruhe hinsetzten und den Code so umschreiben, dass ich nur noch in einem Prozess zuweise. Vielleicht finde ich dabei den 2. (oder mehr) Fehler. LG Gabriel
Ich rate Dir, einen freien VHDL Simulator zu holen (gibt es z.B. bei Xilinx, ModelSim Starter Edition, oder VHDLSimili) und Dein Design zu simulieren. Dann kannst Du die Signale beobachten und verstehst warum es nicht funktioniert.
@Gabriel (Gast) >Ich habe einen Counter programmiert, der nur bis 9 zählen soll und dann >wieder auf 0 umspringt. Das cy wird später für weitere Zähler verwendet. Ziemlich viel Text für so eine einfache Sache. >Wenn ich den 2. Prozess lösche funktioniert der Reset. Wenn ich ihn >dranlasse geht gar nichts. Ich hab keine Ahnung mehr was ich falsch >gemacht habe. Synchroner UND asynchroner Reset? Das ist zwar praktisch machber, aber selten sinnvoll. Ausserdem hast du dir ein böses Latch gebaut, weil im Else Zweig des zweiten Prozesses nix drinsteht. Dort verschluckt sich die Sache wahrscheinlich. MFG Falk
Das Latch habe ich inzwischen auch entfernt. Leider will der Zähler immer noch nicht so wie ich will. Ich glaube ich schreib alles noch einmal. Vielleicht übertippe ich den Rest der Fehler.
Ein Zaehler hat in einem kombinatorischen Prozess auch nichts verloren. Dein Ansatz mit einer state-machine ist etwas overkill. Aber wenn du umbedingt auf SM stehst, beschreib es in einem synchronen Prozess. Die aufteilung in zwei Prozesse, so wie du es machst, bereitet meistens Probleme (sieht man in diesem Forum immer wieder). Cheers, Roger
DANKE für Eure Hilfe! Der Zähler zählt!! Den Tip mit dem einen Prozess werde ich noch berücksichtigen. Dann wird auch der Code kürzer und übersichtlicher.
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.