www.mikrocontroller.net

Forum: FPGA, VHDL & Co. "globale" Signale in VHDL


Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi leute,

ich hab mal eine kurze frage.
Ich moechte Signale in einer Prozedur treiben ohne das diese in der 
Parameterliste stehen. Gibt es da eine Moeglichkeit eine Art "globales" 
Signal zu deklarieren? Fuer andere Loesungsmoeglichkeiten bin ich gerne 
offen!^^


Mfg

Martin

Autor: Jan M. (mueschel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sicher geht das: Einfach machen.
Signale duerfen aber nicht in zwei verschiedenen Prozessen zugewiesen 
werden - und irgendwie vermute ich, dass du eigentlich etwas ganz 
anderes willst als du schreibst.

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh ja ich hab mich etwas falsch ausgedrueckt!
Ich habe zwei Prozeduren. Die erste Prozedur (proc_a) diese bekommt 1 
Konstante und 2 Signale ubergeben.
Die zweite bekommt nur eine Konstante uebergeben und soll proc_b mit 
dieser konstante und den signalen sign1 und sign2 aufrufen.

Beim compilieren bekomme ich die Meldung das die Signale von diesem 
Unterprogramm nicht getrieben werden koennen.

Ich hier mal ein Beispiel.


Signaldeklaration:
-----------------------------------------------------------
signal sign1 : integer;
signal sign2 : integer;
-----------------------------------------------------------



Prozedurdeklaration:
-----------------------------------------------------------
procedure proc_a (constant c_1 : in integer;
                  signal s1 : out integer;
                  signal s2 : out integer   ) is
begin
  s1 <= c_1;
  s2 <= 2*c_1;
end proc_a;

procedure proc_b (constant c_2 : in integer) is
begin
  proc_a(c_2, sign1, sign2)
end proc_b;
-----------------------------------------------------------

Autor: Jürgen Schuhmacher (engineer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was soll das werden? Du baust hier hardware und keine software. Du 
kannst Variablen nicht in Proceduren "bearbeiten" und hin und 
herschieben. Alle Wege sind hier unidimensional, d.h. der Wert eines 
Signals wird immer nur ein einem einzigen Punkt erzeugt.

Autor: pete (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sign_1/2 sind in proc_b nicht bekannt, des geht so also nicht - mußt 
halt auch über die Parameterliste gehen
Falls Du nur 'Verhaltenskode' schreibst, könntest Du die Signale in 
einem Package deklarieren, dann sind sie überall bekannt. Daraus lässt 
sich aber keine HW synthetisieren!

Gruß
  P.

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.