Собственный компонент HDL Coder™, с плавающей точкой, может сгенерировать независимый от цели 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, Matrix Concatenate | Да | Да | Да | – |
Таблица показывает список поддерживаемых блоков для генерации HDL-кода в других библиотеках блоков HDL Coder.
Библиотека блоков | Поддерживаемый с половиной типов данных | Поддерживаемый с одним типами данных | Поддерживаемый с двойными типами данных |
---|---|---|---|
Дискретный | Поддерживаемые блоки включают набор блоков задержки включая синхронные блоки, и Integer Delay и Tapped Delay. | Поддерживаемые блоки включают:
| Поддерживаемые блоки включают:
|
Операции HDL | Блоки в этой библиотеке не поддерживаются. | Все блоки поддерживаются. | Все блоки поддерживаются. |
RAM HDL | Блоки в этой библиотеке не поддерживаются. | Все блоки поддерживаются. | Все блоки поддерживаются. |
Подсистемы HDL | Все блоки поддерживаются. | Все блоки поддерживаются. | Все блоки поддерживаются. |
Логика и битовые операции | Поддерживаемые блоки включают:
| Все блоки поддерживаются. | Все блоки поддерживаются. |
Интерполяционные таблицы | Блоки в этой библиотеке не поддерживаются. | Все блоки поддерживаются. | Все блоки поддерживаются. |
Model Verification | Блоки в этой библиотеке не поддерживаются. | Все блоки поддерживаются. | Все блоки поддерживаются. |
Утилиты всей модели | Блоки в этой библиотеке не поддерживаются. | Все блоки поддерживаются. | Все блоки поддерживаются. |
Ports & Subsystems | Включите, сбросьте, введите, и выходные порты, модели - ссылки, и блоки подсистемы поддерживаются. | Включите, сбросьте, введите, и выходные порты, модели - ссылки, и блоки подсистемы поддерживаются. | Включите, сбросьте, введите, и выходные порты, модели - ссылки, и блоки подсистемы поддерживаются. |
Атрибуты сигнала | Поддерживаемые блоки включают:
| Все блоки поддерживаются. | Все блоки поддерживаются. |
Маршрутизация сигнала | Все блоки поддерживаются. | Все блоки поддерживаются. | Все блоки поддерживаются. |
Источники | Поддерживаемые блоки включают 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 нужно оставить очищенным.