Globale Variablen in VHDL

Gast #203498
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
> In einem Prozess der jede
>Sekunde duchlaufen wird soll der Counterwert aus einem anderen
Prozess
>ausgewertet und zurückgesetzt werden.

Nimm halt ein Signal.
Gast
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
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
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

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.