2013-12-13 5 views

ответ

2

Использование numeric_std:

signal test_in : std_logic_vector(2 downto 0); 
signal test_out : integer range -4 to 3; 

test_out <= to_integer(signed(test_in)); 
+1

Не уверен, что подписанный 3-битный вектор поместится в «целочисленный диапазон от 0 до 7», не так ли? –

+0

Действительно. Я изменил ответ. – Russell

0

Вам необходимо преобразовать в целое число (с помощью use ieee.numeric_std.all;, что означает, что вам нужно знать, если ваш std_logic_vector является представителем подписанную или беззнаковое число Ideally, you'd use the relevant type rather than the bag-of-bits that std-logic_vector is.

Преобразование. целое число является таким же простым, как:

int_variable := to_integer(some_vector); 

Если вы должны придерживаться std_logic_vector Вы должны будете сообщить компилятору, является ли это знаком или без знака, как это:

int_variable := to_integer(unsigned(some_vector)); 

или это:

int_variable := to_integer(signed(some_vector)); 

Тогда вы можете написать вам целое в файл, как обычно.

Смежные вопросы