mikrocontroller.net

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


Autor: Bastler0815 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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"?

Autor: TheBear (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Bastler0815 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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".

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.