Forum: FPGA, VHDL & Co. 2.Prozess stört den ersten?


von Gabriel (Gast)


Angehängte Dateien:

Lesenswert?

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

von Kest (Gast)


Lesenswert?

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

von Gabriel (Gast)


Lesenswert?

Danke!! Das wußte ich nicht.

Ich versuch mal das umzuschreiben.

LG
Gabriel

von Gabriel (Gast)


Lesenswert?

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

von Klaus F. (kfalser)


Lesenswert?

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.

von Falk B. (falk)


Lesenswert?

@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

von Gabriel (Gast)


Lesenswert?

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.

von Roger S. (edge)


Lesenswert?

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

von Gabriel (Gast)


Lesenswert?

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