createFloatingPointTargetConfig

Класс: hdlcoder. FloatingPointTargetConfig
Пакет: hdlcoder

Создайте целевую настройку с плавающей точкой для библиотеки с плавающей точкой, которую вы задаете

Синтаксис

fpconfig = hdlcoder.createFloatingPointConfig(library)
fpconfig = hdlcoder.createFloatingPointConfig(library,Name,Value)

Описание

Чтобы создать целевой объект настройки с плавающей точкой для библиотеки с плавающей точкой, используйте функцию hdlcoder.createFloatingPointTargetConfig. Можно создать объект настройки с плавающей точкой для этих библиотек:

  • Нативная плавающая точка

  • Altera® Megafunctions (функции FP ALTERA)

  • Мегафункции Altera (ALTFP)

  • Xilinx® LogiCORE®

fpconfig = hdlcoder.createFloatingPointConfig(library) создает объект hdlcoder.FloatingPointTargetConfig для данной библиотеки с плавающей точкой.

fpconfig = hdlcoder.createFloatingPointConfig(library,Name,Value) создает объект hdlcoder.FloatingPointTargetConfig с дополнительными опциями, заданными одним или несколькими аргументами пары Name,Value. Name может также быть именем свойства, и Value является соответствующим значением. Имя должно находиться внутри одинарных кавычек (' '). Можно задать несколько аргументов пары "имя-значение" в любом порядке как Name1,Value1,...,NameN,ValueN.

Входные параметры

развернуть все

Имя библиотеки с плавающей точкой, заданное как вектор символов

Пример: 'ALTERAFPFUNCTIONS'

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Аргументы пары "имя-значение", что можно задать, зависят от библиотеки, которую вы выбираете для создания настройки с плавающей точкой.

Нативная плавающая точка

развернуть все

Задайте, хотите ли вы, чтобы HDL Coder™ обработал нестандартные числа в вашем проекте. Задайте это свойство как вектор символов. Нестандартные числа являются ненулевыми числами, которые меньше, чем самый маленький нормальный номер. Чтобы задать это свойство, для Library, выбирают NATIVEFLOATINGPOINT.

Задайте, хотите ли вы, чтобы HDL Coder использовал максимальную или минимальную установку задержки для плавающих операторов, которые использует ваш проект. Задайте это свойство как вектор символов. Чтобы задать это свойство, для Library, выбирают NATIVEFLOATINGPOINT

Задайте, как вы хотите, чтобы HDL Coder реализовал процесс умножения мантиссы для множителей с плавающей точкой в вашем проекте. При использовании этой опции можно управлять использованием DSP на целевой платформе для проекта. Чтобы узнать больше, см. Стратегию Множителя Мантиссы.

Функции FP Altera

развернуть все

Задайте, хотите ли вы, чтобы HDL Coder инициализировал конвейерные регистры в IP Мегафункции Altera, чтобы обнулить. Задайте это свойство как logical. Чтобы избежать потенциальных числовых несоответствий в симуляции HDL, оставьте набор InitializeIPPipelinesToZero true. Чтобы задать это свойство, для Library, выбирают ALTERAFPFUNCTIONS.

ALTFP и Xilinx LogiCORE

развернуть все

Задайте, хотите ли вы, чтобы проект сопоставил с минимальной или максимальной задержкой с Xilinx LogiCORE или IP Мегафункции Altera. Задайте это свойство как вектор символов.

Задайте, хотите ли вы, чтобы проект сопоставил с минимальной или максимальной задержкой с Xilinx LogiCORE или IP Мегафункции Altera. Задайте это свойство как вектор символов.

Примеры

развернуть все

Этот пример показывает, как создать целевую настройку с плавающей точкой с нативной поддержкой с плавающей точкой в HDL Coder, и затем сгенерировать код.

Создайте целевую настройку с плавающей точкой

Чтобы создать настройку с плавающей точкой, используйте hdlcoder.createFloatingPointTargetConfig.

load_system('sfir_single');
fpconfig = hdlcoder.createFloatingPointTargetConfig('NATIVEFLOATINGPOINT')
fpconfig = 

  FloatingPointTargetConfig with properties:

            Library: 'NativeFloatingPoint'
    LibrarySettings: [1×1 fpconfig.NFPLatencyDrivenMode]
           IPConfig: [1×1 hdlcoder.FloatingPointTargetConfig.IPConfig]

