У меня есть некоторые сомнения относительно использования преобразований из std_logic_vector
в signed
/unsigned
. Я всегда использую преобразование signed(...)
, unsigned(...)
, но когда я пытаюсь использовать преобразования, определенные в библиотеке numeric_std
(to_signed
, to unsigned
), это не работает. Может кто-нибудь объяснить мне, почему это происходит? А почему работает преобразование unsigned()
и signed()
?
Преобразование VHDL std_logic_vector в знаковый и беззнаковый с помощью numeric_std
Ответы (2)
Поскольку типы std_logic_vector
и signed
/unsigned
тесно связаны между собой, для преобразования можно использовать способ приведения типов. Так что signed(a_std_logic_vector)
и unsigned(a_std_logic_vector)
в порядке. Однако функции для преобразования также определены в стандарте.
Взгляните на Часто задаваемые вопросы по VHDL. Это старый веб-сайт, созданный в те дни, когда группы новостей были еще популярны, но на нем все еще есть много полезной информации о VHDL.
person
vermaete
schedule
21.01.2013
Посмотрите спецификацию пакета для numeric_std. Вы обнаружите, что to_signed преобразуется в signed... из целого числа.
Как говорит «vermaete», подписанный тип тесно связан с std_logic_vector, поэтому вам не нужна функция преобразования.
person
user_1818839
schedule
21.01.2013