рассмотрим типаназначения VHDL для типа массива
type foo is array (0 downto 0) of std_logic_vector(7 downto 0);
Почему я получаю ошибку компиляции, когда я пытаюсь создать постоянное значение этого типа, например. Обратите внимание, что я только пытался использовать Altera Quartus II.
constant cFoo : foo := (x"11");
Error: VHDL Type mismatch error at [filename.vhd](line number): cFoo type does not match string literal.
Однако все нормально, если мой тип
type foo is array (0 downto 0) of std_logic_vector(7 downto 0);
с примером присвоения константы:
constant cFoo : foo := (x"00", x"11");
Кроме того считают, что я пытаюсь присвоить индекс 0 с другой константой. Например.
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 );
Для которой ошибка компилятор выплевывает теперь:
VHDL error at [filename.vhd](line number): type of identifier "cBar" does not agree with its usage as "foo" type.
Поэтому в основном его говорил мне, что компилятор не понимает, что присвоение индексу 0, но вместо того, чтобы присваивание тип массива.
Как я могу сообщить компилятору, что задание состоит только в индексе 0?
Champion. Спасибо, что восполнили пробел в моем понимании. – CJC