Как указано здесь
Bit_vector - это одномерный тип массива с элементами типа Bit.Тип bit_vector предопределен в стандартном пакете.Синтаксис:
type bit_vector is array (natural range <>) of bit;
Это также можно найти в стандарте IEEE1076-2008, раздел 5.3.2.3 «Предопределенные типы массивов».
edit: я не был завершен.bit_vector
является предопределенным (неограниченным) массивом bit
.Но так как корова является животным, но не каждое животное является коровой, у вас может быть больше видов.Поскольку VHDL строго типизирован, это означает, что вы не можете просто соединить разные типы без функции приведения.
См. Пример кода ниже:
entity e is end entity;
architecture a of e is
signal s1 : bit_vector(0 downto 0);
type own_bit_vector is array(natural range <>) of bit;
signal s2 : own_bit_vector(0 downto 0);
begin
-- next line doesn't work
--s2 <= s1;
-- "Error: D:/Hdl/BitVector/BitVector.vhd(7):
-- Signal "s1" is type std.STANDARD.BIT_VECTOR;
-- expecting type own_bit_vector."
-- but this is allowed
process(s1) begin
for i in s1'range loop
s2(i) <= s1(i);
end loop;
end process;
end architecture;