Globale Variablen in VHDL

Gast #203498
Lesenswert?

Gibt es eine Möglichkeit aus einem Prozess heraus eine Variable in einem
anderen Prozess zu modifizieren? (Xilinx EDE)

Beim Versuch eine shared variable zu verwenden kommt bei mir der
Fehler: "SHARED variables are not supported for synthesis."

Ich möchte einen Frequenzzähler bauen. In einem Prozess der jede
Sekunde duchlaufen wird soll der Counterwert aus einem anderen Prozess
ausgewertet und zurückgesetzt werden.

Verwende ich in einem Prozess zwei *'event für den Sekundentakt und
für den zu zählenden Impuls bekomme ich ein Bad Synchroneous Design.
Gast #203501
Lesenswert?

Hab ich gemacht. In der Simulation funtzt das nicht.
Hab den Code mal angehängt.

Unter anderem kommt die Meldung:
Analyzing Entity <indexer3> (Architecture <behavioral>).
INFO:Xst:1304 - Contents of register <count_inp> in unit <indexer3>
never changes during circuit operation. The register is replaced by
logic.
Entity <indexer3> analyzed. Unit <indexer3> generated.
Angehängte Dateien:
Gast #203502
Lesenswert?

Danke für die Tips!
Setze zufällig einen 9572 ein :-)

In dem Beispiel wird nur währens des '1' Signals eines
heruntergeteilten Basistaktes gemessen. Ich hätte aber gerne sofort den
Counterwert der letzten Sekunde. (Wenige Signale mit stark schwankender
Pulspause).
Gruß
Andre
Gast #203503
Lesenswert?

Du kannst froh sein, dass Dein Code überhaupt synthetisiert wird.

Du weist "count_inp" innerhalb zweier Prozesse Werte zu. Das ist
eigentlich nicht erlaubt.
Im letzten Prozesse setzt Du "count_inp" getaktet auf "00000000".
Das passiert genau einmal während der Laufzeit (wenn clk_scaler(19)
'1' wird).

Der Synthesizer hat sich offenbar gedacht, dass er dann "count_inp"
auch gleich permanent auf "00000000" setzen kann.

Wenn Du die Optimierung für "count_inp" abschaltest, dann geht's gar
nicht mehr zu synthetisieren ("Multi-Source"-Fehler).

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren