Задайте пользовательские параметры и функции обратного вызова для пользовательского исходного проекта

Когда вы задаете свой пользовательский исходный проект, можно опционально использовать свойства в объекте hdlcoder.ReferenceDesign задать пользовательские параметры и функции обратного вызова.

Задайте пользовательские параметры и укажите указатель функции обратного вызова

Этот код MATLAB® показывает, как задать пользовательские параметры и указать указатель на функцию пользовательских функций обратного вызова в функции определения исходного проекта.

function hRD = plugin_rd()
% Reference design definition

% Construct reference design object
hRD = hdlcoder.ReferenceDesign('SynthesisTool', 'Xilinx Vivado');
hRD.ReferenceDesignName = 'My Reference Design';
hRD.BoardName = 'ZedBoard';

% Tool information
hRD.SupportedToolVersion = {'2015.4'};

%% Add custom design files
% ...
% ...

%% Add custom parameters by using addParameter property. These are optional.
% Specify custom 'DUT path' and 'Channel Mapping' parameters. The parameters get 
% populated in the 'Set Target Reference Design' task in the HDL Workflow Advisor.
hRD.addParameter( ...
    'ParameterID',   'DutPath', ...
    'DisplayName',   'Dut Path', ...
    'DefaultValue',  'Rx', ...
    'ParameterType',  hdlcoder.ParameterType.Dropdown, ...
    'Choice',       {'Rx', 'Tx'});
hRD.addParameter( ...
    'ParameterID',   'ChannelMapping', ...
    'DisplayName',   'Channel Mapping', ...
    'DefaultValue',  '1');

%% Add custom callback functions. These are optional.
% With the callback functions, you can enable custom validations, customize the
% project creation, software interface model generation, and the bistream build.
% Register the function handle of these callback functions.

% Specify an optional callback for 'Set Target Reference Design' task in Workflow Advisor.
% Use the property name 'PostTargetReferenceDesignFcn'.
hRD.PostTargetReferenceDesignFcn = ...
    @my_reference_design.callback_PostTargetReferenceDesign;

% Specify an optional callback for 'Set Target Interface' task in Workflow Advisor.
% Use the property name 'PostTargetInterfaceFcn'.
hRD.PostTargetInterfaceFcn     = ... 
    @my_reference_design.callback_PostTargetInterface;

% Specify an optional callback for 'Create Project' task
% Use the property name 'PostCreateProjectFcn' for the ref design object.
hRD.PostCreateProjectFcn       = ... 
    @my_reference_design.callback_PostCreateProject;

% Specify an optional callback for 'Generate Software Interface Model' task
% Use the property name 'PostSWInterfaceFcn' for the ref design object.
hRD.PostSWInterfaceFcn         = ...
    @my_reference_design.callback_PostSWInterface;

% Specify an optional callback for 'Build FPGA Bitstream' task
% Use the property name 'PostBuildBitstreamFcn' for the ref design object.
hRD.PostBuildBitstreamFcn      = ...
    @my_reference_design.callback_PostBuildBitstream;

% Specify an optional callback for 'Program Target Device'
% task to use a custom programming method.
hRD.CallbackCustomProgrammingMethod = ...
    @my_reference_design.callback_CustomProgrammingMethod;

%% Add interfaces
% ...
% ...

Задайте пользовательские параметры

С методом addParameter класса hdlcoder.ReferenceDesign можно задать пользовательские параметры. В предыдущем примере исходный проект задает два пользовательских параметра, DUT Path и Channel Mapping. Чтобы узнать больше о методе addParameter, смотрите addParameter

Когда вы открываете HDL Workflow Advisor, HDL Coder™ заполняет задачу Set Target Reference Design с именем исходного проекта, версией инструмента и пользовательскими параметрами, которые вы задаете.

HDL Coder затем передает эти значения параметров функциям обратного вызова во входной структуре.

Если вашим инструментом синтеза является Xilinx® Vivado®, HDL Coder устанавливает значения параметров исходного проекта на переменные. Переменные затем вводятся к блочной конструкции файл Tcl. Этот фрагмент кода является примером от создания проекта исходного проекта файл Tcl.

update_ip_catalog
set DutPath {Rx}
set ChannelMapping {1}
source vivado_custom_block_design.tcl

Код показывает, как HDL Coder устанавливает параметры исходного проекта прежде, чем получить файл Tcl проекта авторского блока.

Укажите указатели функции обратного вызова

В определении исходного проекта можно указать указатель на функцию, чтобы сослаться на пользовательские функции обратного вызова. Вы затем можете:

  • Включите пользовательские валидации.

  • Настройте настройки создания проекта исходного проекта.

  • Измените модель интерфейса сгенерированного программного обеспечения.

  • Настройте процесс сборки потока битов FPGA.

  • Задайте пользовательский метод программирования FPGA.

С классом hdlcoder.ReferenceDesign можно задать имена свойства коллбэка. Свойства коллбэка имеют соглашение о присвоении имен. Функции обратного вызова могут иметь любое имя. В HDL Workflow Advisor можно задать функции обратного вызова, чтобы настроить эти задачи.

Советник по вопросам рабочего процесса задачаИмя свойства коллбэкаФункциональность

Установите целевой исходный проект

PostTargetReferenceDesignFcn

Включите пользовательские валидации. Для примера, который показывает, как можно подтвердить это, Reset type является Synchronous, смотрите PostTargetReferenceDesignFcn.

Установите целевой интерфейс

PostTargetInterfaceFcn

Включите пользовательские валидации. Для примера, который показывает, как можно подтвердить не выбор определенного интерфейса для определенной пользовательской установки параметра, смотрите PostTargetInterfaceFcn.

Создайте проект

PostCreateProjectFcn

Задайте пользовательские настройки, когда HDL Coder создаст проект. Для примера смотрите PostCreateProjectFcn.

Сгенерируйте модель программного интерфейса

PostSWInterfaceFcn

Измените модель интерфейса сгенерированного программного обеспечения. Для примера смотрите PostSWInterfaceFcn.

Создайте поток битов FPGA

PostBuildBitstreamFcn

Задайте пользовательские настройки, когда вы создадите поток битов FPGA. Для примера смотрите PostBuildBitstreamFcn.

Целевое устройство программы

CallbackCustomProgrammingMethod

Задайте пользовательский метод программирования FPGA. Для примера смотрите CallbackCustomProgrammingMethod.

Определение пользовательских функций обратного вызова

  1. Для каждой функции обратного вызова, которую вы хотите, чтобы HDL Coder выполнил после выполнения задачи, создайте файл, который задает функцию MATLAB с любым именем.

  2. Убедитесь, что функция обратного вызова имеет зарегистрированные аргументы ввода и вывода.

  3. Проверьте, что функции доступны от пути MATLAB.

  4. Укажите указатель на функцию функций обратного вызова в функции определения исходного проекта.

  5. Следуйте соглашениям о присвоении имен для имен свойства коллбэка.

Чтобы узнать больше об этих функциях обратного вызова, смотрите hdlcoder.ReferenceDesign.

Смотрите также

|

Связанные примеры

Больше о