Разница между BIT_VECTOR и ARRAY OF BIT - PullRequest
0 голосов
/ 08 июня 2018

Я начинаю изучать VHDL для сдачи экзамена в университете, и у меня возникает вопрос: в чем разница между типом BIT_VECTOR и ARRAY OF BIT?

1 Ответ

0 голосов
/ 08 июня 2018

Как указано здесь

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;
...