Задайте пользовательские настройки библиотеки

Опционально, чтобы настроить настройку с плавающей точкой, задайте пользовательские настройки библиотеки.

fpconfig.LibrarySettings.HandleDenormals = 'off';
fpconfig.LibrarySettings.LatencyStrategy = 'MIN';
fpconfig.LibrarySettings.MantissaMultiplyStrategy = 'NoMultiplierFullAddShift';
fpconfig.LibrarySettings
ans = 

  NFPLatencyDrivenMode with properties:

             LatencyStrategy: 'MIN'
             HandleDenormals: 'off'
    MantissaMultiplyStrategy: 'NoMultiplierFullAddShift'
                     Version: '1.0.0'

Просмотрите задержку нативных операторов с плавающей точкой

Отображения объекта IPConfig максимальные значения задержки минимума AMD операторов с плавающей точкой.

fpconfig.IPConfig
ans = 

       Name              DataType            MaxLatency    MinLatency
    __________    _______________________    __________    __________

    'ABS'         'SINGLE'                    0             0        
    'ADDSUB'      'SINGLE'                   12             7        
    'ATAN'        'SINGLE'                   36            36        
    'ATAN2'       'SINGLE'                   42            42        
    'CONVERT'     'NUMERICTYPE_TO_SINGLE'     6             6        
    'CONVERT'     'SINGLE_TO_NUMERICTYPE'     6             6        
    'COS'         'SINGLE'                   27            27        
    'DIV'         'SINGLE'                   32            32        
    'EXP'         'SINGLE'                   23            23        
    'FIX'         'SINGLE'                    3             3        
    'LOG'         'SINGLE'                   20            20        
    'MINMAX'      'SINGLE'                    3             3        
    'MOD'         'SINGLE'                    0             0        
    'MUL'         'SINGLE'                    8             8        
    'POW2'        'SINGLE'                    2             2        
    'RECIP'       'SINGLE'                   19            19        
    'RELOP'       'SINGLE'                    3             3        
    'REM'         'SINGLE'                    0             0        
    'ROUNDING'    'SINGLE'                    5             5        
    'RSQRT'       'SINGLE'                   17            17        
    'SIGNUM'      'SINGLE'                    0             0        
    'SIN'         'SINGLE'                   27            27        
    'SINCOS'      'SINGLE'                   27            27        
    'SQRT'        'SINGLE'                   28            28        
    'UMINUS'      'SINGLE'                    0             0        

Сгенерируйте код

makehdl('sfir_single/symmetric_fir','FloatingPointTargetConfiguration',fpconfig, ...
                    'TargetDirectory','C:/NativeFloatingPoint/hdlsrc')
### Generating HDL for 'sfir_single/symmetric_fir'.
### Starting HDL check.
### The code generation and optimization options you have chosen have introduced additional pipeline delays.
### The delay balancing feature has automatically inserted matching delays for compensation.
### The DUT requires an initial pipeline setup latency. Each output port experiences these additional delays.
### Output port 0: 30 cycles.
### Output port 1: 30 cycles.
### Begin VHDL Code Generation for 'sfir_single'.
### Working on sfir_single/symmetric_fir/nfp_add_comp as C:\NativeFloatingPoint\hdlsrc\sfir_single\nfp_add_comp.vhd.
### Working on sfir_single/symmetric_fir/nfp_mul_comp as C:\NativeFloatingPoint\hdlsrc\sfir_single\nfp_mul_comp.vhd.
### Working on sfir_single/symmetric_fir as C:\NativeFloatingPoint\hdlsrc\sfir_single\symmetric_fir.vhd.
### Generating package file C:\NativeFloatingPoint\hdlsrc\sfir_single\symmetric_fir_pkg.vhd.
### Creating HDL Code Generation Check Report file://C:\NativeFloatingPoint\hdlsrc\sfir_single\symmetric_fir_report.html
### HDL check for 'sfir_single' complete with 0 errors, 0 warnings, and 0 messages.
### HDL code generation complete.

Сгенерированный код VHDL сохранен в папке hdlsrc.