Forum: FPGA, VHDL & Co. range Angabe innerhalb von case auch als hexadezimale Zahl möglich?


von zwiepack (Gast)


Lesenswert?

Hallo in die Runde,

ich bin auf der suche nach einer Möglichkeit, die Rangeangaben in einem 
case-Fall auch als Hexadezimale Zahl angeben zu können anstatt nur 
Integer Zahlen.
Folgendes wird ja vom Standard unterstützt:
1
case to_integer(unsigned(stdlogicvector(19 downto 0))) is
2
  when 0 to 4096 =>
3
    -- ...
4
    -- ...
5
                                            
6
  when 4097 to ... =>
7
    -- ...
8
    -- ...
9
                                            
10
  when others =>
11
    -- ...
12
end case;

Nun such ich eine Möglichkeit die Zahlenbereich in hexadezimale Zahlen 
darzustellen. So z.B.:

1
case unsigned(stdlogicvector(19 downto 0)) is
2
  when x"0" to x"1000" =>
3
    -- ...
4
    -- ...
5
 
6
  when others =>
7
    -- ...
8
end case;


Ist sowas möglich?

Vielen Dank im Voraus.
zwiepack

von Andreas B. (andreas_b77)


Lesenswert?

Nimm das erste Beispiel und schreibe die Zahlen in hexadezimal:
1
when 16#0# to 16#1000# =>

von zwiepack (Gast)


Lesenswert?

so simpel? Geil. Danke. :)

von Andreas B. (andreas_b77)


Lesenswert?

Kannst auch oktal mit 8#...# machen oder jede beliebige andere Basis bis 
36. Theoretisch laut VHDL Standard, ob die Tools ungewöhnliche 
unterstützen ist eine andere Frage. Wobei die Unterstützung aller Basen 
so trivial ist, dass es ein Schandfleck für einen VHDL Analyzer wäre, es 
nicht zu können.

: Bearbeitet durch User
von zwiepack (Gast)


Lesenswert?

Gut zu wissen. Aber ich bin ich mit dem hexadezimalen System absolut 
zufrieden. :)

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.