2014-03-28 5 views
8

Es scheint, dass ich das schon oft getan habe, aber aus irgendeinem Grund will es heute einfach nicht funktionieren.Weisen Sie ein einzelnes Bit von STD_LOGIC_VECTOR zu STD_LOGIC

Ich möchte das MSB eines 16-Bit-Vektor zu einer Ein-Bit-Variable zuweisen.

Din : in STD_LOGIC_VECTOR (15 downto 0); 

... 

signal signBit : std_logic; 

begin 
    signBit <= Din(15 downto 15); 

Der Fehler gegeben ist:

Type of signBit is incompatible with type of Din. 

Ja ich es bekommen, Vektoren mit std_logic nicht schön spielen, aber das ist 1 Bit, eindeutig gekennzeichnet durch (15 downto 15)

+1

Ich nehme an, es gibt einen guten Grund, dass Sie dies tun wollen, und nicht nur 'Din (15)' verwenden. Obwohl Ihr Slice nur 1 Bit ist, macht die Tatsache, dass Sie mit "downto" darauf zugreifen, ein Array, nicht den Skalar, den Sie erwarten. – fru1tbat

Antwort

11
Din(15 downto 15); 

ist ein std_logic_vector, 1 Bit lang

Din(15); 

ist ein Element eines std_logic_vector, d. H. Ein std_logic.

+0

Ahh, ich war verwirrt. Vielen Dank – krb686