HDL Coder™ нативная поддержка с плавающей точкой могут сгенерировать HDL-код от вашего проекта с плавающей точкой. HDL Coder поддерживает несколько Simulink® блоки и математические и тригонометрические функции в нативном режиме с плавающей точкой. Эти таблицы показывают значения задержки по умолчанию для этих операций с плавающей точкой. Можно настроить эти значения задержки. Можно также настроить параметры задержки для большинства блоков и разработать компромиссы между задержками и Fmax, задав пользовательские значения задержки. Дополнительные сведения см. в разделе Факторов о задержках с собственной плавающей точкой.
Вы можете увидеть задержку этих операторов с плавающей точкой в MATLAB® путем ввода этих команд.
nfpconfig = hdlcoder.createFloatingPointTargetConfig('NativeFloatingPoint');
nfpconfig.IPConfig
Эта таблица показывает список базовых математических операций, которые поддерживаются с собственной плавающей точкой в HDL Coder, и их информацию о задержках. Основные математические операции включают сложение, вычитание, умножение и так далее. Можно использовать большинство из этих блоков с обоими single
и double
типы данных. Если вы не видите запись double
тип данных, соответствующий блоку, это означает, что блок не поддерживает double
типы.
Математические операторы Basic
Блоки Simulink | Тип данных | Минимальный выход | Максимальный выход |
---|---|---|---|
Add | Дважды | 6 | 11 |
Одинок | 6 | 11 | |
Половина | 4 | 8 | |
Subtract | Дважды | 6 | 11 |
Одинок | 6 | 11 | |
Половина | 4 | 8 | |
Product | Дважды | 6 | 9 |
Одинок | 6 | 8 | |
Половина | 4 | 6 | |
Divide | Дважды | 31 | 61 |
Одинок | 17 | 32 | |
Половина | 10 | 19 | |
Math Function | Дважды | 30 | 60 |
Одинок | 16 | 31 | |
Multiply-Add | Одинок | 8 | 14 |
Rounding Function | Дважды | 3 | 5 |
Одинок | 3 | 5 | |
Unary Minus | Дважды | – | – |
Одинок | – | – | |
Половина | – | – | |
Sign | Дважды | – | – |
Одинок | – | – | |
Abs | Дважды | – | – |
Одинок | – | – |
В этой таблице показаны математические функции, которые поддерживаются с собственной плавающей точкой в HDL Coder, и их информация о задержках. Вы можете выбрать функцию с помощью Function настройки блока Math Function. Можно использовать эти блоки с single
типы данных. Double
типы не поддерживаются для блоков.
Математические функции
Блоки Simulink | Минимальный выход | Максимальный выход |
---|---|---|
HDL Reciprocal | 14 | 21 |
Rem | 15 | 24 |
Mod | 16 | 26 |
Sqrt | 16 | 28 |
Reciprocal Sqrt | 16 | 30 |
Hypot | 17 | 33 |
В этой таблице показаны тригонометрические операции, которые поддерживаются с собственной плавающей точкой в HDL Coder, и их информация о задержках. Вы можете выбрать функцию с помощью Function настройки блока Trigonometric Function. Можно использовать эти блоки с single
типы данных. Double
типы не поддерживаются для блоков. Блок Sin имеет минимальную задержку 8 и максимальную задержку 14.
Тригонометрические функции
В этой таблице показаны экспоненциальные операции, которые поддерживаются с собственной плавающей точкой в HDL Coder, и их информация о задержках. Вы можете выбрать функцию с помощью Function настройки блока Math Function. Можно использовать эти блоки с single
типы данных. Double
типы не поддерживаются для блоков, за исключением журнал.
В этой таблице показаны операции, связанные с сравнением чисел и преобразований типов данных, которые поддерживаются с собственной плавающей точкой в HDL Coder и их информацией о задержках. Можно использовать эти блоки с обоими single
и double
типы данных за исключением блока MinMax. Этот блок не поддерживает double
типы данных. Для блока Data Type Conversion можно преобразовать между double
, half
, и single
типы данных и между типами данных с плавающей точкой и другими типами данных с фиксированной точкой.
Сравнения и преобразования
Блоки Simulink | Тип данных | Минимальный выход | Максимальный выход |
---|---|---|---|
Data Type Conversion | Дважды | 3 | 6 |
Одинок | 6 | 6 | |
Половина | 3 | 2 | |
Relational Operator | Дважды | 1 | 3 |
Одинок | 1 | 3 | |
Половина | 1 | 2 | |
MinMax | Одинок | 3 | 3 |