Класс: 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, целевые интерфейсы заполняются в таблице интерфейса Целевой платформы.