Можно получить доступ к параметрам с плавающей точкой в HDL Code Generation> панель Floating Point в диалоговом окне Configuration Parameters. Используйте эти параметры, чтобы задать стратегию задержки, обработать ли нестандартные числа в вашем проекте, и как выполнить умножение мантиссы. Чтобы задать эти настройки, Floating Point IP Library должен быть установлен в Native Floating Point
.
Задайте, хотите ли вы, чтобы проект сопоставил с минимальной или максимальной задержкой с нативными библиотеками с плавающей точкой.
Значение по умолчанию:
MAX
Опции:
MIN
Карты к минимальной задержке для нативных библиотек с плавающей точкой.
MAX
Карты к максимальной задержке для нативных библиотек с плавающей точкой.
ZERO
Не использует задержки для нативных библиотек с плавающей точкой.
Чтобы задать этот параметр, установите Floating Point IP Library на Native Floating Point
.
Задавать стратегию задержки:
Создайте целевой объект настройки с плавающей точкой для Native Floating Point
как библиотека с плавающей точкой.
fpconfig = hdlcoder.createFloatingPointTargetConfig('NativeFloatingPoint');
Задайте LatencyStrategy
свойство LibrarySettings
атрибут целевого объекта настройки с плавающей точкой.
fpconfig.LibrarySettings.LatencyStrategy = 'MIN';
Установите целевую настройку с плавающей точкой на модели и затем сгенерируйте HDL-код. В этом примере показано, как установить настройку на sfir_single
модель и генерирует HDL-код для symmetric_fir
подсистема:
hdlset_param('sfir_single','FloatingPointTargetConfig',fpconfig) makehdl('sfir_single/symmetric_fir')
Задайте, хотите ли вы обработать нестандартные числа в своем проекте. Нестандартные числа являются ненулевыми числами, которые меньше, чем самый маленький нормальный номер.
Значение по умолчанию:
Auto
Auto
Управляет вставкой дополнительной логики, чтобы обработать нестандартные числа на основе типа данных с плавающей точкой, используемого в вашем проекте. Эта опция вставляет нестандартную логику, если ваш проект использует типы данных полуточности. При использовании одного или двойных типов данных нестандартная логика не добавляется в проекте.
On
Вставляет дополнительную логику, чтобы обработать нестандартные числа в вашем проекте.
Off
Не добавляет дополнительная логика, чтобы обработать нестандартные числа в вашем проекте. Если вход является нестандартным значением, HDL Coder™ обрабатывает значение как нуль прежде, чем выполнить расчет.
Чтобы задать этот параметр, установите Floating Point IP Library на Native Floating Point
.
Задавать стратегию задержки:
Создайте целевой объект настройки с плавающей точкой для Native Floating Point
как библиотека с плавающей точкой.
fpconfig = hdlcoder.createFloatingPointTargetConfig('NativeFloatingPoint');
Задайте HandleDenormals
свойство LibrarySettings
атрибут целевого объекта настройки с плавающей точкой.
fpconfig.LibrarySettings.HandleDenormals = 'on';
Установите целевую настройку с плавающей точкой на модели и затем сгенерируйте HDL-код. В этом примере показано, как установить настройку на sfir_single
модель и генерирует HDL-код для symmetric_fir
подсистема:
hdlset_param('sfir_single','FloatingPointTargetConfig',fpconfig) makehdl('sfir_single/symmetric_fir')
Задайте, как вы хотите, чтобы HDL Coder реализовал операцию умножения мантиссы, когда у вас есть блоки Product в вашем проекте.
Значение по умолчанию: 'auto'
Опции:
Auto
Эта опция по умолчанию автоматически определяет, как реализовать умножение мантиссы в зависимости от Synthesis tool, который вы задаете.
Если вы не задаете Synthesis tool, эта установка выбирает Full Multiplier
реализация по умолчанию.
Если вы задаете Altera Quartus II
как Synthesis tool, эта установка выбирает Full Multiplier
реализация.
Если вы задаете Xilinx Vivado
или Xilinx ISE
как Synthesis tool, эта установка выбирает Part Multiplier Part AddShift
реализация.
Full Multiplier
Задайте эту опцию, чтобы использовать только множители для реализации умножения мантиссы. Множители могут использовать модули DSP на целевом устройстве.
Part Multiplier Part AddShift
Задайте эту опцию, чтобы разделить реализацию в две части. Одна часть реализована со множителями. Другая часть реализована с комбинацией сумматоров и переключателей. Множители могут использовать модули DSP на целевом устройстве. Комбинация сумматоров и переключателей не использует DSP.
No Multiplier Full AddShift
Выберите эту опцию, чтобы использовать комбинацию сумматоров и множителей, чтобы реализовать умножение мантиссы. Эта опция не использует модули DSP на целевом устройстве. Можно также использовать эту опцию, если целевое устройство не содержит модули DSP.
Чтобы задать этот параметр, установите Floating Point IP Library на Native Floating Point
.
Задавать стратегию задержки:
Создайте целевой объект настройки с плавающей точкой для Native Floating Point
как библиотека с плавающей точкой.
fpconfig = hdlcoder.createFloatingPointTargetConfig('NativeFloatingPoint');
Задайте MantissaMultiplyStrategy
свойство LibrarySettings
атрибут целевого объекта настройки с плавающей точкой.
fpconfig.LibrarySettings.MantissaMultiplyStrategy = 'PartMultiplierPartAddShift';
Установите целевую настройку с плавающей точкой на модели и затем сгенерируйте HDL-код. В этом примере показано, как установить настройку на sfir_single
модель и генерирует HDL-код для symmetric_fir
подсистема:
hdlset_param('sfir_single','FloatingPointTargetConfig',fpconfig) makehdl('sfir_single/symmetric_fir')