Собственный компонент HDL Coder™ технология с плавающей точкой может сгенерировать HDL-код из вашего проекта с плавающей точкой. Это некоторые ключевые возможности:
Генерация независимого от цели HDL-кода, который можно развернуть на любом FPGA или ASIC.
Поддержка полного спектра функций IEEE 754 включая нестандартные числа, исключения и округление режимов.
Обширная поддержка математики и тригонометрических блоков.
Можно следовать этим инструкциям как лучшым практикам при моделировании проекта для нативной генерации кода с плавающей точкой.
Каждая инструкция имеет уровень серьезности, который указывает на уровень требований соответствия. Чтобы узнать больше, смотрите Уровни серьезности Руководств по моделированию HDL.
1.5.1
Рекомендуемый
Нативная поддержка с плавающей точкой в HDL Coder генерирует код из вашего проекта с плавающей точкой. Если ваш проект имеет комплексную математику и тригонометрические операции или имеет данные с большим динамическим диапазоном, используйте собственный компонент, с плавающей точкой. Сгенерированный HDL-код независим от цели и выполняет стандарт IEEE 754 арифметики с плавающей точкой. Чтобы узнать больше, смотрите Начало работы с Собственным компонентом HDL Coder Поддержка С плавающей точкой.
Можно использовать эти руководства по моделированию при использовании нативной поддержки с плавающей точкой в HDL Coder.
Библиотека блоков HDL Floating Point Operations состоит из математических и тригонометрических функций и определенных блоков Simulink, которые сконфигурированы для генерации HDL-кода в нативном режиме с плавающей точкой. Например, Дискретный КИХ-Фильтр с набором Architecture к Fully Parallel
.
Можно сгенерировать HDL-код для моделей, которые содержат с плавающей точкой и типы данных с фиксированной точкой в нативном режиме с плавающей точкой. Типы с плавающей точкой имеют более высокий динамический диапазон, но могут потенциально занять больше области на целевом компьютере. Чтобы разработать для этих компромиссов, в вашей модели Simulink®, рекомендуется использовать типы данных с плавающей точкой, чтобы смоделировать информационный канал алгоритма и фиксированные точки, чтобы смоделировать управляющую логику. Чтобы переключиться между с плавающей точкой и типами данных с фиксированной точкой, используйте блоки Преобразования типа данных.
См. также Факторы Типа данных.
Путем включения оптимизации на модели можно улучшить область и синхронизацию проекта на целевом устройстве FPGA. Например, чтобы сохранить область на целевом устройстве FPGA, используйте оптимизацию разделения ресурсов. Совместно использовать:
Сумматоры с плавающей точкой, Сумматоры Доли набора к на.
Множители с плавающей точкой, убедитесь, что Множители Доли установлены в на.
Другие ресурсы с плавающей точкой, Доля набора дюйм/с С плавающей точкой к на.
См. также Разделение ресурсов.
Проекты с плавающей точкой имеют свойственную задержку по умолчанию. Эта задержка добавляется при генерации HDL-кода для модели. Рекомендуется, чтобы вы моделировали задержку в своей модели путем добавления этой информации о задержке в исходную модель Simulink. Генератор кода поглощает эту задержку во время генерации HDL-кода. Чтобы узнать больше, смотрите Значения Задержки Операторов С плавающей точкой.
Можно настроить задержку целой модели, или выборочно для определенных блоков в проекте. Используя пользовательские настройки, можно задать пользовательскую задержку и проект для компромиссов между задержкой и пропускной способностью.
Чтобы узнать больше, смотрите Факторы Задержки с Нативной Плавающей точкой.
Определенные шаблоны моделирования, которые вы используете, могут оптимизировать вашу модель, когда вы генерируете код с нативной технологией с плавающей точкой. Например, если вы вычисляете тригонометрический синус и косинус того же входа в библиотеке блоков HDL Floating Point Operations
, используйте блок Sincos вместо отдельных блоков Sin и Cos. Блок Sincos совместно использует часть логики, которая используется для вычисления синуса и косинуса входа. Эта реализация уменьшает место области на целевом устройстве FPGA.
См. также Тригонометрическую функцию.
Чтобы получить более низкую реализацию задержки, используйте Tree
в качестве HDL Architecture для блоков, таких как Сумма Элементов и продукт Элементов.
См. также Сумму Элементов и продукт Элементов.