Modulo by Constant HDL Optimized

Выполните ультрасовременную операцию с постоянным знаменателем и сгенерируйте оптимизированный HDL-код

  • Библиотека:
  • Поддержка HDL Fixed-Point Designer / Математические операции

  • Modulo by Constant HDL Optimzied block

Описание

Блок Modulo by Constant HDL Optimized выполняет операцию с модулем (остаток после деления) с постоянным знаменателем с помощью оптимизированной архитектуры HDL с истинной для цикла задержкой.

Блок Modulo by Constant использует алгоритм, который функционально похож на Сокращение Барретта. Операция деления вычисляется через умножение инверсией, которая обычно приводит к лучшей эффективности на встраиваемых системах.

Порты

Входной параметр

развернуть все

Дивиденд в виде действительного скаляра.

Если X является типом данных с фиксированной точкой, он должен использовать масштабирование двоичной точки.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | fixed point

Допустимо ли введенный в виде булева скаляра. Этот управляющий сигнал указывает, когда данные из входного порта X допустимы. Когда этим значением является 1 TRUE), блок получает значение на входном порте X. Когда этим значением является 0 ложь), блок игнорирует входные выборки.

Типы данных: Boolean

Вывод

развернуть все

Результат операции модуля, возвращенной как скаляр.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | fixed point

Допустимы ли выходные данные, возвращенные как булев скаляр. Когда значением этого управляющего сигнала является 1 TRUE), блок успешно вычислил выход Y. Когда этим значением является 0 ложь), выходные данные не допустимо.

Типы данных: Boolean

Параметры

развернуть все

Делитель, чтобы использовать для операции модуля в виде положительного, конечного скаляра с действительным знаком.

Программируемое использование

Параметры блоков: Denominator
Ввод: символьный вектор
Значения: MATLAB® выражение, которое оценивает к положительной, конечной фиксированной точке с действительным знаком или числовому значению
Значение по умолчанию: '10'

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

Алгоритмы

Блок Modulo by Constant HDL Optimized выполняет операцию с модулем (остаток после деления) с постоянным знаменателем с помощью оптимизированной архитектуры HDL с истинной для цикла задержкой.

Операция с модулем,

Y=XmodD=XXD×D

важный базовый блок для многих математических алгоритмов. Однако эта формула для mod X D в вычислительном отношении неэффективна для фиксированной точки и целочисленных входных параметров. Много встраиваемых процессоров испытывают недостаток в инструкциях для целочисленного деления. Те, которые действительно сделали, чтобы они потребовали, чтобы много тактов вычислили ответ. Деление также неэффективно в коммерчески доступном FPGAs, арифметические схемы которого спроектированы для эффективного умножения, сложения и вычитания. Наконец, для операций с модулем фиксированной точки, это затрудняет, чтобы оптимизировать размер слова внутренних типов данных, используемых для вычисления, потому что операция деления неограниченна, даже для маленьких-wordlength входных параметров.

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

XD=X×1D

показывает это. Константа вычисляется к точности, необходимой, чтобы обеспечить и точность и вычислительный КПД. Состав исполнителей, который следует, отбрасывает любые дробные биты, который является эффективной операцией на обоих микропроцессорах и FPGAs.

Блок Modulo by Constant использует алгоритм, который функционально похож на Сокращение Барретта. Операция деления вычисляется через умножение инверсией, которая обычно приводит к лучшей эффективности на встраиваемых системах.

Расширенные возможности

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

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