(others => '0')
是一个表达式,要素聚集成一个复合型。
没有看到cmd_r
的声明,我们可以想象它是一个数组类型,数组类型是一个复合类型(由一个或多个元素组成)。
聚合将一个或多个值作为元素组合到复合类型中。
aggregate ::=
(element_association { , element_association })
注意开启和关闭括号是必需的。
这些元素可以通过名称为记录类型或通过数组类型的索引值位置进行位置关联。
element_association ::=
[ choices => ] expression
元素关联是通过选择管辖。
choices ::= choice { | choice }
元素关联可以覆盖多个选项。
choice ::=
simple_expression
| discrete_range
| element_simple_name
| others
一个选择可以表示一个或多个元素。
元素简单名称用于记录类型或索引类型为枚举类型的数组类型。
others
始终是最后的选择,并代表该类型的所有其余选择。该类型可以在来自目标的任务中发现。在某些情况下,类型需要显式提供,如在限定表达式中。
元素关联others => '0'
代表聚合类型的所有其他元素。在这种情况下,cmd_r
的类型和子类型,其中子类型指示指定std_logic_vector的元素的范围索引。
表达'0'
需要是元素类型的,并且所述骨料(others => '0')
代表的cmd_r
为每个cmd_r
在这种情况下,元件的由'0'
的子类型的值。
http://www.eda.org/comp.lang.vhdl/FAQ1.html#aggregates – fru1tbat 2014-08-28 13:58:38
(不是一个确切的答案,但由于这是一种常见问题类型的问题,我以为我会指出你对于初学者来说) – fru1tbat 2014-08-28 14:06:57