createFloatingPointTargetConfig

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

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

Синтаксис

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

Описание

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

  • Собственная переменная с плавающей точкой

  • Altera® Мегафункции (функции ALTERA FP)

  • Альтера Мегафункции (ALTFP)

  • Xilinx®LogiCORE®

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

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

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

расширить все

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

Пример: 'ALTERAFPFUNCTIONS'

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

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

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

Собственная переменная с плавающей точкой

расширить все

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

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

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

Функции Altera FP

расширить все

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

ALTFP и Xilinx LogiCORE

расширить все

Укажите, хотите ли вы сопоставить проект с минимальной или максимальной задержкой с Xilinx LogiCORE или Altera Megafunction IP. Задайте это свойство как вектор символов.

Укажите, хотите ли вы сопоставить проект с минимальной или максимальной задержкой с Xilinx LogiCORE или Altera Megafunction IP. Задайте это свойство как вектор символов.

Примеры

расширить все

В этом примере показано, как создать целевое строение с плавающей точкой с собственной поддержкой с плавающей точкой в 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 папка.