HDL Coder™ native с плавающей точкой может сгенерировать независимый от цели HDL-код из вашего проекта с плавающей точкой. Синтезировать проект с плавающей точкой можно на любых типовых FPGA или ASIC. Проекты с плавающей точкой имеют лучшую точность, более высокую динамическую область значений и более короткий цикл разработки, чем проекты с фиксированной точкой. Если ваш проект имеет сложные математические и тригонометрические операции, используйте собственную технологию с плавающей точкой.
HDL Coder поддерживает несколько Simulink® блоки, включая математические и тригонометрические блоки с собственной технологией с плавающей точкой.
В библиотеке HDL Floating Point Operations HDL Coder поддерживает все блоки, которые имеют single и double типы данных в Native Floating Point режим. Для некоторых блоков, таких как Discrete-Time Integrator и Discrete PID Controller, используйте стратегию нулевой задержки. Эти блоки содержат встроенные циклы обратной связи, и использование ненулевого значения для стратегии задержки может привести к тому, что генератор кода не сможет распределить задержки. Для получения дополнительной информации смотрите Распределение достаточных задержек для операций с плавающей точкой.
Когда вы используете half типы, эти блоки поддерживаются в Native Floating Point режим.
В Math Operations библиотека, эти блоки поддерживаются для генерации HDL-кода:
| Имя блока | Поддерживается с половинными типами данных | Поддерживается с отдельными типами данных | Поддерживается с двойными типами данных | Замечания |
|---|---|---|---|---|
| Abs | Нет | Да | Да | – |
| Add | Да | Да | Да | – |
| Assignment | Нет | Да | Да | – |
| Bias | Нет | Да | Да | – |
| Complex to Real-Imag | Нет | Да | Да | – |
| Divide | Да | Да | Да | – |
| Dot Product | Нет | Да | Да | – |
| Gain | Да | Да | Да | – |
| Math Function | Нет | Да | Нет | – |
| MinMax | Нет | Да | Да | – |
| Product | Да | Да | Да | Если вы конфигурируете блок для выполнения матричного умножения путем установки значения Multiplication параметров блоков Matrix(*), значение DotProductStrategy должно быть установлено равным Fully Parallel. |
| Product of Elements | Да | Да | Да | – |
| Real-Imag to Complex | Нет | Да | Да | – |
| Reciprocal Sqrt | Нет | Да | Да | – |
| Reshape | Да | Да | Да | – |
| Sqrt | Нет | Да | Да | – |
| Subtract | Да | Да | Да | – |
| Sum | Да | Да | Да | – |
| Sum of Elements | Да | Да | Да | – |
| Trigonometric Function | Нет | Да | Нет | – |
| Unary Minus | Да | Да | Да | – |
| Vector Concatenate | Да | Да | Да | – |
Таблица показывает список поддерживаемых блоков для генерации HDL-кода в других HDL Coder библиотеках блоков.
| Библиотека блоков | Поддерживается с половинными типами данных | Поддерживается с отдельными типами данных | Поддерживается с двойными типами данных |
|---|---|---|---|
Дискретный | Поддерживаемые блоки включают набор блоков задержки, включая синхронные блоки, и Integer Delay, и Tapped Delay. | Поддерживаемые блоки включают:
| Поддерживаемые блоки включают:
|
Операции HDL | Блоки в этой библиотеке не поддерживаются. | Все блоки поддерживаются. | Все блоки поддерживаются. |
HDL RAMs | Блоки в этой библиотеке не поддерживаются. | Все блоки поддерживаются. | Все блоки поддерживаются. |
HDL-подсистемы | Все блоки поддерживаются. | Все блоки поддерживаются. | Все блоки поддерживаются. |
Логические и битовые операции | Поддерживаемые блоки включают:
| Все блоки поддерживаются. | Все блоки поддерживаются. |
Интерполяционные таблицы | Блоки в этой библиотеке не поддерживаются. | Все блоки поддерживаются. | Все блоки поддерживаются. |
Верификация модели | Блоки в этой библиотеке не поддерживаются. | Все блоки поддерживаются. | Все блоки поддерживаются. |
Общемодельные утилиты | Блоки в этой библиотеке не поддерживаются. | Все блоки поддерживаются. | Все блоки поддерживаются. |
Порты и подсистемы | Поддерживаются блоки Enable, Reset, входные и выходные порты, модели-ссылки и подсистемы. | Поддерживаются блоки Enable, Reset, входные и выходные порты, модели-ссылки и подсистемы. | Поддерживаются блоки Enable, Reset, входные и выходные порты, модели-ссылки и подсистемы. |
Атрибуты сигнала | Поддерживаемые блоки включают:
| Все блоки поддерживаются. | Все блоки поддерживаются. |
Маршрутизация сигналов | Все блоки поддерживаются. | Все блоки поддерживаются. | Все блоки поддерживаются. |
Источники | Поддерживаемые блоки включают Inport, Constant и Ground блоки. | Поддерживаемые блоки включают Inport, Constant и Ground блоки. | Поддерживаемые блоки включают Inport, Constant и Ground блоки. |
Сливы | Все блоки поддерживаются. | Все блоки поддерживаются. | Все блоки поддерживаются. |
Пользовательские функции | MATLAB Function блоки поддерживаются. | MATLAB Function блоки поддерживаются. | MATLAB Function блоки поддерживаются. |
В собственном режиме с плавающей точкой генератор кода не поддерживает эти блоки или архитектуры блоков:
Biquad Filter.
Switch блок с входом в порт управления как тип с плавающей точкой.
Sum of Elements со сложными типами входов.
MATLAB System блоки.
Dot Product в комплексном режиме с Architecture как Tree или Linear.
Discrete FIR Filter со Architecture, отличными от Fully Parallel.
Dead Zone и Dead Zone Dynamic.
Polar to Cartesian.
Для блока Data Type Conversion:
Stored Integer (SI) режим для Input and output to have equal настройки не поддерживается.
Флажок Saturate on integer overflow должен быть снят.