customize

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

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

Синтаксис

fpconfig.IPConfig.customize(Name,DataType,Name,Value)

Описание

fpconfig.IPConfig.customize(Name,DataType,Name,Value) настраивает fpconfig строение с плавающей точкой с дополнительными опциями, заданными одним или несколькими Name,Value аргументы в виде пар.

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

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

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

Пример: 'ADDSUB'

Тип данных IP с плавающей точкой для настройки, заданный как вектор символов.

Пример: 'SINGLE'

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

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

Задайте пользовательское значение задержки для IP-адреса с плавающей точкой в виде целого числа.

Пример: fpconfig.IPConfig.customize('ADDSUB','Double','Latency', 6) задает пользовательское значение задержки 6 для ADDSUB IP.

Задайте любые дополнительные аргументы IP с плавающей точкой в качестве вектора символов.

Пример: fpconfig.IPConfig.customize('ADDSUB','Double','Latency',6,'ExtraArgs','CSET c_mult_usage=Full_Usage') указывает, что необходимо использовать блоки DSP на целевом устройстве.

Примеры

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

В этом примере показано, как создать целевое строение с плавающей точкой с помощью Altera ® Megafunctions (ALTFP) в HDL Coder, а затем сгенерировать код.

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

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

hdlsetuptoolpath('ToolName', 'Altera Quartus II', ...
    'ToolPath', 'C:/Altera/16.0/quartus/bin64/quartus.exe');
load_system('sfir_single')
fpconfig = hdlcoder.createFloatingPointTargetConfig('ALTFP')
Prepending following Altera Quartus II path(s) to the system path:
C:\Altera\16.0\quartus\bin64

fpconfig = 

  FloatingPointTargetConfig with properties:

            Library: 'ALTFP'
    LibrarySettings: [1×1 fpconfig.LatencyDrivenMode]
           IPConfig: [1×1 hdlcoder.FloatingPointTargetConfig.IPConfig]

Настройка пользовательских параметров библиотеки

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

fpconfig.LibrarySettings.LatencyStrategy = 'MAX';
fpconfig.LibrarySettings.Objective = 'AREA';
fpconfig.LibrarySettings
ans = 

  LatencyDrivenMode with properties:

    LatencyStrategy: 'MAX'
          Objective: 'AREA'

Просмотр задержек IP-адресов с плавающей точкой

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

fpconfig.IPConfig
ans = 

      Name              DataType            MinLatency    MaxLatency    Latency    ExtraArgs
    _________    _______________________    __________    __________    _______    _________

    'ABS'        'DOUBLE'                    1             1            -1         ''       
    'ABS'        'SINGLE'                    1             1            -1         ''       
    'ADDSUB'     'DOUBLE'                    7            14            -1         ''       
    'ADDSUB'     'SINGLE'                    7            14            -1         ''       
    'CONVERT'    'DOUBLE_TO_NUMERICTYPE'     6             6            -1         ''       
    'CONVERT'    'NUMERICTYPE_TO_DOUBLE'     6             6            -1         ''       
    'CONVERT'    'NUMERICTYPE_TO_SINGLE'     6             6            -1         ''       
    'CONVERT'    'SINGLE_TO_NUMERICTYPE'     6             6            -1         ''       
    'COS'        'SINGLE'                   35            35            -1         ''       
    'DIV'        'DOUBLE'                   10            61            -1         ''       
    'DIV'        'SINGLE'                    6            33            -1         ''       
    'EXP'        'DOUBLE'                   25            25            -1         ''       
    'EXP'        'SINGLE'                   17            17            -1         ''       
    'LOG'        'DOUBLE'                   34            34            -1         ''       
    'LOG'        'SINGLE'                   21            21            -1         ''       
    'MUL'        'DOUBLE'                   11            11            -1         ''       
    'MUL'        'SINGLE'                   11            11            -1         ''       
    'RECIP'      'DOUBLE'                   27            27            -1         ''       
    'RECIP'      'SINGLE'                   20            20            -1         ''       
    'RELOP'      'DOUBLE'                    1             3            -1         ''       
    'RELOP'      'SINGLE'                    1             3            -1         ''       
    'RSQRT'      'DOUBLE'                   36            36            -1         ''       
    'RSQRT'      'SINGLE'                   26            26            -1         ''       
    'SIN'        'SINGLE'                   36            36            -1         ''       
    'SQRT'       'DOUBLE'                   30            57            -1         ''       
    'SQRT'       'SINGLE'                   16            28            -1         ''       

