Обратная величина HDL

Вычислите обратную величину с методом приближения Ньютона-Raphson

Библиотека

HDL Coder / Операции HDL

Описание

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

Обратная величина вещественного числа a задан как нуль функции:

f(x)=1xa

HDL Coder™ выбирает первоначальную оценку в области значений 0<x0<2a когда это - область сходимости для функции.

Чтобы последовательно вычислить корни функции, задайте параметр Number of iterations в диалоговом окне Block Parameters. Процесс повторяется как:

xi+1=xif(xi)f'(xi)=xi+(xiaxi2)=xi.(2axi)

f'(x) производная функции f(x).

Следующая таблица показывает сравнение поведения симуляции Обратной величины HDL с блоком Math Reciprocal:

Математическая обратная величинаОбратная величина HDL

Вычисляет обратную величину, когда 1/N при помощи HDL делит оператор (/), чтобы реализовать деление.

Использует итерационный метод Ньютона-Raphson. Блок вычисляет приближенное значение обратной величины входа блока и может привести к различным результатам симуляции по сравнению с блоком Math Reciprocal.

Чтобы совпадать с результатами симуляции блоку Math Reciprocal, увеличьте число итераций для блока HDL Reciprocal.

Параметры

Number of iterations

Количество итераций Ньютона-Raphson. Значение по умолчанию равняется 3.

Порты

Блок имеет следующие порты:

Входной параметр
  • Поддерживаемые типы данных: фиксированная точка, целое число (подписанный или без знака), дважды, один

  • Минимальная битная ширина: 2

  • Максимальная битная ширина: 128

Вывод

Тип входных данныхТип выходных данных
'double''double'
единственныйединственный
встроенное целое числовстроенное целое число
встроенная фиксированная точкавстроенная фиксированная точка

fi (value, 0, word_length, fraction_length)

fi (value, 0, word_length, word_length –fraction_length–1)

fi (value, 1, word_length, fraction_length)

fi (value, 1, word_length, word_length –fraction_length–2)

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

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

АрхитектураДополнительные циклы задержкиОписание
ReciprocalNewton (значение по умолчанию)Iterations + 1

Используйте многоскоростную реализацию итеративного метода Ньютона. Выберите эту опцию, чтобы оптимизировать область.

Значение по умолчанию для Iterations равняется 3.

Рекомендуемое значение для Iterations от 2 до 10. Если Iterations вне рекомендуемой области значений, HDL Coder отображает сообщение.

ReciprocalNewtonSingleRate(Iterations * 2) + 1

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

Значение по умолчанию для Iterations равняется 3.

Рекомендуемое значение для Iterations между 2 и 10. Если Iterations вне рекомендуемой области значений, кодер отображает сообщение.

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

ConstrainedOutputPipeline

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

InputPipeline

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

OutputPipeline

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

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

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

Генерация HDL-кода
Сгенерируйте Verilog и код VHDL для FPGA и проекты ASIC с помощью HDL Coder™.

Введенный в R2014b