2014-03-28 20 views
8

看來我已經完成了這麼多次,但由於某種原因,今天它只是不想工作。從STD_LOGIC_VECTOR分配一位到STD_LOGIC

我想將一個16位向量的MSB分配給一位變量。

Din : in STD_LOGIC_VECTOR (15 downto 0); 

... 

signal signBit : std_logic; 

begin 
    signBit <= Din(15 downto 15); 

給出的錯誤是:

Type of signBit is incompatible with type of Din. 

是的,我明白了,載體不玩STD_LOGIC不錯,但是這是1位,由(15 DOWNTO 15)

明確表示
+1

我假設你有這樣一個很好的理由,而不僅僅是使用Din(15)。即使你的分片只有1位,你用'downto'訪問它的事實使它成爲一個數組,而不是你期望的標量。 – fru1tbat

回答

11
Din(15 downto 15); 

是std_logic_vector,1位長

Din(15); 

是std_logic_vector的一個元素,即std_logic。

+0

啊,我很困惑。謝謝 – krb686