cmd_r 定义为标准逻辑向量, or unsigned or signed信号。让我们看看这个信号类型是如何定义的:
type std_logic_vector is array (natural range <>) of std_logic;
type unsigned is array (natural range <>) of std_logic;
type signed is array (natural range <>) of std_logic;
请注意,这 3 种类型与 std_logic 项数组具有相同的定义。
当编码员想要在数组中定义具有相同值的多个项目时,语句“Others => '0'”是 VHDL 的一个功能。
在您的示例中,数组中的所有项目 std_logic 都设置为“0”。
此语句的另一个应用是将某些项目设置为特定值,并将所有其他项目设置为默认值:
cmd_r <= (0 => '1',
4 => '1',
others => '0');
在这种情况下,位 0 和 4 设置为“1”,所有其他位设置为“0”。
最后一件事,就是不可能写这样的东西:
cmd_r <= (0 => '1',
4 downto 2 => "111", -- this line is wrong !!!
others => '0');