Forum: FPGA, VHDL & Co. Custom Type Zuweisung per Namen und Wert


von Martin (Gast)


Lesenswert?

Ist es möglich in VHDL einen eigenen Typen sowohl per Namen, als auch 
per std_logic wert zuzuweisen?

Ich habe zB. folgenden Typen:
1
type data_sel_type is (D0, D1, D2, D3, D4);

Den möchte ich per Namen (Sx) als auch per "Wert" setzen.
1
signal data_sel : data_sel_type;
2
3
data_sel <= D0;
4
data_sel <= SOME_MAGIC_CONSTRUCT(3); -- Set state to D3

Ist das in VHDL möglich?

data_sel ist der Steuereingang eines Multiplexers in einem Datenpfad. Um 
einen MUX für das Steuersignal zu vermeiden, möchte ich ein anderes 
Signal (integer counter), direkt auf das Steuersignal abbilden.

Danke und lg
Martin

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


Lesenswert?

Martin schrieb:
> Ist das in VHDL möglich?
Ja, Stichwort Attribut. Such mal nach VHDL-QRC...

Für dich also etwa so:
data_sel <= data_sel_type(3);

> Um einen MUX für das Steuersignal zu vermeiden,
Den wirst du trotzdem bekommen. Wie sollte denn die Umschaltung im FPGA 
sonst funktionieren?

: Bearbeitet durch Moderator
von Martin (Gast)


Lesenswert?

Lothar Miller schrieb:
> Ja, Stichwort Attribut. Such mal nach VHDL-QRC...
>
> Für dich also etwa so:
> data_sel <= data_sel_type(3);

Danke!

Lothar Miller schrieb:
> Den wirst du trotzdem bekommen. Wie sollte denn die Umschaltung im FPGA
> sonst funktionieren?

Ja, einen schon. Aber bekomme ich mit der folgenden Beschreibung nicht 
noch einen:
1
  case count is
2
     when 0 => data_sel <= D0;
3
     when 1 => data_sel <= D1;
4
     when 2 => data_sel <= D2;
5
     when 3 => data_sel <= D3;
6
     when 4 => data_sel <= D4;
7
     when others => data_sel <= D0;
8
  end case;

lg Martin

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


Lesenswert?

Martin schrieb:
> Aber bekomme ich mit der folgenden Beschreibung nicht noch einen:
Wahrscheinlich nicht, aber interessant ist eigentlich nur, ob letztlich 
mehr LUTs verbraucht werden und das Design langsamer wird.

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.