exponenta event banner

CustomizeReferenceDesignFcn

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

Дескриптор функции для функции обратного вызова, которая выполняется перед заданием Set Target Interface в помощнике по рабочим процессам HDL

Синтаксис

CustomizeReferenceDesignFcn

Описание

CustomizeReferenceDesignFcn регистрирует дескриптор функции обратного вызова, который выполняется перед заданием Set Target Interface в помощнике по рабочим процессам HDL. С помощью этой функции обратного вызова можно настроить 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 в задаче Задать целевую ссылочную конструкцию (Set Target Reference Design) Coder™ HDL заполняет ссылочные параметры конструкции. В зависимости от выбора параметров, например, указанных типов интерфейса, вычисляется функция обратного вызова. После выполнения этой задачи при выборе задачи Set Target Interface целевые интерфейсы заполняются в таблице Target platform interface.

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