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