Forum: FPGA, VHDL & Co. VHDL Anfängerproblem: Werte zwischen Prozessen austauschen


von Bastler0815 (Gast)


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"?

von TheBear (Gast)


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...

von Falk B. (falk)


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

von Falk B. (falk)


Lesenswert?

@ TheBear

>Vereinbarungen machen. Das Verhalten ist wie bei jedem anderen signal
>auch. In beiden Prozessen weist Du den Wert einem Signal zu und in einem

Das wage ich zu bezweifeln.

MFG
Falk

von Bastler0815 (Gast)


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".

von Falk B. (falk)


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


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.