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