VHDL Anfängerproblem: Werte zwischen Prozessen austauschen

Gast #536725
Lesenswert?
• ▲
▼
Hallo,
ich bin noch blutiger VHDL Anfänger und stehe mal wieder auf dem 
Schlauch:
Ein Signal soll bei steigender Taktflanke den einen, und bei fallender 
Taktflanke einen anderen Wert annehmen.
Nun habe ich das Problem, dass in einem Prozess nur ein 'event verwendet 
werden darf und andererseits von zwei Prozessen nicht auf das gleiche 
Signal schreibend zugreifen darf.
Wie kann ich das Lösen?
Gibt es bei VHDL so eine art "globale variable"?
Gast #536738
Lesenswert?
• ▲
▼
Ja, Du kannst im Deklarationsteil der architecture "signal" 
Vereinbarungen machen. Das Verhalten ist wie bei jedem anderen signal 
auch. In beiden Prozessen weist Du den Wert einem Signal zu und in einem 
weiteren concurrent statement machst Du dann die Zuweisung an den 
Port-Pin...
#536740
Lesenswert?
• ▲
▼
@ Bastler0815

>Ein Signal soll bei steigender Taktflanke den einen, und bei fallender
>Taktflanke einen anderen Wert annehmen.

Geht nicht, weil das physikalisch-technisch nicht machbar bzw. sinnvoll 
ist. Jaja, es gibt Dual-Edge FlipFlops z.B. im Coolrunner-II, aber das 
sind Ausnahmen.

>Nun habe ich das Problem, dass in einem Prozess nur ein 'event verwendet
>werden darf und andererseits von zwei Prozessen nicht auf das gleiche
>Signal schreibend zugreifen darf.
>Wie kann ich das Lösen?

Die meisten Probleme lassen sich sehr gut mit den klassichen Ansätzen 
lösen, sprich nur eine Taktflanke wird verwendet. GGf. nimmt man zwei 
Signale, eins reagiert auf die steigende, das andere auf die fallende 
Flanke. Beide werden dann geschickt logisch verknüpft.

>Gibt es bei VHDL so eine art "globale variable"?

Vergiss das. Sag lieber mal, wozu du glaubst so ein Verhalten zu 
brauchen.

MfG
Falk
Gast #536787
Lesenswert?
• ▲
▼
@Falk:

danke schon mal für Deine schnelle Hilfe!

Ich will einen Bitcode auswerten, in dem es ein "Toggelbit" gibt, d.h. 
erst nach einer Änderung dieses Bits darf ich einen Teil des Codes 
übernehmen. Nach einer Bestätigung wird der Code wieder ungültig, bis 
das Bit wieder "toggelt".
#536797
Lesenswert?
• ▲
▼
@ Bastler0815

>Ich will einen Bitcode auswerten, in dem es ein "Toggelbit" gibt, d.h.
>erst nach einer Änderung dieses Bits darf ich einen Teil des Codes
>übernehmen. Nach einer Bestätigung wird der Code wieder ungültig, bis
>das Bit wieder "toggelt".

Für das Problem sehe ich auf die Schnelle drei Lösungen.

a) Ein Handshake-Protokoll ala EPP am Parallel-Port
b) Dein Toggle-Bit mittels schnellem Takt abtasten, ein Toggeln kann 
dann durch einfache Logik erkannt werden (Speicherung mittels zweier 
FlipFlops und Vergleich per XOR)
c) Verwendung von zwei Prozessen, wie bereits beschieben, die Auswerung 
per XOR dann ebenso

MFG
Falk

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 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.