Forum: FPGA, VHDL & Co. Rücksetzen von Signalgruppen zusammenfassen


von TM (Gast)


Lesenswert?

Guten Tag,

Ich habe folgendes Problem ich habe immer wieder ganze Signalgruppe aus 
der Entity , welche in einem kombinatorischen Kontrukt in jedem zweig 
auf Null gesetzt werden.
hier ein Beispiel:
1
  REGF_IN_MODE         <= "00";
2
  REGF_IN_WR          <= '0';
3
  REGF_ADDR_IN         <= "00000"; 
4
  REGF_OUT_MODE        <= "00";
5
  REGF_ADDR_OUT0       <= "00000"; 
6
  REGF_ADDR_OUT1       <= "00000";
7
  REGF_EN_STACK        <= '0';
8
  REGF_STACK_DIR        <= '0';
9
  REGF_STACK_INPUT      <= "000000000000";

Gibt es eine Möglichkeit sowas in eine art Funktion oder define 
zusamemnzufassen, das ich es nicht in jeden Zweig wieder reinkopieren 
muss?
Dies wäre vorallem sehr viel übersichtlicher.

Gruß TM

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Zeig einfach mal deinen ganzen Code, am besten als Anhang mit *.VHDL als 
Dateiendung...

von user (Gast)


Lesenswert?

als default definieren

also so

process(x)
begin
  y <= '0'; --default

  if x = '1' then
    y <= '1';
  end if;
end process;

von Bumsfallera (Gast)


Lesenswert?

TM schrieb:
> Gibt es eine Möglichkeit sowas in eine art Funktion oder define
> zusamemnzufassen, das ich es nicht in jeden Zweig wieder reinkopieren
> muss?
> Dies wäre vorallem sehr viel übersichtlicher.
>
> Gruß TM

fass doch einfach alle signale in nem record zusammen und dann lümmelst 
du mit ner konstante drüber

von TM (Gast)


Lesenswert?

Bumsfallera schrieb:
> TM schrieb:
>> Gibt es eine Möglichkeit sowas in eine art Funktion oder define
>> zusamemnzufassen, das ich es nicht in jeden Zweig wieder reinkopieren
>> muss?
>> Dies wäre vorallem sehr viel übersichtlicher.
>>
>> Gruß TM
>
> fass doch einfach alle signale in nem record zusammen und dann lümmelst
> du mit ner konstante drüber

Ich versteh nicht so recht wie ich ne record gruppe auf einmal auf null 
setzten kann ?

Oder meinst du zu Rekord zusammenführen record und dann ner procedur 
übergeben ?

von TM (Gast)


Lesenswert?

user schrieb:
> als default definieren
>
> also so
>
> process(x)
> begin
>   y <= '0'; --default
>
>   if x = '1' then
>     y <= '1';
>   end if;
> end process;

Das löst mein Problem manchmal sieht man den Wald vor lauter Bäumen 
nicht danke.

Gruß Tobias

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

TM schrieb:
> manchmal sieht man den Wald vor lauter Bäumen nicht
Das war mein Verdacht, deshalb mein Vorschlag mit der angehängten VHDL 
Beschreibung...

Noch ein kleiner Tipp: statt
x <= "000000000000";
kannst du auch
x <= (others=>'0');
schreiben.
Der Vorteil: bei einer Änderung der Vektorbreite passt die Zuweisung 
automatisch.

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.