CustomizeReferenceDesignFcn

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

Указатель на функцию для функции обратного вызова, которая выполняется перед Поставившей Целевой Интерфейсной задачей в HDL Workflow Advisor

Синтаксис

CustomizeReferenceDesignFcn

Описание

CustomizeReferenceDesignFcn указывает указатель на функцию для функции обратного вызова, которая выполняется перед задачей Set Target Interface в HDL Workflow Advisor. При помощи этой функции обратного вызова можно настроить блочную конструкцию файл Tcl, интерфейсы исходного проекта, свойства интерфейса исходного проекта и репозитории IP в исходном проекте.

Совет

Прежде чем вы будете использовать функцию обратного вызова в plugin_rd.m файл, необходимо задать параметр исходного проекта при помощи addParameter метод hdlcoder.ReferenceDesign класс.

Если hRD объект исходного проекта, что вы создаете с hdlcoder.ReferenceDesign класс, затем используйте этот синтаксис, чтобы указать указатель на функцию.

hRD.CustomizeReferenceDesignFcn = @my_reference_design.customcallback_aximaster;

Чтобы задать вашу функцию обратного вызова, создайте файл, который задает MATLAB®, функционируют и добавляют его в ваш путь MATLAB. Можно использовать любое имя в функции обратного вызова. В этом примере именем функции является customcallback_aximaster, и расположен в папке +my_reference_design пакета исходного проекта.

Например, можно задать, хотите ли вы Ведущее устройство AXI4 или AXI4 только исходный проект. В plugin_rd.m файл, используйте addParameter метод, чтобы задать различный выбор параметра как выпадающее.

% ...

% Parameter For  calling AXI4 master interface from Callback function

hRD.addParameter('ParameterID',     'interface_name', ...
                 'DisplayName',     'Reference_design_interface_name', ...
                 'DefaultValue',    'AXI4 Master',...
                 'ParameterType',   hdlcoder.ParameterType.Dropdown, ...
                 'Choice',          {'AXI4 Master','AXI4 Only'});

hRD.CustomizeReferenceDesignFcn = @my_reference_design.customcallback_aximaster;

% ...

В функции обратного вызова можно динамически изменить интерфейсы исходного проекта в зависимости от интерфейсных типов. Когда вы создаете функцию обратного вызова, передаете infoStruct аргумент к функции. Аргумент содержит исходный проект и информацию о плате в structure формат.

% Callback function to control AXI Master and AXI4 interface information dynamically

function customcallback_aximaster(infoStruct)
%% Reference design callback run at the end of the task Set Target Reference Design
%
% infoStruct: information in structure format
% infoStruct.ReferenceDesignObject: current reference design registration object
% infoStruct.BoardObject: current board registration object
% infoStruct.ParameterStruct: custom parameters of the current reference design, in struct format
% infoStruct.HDLModelDutPath: the block path to the HDL DUT subsystem
% infoStruct.ReferenceDesignToolVersion: Reference design Tool Version set in 1.2 Task

hRD = infoStruct.ReferenceDesignObject;
paramStruct = infoStruct.ParameterStruct;
interface_name = paramStruct.interface_name;
  
    if strcmp(interface_name, 'AXI4 Only')    
        hRD.addAXI4SlaveInterface( ...
            'InterfaceConnection', 'axi_interconnect_2/M01_AXI', ...
            'BaseAddress',         '0x00000000', ...
            'MasterAddressSpace',  'hdlverifier_axi_master_0/axi4m', ...
            'InterfaceType',       'AXI4');
    
    % To validate IP repository and AXI4 master interface signals
    elseif strcmp(interface_name,'AXI4 Master') 
      hRD.addAXI4SlaveInterface( ...
        'InterfaceConnection', 'axi_interconnect_2/M01_AXI', ...
        'BaseAddress',         '0x00000000', ...
        'MasterAddressSpace',  'hdlverifier_axi_master_0/axi4m', ...
        'InterfaceType',       'AXI4');
   
    hRD.addAXI4MasterInterface(...
        'InterfaceID',         'AXI4 Master', ...
        'ReadSupport',          true, ...
        'WriteSupport',         true, ...
        'MaxDataWidth',         128, ...
        'AddrWidth',            32, ...
        'DefaultReadBaseAddr',  hex2dec('40000000'), ...
        'DefaultWriteBaseAddr', hex2dec('41000000'), ...
        'InterfaceConnection', 'axi_interconnect_1/S01_AXI',...
        'TargetAddressSegments', {{'mig_7series_0/memmap/memaddr',hex2dec('40000000'),hex2dec('40000000')}})
  
    end   
end

В HDL Workflow Advisor, на задаче Set Target Reference Design, когда вы выбираете пользовательский исходный проект, который вы хотите настроить для требуемой платы, HDL Coder™ заполняет параметры исходного проекта. В зависимости от выбора параметра, такого как интерфейсные типы вы задаете, функция обратного вызова оценена. После того, как вы запускаете эту задачу, когда вы выбираете задачу Set Target Interface, целевые интерфейсы заполняются в таблице интерфейса Целевой платформы.

Введенный в R2020a