2015-11-07 39 views
0

我在架構具有這些信號的信號矢量分配:在VHDL

signal sign1: STD_LOGIC_VECTOR (21 downto 0); 
signal sign2: STD_LOGIC; 

然後,在某些過程中,我有此分配。這是什麼意思? sign2的價值是什麼?矢量的第21位?

sign2 <= sign1(21); 
+0

VHDL也有所謂的屬性,所以你可以做'sign2 <= sign1(sign1'left)',這比硬編碼的幻數更容易閱讀和維護。 –

+0

信號分配的右手錶達式是一個索引名稱,表示數組的元素('sign1')。數組類型std_logic_vector的元素類型的基本類型與std_logic的基本類型相同,從而允許指定目標'sign2'。數字文字'21'表示一個* universal *值,它被轉換爲integer類型,它是std_logic_vector的索引類型的基類型,並且是一個指定數組元素的索引。如果索引值不在'sign1'的索引範圍內,那是錯誤的。 – user1155120

回答

1

是的。您將sign1的最左側的位分配給sign2。

+0

就是這樣?您甚至無法將右手錶達式描述爲名爲?這是什麼意思? – user1155120