Сгенерируйте независимый от цели HDL-код с собственным компонентом, с плавающей точкой

Собственный компонент HDL Coder™ технология с плавающей точкой может сгенерировать независимый от цели HDL-код из вашего проекта с плавающей точкой. Можно синтезировать проект с плавающей точкой на любом типичном FPGA или ASIC. Проекты с плавающей точкой имеют лучшую точность, более высокий динамический диапазон и более короткий цикл разработки, чем проекты фиксированной точки. Если ваш проект имеет комплексную математику и тригонометрические операции, используйте нативную технологию с плавающей точкой.

Как HDL Coder генерирует независимый от цели HDL-код

Эти данные показывают, как HDL Coder генерирует код с нативной технологией с плавающей точкой.

Unpack и блоки Pack преобразовывают типы с плавающей точкой в знак, экспоненту и мантиссу. В фигуре S, E и M представляют знак, экспоненту и мантиссу соответственно. Эта интерпретация основана на стандарте IEEE 754 арифметики с плавающей точкой.

Блок Floating-Point Algorithm Implementation выполняет вычисления на S, E и M. С этим преобразованием сгенерированный HDL-код независим от цели. Можно развернуть проект на любом типичном FPGA или ASIC.

Сгенерируйте код

Можно сгенерировать код в диалоговом окне Configuration Parameters или в командной строке.

Задавать нативные настройки с плавающей точкой и генерировать HDL-код в диалоговом окне Configuration Parameters:

  1. В HDL Code Generation> панель Floating Point, для Library, выбирают Native Floating Point.

  2. Задайте Latency Strategy, чтобы сопоставить ваш проект с максимальной или минимальной задержкой или никакой задержкой.

  3. Если у вас есть нестандартные числа в вашем проекте, выберите Handle Denormals. Нестандартные числа являются числами, которые имеют равное нулю поле экспоненты и ненулевое поле мантиссы. Смотрите Указатель Denormals.

  4. Если ваш проект имеет множители, чтобы задать, как вы хотите, чтобы HDL Coder реализовал операцию умножения, используйте Mantissa Multiplier Strategy. См. Стратегию Множителя Мантиссы.

  5. Чтобы совместно использовать ресурсы с плавающей точкой, на вкладке HDL Code Generation> Optimizations> Resource Sharing, убеждаются, что вы выбираете Floating-point IPs. Количество блоков, которые совместно используются, зависит от SharingFactor, который вы задаете для подсистемы.

  6. Нажмите Apply. Можно теперь сгенерировать HDL-код из модели Simulink®. См. также Генерируют HDL-код из Модели Simulink.

Чтобы сгенерировать HDL-код в командной строке, используйте функцию hdlcoder.createFloatingPointTargetConfig. Можно использовать эту функцию, чтобы создать объект hdlcoder.FloatingPointTargetConfig для нативной библиотеки с плавающей точкой.

nfpconfig = hdlcoder.createFloatingPointTargetConfig('NATIVEFLOATINGPOINT');
hdlset_param('sfir_single', 'FloatingPointTargetConfiguration', nfpconfig);

Опционально, можно задать стратегию задержки и хотите ли вы, чтобы HDL Coder обработал нестандартные числа в вашем проекте:

nfpconfig.LibrarySettings.HandleDenormals = 'on';
nfpconfig.LibrarySettings.LatencyStrategy = 'MAX';

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

Просмотрите отчет генерации кода

Чтобы просмотреть отчеты генерации кода отображения библиотеки с плавающей точкой, прежде чем вы начнете генерацию кода, включают генерацию Отчета Отчета и Оптимизации Использования Ресурса. Чтобы включить отчеты, в диалоговом окне Configuration Parameters, на панели HDL Code Generation, включают Generate resource utilization report и Generate optimization report. См. также Создают и Отчеты Генерации кода Использования.

Видеть список нативных операторов с плавающей точкой что поддержки HDL Coder и операторы с плавающей точкой, к которым ваши блоки Simulink, сопоставленные с, в Отчете Генерации кода, выбирают Native Floating-Point Resource Report.

Подробный отчет показывает различные ресурсы, что блоки с плавающей точкой используют на целевом устройстве, которое вы задаете. См. также Создают и Отчеты Генерации кода Использования.

Видеть нативные настройки с плавающей точкой, что вы обратились к модели и выбирает ли HDL Coder успешно сгенерированный HDL-код, в Отчете Генерации кода, Target Code Generation.

Анализ результатов

Операторы с плавающей точкой имеют задержку. Если ваша модель Simulink не имеет задержек, когда вы генерируете HDL-код, генератор кода выясняет задержку оператора и пути к параллели балансов задержки. Рассмотрите эту модель Simulink, которая имеет вход single и дает двум single выходные параметры.

После генерации HDL-кода сгенерированная модель показывает нативные операторы с плавающей точкой, соответствующие блокам в вашей модели Simulink. Блоки математика NFP, NFP Sqrt и аккуратный NFP соответствуют реализации с плавающей точкой Взаимного Sqrt, Обратной величины и блоков Тригонометрической функции соответственно в вашей исходной модели.

В сгенерированной модели вы видите, что генератор кода добавляет задержку для каждого оператора с плавающей точкой и добавляет соответствующую задержку длины 2, чтобы сбалансировать оба пути. Задержка оператора равна Delay length блока Delay в том блоке NFP. Например, если вы дважды кликаете блок NFP Sqrt, можно получить задержку путем рассмотрения Delay length блока Reciprocal Sqrt_pd1. Здесь, задержкой является 17.

Чтобы узнать больше о сгенерированной модели, см. Сгенерированную Модель Модели и Валидации.

Ограничение

Чтобы сгенерировать HDL-код в нативном режиме с плавающей точкой, используйте дискретные шаги расчета. Блоки, действующие во время непрерывной выборки, не поддержаны.

Смотрите также

Руководства по моделированию

Функции

Свойства

Связанные примеры

Больше о