Настройка задержек ADDSUB IP

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

fpconfig.IPConfig.customize('ADDSUB','Single','Latency',6);
fpconfig.IPConfig
ans = 

      Name              DataType            MinLatency    MaxLatency    Latency    ExtraArgs
    _________    _______________________    __________    __________    _______    _________

    'ABS'        'DOUBLE'                    1             1            -1         ''       
    'ABS'        'SINGLE'                    1             1            -1         ''       
    'ADDSUB'     'DOUBLE'                    7            14            -1         ''       
    'ADDSUB'     'SINGLE'                    7            14             6         ''       
    'CONVERT'    'DOUBLE_TO_NUMERICTYPE'     6             6            -1         ''       
    'CONVERT'    'NUMERICTYPE_TO_DOUBLE'     6             6            -1         ''       
    'CONVERT'    'NUMERICTYPE_TO_SINGLE'     6             6            -1         ''       
    'CONVERT'    'SINGLE_TO_NUMERICTYPE'     6             6            -1         ''       
    'COS'        'SINGLE'                   35            35            -1         ''       
    'DIV'        'DOUBLE'                   10            61            -1         ''       
    'DIV'        'SINGLE'                    6            33            -1         ''       
    'EXP'        'DOUBLE'                   25            25            -1         ''       
    'EXP'        'SINGLE'                   17            17            -1         ''       
    'LOG'        'DOUBLE'                   34            34            -1         ''       
    'LOG'        'SINGLE'                   21            21            -1         ''       
    'MUL'        'DOUBLE'                   11            11            -1         ''       
    'MUL'        'SINGLE'                   11            11            -1         ''       
    'RECIP'      'DOUBLE'                   27            27            -1         ''       
    'RECIP'      'SINGLE'                   20            20            -1         ''       
    'RELOP'      'DOUBLE'                    1             3            -1         ''       
    'RELOP'      'SINGLE'                    1             3            -1         ''       
    'RSQRT'      'DOUBLE'                   36            36            -1         ''       
    'RSQRT'      'SINGLE'                   26            26            -1         ''       
    'SIN'        'SINGLE'                   36            36            -1         ''       
    'SQRT'       'DOUBLE'                   30            57            -1         ''       
    'SQRT'       'SINGLE'                   16            28            -1         ''       

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

makehdl('sfir_single/symmetric_fir','FloatingPointTargetConfiguration',fpconfig, ...
        'TargetDirectory','C:/FloatingPoint/hdlsrc','SynthesisToolChipFamily','Arria10')
### Generating HDL for 'sfir_single/symmetric_fir'.
### Starting HDL check.
### Using C:\Altera\16.0\quartus\bin64\qmegawiz for the selected floating point IP library.
### 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.
### Generating Altera(R) megafunction: altfp_add_single for latency of 6.
### Found an existing generated file in a previous session: (C:\FloatingPoint\hdlsrc\sfir_single\Altera\Arria10\unspecified\L6\altfp_add_single.vhd). Reusing the generated file.
### Done.
### Generating Altera(R) megafunction: altfp_mul_single for latency of 11.
### Found an existing generated file in a previous session: (C:\FloatingPoint\hdlsrc\sfir_single\Altera\Arria10\unspecified\L11\altfp_mul_single.vhd). Reusing the generated file.
### Done.
### Begin VHDL Code Generation for 'sfir_single'.
### Working on sfir_single/symmetric_fir as C:\FloatingPoint\hdlsrc\sfir_single\symmetric_fir.vhd.
### Generating package file C:\FloatingPoint\hdlsrc\sfir_single\symmetric_fir_pkg.vhd.
### Creating HDL Code Generation Check Report file://C:\FloatingPoint\hdlsrc\sfir_single\symmetric_fir_report.html
### HDL check for 'sfir_single' complete with 0 errors, 7 warnings, and 0 messages.
### HDL code generation complete.

Задержка IP ADDSUB составляет 6, а не максимальное значение задержки 14.

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

Совет

Перед использованием этой функции создайте целевой объект строения с плавающей точкой для заданной библиотеки с плавающей точкой. Выберите библиотеку следующим Altera Megafunctions (ALTERA FP FUNCTIONS), Altera Megafunctions (ALTFP), или Xilinx LogiCORE.

Этот пример создает целевое строение с плавающей точкой для Altera Megafunctions (ALTFP) библиотека.

fpconfig = hdlcoder.createFloatingPointTargetConfig('ALTFP');

Введенный в R2016b