2016-05-27 3 views
0

У меня есть числа с плавающей запятой. Скажем, 4.6 и 3.8. Мы преобразуем их в неподвижную точку (Q4.4), выполняя 4.6 x 2^4 = 74 и 3.8 x 2^4 = 61. Мы добавляем оба числа 74 + 61 = 135. Теперь мы преобразуем этот результат 135 в плавающую точку, выполнив 135/2 4 = 8,4. Это даст целочисленную часть результата, которая равна 8.как вычислить дробную часть числа с плавающей запятой в verilog

Теперь дробная часть вычисляется путем выполнения (2^-2 + 2^-3 + 2^-4). Может ли кто-нибудь сказать, как получить это значение 4 в verilog, чтобы я мог отображать его на 7-сегментном дисплее как 8.4?

ответ

1

Существует несколько простых решений.

Один из способов - создать таблицу поиска: для каждого из 16 возможных значений выведите значение десятичной точки (то есть 0b0111 = 0.4375 ~= .4) и создайте оператор case для получения правильного значения. Это не должно быть слишком сложно или сложно, поскольку вы используете только 4 бита.

Другим вариантом было бы сделать добавление самостоятельно, используя сумматор BCD, который позволит вам извлечь цифру наивысшего порядка (то есть 0b0111 = 250+125+62 = 437 -> 4).

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