CustomizeReferenceDesignFcn

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

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