Forum: FPGA, VHDL & Co. Alias von mehreren std_logic_vector Elementen eines Arrays


von Heinrich H. (Firma: Ich.AG) (hhanff)


Lesenswert?

Hallo!

Ich habe mir folgenden Typ und ein dazugehöriges Signal deklariert:
1
type sd_card_data_a is array (natural range 527 downto 0) of std_logic_vector(7 downto 0);
2
signal sd_card_data_as : sd_card_data_a;

Was ich machen kann ist für einzelne Elemente des Arrays einen Alias 
anlegen:
1
alias data_start_block_s : std_logic_vector(7 downto 0) is sd_card_data_as(0);

Was ich aber nicht hinbekomme ist für mehr als ein Element des Arrays 
ein Alias anzulegen:
1
alias data_stuff_bytes_s    : std_logic_vector(15 downto 0) is sd_card_data_as(10 downto 9);

Auch wenn ich für den Alias einen eigenen Typen anlege haut's nicht hin:
1
type data_stuff_bytes_a is array (514 downto 513) of std_logic_vector(7 downto 0); 
2
alias data_stuff_bytes_s : data_stuff_bytes_a is sd_card_data_as(2 downto 1);

Kann mir jemand zeigen wie's geht?

von Duke Scarring (Gast)


Lesenswert?

Wie lautet denn die Fehlermeldung?
Und mit welchem Programm verarbeitest Du Deinen Code weiter (Modelsim, 
XST, Quartus)?

Duke

von Heinrich H. (Firma: Ich.AG) (hhanff)


Lesenswert?

Heinrich H. schrieb:
> Hallo!
>
> Ich habe mir folgenden Typ und ein dazugehöriges Signal deklariert:
>
1
> type sd_card_data_a is array (natural range 527 downto 0) of
2
> std_logic_vector(7 downto 0);
3
> signal sd_card_data_as : sd_card_data_a;
4
>
>
> Was ich machen kann ist für einzelne Elemente des Arrays einen Alias
> anlegen:
>
1
> alias data_start_block_s : std_logic_vector(7 downto 0) is
2
> sd_card_data_as(0);
3
>
>
> Was ich aber nicht hinbekomme ist für mehr als ein Element des Arrays
> ein Alias anzulegen:
>
1
> alias data_stuff_bytes_s    : std_logic_vector(15 downto 0) is
2
> sd_card_data_as(10 downto 9);
3
>
>
Die Fehlermeldungen von ghdl hierzu lautet:
../proj/sd_card_spi_wrapper.vhd:191:9: base type of aliased name and 
name mismatch ../proj/sd_card_spi_wrapper.vhd:191:9: number of elements 
not matching in type and name

und die von ISE lautet:

ERROR:HDLParsers:800 - 
"/home/proj/fpga_svn/FPGA/lib/SD_Card/trunk/sd_card_spi_wrapper.vhd" 
Line 191. Type of data_crc_value_lower_byte_as is incompatible with type 
of sd_card_data_as.


> Auch wenn ich für den Alias einen eigenen Typen anlege haut's nicht hin:
>
1
> type data_stuff_bytes_a is array (514 downto 513) of std_logic_vector(7
2
> downto 0);
3
> alias data_stuff_bytes_s : data_stuff_bytes_a is sd_card_data_as(2
4
> downto 1);
5
>
Die Fehlermeldungen von ghdl hierzu lautet:
../lib/SD_Card/trunk/sd_card_spi_wrapper.vhd:191:9: base type of aliased 
name and name mismatch

und die von ISE lautet:

ERROR:HDLParsers:800 - "/home/proj/spi_wrapper.vhd" Line 191. Type of 
data_crc_value_lower_byte_as is incompatible with type of 
sd_card_data_as.

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.