mikrocontroller.net

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


Autor: Heinrich H. (Firma: Ich.AG) (hhanff)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

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

Was ich machen kann ist für einzelne Elemente des Arrays einen Alias 
anlegen:
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:
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:
type data_stuff_bytes_a is array (514 downto 513) of std_logic_vector(7 downto 0); 
alias data_stuff_bytes_s : data_stuff_bytes_a is sd_card_data_as(2 downto 1);

Kann mir jemand zeigen wie's geht?

Autor: Duke Scarring (Gast)
Datum:

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

Duke

Autor: Heinrich H. (Firma: Ich.AG) (hhanff)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Heinrich H. schrieb:
> Hallo!
>
> Ich habe mir folgenden Typ und ein dazugehöriges Signal deklariert:
>
> type sd_card_data_a is array (natural range 527 downto 0) of
> std_logic_vector(7 downto 0);
> signal sd_card_data_as : sd_card_data_a;
> 
>
> Was ich machen kann ist für einzelne Elemente des Arrays einen Alias
> anlegen:
>
> 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:
>
> alias data_stuff_bytes_s    : std_logic_vector(15 downto 0) is
> sd_card_data_as(10 downto 9);
> 
>
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:
>
> type data_stuff_bytes_a is array (514 downto 513) of std_logic_vector(7
> downto 0);
> alias data_stuff_bytes_s : data_stuff_bytes_a is sd_card_data_as(2
> downto 1);
> 
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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.