HDL Coder™ native floating-point может генерировать целевой независимый HDL-код из проекта с плавающей запятой. Можно синтезировать конструкцию с плавающей запятой на любой базовой FPGA или ASIC. Конструкции с плавающей запятой имеют более высокую точность, более высокий динамический диапазон и более короткий цикл разработки, чем конструкции с фиксированной запятой. Если в конструкции имеются сложные математические и тригонометрические операции, используйте собственную технологию с плавающей запятой.
HDL Coder поддерживает несколько блоков Simulink ®, включая математические и тригонометрические блоки с собственной технологией с плавающей запятой.
В библиотеке операций с плавающей точкой HDL Coder поддерживает все блоки, имеющие single и double типы данных в Native Floating Point режим. Для определенных блоков, таких как интегратор дискретного времени и контроллер дискретного PID, используется стратегия нулевой задержки. Эти блоки содержат внутренние циклы обратной связи и использование ненулевого значения для стратегии задержки может привести к тому, что генератор кода не сможет распределять задержки. Дополнительные сведения см. в разделе Выделение достаточных задержек для операций с плавающей запятой.
При использовании half типы, эти блоки поддерживаются в Native Floating Point режим.
В Math Operations , эти блоки поддерживаются для генерации кода HDL:
| Имя блока | Поддерживается с половинными типами данных | Поддерживается с одиночными типами данных | Поддерживается с двойными типами данных | Замечания |
|---|---|---|---|---|
| Брюшной пресс | Нет | Да | Да | – |
| Добавить | Да | Да | Да | – |
| Назначение | Нет | Да | Да | – |
| Уклон | Нет | Да | Да | – |
| Комплекс для реального Imag | Нет | Да | Да | – |
| Разделиться | Да | Да | Да | – |
| Точечное произведение | Нет | Да | Да | – |
| Выгода | Да | Да | Да | – |
| Математическая функция | Нет | Да | Нет | – |
| MinMax | Нет | Да | Да | – |
| Продукт | Да | Да | Да | Если блок настроен на выполнение умножения матриц путем установки параметра блока умножения в значение Matrix(*), для DotProductStrategy должно быть установлено значение Fully Parallel. |
| Произведение элементов | Да | Да | Да | – |
| От Real-Imag до Complex | Нет | Да | Да | – |
| Ответный Sqrt | Нет | Да | Да | – |
| Измениться | Да | Да | Да | – |
| Sqrt | Нет | Да | Да | – |
| Вычесть | Да | Да | Да | – |
| Сумма | Да | Да | Да | – |
| Сумма элементов | Да | Да | Да | – |
| Тригонометрическая функция | Нет | Да | Нет | – |
| Унарный минус | Да | Да | Да | – |
| Конкатенат вектора | Да | Да | Да | – |
В таблице представлен список поддерживаемых блоков для генерации кода HDL в других библиотеках блоков кодера HDL.
| Библиотека блоков | Поддерживается с половинными типами данных | Поддерживается с одиночными типами данных | Поддерживается с двойными типами данных |
|---|---|---|---|
Дискретный | Поддерживаемые блоки включают в себя набор блоков задержки, включая синхронные блоки, целочисленную задержку и задержку с отводом. | Поддерживаемые блоки включают в себя:
| Поддерживаемые блоки включают в себя:
|
Операции ЛПВП | Блоки в этой библиотеке не поддерживаются. | Поддерживаются все блоки. | Поддерживаются все блоки. |
RAM HDL | Блоки в этой библиотеке не поддерживаются. | Поддерживаются все блоки. | Поддерживаются все блоки. |
Подсистемы ЛПВП | Поддерживаются все блоки. | Поддерживаются все блоки. | Поддерживаются все блоки. |
Логические и битовые операции | Поддерживаемые блоки включают в себя:
| Поддерживаются все блоки. | Поддерживаются все блоки. |
Таблицы подстановки | Блоки в этой библиотеке не поддерживаются. | Поддерживаются все блоки. | Поддерживаются все блоки. |
Проверка модели | Блоки в этой библиотеке не поддерживаются. | Поддерживаются все блоки. | Поддерживаются все блоки. |
Утилиты для всей модели | Блоки в этой библиотеке не поддерживаются. | Поддерживаются все блоки. | Поддерживаются все блоки. |
Порты и подсистемы | Поддерживаются порты включения, сброса, ввода и вывода, ссылки на модель и блоки подсистем. | Поддерживаются порты включения, сброса, ввода и вывода, ссылки на модель и блоки подсистем. | Поддерживаются порты включения, сброса, ввода и вывода, ссылки на модель и блоки подсистем. |
Атрибуты сигнала | Поддерживаемые блоки включают в себя:
| Поддерживаются все блоки. | Поддерживаются все блоки. |
Маршрутизация сигналов | Поддерживаются все блоки. | Поддерживаются все блоки. | Поддерживаются все блоки. |
Источники | Поддерживаемые блоки включают блоки Inport, Constant и Ground. | Поддерживаемые блоки включают блоки Inport, Constant и Ground. | Поддерживаемые блоки включают блоки Inport, Constant и Ground. |
Сливы | Поддерживаются все блоки. | Поддерживаются все блоки. | Поддерживаются все блоки. |
Пользовательские функции | Поддерживаются функциональные блоки MATLAB. | Поддерживаются функциональные блоки MATLAB. | Поддерживаются функциональные блоки MATLAB. |
В собственном режиме с плавающей запятой генератор кода не поддерживает эти блоки или блочные архитектуры:
Биквадский фильтр.
Блок переключения с входом в порт управления в виде типа с плавающей запятой.
Сумма элементов со сложными типами ввода.
Системные блоки MATLAB.
Скалярное изделие в сложном режиме с архитектурой как Tree или Linear.
Дискретный фильтр FIR с архитектурой, отличной от архитектуры Fully Parallel.
Динамические мертвые зоны и мертвые зоны.
От полярного до декартова.
Для блока преобразования типа данных:
Stored Integer (SI) режим ввода и вывода с одинаковой настройкой не поддерживается.
Флажок Saturate on integer overflow должен быть снят.