我开始为我的大学考试学习VHDL语言,我有一个问题: BIT_VECTOR类型和位数组之间的区别是什么?
发布于 2018-06-08 19:13:31
如上所述,here
bit_vector是一维数组类型,元素的类型为
。bit_vector类型是在标准包中预定义的。语法:
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;
https://stackoverflow.com/questions/50758402
复制相似问题