преобразование с фиксированной точкой из реальной переменной в VHDL - PullRequest
0 голосов
/ 02 ноября 2011

У меня есть следующий фрагмент кода в vhdl:

signal s: signed(31 downto 0);
s <= to_signed(to_sfixed(1.2,8,-23),32);

Теперь я ожидаю, что версия фиксированной точки 1.2 будет доступна в сигнале 's'.

Но это всегдапренебрегает дробной частью.'S' содержит только десятичную часть (здесь "1").

Что мне здесь не хватает?

Ответы [ 2 ]

1 голос
/ 03 ноября 2011

Если вы просто хотите переинтерпретировать биты из фиксированного типа в тип со знаком, просто используйте простое преобразование типа:

signal s: signed(31 downto 0);
...
s <= signed(to_sfixed(1.2,8,-23));
1 голос
/ 02 ноября 2011

s не имеет места для хранения какой-либо дробной части, это вектор со знаком, который может представлять только целые числа.

Ты почти там, хотя - отбрось подпись и сделай s и исправленный тип:

signal s: sfixed(8 downto -23);
s <= to_sfixed(1.2,sfixed'high,sfixed'low);
...