Класс: hdlcoder. ReferenceDesign
Пакет: hdlcoder
Указатель на функцию для функции обратного вызова, которая выполняется после Поставившей Целевой Интерфейсной задачи в HDL Workflow Advisor
PostTargetInterfaceFcn
PostTargetInterfaceFcn
указывает указатель на функцию для функции обратного вызова, которая называется в конце задачи Set Target Interface в HDL Workflow Advisor. Если hRD
является объектом исходного проекта, который вы создаете с классом hdlcoder.ReferenceDesign
, то используете этот синтаксис, чтобы указать указатель на функцию.
hRD.PostTargetInterfaceFcn = @my_reference_design.callback_PostTargetInterface;
Чтобы задать вашу функцию обратного вызова, создайте файл, который задает MATLAB®, функционируют и добавляют его в ваш путь MATLAB. Можно использовать любое имя для функции обратного вызова. В этом примере имя функции является callback_PostTargetInterface
и расположено в папке +my_reference_design
пакета исходного проекта.
С этой функцией обратного вызова можно включить пользовательские валидации. Этот пример кода показывает, как создать функцию обратного вызова. Если пользовательский параметр, DUTPath
установлен в Rx
, функция, подтверждает это, исходный проект не поддерживает интерфейс LEDs General Purpose [0:7]
.
function callback_PostTargetInterface(infoStruct) % Reference design callback run at the end of the task Set Target Interface % % 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.ProcessorFPGASynchronization: Processor/FPGA synchronization mode % infoStruct.InterfaceStructCell: target interface table information % a cell array of structure, for example: % infoStruct.InterfaceStructCell{1}.PortName % infoStruct.InterfaceStructCell{1}.PortType % infoStruct.InterfaceStructCell{1}.DataType % infoStruct.InterfaceStructCell{1}.IOInterface % infoStruct.InterfaceStructCell{1}.IOInterfaceMapping hRD = infoStruct.ReferenceDesignObject; refDesignName = hRD.ReferenceDesignName; % validate that when specific parameter is set to specific value, reference % design does not support specific interface paramStruct = infoStruct.ParameterStruct; interfaceStructCell = infoStruct.InterfaceStructCell; for ii = 1:length(interfaceStructCell) interfaceStruct = interfaceStructCell{ii}; if strcmp(paramStruct.DutPath, 'Rx') && ... strcmp(interfaceStruct.IOInterface, 'LEDs General Purpose [0:7]') error('LEDs General Purpose [0:7] must not be used when the DUT path is Rx'); end end end
В HDL Workflow Advisor, когда HDL Coder™ запускает задачу Set Target Interface, он выполняет функцию обратного вызова в конце задачи. Если вы задаете Rx
как DUT Path и используете интерфейс LEDs General Purpose [0:7]
для вашего порта DUT, кодер генерирует ошибку.
Когда вы создаете функцию обратного вызова, передаете аргумент infoStruct
функции. Аргумент содержит исходный проект и информацию о плате в формате structure
. Используйте эту информацию, чтобы включить пользовательские валидации на DUT в вашей модели Simulink®.