BIT_VECTOR和BIT的阵列之间的区别

时间:2018-06-08 10:15:53

标签: vhdl bitvector

我开始为我的大学考试学习VHDL,我有一个问题:BIT_VECTOR类型和ARRAY OF BIT之间的区别是什么?

1 个答案:

答案 0 :(得分:0)

如上所述here

  

bit_vector是一维数组类型,其元素的类型为Bit。 bit_vector类型在Standard包中预定义。   语法:

type bit_vector is array (natural range <>) of bit; 

这也可以在IEEE1076-2008标准的第5.3.2.3节“预定义数组类型”中找到。

编辑:我不完整。 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;