Моделирование с собственной плавающей точкой

HDL Coder™ собственная технология с плавающей точкой может сгенерировать HDL-код от вашего проекта с плавающей точкой. Это некоторые из ключевых возможностей:

  • Генерация независимого от целевого HDL-кода, который можно развернуть на любом FPGA или ASIC.

  • Поддержка полной области значений функций IEEE-754, включая денормальные числа, исключения и режимы округления.

  • Обширная поддержка математических и тригонометрических блоков.

Вы можете следовать этим рекомендациям как лучшие практики при моделировании вашего проекта для генерации кода с плавающей точкой.

Каждое руководство имеет уровень серьезности, который указывает на уровень податливостей. Для получения дополнительной информации см. HDL-руководства по моделированию уровней серьезности.

Идентификатор руководства

1.5.1

Серьезность

Рекомендуется

Описание

Нативная поддержка с плавающей точкой в HDL Coder генерирует код из вашего проекта с плавающей точкой. Если ваш проект имеет сложные математические и тригонометрические операции или имеет данные с большой динамической областью значений, используйте native с плавающей точкой. Сгенерированный HDL-код не зависит от цели и соответствует IEEE-754 стандарту арифметики с плавающей точкой. Дополнительные сведения см. в разделе Начало работы с HDL Coder поддержки с плавающей точкой.

Можно использовать эти руководства по моделированию при использовании собственной поддержки с плавающей точкой в HDL Coder.

Использование блоков из библиотеки операций с плавающей точкой HDL

Библиотека блоков HDL Floating Point Operations состоит из математических и тригонометрических функций и некоторых блоков Simulink, которые сконфигурированы для генерации HDL-кода в нативном режиме с плавающей точкой. Для примера Discrete FIR Filter с Architecture, установленным на Fully Parallel.

Используйте типы с плавающей точкой на основе точности и требований к использованию аппаратных ресурсов

Можно сгенерировать HDL-код для моделей, которые содержат с плавающей точкой и типами данных с фиксированной точкой в нативном режиме с плавающей точкой. Типы с плавающей точкой имеют более высокую динамическую область значений, но потенциально могут занимать больше области на целевом компьютере. Чтобы спроектировать для этих компромиссов, в Simulink® модель, рекомендуется использовать типы данных с плавающей точкой для моделирования пути данных алгоритма и фиксированные точки для моделирования логики управления. Чтобы переключаться между плавающей точкой и типами данных с фиксированной точкой, используйте Data Type Conversion блока.

См. также факторы о типах данных.

Включите оптимизацию, такую как совместное использование ресурсов на модели

Включив оптимизацию на модели, можно улучшить площадь и сроки своего проекта на целевом устройстве FPGA. Для примера, чтобы сохранить область на целевом устройстве FPGA, используйте оптимизацию совместного использования ресурсов. Для совместного использования:

См. также раздел «Совместное использование ресурсов».

Симулируйте задержку блоков в модели

Проекты с плавающей точкой по умолчанию имеют неотъемлемую задержку. Эта задержка добавляется при генерации HDL-кода для вашей модели. Рекомендуется, чтобы вы моделировали задержку в модели, добавляя эту информацию о задержке к своей исходной модели Simulink. Генератор кода поглощает эту задержку во время генерации HDL-кода. Дополнительные сведения см. в разделе Значения задержек операторов с плавающей точкой.

Настройте задержки модели или блоков

Можно настроить задержку всей модели или выборочно для определенных блоков в проекте. Используя пользовательские параметры, можно задать пользовательскую задержку и проект для компромиссов между задержкой и пропускной способностью.

Дополнительные сведения см. в разделе Факторов о задержках с собственной плавающей точкой.

Используйте sincos блок вместо отдельных sin и cos блоков

Определенные шаблоны моделирования, которые вы используете, могут оптимизировать модель, когда вы генерируете код с собственной технологией с плавающей точкой. Для примера, если вы вычисляете тригонометрический синус и косинус того же входа, в HDL Floating Point Operations библиотека блоков, используйте блок Sincos вместо отдельных блоков Sin и Cos. Блок Sincos разделяет часть логики, которая используется для вычисления синуса и косинуса входа. Эта реализация уменьшает площадь площади на целевом устройстве FPGA.

См. также Trigonometric Function.

Использование дерева в качестве архитектуры HDL

Чтобы получить реализацию с более низкой задержкой, используйте Tree как HDL Architecture для блоков, таких как Sum of Elements и Product of Elements.

См. также Sum of Elements и Product of Elements.

См. также

Функции

Параметры конфигурации Simulink

Похожие темы