Подписанный Sqrt

Вычислите подписанный квадратный корень (HDL Coder)

  • Библиотека:
  • HDL Coder / Операции Плавающей точки HDL

Описание

Блок Sqrt вычисляет квадратный корень, подписанный квадратный корень или обратную величину квадратного корня на входном сигнале. Из списка параметров Function выберите одну из функций, перечисленных в этой таблице.

ФункцияОписаниеМатематическое выражение MATLAB® Equivalent
sqrt

Квадратный корень из входа

u0.5

sqrt
signedSqrt

Квадратный корень из абсолютного значения входа, умноженного на знак входа

sign(u)*|u|0.5

rSqrt

Обратная величина квадратного корня из входа

u-0.5

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

Поддержка генерации HDL-кода

Для блока Sqrt с набором Function к signedSqrt генератор кода поддерживает архитектуру SqrtFunction и различные типы данных. Архитектура SqrtFunction поддерживает генерацию кода в нативном режиме с плавающей точкой. Для этой архитектуры можно задать настройки HandleDenormals и LatencyStrategy от вкладки Native Floating Point в диалоговом окне HDL Block Properties.

АрхитектураФиксированная точкаСобственный компонент, с плавающей точкойHandleDenormalsLatencyStrategy
SqrtFunction

Нет данных

Архитектура HDL

Этот блок имеет реализации мультицикла, которые вводят дополнительную задержку в сгенерированном коде. Чтобы видеть добавленную задержку, просмотрите сгенерированную модель или модель валидации. См. Сгенерированную Модель Модели и Валидации.

АрхитектураПараметрДополнительные циклы задержкиОписание
SqrtFunction (значение по умолчанию)'none'34 (Для выходных данных вводят кроме single),

Используйте bitset алгоритм сдвига/сложения.

28 (Для выходных данных вводят single),

Свойства блока HDL

Общий

ConstrainedOutputPipeline

Количество регистров, чтобы поместить при выходных параметрах путем перемещения существующих задержек в рамках проекта. Распределенная конвейеризация не перераспределяет эти регистры. Значение по умолчанию 0. См. также ConstrainedOutputPipeline.

InputPipeline

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

OutputPipeline

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

Нативная плавающая точка

HandleDenormals

Задайте, хотите ли вы, чтобы HDL Coder™ вставил дополнительную логику, чтобы обработать нестандартные числа в вашем проекте. Нестандартные числа являются числами, которые имеют значения меньше, чем самое маленькое число с плавающей запятой, которое может быть представлено без начальных нулей в мантиссе. Значением по умолчанию является inherit. См. также HandleDenormals.

LatencyStrategy

Задайте, сопоставить ли блоки в вашем проекте к минимальной или максимальной задержке для оператора с плавающей точкой. Значением по умолчанию является inherit. См. также Факторы Задержки с Нативной Плавающей точкой.

Ограничения

  • Введите должна быть плавающая точка.

Порты

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

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

Входной сигнал к блоку, чтобы вычислить квадратный корень, подписанный квадратный корень или обратную величину квадратного корня. Функция sqrt принимает действительные или комплексные входные параметры, за исключением комплексных сигналов фиксированной точки. signedSqrt и rSqrt не принимают комплексные входные параметры.

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

Вывод

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

Выходной сигнал, который является квадратным корнем со знаком из входного сигнала.

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

Параметры

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

Основной

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

ФункцияБлокируйте значок
sqrt
signedSqrt
rSqrt

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

Параметры блоков: Operator
Ввод: символьный вектор
Значения: 'sqrt' | 'signedSqrt' | 'rSqrt'
Значение по умолчанию: 'sqrt'

Задайте тип выходного сигнала блока.

ФункцияТип входного сигналаТип выходного сигнала
'auto'ДействительныйКомплекс

sqrt

real

real для неотрицательных входных параметров

NaN для отрицательных входных параметров

real для неотрицательных входных параметров

NaN для отрицательных входных параметров

complex

complex

complex

error

complex

signedSqrt

real

real

real

error

complex

error

error

error

rSqrt

real

real

real

error

complex

error

error

error

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

Параметры блоков: OutputSignalType
Ввод: символьный вектор
Значения: 'auto' | 'real' | 'complex'
Значение по умолчанию: 'auto'

Алгоритм

Вкладка Algorithm содержит Method и поля Number of iterations. Эти поля доступны, только если вы выбираете опцию rsqrt в поле Function вкладки Main. Для получения дополнительной информации смотрите Взаимный Sqrt.

Типы данных

Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных (Simulink).

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

Параметры блоков: IntermediateResultsDataTypeStr
Ввод: символьный вектор
Значения: 'Inherit: Inherit via internal rule'
Значение по умолчанию: 'Inherit: Inherit via internal rule'

Задайте тип выходных данных. Тип может быть наследован, задан непосредственно или выражен как объект типа данных, такой как Simulink.NumericType.

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

Параметры блоков: OutDataTypeStr
Ввод: символьный вектор
Значения: 'Inherit: Inherit via internal rule' | 'Inherit: Inherit via back propagation' | 'Inherit: Same as first input' | 'double' | 'single', 'int8', 'uint8', int16, 'uint16', 'int32', 'uint32', fixdt(1,16,0), fixdt(1,16,2^0,0), fixdt(1,16,2^0,0). '<data type expression>'
Значение по умолчанию: 'Inherit: Same as first input'

Выберите эту опцию, чтобы заблокировать установку типа выходных данных этого блока против изменений Fixed-Point Tool и Советником Фиксированной точки. Для получения дополнительной информации смотрите, что Тип Выходных данных Блокировки Использования Устанавливает (Fixed-Point Designer).

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

Параметры блоков: LockScale
Ввод: символьный вектор
Значения: 'off' | 'on'
Значение по умолчанию: 'off'

ДействиеОбъяснение Что происходит для переполненияПример

Установите этот флажок.

Ваша модель имеет возможное переполнение, и вы хотите явную защиту насыщения в сгенерированном коде.

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

Максимальное значение, которое может представлять int8 (подписанное, 8-битное целое число) тип данных, равняется 127. Любой результат блочной операции, больше, чем это максимальное значение, вызывает переполнение 8-битного целого числа. С установленным флажком блок вывод насыщает в 127. Точно так же блок вывод насыщает в минимальном выходном значении-128.

Снимите этот флажок.

Вы хотите оптимизировать эффективность своего сгенерированного кода.

Вы не хотите чрезмерно определять, как блок обрабатывает сигналы из области значений. Для получения дополнительной информации смотрите Проверку на Ошибки Диапазона сигнала (Simulink).

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

Максимальное значение, которое может представлять int8 (подписанное, 8-битное целое число) тип данных, равняется 127. Любой результат блочной операции, больше, чем это максимальное значение, вызывает переполнение 8-битного целого числа. Со снятым флажком программное обеспечение интерпретирует вызывающее переполнение значение как int8, который может привести к непреднамеренному результату. Например, результат блока 130 (двоичный файл 1000 0010) выраженный как int8,-126.

Когда вы устанавливаете этот флажок, насыщение применяется к каждой внутренней операции на блоке, не только выводу или результату. Обычно, процесс генерации кода может обнаружить, когда переполнение не возможно. В этом случае генератор кода не производит код насыщения.

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

Параметры блоков: SaturateOnIntegerOverflow
Ввод: символьный вектор
Значение: 'off' | 'on'
Значение по умолчанию: 'on'

Характеристики блока

Типы данных

single | base integer | fixed point

Многомерные сигналы

Yes

Сигналы переменного размера

Yes

Введенный в R2018b