Вычисление квадратного корня, квадратного корня со знаком или взаимности квадратного корня
Операции с симуляцией/математикой
Кодер HDL/Операции с плавающей точкой HDL
Кодер HDL/Математические операции
Блок Sqrt вычисляет квадратный корень, подписанный квадратный корень или обратный квадратный корень на входном сигнале. Выберите одну из следующих функций в списке Параметр функции.
| Функция | Описание | Математическое выражение | Эквивалент MATLAB ® |
|---|---|---|---|
sqrt
| Квадратный корень входных данных |
|
sqrt
|
signedSqrt
| Квадратный корень абсолютного значения входного значения, умноженный на знак входного значения |
| — |
rSqrt
| Обратная величина квадратного корня входного сигнала |
| — |
Значок блока изменяется в соответствии с функцией.
Port_1 - Входной сигналВходной сигнал блока для вычисления квадратного корня, знакового квадратного корня или обратного квадратного корня. sqrt функция принимает вещественные или комплексные входы, за исключением сложных сигналов с фиксированной точкой. signedSqrt и rSqrt не принимать сложные входные данные. Входной сигнал должен быть числом с плавающей запятой.
Эта таблица суммирует поддержку комплексных типов и отрицательных значений для типов данных с плавающей, целочисленной и фиксированной точкой для sqrt, rSqrt, и signedSqrt функции.
| Функция | Тип данных | Комплекс | Отрицательные значения | |
|---|---|---|---|---|
| Вход | Продукция | |||
sqrt | Плавающая точка | Да | Да | Да |
| Целое число и фиксированная точка | Нет | Нет | Нет | |
| Плавающая точка | Нет | Нет | Да |
| Целое число и фиксированная точка | Нет | Нет | Нет | |
signedSqrt | Плавающая точка | Нет | Да | Да |
| Целое число и фиксированная точка | Нет | Нет | Нет | |
Если вход отрицательный, установите выходной сигнал на комплексный для всех функций, кроме signedSqrt.
Типы данных: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
Port_1 - Выходной сигналВыходной сигнал, который является квадратным корнем, знаковым квадратным корнем или обратным квадратному корню входного сигнала. Если вход является целым числом или типом с фиксированной запятой, вывод должен быть плавающей запятой.
Типы данных: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
Function - Функция, выполняемая блокомsqrt (по умолчанию) | signedSqrt | rSqrtУкажите математическую функцию, вычисляемую блоком. Значок блока изменяется в соответствии с выбранной функцией.
| Функция | Значок блока |
|---|---|
sqrt
|
|
signedSqrt
|
|
rSqrt
|
|
Если для этого параметра установлено значение signedSqrt, параметр Тип данных промежуточных результатов отключен.
Параметр блока: Operator |
| Текст: символьный вектор |
Значения: 'sqrt' | 'signedSqrt' | 'rSqrt' |
По умолчанию: 'sqrt' |
Output signal type - Тип выходного сигналаauto (по умолчанию) | real | complexУкажите тип выходного сигнала блока.
| Функция | Тип входного сигнала | Тип выходного сигнала | ||
|---|---|---|---|---|
| Автомобиль | Реальный | Комплекс | ||
|
|
|
|
|
|
|
|
| |
|
|
|
|
|
|
|
|
| |
|
|
|
|
|
|
|
|
| |
Параметр блока: OutputSignalType |
| Текст: символьный вектор |
Значения: 'auto' | 'real' | 'complex' |
По умолчанию: 'auto' |
Sample time - Укажите время выборки в качестве значения, отличного от -1-1 (по умолчанию) | скаляр | векторУкажите время выборки в качестве значения, отличного от -1. Дополнительные сведения см. в разделе Указание времени образца.
Этот параметр не отображается, если для него явно не задано значение, отличное от -1. Дополнительные сведения см. в разделе Блоки, для которых образец времени не рекомендуется.
Параметр блока:
SampleTime |
| Текст: символьный вектор |
| Значения: скаляр или вектор |
По умолчанию:
'-1' |
Method - Метод вычисления взаимности квадратного корняExact (по умолчанию) | Newton-RaphsonУкажите метод вычисления взаимности квадратного корня. Этот параметр допустим только для rSqrt функция.
| Метод | Поддерживаемые типы данных | Когда использовать этот метод |
|---|---|---|
Exact
| Плавающая точка | Аппроксимация не нужна. Примечание Входные или выходные данные должны иметь плавающую точку. |
Newton-Raphson
| Плавающая точка, фиксированная точка и встроенные целочисленные типы | Вы хотите быстрый, приблизительный расчет. |
Exact способ обеспечивает результаты, согласующиеся с вычислениями MATLAB.
Примечание
Алгоритмы для sqrt и signedSqrt всегда из Exact , независимо от того, какой выбор отображается в диалоговом окне блока.
Параметр блока: AlgorithmType |
| Текст: символьный вектор |
Значения: 'Exact' | 'Newton-Raphson' |
По умолчанию: 'Exact' |
Number of iterations - количество итераций, используемых для алгоритма Ньютона Рафсона3 (по умолчанию) | целое числоУкажите количество итераций для выполнения алгоритма Ньютона-Рафсона. Этот параметр допустим для rSqrt функции и Newton-Raphson значение для метода.
Примечание
Если ввести 0, вывод блока является начальным предположением алгоритма Ньютона-Рафсона.
Параметр блока: Iterations |
| Текст: символьный вектор |
| Значения: целое число |
По умолчанию: '3' |
Нажмите кнопку Показать помощник по типам данных
, чтобы отобразить помощник по типам данных, который помогает задать атрибуты типов данных. Дополнительные сведения см. в разделе Определение типов данных с помощью помощника по типам данных.
Intermediate results data type - Тип данных промежуточных результатовInherit:Inherit via internal rule (по умолчанию) | Inherit: Inherit from input | Inherit: Inherit from output | double | single | int8 | uint8 | int16 | uint16 | int32 | uint32 | int64 | uint64 | fixdt(1,16,,0) | fixdt(1,16,2^0,0) | <data type expression>Укажите тип данных для промежуточных результатов, если для параметра Функция задано значение sqrt или rSqrt на главной панели.
Тип может быть унаследован, указан непосредственно или выражен как объект типа данных, например Simulink.NumericType.
Примечание
Чтобы избежать переполнения, промежуточный тип данных должен быть больше или равен типу данных, который может содержать квадрат выходного типа данных.
Следуйте приведенным ниже инструкциям по установке промежуточного типа данных для функции квадратного корня. sqrt:
| Типы входных и выходных данных | Промежуточный тип данных |
|---|---|
| Вход или выход являются двойными. | Используйте двойное. |
| Входные или выходные данные являются одиночными, и любой тип данных, не являющийся одиночным, не является двойным. | Используйте одинарный или двойной. |
| Вход и выход являются фиксированными точками. | Используйте фиксированную точку. |
Следуйте этим инструкциям по установке промежуточного типа данных явно для функции обратного квадратного корня, rSqrt:
| Типы входных и выходных данных | Промежуточный тип данных |
|---|---|
| Вход двойной, а выход не одиночный. | Используйте двойное. |
| Вход не одинарный, а выход двойной. | Используйте двойное. |
| Вход и выход являются фиксированными точками. | Используйте фиксированную точку. |
Внимание
Не устанавливать для типа данных Промежуточные результаты значение Inherit:Inherit from output когда:
Вы выбираете Newton-Raphson чтобы вычислить взаимность квадратного корня.
Входной тип данных - плавающая точка.
Тип выходных данных - фиксированная точка.
В этих условиях выбор Inherit:Inherit from output дает неоптимальную производительность и создает ошибку.
Чтобы избежать этой ошибки, преобразуйте входной сигнал из типа данных с плавающей запятой в тип данных с фиксированной запятой. Например, вставьте блок преобразования типа данных перед блоком Sqrt для выполнения преобразования.
Этот параметр отключен, если для параметра Function установлено значение signedSqrt.
Параметр блока: IntermediateResultsDataTypeStr |
| Текст: символьный вектор |
Значения: 'Inherit: Inherit via internal rule' | 'Inherit: Inherit from input' | 'Inherit: Inherit from output' | 'double' | 'single', 'int8', 'uint8', int16, 'uint16', 'int32', 'uint32', 'int64', 'uint64', fixdt(1,16,0), fixdt(1,16,2^0,0). '<data type expression>' |
По умолчанию: 'Inherit: Inherit via internal rule' |
Output - Тип выходных данныхInherit: Same as first input (по умолчанию) | Inherit: Inherit via internal rule | Inherit: Inherit via back propagation | double | single | half | int8 | int32 | uint32 | int64 | uint64 | fixdt(1,16,2^0,0) | <data type expression> | ...Укажите тип выходных данных. Тип может быть унаследован, указан непосредственно или выражен как объект типа данных, например Simulink.NumericType.
Если входные данные имеют тип данных с плавающей запятой, меньший, чем единичная точность, Inherit: Inherit via internal rule тип выходных данных зависит от настройки выходного типа Inherit с плавающей запятой, меньшего, чем параметр конфигурации с одинарной точностью. Типы данных меньше, чем единичная точность, когда количество битов, необходимое для кодирования типа данных, меньше, чем 32 бита, необходимых для кодирования типа данных с одинарной точностью. Например, half и int16 меньше, чем единичная точность.
Параметр блока: OutDataTypeStr |
| Текст: символьный вектор |
Значения: 'Inherit: Inherit via internal rule' | 'Inherit: Inherit via back propagation' | 'Inherit: Same as first input' | 'double' | 'single' | 'half' | 'int8' | 'uint8' | int16 | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | fixdt(1,16,0) | fixdt(1,16,2^0,0) | fixdt(1,16,2^0,0) | '<data type expression>' |
По умолчанию: 'Inherit: Same as first input' |
Minimum - Минимальное выходное значение для проверки дальности[] (по умолчанию) | скалярУкажите меньшее значение диапазона вывода, которое Simulink ® проверяет как конечное, вещественное, двойное, скалярное значение.
Примечание
Если в качестве типа данных для этого блока указан объект шины, не устанавливайте минимальное значение для данных шины в блоке. Simulink игнорирует этот параметр. Вместо этого задайте минимальные значения для элементов шины объекта шины, указанного в качестве типа данных. Для получения информации о минимальном параметре элемента шины см. Simulink.BusElement.
Simulink использует минимум для выполнения:
Проверка диапазона параметров (см. раздел Задание минимальных и максимальных значений для параметров блока) для некоторых блоков.
Проверка диапазона моделирования (см. раздел Определение диапазонов сигналов и Включение проверки диапазона моделирования).
Автоматическое масштабирование типов данных с фиксированной точкой.
Оптимизация кода, создаваемого на основе модели. Эта оптимизация может удалить алгоритмический код и повлиять на результаты некоторых режимов моделирования, таких как SIL или внешний режим. Дополнительные сведения см. в разделе Оптимизация с использованием указанных минимального и максимального значений (встроенный кодер).
Примечание
Минимальный выходной сигнал не насыщает и не отсекает фактический выходной сигнал. Вместо этого используйте блок «Насыщенность».
Параметр блока: OutMin |
| Текст: символьный вектор |
| Значения: скаляр |
По умолчанию: '[ ]' |
Maximum - Максимальное выходное значение для проверки дальности[] (по умолчанию) | скалярУкажите верхнее значение диапазона вывода, которое Simulink проверяет как конечное, вещественное, двойное, скалярное значение.
Примечание
Если в качестве типа данных для этого блока указан объект шины, не устанавливайте максимальное значение для данных шины в блоке. Simulink игнорирует этот параметр. Вместо этого задайте максимальные значения для элементов шины объекта шины, указанного в качестве типа данных. Для получения информации о параметре Maximum для элемента шины см. Simulink.BusElement.
Simulink использует максимальное значение для выполнения:
Проверка диапазона параметров (см. раздел Задание минимальных и максимальных значений для параметров блока) для некоторых блоков.
Проверка диапазона моделирования (см. раздел Определение диапазонов сигналов и Включение проверки диапазона моделирования).
Автоматическое масштабирование типов данных с фиксированной точкой.
Оптимизация кода, создаваемого на основе модели. Эта оптимизация может удалить алгоритмический код и повлиять на результаты некоторых режимов моделирования, таких как SIL или внешний режим. Дополнительные сведения см. в разделе Оптимизация с использованием указанных минимального и максимального значений (встроенный кодер).
Примечание
Выходной максимум не насыщает и не отсекает фактический выходной сигнал. Вместо этого используйте блок «Насыщенность».
Параметр блока: OutMax |
| Текст: символьный вектор |
| Значения: скаляр |
По умолчанию: '[ ]' |
Integer rounding mode - Режим округления для операций с фиксированной точкойFloor (по умолчанию) | Ceiling | Convergent | Nearest | Round | Simplest | ZeroУкажите режим округления для операций с фиксированной точкой. Дополнительные сведения см. в разделе Округление (конструктор фиксированных точек).
Параметр блока:
RndMeth |
| Текст: символьный вектор |
Значения:
'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero' |
По умолчанию:
'Floor' |
Lock output data type setting against changes by the fixed-point tools - Предотвращение переопределения типов данных инструментами с фиксированной точкойoff (по умолчанию) | onВыберите этот параметр, чтобы заблокировать тип выходных данных этого блока от изменений, внесенных инструментом Fixed-Point Tool и помощником Fixed-Point. Дополнительные сведения см. в разделе Использование параметров типа выходных данных блокировки (конструктор фиксированных точек).
Параметр блока: LockScale |
| Текст: символьный вектор |
Значения: 'off' | 'on' |
По умолчанию: 'off' |
Saturate on integer overflow - Выберите поведение при переполнении целых чиселoff (по умолчанию) | on
| Действие | Причины принятия этого решения | Что происходит при переполнении | Пример |
|---|---|---|---|
|
Установите этот флажок. |
Возможно переполнение модели, и требуется явная защита от насыщения в сгенерированном коде. |
Переполнения насыщаются минимальным или максимальным значением, которое может представлять тип данных. |
Максимальное значение, |
|
Не устанавливайте этот флажок. |
Требуется оптимизировать эффективность созданного кода. Необходимо избегать чрезмерного указания того, как блок обрабатывает сигналы вне диапазона. Дополнительные сведения см. в разделе Устранение ошибок диапазона сигналов. |
Переполнение до соответствующего значения, представляемого типом данных. |
Максимальное значение, |
Если этот флажок установлен, насыщение применяется ко всем внутренним операциям блока, а не только к выводу или результату. Обычно процесс генерации кода может обнаруживать, когда переполнение невозможно. В этом случае генератор кода не создает код насыщения.
Параметр блока: DoSatur |
| Текст: символьный вектор |
Значение: 'off' | 'on' |
По умолчанию: 'off' |
Типы данных |
|
Прямой проход |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулей |
|
HDL Coder™ предоставляет дополнительные опции конфигурации, которые влияют на реализацию HDL и синтезированную логику.
Для блока Sqrt с функцией, для которой установлено значение sqrtгенератор кода поддерживает различные архитектуры и типы данных.
sqrtfunction архитектура поддерживает генерацию кода для типов с фиксированной и плавающей точками. При использовании типов с плавающей запятой задайте для параметра Библиотека IP с плавающей запятой (кодер HDL) значение Native Floating Point. Можно задать свойства LatencyStrategy и CustomLatency HDL для выбора из диапазона значений частоты при нацеливании конструкции на аппаратную платформу.
Используйте свойство блока HDL UseMultiplier в сочетании со свойствами LatencyStrategy и CustomLatency, чтобы указать, вычислять ли квадратный корень с помощью конвейерного алгоритма сдвига и добавления или умножения
Для этой архитектуры можно задать параметры HandleDenormals и LatencyStrategy на вкладке Собственная плавающая точка в диалоговом окне Свойства блока HDL.
| Архитектура | Фиксированная точка | Собственная плавающая точка | HandleDenormals | LatencyStrategy |
|---|---|---|---|---|
sqrtfunction | ✓ | ✓ | ✓ | ✓ |
sqrtnewton | ✓ | — | — | — |
sqrtnewtonsinglerate | ✓ | — | — | — |
recipsqrtnewton | ✓ | — | — | — |
recipsqrtnewtonsinglerate | ✓ | — | — | — |
Этот блок имеет многоцикловые реализации, которые вводят дополнительную задержку в генерируемый код. Чтобы увидеть добавленную задержку, просмотрите созданную модель или модель проверки. См. раздел Сгенерированная модель и модель проверки (кодер HDL).
| Архитектура | Параметр | Дополнительные циклы задержки | Описание |
|---|---|---|---|
SqrtFunction (по умолчанию) |
| Зависит от выбора параметров, длины выходного слова и длины входных и выходных дробей. | Чтобы задать эту архитектуру, установите для параметра Function значение Вычислите квадратный корень с помощью конвейерного алгоритма сдвига/сложения или алгоритма на основе умножения. Для просмотра расчета задержки в командной строке MATLAB введите: HDLMathLib Повысьте частоту проектирования и сократите использование ресурсов, установив для параметра UseMultiplier значение |
SqrtNewton | Iterations | Iterations + 3 | Чтобы задать эту архитектуру, установите для параметра Function значение Используйте итеративный метод Ньютона. Выберите этот параметр для оптимизации площади. Значение по умолчанию для Рекомендуемое значение для |
SqrtNewtonSingleRate | Iterations | (Iterations * 4) + 6 | Чтобы задать эту архитектуру, установите для параметра Function значение Используйте односкоростной конвейерный метод Ньютона. Выберите этот параметр для оптимизации скорости или для реализации одной скорости. Значение по умолчанию для Рекомендуемое значение для |
RecipSqrtNewton | Iterations | Iterations + 2 | Чтобы задать эту архитектуру, установите для параметра Function значение Используйте итеративный метод Ньютона. Выберите этот параметр для оптимизации площади. |
RecipSqrtNewtonSingleRate | Iterations | (Iterations * 4) + 5 | Чтобы задать эту архитектуру, установите для параметра Function значение Используйте односкоростной конвейерный метод Ньютона. Выберите этот параметр для оптимизации скорости или для реализации одной скорости. |
Итеративный метод Ньютона - Рафсона:
1,5 − 0 .5axi2)
ReciprocalRsqrtBasedNewton и ReciprocalRsqrtBasedNewtonSingleRate реализовать метод Ньютона-Рафсона с помощью:
1x2 − 1
| Общая информация | |
|---|---|
| ConstrainedOutputPipeline | Количество регистров для размещения на выходах путем перемещения существующих задержек в рамках проекта. Распределенная конвейерная обработка не перераспределяет эти регистры. Значение по умолчанию: |
| Повторения | Количество итераций для |
| InputPipeline | Количество входных ступеней трубопровода для вставки в сформированный код. Распределенная конвейерная обработка и конвейерная обработка с ограниченным выходом могут перемещать эти регистры. Значение по умолчанию: |
| OutputPipeline | Количество выходных ступеней трубопровода для вставки в сформированный код. Распределенная конвейерная обработка и конвейерная обработка с ограниченным выходом могут перемещать эти регистры. Значение по умолчанию: |
| UseMultiplier | Выбор алгоритма для Увеличьте частоту проектирования и сократите использование ресурсов, установив для параметра UseMultiplier значение |
| LatencyStrategy | Укажите, следует ли сопоставлять блоки в проекте Увеличьте частоту проектирования и сократите использование ресурсов, установив для параметра UseMultiplier значение |
| CustomLatency | Если параметр LatencyStrategy имеет значение |
| Собственная плавающая точка | |
|---|---|
| HandleDenormals | Укажите, должен ли кодер HDL вставлять дополнительную логику для обработки денормальных чисел в конструкцию. Денормальные числа - это числа, значения которых меньше наименьшего числа с плавающей запятой, которое можно представить без ведущих нулей в мантиссе. Значение по умолчанию: |
Входным значением должно быть скалярное значение без знака.
Вывод является скалярным значением с фиксированной точкой.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.



