Поддержка HDL Coder™ может генерировать код HDL из проекта с плавающей запятой. HDL Coder поддерживает несколько блоков Simulink ® и математические и тригонометрические функции в собственном режиме с плавающей запятой. В этих таблицах показаны значения задержки по умолчанию для этих операций с плавающей запятой. Эти значения задержки можно настроить. Можно также настроить параметры задержки для большинства блоков и конструкции для компромиссов между задержкой и Fmax, указав пользовательские значения задержки. Дополнительные сведения см. в разделе Вопросы задержки с собственной плавающей точкой.
Для определения задержки этих операторов с плавающей запятой в MATLAB ® введите эти команды.
nfpconfig = hdlcoder.createFloatingPointTargetConfig('NativeFloatingPoint');
nfpconfig.IPConfigВ этой таблице представлен список базовых математических операций, которые поддерживаются с собственной плавающей запятой в кодере HDL, и их информация о задержках. Основные математические операции включают сложение, вычитание, умножение и т.д. Большинство этих блоков можно использовать с обоими single и double типы данных. Если вы не видите запись double тип данных, соответствующий блоку, означает, что блок не поддерживает double типы.
Основные математические операторы
| Блоки симулятора | Тип данных | Минимальная задержка вывода | Максимальная задержка вывода |
|---|---|---|---|
| Добавить | Дважды | 6 | 11 |
| Одинок | 6 | 11 | |
| Половина | 4 | 8 | |
| Вычесть | Дважды | 6 | 11 |
| Одинок | 6 | 11 | |
| Половина | 4 | 8 | |
| Продукт | Дважды | 6 | 9 |
| Одинок | 6 | 8 | |
| Половина | 4 | 6 | |
| Разделиться | Дважды | 31 | 61 |
| Одинок | 17 | 32 | |
| Половина | 10 | 19 | |
| Математическая функция | Дважды | 30 | 60 |
| Одинок | 16 | 31 | |
| Умножение-сложение | Одинок | 8 | 14 |
| Функция округления | Дважды | 3 | 5 |
| Одинок | 3 | 5 | |
| Унарный минус | Дважды | – | – |
| Одинок | – | – | |
| Половина | – | – | |
| Знак | Дважды | – | – |
| Одинок | – | – | |
| Брюшной пресс | Дважды | – | – |
| Одинок | – | – |
В этой таблице представлены математические функции, которые поддерживаются с собственной плавающей запятой в кодере HDL, и их информация о задержках. Функцию можно выбрать с помощью настройки Функция (Function) блока Математическая функция (Math Function). Эти блоки можно использовать с single типы данных. Double типы не поддерживаются для блоков.
Математические функции
| Блоки симулятора | Минимальная задержка вывода | Максимальная задержка вывода |
|---|---|---|
| ЛПВП взаимный | 14 | 21 |
| Rem | 15 | 24 |
| Модник | 16 | 26 |
| Sqrt | 16 | 28 |
| Ответный Sqrt | 16 | 30 |
| Hypot | 17 | 33 |
В этой таблице представлены тригонометрические операции, которые поддерживаются с собственной плавающей запятой в кодере HDL, и их информация о задержках. Функцию можно выбрать с помощью настройки Функция (Function) блока Тригонометрическая функция (Trigonometric Function). Эти блоки можно использовать с single типы данных. Double типы не поддерживаются для блоков. Блок Sin имеет минимальную задержку 8 и максимальную задержку 14.
Тригонометрические функции
В этой таблице представлены экспоненциальные операции, которые поддерживаются с собственной плавающей запятой в кодере HDL, и их информация о задержках. Функцию можно выбрать с помощью настройки Функция (Function) блока Математическая функция (Math Function). Эти блоки можно использовать с single типы данных. Double типы не поддерживаются для блоков, кроме Log.
Экспонента/Логарифм/Мощность
| Блоки симулятора | Тип данных | Минимальная задержка вывода | Максимальная задержка вывода |
|---|---|---|---|
| Exp | Одинок | 16 | 26 |
| Голова | Одинок | 33 | 54 |
| Pow10 | Одинок | 16 | 26 |
| Регистрация | Одинок | 20 | 27 |
| Log10 | Одинок | 17 | 27 |
В этой таблице показаны операции, связанные со сравнением чисел и преобразований типов данных, которые поддерживаются с собственной плавающей запятой в кодере HDL, и их информация о задержках. Эти блоки можно использовать с обоими single и double типы данных, за исключением блока MinMax. Этот блок не поддерживает double типы данных. Для блока «Преобразование типа данных» можно выполнить преобразование между double, half, и single типы данных и между плавающей точкой и другими типами данных с фиксированной точкой.
Сравнения и преобразования
| Блоки симулятора | Тип данных | Минимальная задержка вывода | Максимальная задержка вывода |
|---|---|---|---|
| Преобразование типа данных | Дважды | 3 | 6 |
| Одинок | 6 | 6 | |
| Половина | 3 | 2 | |
| Реляционный оператор | Дважды | 1 | 3 |
| Одинок | 1 | 3 | |
| Половина | 1 | 2 | |
| MinMax | Одинок | 3 | 3 |