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


von Martin (Gast)


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

von Jan M. (mueschel)


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.

von Martin (Gast)


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

von J. S. (engineer) Benutzerseite


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.

von pete (Gast)


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.

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.