www.mikrocontroller.net

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


Autor: Gabriel (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Kest (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Gabriel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke!! Das wußte ich nicht.

Ich versuch mal das umzuschreiben.

LG
Gabriel

Autor: Gabriel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Gabriel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Roger Steiner (edge)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Gabriel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.