exponenta event banner

hdlcoder. Класс FloatingPointTargetConfig

Пакет: hdlcoder

Укажите целевую конфигурацию с плавающей запятой для библиотеки с плавающей запятой

Описание

hdlcoder.FloatingPointTargetConfig объект задает параметры для Coder™ HDL для создания синтезируемого кода с плавающей запятой. Создание hdlcoder.FloatingPointTargetConfig для библиотеки с плавающей запятой используйте hdlcoder.createFloatingPointTargetConfig функция. Можно создать объект конфигурации с плавающей запятой для следующих библиотек с плавающей запятой:

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

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

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

  • Xilinx ® LogiCORE ®

Строительство

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

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

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

Входные аргументы

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

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

Пример: 'ALTERAFPFUNCTIONS'

Свойства

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

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

Укажите, должен ли кодер HDL обрабатывать денормальные числа в конструкции. Укажите это свойство в качестве символьного вектора. Денормальные числа - ненулевые числа, которые меньше наименьшего нормального числа.

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

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

Функции Altera FP

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

ALTFP и Xilinx LogiCORE

Укажите, следует ли сопоставлять минимальную или максимальную задержку с помощью Xilinx LogiCORE или Altera Megafunction IP. Укажите это свойство в качестве символьного вектора.

Укажите, следует ли сопоставлять минимальную или максимальную задержку с помощью Xilinx LogiCORE или Altera Megafunction IP. Укажите это свойство в качестве символьного вектора.

Методы

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

Примеры

свернуть все

В этом примере показано, как создать целевую конфигурацию с плавающей запятой и встроенной поддержкой плавающей точки в кодере HDL, а затем создать код.

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

Чтобы создать конфигурацию с плавающей запятой, используйте 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 папка.

Представлен в R2016b