(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