Числовые факторы с собственным компонентом, с плавающей точкой

Нативная технология с плавающей точкой может сгенерировать HDL-код из вашего проекта с плавающей точкой. Проекты с плавающей точкой имеют лучшую точность, более высокий динамический диапазон и более короткий цикл разработки, чем проекты фиксированной точки. Если ваш проект имеет комплексную математику и тригонометрические операции, используйте нативную технологию с плавающей точкой.

HDL Coder™ генерирует код, который выполняет стандарт IEEE 754 арифметики с плавающей точкой. Собственный компонент HDL Coder поддержки с плавающей точкой:

  • Вокруг к самому близкому режиму округления

  • Нестандартные числа

  • Исключения, такие как NaN (Не Номер), Inf и Нуль

  • Индивидуальная настройка ULP (Модули в Последнем Месте) и относительная точность

Вокруг к самому близкому округлению режима

Собственный компонент HDL Coder использование с плавающей точкой раунд к самому близкому даже округляющемуся режиму. Этот режим разрешает все связи путем округления к самой близкой ровной цифре.

Этот метод округления требует по крайней мере трех запаздывающих битов после 23 битов мантиссы. MSB называется "Сторожевым" разрядом, средний бит называется Круглым битом, и LSB называется Липким битом. Таблица показывает округляющееся действие, что HDL Coder выполняет на основе различных значений трех запаздывающих битов. x обозначает, что не заботится о значении и может взять или 0 или 1.

Округление битовОкругление действия
0xx

Никакое действие не выполняется.

100Связь. Если бит мантиссы, который предшествует "Сторожевому" разряду, является 1, окружите, в противном случае никакое действие не выполняется.
101Окружить.
11xОкружить.

Нестандартные числа

Нестандартные числа являются числами, которые имеют равное нулю поле экспоненты и ненулевое поле мантиссы. Ведущий бит мантиссы является нулем.

value=(1)sign*(0+Σ23i=1b23i2i)*2126

Нестандартные числа имеют величины меньше, чем самое маленькое число с плавающей запятой, которое может быть представлено без начальных нулей в мантиссе. Присутствие нестандартных чисел указывает на потерю значительных цифр, которые могут накопиться по последующим операциям и в конечном счете привести к неожиданным значениям.

Логика, чтобы обработать нестандартные числа включает подсчет количества начальных нулей и выполнения операции сдвига влево, чтобы получить нормированное представление. Сложение этой логики увеличивает место области на целевом устройстве и может влиять на синхронизацию вашего проекта.

При использовании нативной поддержки с плавающей точкой можно задать, хотите ли вы, чтобы HDL Coder обработал нестандартные числа в вашем проекте.

Обработка исключений

Если вы выполняете операции, такие как деление на нуль или вычисляете логарифм отрицательного числа, HDL Coder обнаруживает и сообщает об исключениях. Таблица суммирует отображение от кодирования числа с плавающей запятой к значению номера для различных видов исключений. x обозначает, что не заботится о значении и может взять или 0 или 1.

ЗнакЭкспонентаМантиссаЗначениеОписание
x0xFF0x00000000

value=(1)S

Бесконечность
x0xFFНенулевое значение

значение = NaN

Не номер
x0x000x00000000

значение = 0

Нуль
x0x00Ненулевое значение

value=(1)sign*(0+Σ23i=1b23i2i)*2126

Нестандартный
x0x00 <E <0xFFx

value=(1)sign*(1+Σ23i=1b23i2i)*2(e127)

Нормальный

Относительная точность и факторы ULP

Представление бесконечно вещественных чисел с конечным числом битов требует приближения. Это приближение может привести к погрешностям округления в расчете с плавающей точкой. Чтобы измерить погрешности округления, стандарт с плавающей точкой использует относительную погрешность и ULP (Модули в Последнем Месте) ошибка.

ULP

Если область значений экспоненты не верхне ограничена, Модули в Ласт-Плэйс (ULP) числа с плавающей запятой x расстояние между двумя самыми близкими ведущими двойственную политику числами с плавающей запятой a и b самый близкий к x. Стандарт IEEE 754 требует, чтобы результат элементарной арифметической операции, такой как сложение, умножение и деление был правильно кругл. Правильно округленный результат означает, что округленный результат в 0,5 ULP точного результата.

ULP каждый означает добавлять 1 к десятичному значению номера. Таблица показывает приближение пи к девяти десятичным цифрам и как ULP каждый изменяет приближенное значение.

Число с плавающей запятойЗначение в десятичном числеПредставление IEEE 754 для Одного ТиповULP
3.14159274110785300110|10000000|100100100001111110110110
3.14159297910785300120|10000000|100100100001111110111001

Разрыв между двумя последовательно представимыми числами с плавающей запятой варьируется согласно величине.

Число с плавающей запятойЗначение в десятичном числеПредставление IEEE 754 для Одного ТиповULP
123456712346133040|10010011|001011010110100001110000
1234567.12512346133050|10010011|001011010110100001110011

Относительная погрешность

Относительная погрешность измеряет различие между числом с плавающей запятой и приближением вещественного числа. Относительная погрешность возвращает расстояние от 1,0 до следующего большего числа. Эта таблица показывает, как вещественное значение номера изменяется с относительной точностью.

Число с плавающей запятойЗначение в десятичном числе Представление IEEE 754 для Одного ТиповULPОтносительная погрешность
838860812582912000|10010110|0000000000000000000000001
838860712582911980|10010101|1111111111111111111111012.3841858e-07
110653532160|01111111|0000000000000000000000001.1920929e-07
210737418240|10000000|0000000000000000000000012.3841858e-07

Величина относительной погрешности зависит от вещественного значения числа с плавающей запятой.

В MATLAB®, eps функционируйте измеряет относительную точность числа с плавающей запятой. Для получения дополнительной информации смотрите eps.

Смотрите также

Руководства по моделированию

Функции

Связанные примеры

Больше о

Для просмотра документации необходимо авторизоваться на сайте