在VHDL阵列中(向量)可以使用(others => <element>)
初始化。
一维示例:
signal mySignal1 : std_logic_vector(7 downto 0) := (others => '0');
如果我使用两个嵌套的一维向量,它看起来就像这个例子:
type myVector is array(natural range <>) of std_logic_vector(7 downto 0);
signal mySignal2 : myVector(3 downto 0) := (others => (others => '0'));
好的,这是真正的二维示例:
type myMatrix is array(natural range <>, natural range <>) of std_logic;
signal mySignal3 : myMatrix(3 downto 0, 7 downto 0) := (others => (others => '0'));
可以看出,信号与前一个信号的结构不同,但初始化是相同的。
为什么/不是这种语法:(others, others => '0')
使用/选择?
答案 0 :(得分:0)
因为构造中的逗号“,”(其他,其他=&gt;'0')暗示这两个术语是向量的标量元素。他们不是。 (others =&gt;(others =&gt;'0'))是VHDL唯一完全无约束的嵌套向量构造。