Betrachten wir eine ArtVHDL Zuordnung zu einem Array-Typ
type foo is array (0 downto 0) of std_logic_vector(7 downto 0);
Warum muss ich einen Compiler-Fehler, wenn ich versuche, einen konstanten Wert dieser Art zu schaffen, zum Beispiel. Beachten Sie, dass ich nur Alteras Quartus II versucht habe.
constant cFoo : foo := (x"11");
Error: VHDL Type mismatch error at [filename.vhd](line number): cFoo type does not match string literal.
aber alles ist in Ordnung, wenn mein Typ
type foo is array (0 downto 0) of std_logic_vector(7 downto 0);
mit einem Beispiel die Zuordnung zu einer Konstante ist:
constant cFoo : foo := (x"00", x"11");
Darüber hinaus der Ansicht, dass ich versuche, Index 0 zuweisen mit einer anderen Konstante. Beispielsweise.
type foo is array (0 downto 0) of std_logic_vector(7 downto 0);
constant cBar : std_logic_vector(7 downto 0);
constant cFoo : foo := (cBar );
die Compiler, um der der Fehler ist jetzt spucken:
VHDL error at [filename.vhd](line number): type of identifier "cBar" does not agree with its usage as "foo" type.
Also im Grunde seine mir zu sagen, dass der Compiler nicht erkennen, dass die Zuordnung zu dem Index von 0 ist, sondern eine Zuordnung zu der Array-Typ.
Wie kann ich den Compiler wissen lassen, dass die Zuweisung nur 0 indizieren soll?
Meister. Danke, dass Sie die Lücke in meinem Verständnis geschlossen haben. – CJC