Alias von mehreren std_logic_vector Elementen eines Arrays

OP (Firma: Ich.AG) #1824866
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?
OP (Firma: Ich.AG) #1824926
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren