我开始为我的大学考试学习VHDL,我有一个问题:BIT_VECTOR类型和ARRAY OF BIT之间的区别是什么?
答案 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;