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"?
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...
@ 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
@ 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
@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".
@ 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.