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