Когда вы задаете свой пользовательский исходный проект, можно опционально использовать свойства в объекте 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 является |
Установите целевой интерфейс | PostTargetInterfaceFcn | Включите пользовательские валидации. Для примера, который показывает, как можно подтвердить не выбор определенного интерфейса для определенной пользовательской установки параметра, смотрите |
Создайте проект | PostCreateProjectFcn | Задайте пользовательские настройки, когда HDL Coder создаст проект. Для примера смотрите |
Сгенерируйте модель программного интерфейса | PostSWInterfaceFcn | Измените модель интерфейса сгенерированного программного обеспечения. Для примера смотрите |
Создайте поток битов FPGA | PostBuildBitstreamFcn | Задайте пользовательские настройки, когда вы создадите поток битов FPGA. Для примера смотрите |
Целевое устройство программы | CallbackCustomProgrammingMethod | Задайте пользовательский метод программирования FPGA. Для примера смотрите |
Для каждой функции обратного вызова, которую вы хотите, чтобы HDL Coder выполнил после выполнения задачи, создайте файл, который задает функцию MATLAB с любым именем.
Убедитесь, что функция обратного вызова имеет зарегистрированные аргументы ввода и вывода.
Проверьте, что функции доступны от пути MATLAB.
Укажите указатель на функцию функций обратного вызова в функции определения исходного проекта.
Следуйте соглашениям о присвоении имен для имен свойства коллбэка.
Чтобы узнать больше об этих функциях обратного вызова, смотрите hdlcoder.ReferenceDesign
.
hdlcoder.Board
| hdlcoder.ReferenceDesign