Ein kleines "Schönheitsproblem".
Ich möchte Register anlegen, die vom angeschlossenen Microprozessor aus 
zugreifbar sein sollen, das funzt auch soweit.
Dazu gibt es für jedes Register ein Chip-Select, das folgendermaßen 
angesprochen wird:
1  |     reg_1_cs <= '1' WHEN adr = 20X"FF200" ELSE '0';
  | 
2  |     reg_2_cs <= '1' WHEN adr = 20X"FF204" ELSE '0';
  | 
3  |     ...
  | 
Das tut auch soweit. Bloß will ich die Adressen nicht vollständig 
ausdekodieren, sondern auch Byte- und Word-Zugriffe "mittenrein" 
zulassen (also die unteren zwei Bit ignorieren).
Das man in VHDL 2008 "hübsche" Literale definieren kann, die die 
Vektorlänge vorgeben, hab' ich schon rausgefunden:
1  |     reg_1_cs <= '1' WHEN adr(19 DOWNTO 2) = 18X"3FC80" ELSE '0';
  | 
2  |     reg_2_cs <= '1' WHEN adr(19 DOWNTO 2) = 18X"3FC81" ELSE '0';
  | 
3  |     ...
  | 
Funktioniert auch. Dummerweise ist aber jetzt die "Selbstdokumentierung" 
von oben weg: um die "echte" Adresse aus dem VHDL rauszufinden, muß man 
erst das Rechnen anfangen. Was ich dazu eigentlich bräuchte, wär' so 
was:
1  |     reg_1_cs <= '1' WHEN adr(19 DOWNTO 2) = 20X"FF200"(19 DOWNTO 2) ELSE '0';
  | 
2  |     reg_2_cs <= '1' WHEN adr(19 DOWNTO 2) = 20X"FF204"(19 DOWNTO 2) ELSE '0';
  | 
3  |     ...
  | 
, also ein Slice von einem Literal. Das geht aber so nicht.
Gibt's einen Trick, wie man das "schöner" machen kann?