Вычислите квадратный корень, подписанный квадратный корень или обратную величину квадратного корня
Simulink / Математические операции
HDL Coder / Операции Плавающей точки HDL
HDL Coder / Математические операции
Блок Sqrt вычисляет квадратный корень, подписанный квадратный корень или обратную величину квадратного корня на входном сигнале. Выберите одну из следующих функций из списка параметров Function.
Функция | Описание | Математическое выражение | MATLAB® Equivalent |
---|---|---|---|
sqrt
| Квадратный корень из входа |
|
sqrt
|
signedSqrt
| Квадратный корень из абсолютного значения входа, умноженного на знак входа |
| — |
rSqrt
| Обратная величина квадратного корня из входа |
| — |
Значок блока изменяется, чтобы совпадать с функцией.
Port_1
— Входной сигналВходной сигнал с блоком, чтобы вычислить квадратный корень, подписанный квадратный корень или обратную величину квадратного корня. sqrt
функция принимает действительные или комплексные входные параметры, за исключением комплексных сигналов фиксированной точки. signedSqrt
и rSqrt
не принимайте комплексные входные параметры. Для signedSqrt
функция, входной сигнал должен быть числом с плавающей точкой.
Если вход отрицателен, установите Output signal объединять для всех функций кроме signedSqrt
.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
Port_1
— Выходной сигналВыходной сигнал, который является квадратным корнем, подписанным квадратным корнем или обратной величиной квадратного корня из входного сигнала. Когда вход является целым числом или фиксированной точкой, выход должен быть плавающей точкой.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
Function
— Функция блок выполняетsqrt
(значение по умолчанию) | signedSqrt
| rSqrt
Задайте математическую функцию, которую вычисляет блок. Значок блока изменяется, чтобы совпадать с функцией, которую вы выбираете.
Функция | Блокируйте значок |
---|---|
sqrt
| |
signedSqrt
| |
rSqrt
|
Когда этот параметр устанавливается на signedSqrt
, параметр Intermediate results data type отключен.
Параметры блоков: Operator |
Ввод: символьный вектор |
Значения: 'sqrt' | 'signedSqrt' | 'rSqrt' |
Значение по умолчанию: 'sqrt' |
Output signal type
— Тип выходного сигналаauto
(значение по умолчанию) | real
| complex
Задайте тип выходного сигнала блока.
Функция | Тип входного сигнала | Тип выходного сигнала | ||
---|---|---|---|---|
'auto' | Действительный | Комплекс | ||
|
|
|
|
|
|
|
|
| |
|
|
|
|
|
|
|
|
| |
|
|
|
|
|
|
|
|
|
Параметры блоков: OutputSignalType |
Ввод: символьный вектор |
Значения: 'auto' | 'real' | 'complex' |
Значение по умолчанию: 'auto' |
Sample time
— Задайте шаг расчета как значение кроме -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
— Количество итераций используется в алгоритме Ньютона Рэфсона
(значение по умолчанию) | целое числоЗадайте количество итераций, чтобы выполнить алгоритм Ньютона-Raphson. Этот параметр допустим с rSqrt
функционируйте и Newton-Raphson
значение для Method.
Если вы входите 0, блок выход является исходным предположением алгоритма Ньютона-Raphson.
Параметры блоков: Iterations |
Ввод: символьный вектор |
Значения: целое число |
Значение по умолчанию: '3' |
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных.
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>
Задайте тип данных для промежуточных результатов, когда вы установите Function на sqrt
или rSqrt
на панели Main.
Тип может быть наследован, задан непосредственно или выражен как объект типа данных, такой как Simulink.NumericType
.
Следуйте этим инструкциям по установке промежуточного типа данных явным образом для функции квадратного корня, sqrt
:
Типы входных и выходных данных | Промежуточный тип данных |
---|---|
Ввод или вывод является двойным. | Используйте дважды. |
Ввод или вывод является одним, и любой многократный тип данных не является двойным. | Используйте один или двойной. |
Ввод и вывод является фиксированной точкой. | Используйте фиксированную точку. |
Следуйте этим инструкциям по установке промежуточного типа данных явным образом для взаимной функции квадратного корня, rSqrt
:
Типы входных и выходных данных | Промежуточный тип данных |
---|---|
Вход является двойным, и выход не является одним. | Используйте дважды. |
Вход не является одним, и выход является двойным. | Используйте дважды. |
Ввод и вывод является фиксированной точкой. | Используйте фиксированную точку. |
Не устанавливайте Intermediate results data type на Inherit:Inherit from output
когда:
Вы выбираете Newton-Raphson
вычислить обратную величину квадратного корня.
Тип входных данных является плавающей точкой.
Тип выходных данных является фиксированной точкой.
При этих условиях, выбор Inherit:Inherit from output
дает к субоптимальной производительности и производит ошибку.
Чтобы избежать этой ошибки, преобразуйте входной сигнал от с плавающей точкой до типа данных с фиксированной точкой. Например, вставьте блок Data Type Conversion перед блоком 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
| int8
| int32
| uint32
| int64
| uint64
| fixdt(1,16,2^0,0)
| <data type expression>
| ...Задайте тип выходных данных. Тип может быть наследован, задан непосредственно или выражен как объект типа данных, такой как 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 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 или режим external mode. Для получения дополнительной информации смотрите, Оптимизируют использование заданных минимальных и максимальных значений (Embedded Coder).
Output minimum не насыщает или отсекает фактический выходной сигнал. Используйте блок Saturation вместо этого.
Параметры блоков: OutMin |
Ввод: символьный вектор |
Значения: скаляр |
Значение по умолчанию: '[ ]' |
Maximum
— Максимальное выходное значение для проверки диапазона[]
(значение по умолчанию) | скалярЗадайте верхнее значение выходной области значений что Simulink Check как конечное, действительное, дважды, скалярное значение.
Если вы задаете объект шины как тип данных для этого блока, не устанавливайте максимальное значение для данных о шине по блоку. Simulink игнорирует эту установку. Вместо этого установите максимальные значения для элементов шины объекта шины, заданного как тип данных. Для получения информации о Максимальном параметре для элемента шины смотрите Simulink.BusElement
.
Simulink использует максимальное значение, чтобы выполнить:
Проверка диапазона параметра (см., Задает Минимальные и Максимальные значения для Параметров блоков) для некоторых блоков.
Проверка диапазона симуляции (см., Указывает Диапазоны сигнала и Включает Проверку диапазона Симуляции).
Автоматическое масштабирование типов данных с фиксированной точкой.
Оптимизация кода, который вы генерируете из модели. Эта оптимизация может удалить алгоритмический код и влиять на результаты некоторых режимов симуляции, такие как SIL или режим external mode. Для получения дополнительной информации смотрите, Оптимизируют использование заданных минимальных и максимальных значений (Embedded Coder).
Output maximum не насыщает или отсекает фактический выходной сигнал. Используйте блок Saturation вместо этого.
Параметры блоков: OutMax |
Ввод: символьный вектор |
Значения: скаляр |
Значение по умолчанию: '[ ]' |
Integer rounding mode
— Режим Rounding для операций фиксированной точкиFloor
(значение по умолчанию) | Ceiling
| Convergent
| Nearest
| Round
| Simplest
| Zero
Задайте округляющийся режим для операций фиксированной точки. Для получения дополнительной информации смотрите Округление (Fixed-Point Designer).
Параметры блоков:
RndMeth |
Ввод: символьный вектор |
Значения:
'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero' |
Значение по умолчанию:
'Floor' |
Lock output data type setting against changes by the fixed-point tools
— Препятствуйте тому, чтобы Fixed-Point Tool заменили типы данныхoff
(значение по умолчанию) | on
Выберите, чтобы заблокировать установку типа выходных данных этого блока против изменений Fixed-Point Tool и Советником Фиксированной точки. Для получения дополнительной информации смотрите, что Тип Выходных данных Блокировки Использования Устанавливает (Fixed-Point Designer).
Параметры блоков: LockScale |
Ввод: символьный вектор |
Значения: 'off' | 'on' |
Значение по умолчанию: 'off' |
Saturate on integer overflow
— Выберите поведение, когда целочисленное переполнение произойдетon
(значение по умолчанию) | булевская переменная
Действие | Причины принятия этих мер | Что происходит для переполнения | Пример |
---|---|---|---|
Установите этот флажок. |
Ваша модель имеет возможное переполнение, и вы хотите явную защиту насыщения в сгенерированном коде. |
Переполнение насыщает или к минимальному или к максимальному значению, которое может представлять тип данных. |
Максимальное значение, что |
Не устанавливайте этот флажок. |
Вы хотите оптимизировать КПД своего сгенерированного кода. Вы не хотите чрезмерно определять, как блок обрабатывает сигналы из области значений. Для получения дополнительной информации смотрите Ошибки Диапазона сигнала Поиска и устранения неисправностей. |
Переполнение переносится к соответствующему значению, которое является представимым, по условию вводят. |
Максимальное значение, что |
Когда вы устанавливаете этот флажок, насыщение применяется к каждой внутренней операции на блоке, не только выходу или результату. Обычно, процесс генерации кода может обнаружить, когда переполнение не возможно. В этом случае генератор кода не производит код насыщения.
Параметры блоков: SaturateOnIntegerOverflow |
Ввод: символьный вектор |
Значение: 'off' | 'on' |
Значение по умолчанию: 'on' |
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|
HDL Coder™ обеспечивает дополнительные параметры конфигурации, которые влияют на реализацию HDL и синтезируемую логику.
Для блока Sqrt с набором Function к sqrt
или rSqrt
, генератор кода поддерживает различные архитектуры и типы данных. sqrtfunction
архитектура поддерживает генерацию кода в нативном режиме с плавающей точкой. Для этой архитектуры можно задать настройки HandleDenormals и LatencyStrategy от вкладки Native Floating Point в диалоговом окне HDL Block Properties.
Архитектура | Фиксированная точка | Собственный компонент, с плавающей точкой | HandleDenormals | LatencyStrategy |
---|---|---|---|---|
sqrtfunction | ✓ | ✓ | ✓ | ✓ |
sqrtnewton | ✓ | — | — | — |
sqrtnewtonsinglerate | ✓ | — | — | — |
sqrtbitset | ✓ | — | — | — |
recipsqrtnewton | ✓ | — | — | — |
recipsqrtnewtonsinglerate | ✓ | — | — | — |
Этот блок имеет реализации мультицикла, которые вводят дополнительную задержку в сгенерированном коде. Чтобы видеть добавленную задержку, просмотрите сгенерированную модель или модель валидации. См. Сгенерированную Модель Модели и Валидации (HDL Coder).
Архитектура | Параметр | Дополнительные циклы задержки | Описание |
---|---|---|---|
SqrtFunction (значение по умолчанию) | 'none' | 0 | Используйте bitset алгоритм сдвига/сложения.
|
SqrtBitset | UseMultiplier | 0 | Алгоритм зависит от
|
SqrtNewton | Iterations | Iterations + 3 | Используйте итеративный метод Ньютона. Выберите эту опцию, чтобы оптимизировать область. Значение по умолчанию для Рекомендуемое значение для |
SqrtNewtonSingleRate | Iterations | (Iterations * 4) + 6 | Используйте конвейерный метод Ньютона одного уровня. Выберите эту опцию, чтобы оптимизировать скорость, или если вы хотите одну реализацию уровня. Значение по умолчанию для Рекомендуемое значение для |
RecipSqrtNewton | Iterations | Iterations + 2 | Используйте итеративный метод Ньютона. Выберите эту опцию, чтобы оптимизировать область. |
RecipSqrtNewtonSingleRate | Iterations | (Iterations * 4) + 5 | Используйте конвейерный метод Ньютона одного уровня. Выберите эту опцию, чтобы оптимизировать скорость, или если вы хотите одну реализацию уровня. |
Общий | |
---|---|
ConstrainedOutputPipeline | Количество регистров, чтобы поместить при выходных параметрах путем перемещения существующих задержек в рамках проекта. Распределенная конвейеризация не перераспределяет эти регистры. |
Iterations | Количество итераций для |
InputPipeline | Количество входных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. |
OutputPipeline | Количество выходных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. |
UseMultiplier | Выберите алгоритм для |
Блок Sqrt не поддерживает генерацию HDL-кода с double
типы данных в Native Floating Point
режим.
Нативная плавающая точка | |
---|---|
HandleDenormals | Задайте, хотите ли вы, чтобы HDL Coder вставил дополнительную логику, чтобы обработать нестандартные числа в вашем проекте. Нестандартные числа являются числами, которые имеют величины меньше, чем самое маленькое число с плавающей запятой, которое может быть представлено без начальных нулей в мантиссе. Значением по умолчанию является |
LatencyStrategy | Задайте, сопоставить ли блоки в вашем проекте к |
NFPCustomLatency | Чтобы задать значение, установите LatencyStrategy на |
Введите должно быть скалярное значение без знака.
Выход является скалярным значением фиксированной точки.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.