Когда вы задаете свой пользовательский исходный проект, можно опционально использовать свойства в 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 = {'2018.3'}; %% Add custom design files % ... % ... %% Add optional custom parameters by using addParameter property. % Specify custom 'DUT path' and 'Channel Mapping' parameters. % The parameters get populated in the 'Set Target Reference Design' % task of 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'); %% Enable JTAG MATLAB as AXI Master IP Insertion. The IP % insertion setting is visible in the 'Set Target Reference Design' % task of the HDL Workflow Advisor. By default, the % AddJTAGMATLABasAXIMasterParameter property is set to 'true'. hRD.AddJTAGMATLABasAXIMasterParameter = 'true'; hRD.JTAGMATLABasAXIMasterDefaultValue = 'on'; %% 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 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 Coder™ добавляет параметр Insert JTAG MATLAB as AXI Master (HDL Verifier Required) во все исходные проекты. Когда вы устанавливаете этот параметр на on
, генератор кода автоматически вводит MATLAB JTAG Ведущий IP AXI в ваш исходный проект. При помощи MATLAB JTAG Ведущий IP AXI можно легко получить доступ к регистрам AXI в сгенерированном ядре IP DUT на плате FPGA от MATLAB до связи JTAG. См. также Настроенный для MATLAB Ведущее устройство AXI (HDL Verifier).
Использовать эту возможность:
У вас должны быть пакеты аппаратной поддержки HDL Verifier™, установленные и загруженные. Смотрите Пакет поддержки плат FPGA Загрузки (HDL Verifier).
Не предназначайтесь для автономных плат, которые не имеют hRD.addAXI4SlaveInterface
или платы, которые основаны на Xilinx® ISE.
Генератор кода настраивает AXI4 Slave ID Width, чтобы разместить MATLAB как Ведущее IP-соединение AXI. После того, как вы сгенерируете ядро IP HDL и создадите проект исходного проекта, можно открыть блочную конструкцию Vivado®, чтобы видеть MATLAB JTAG Ведущий IP AXI, вставленный в исходный проект.
В коде предыдущего примера исходный проект задает AddJTAGMATLABasAXIMasterParameter
и JTAGMATLABasAXIMasterDefaultValue
свойства hdlcoder.ReferenceDesign
класс. Эти свойства управляют поведением по умолчанию установки Insert JTAG MATLAB as AXI Master (HDL Verifier Required) в задаче Set Target Reference Design HDL Workflow Advisor. Если вы не задаете ни одного из этих свойств в hdlcoder.ReferenceDesign
класс, параметр Insert JTAG MATLAB as AXI Master (HDL Verifier Required) отображен в задаче Set Target Reference Design, и значение установлено к off
. Этот пример кода иллюстрирует поведение по умолчанию.
%% Default behavior of Insert JTAG as AXI Master option % This parameter controls visibility of the option in % 'Set Target Reference Design Task' of HDL Workflow Advisor % By default, the parameter value is set to 'true', % which means that the option is displayed in the UI. If % you do not want the parameter to be displayed, set this % value to 'false'. hRD.AddJTAGMATLABasAXIMasterParameter = 'true'; % This parameter controls the value of the option in the % the 'Set Target Reference Design Task' task. By default, % the value is 'off', which means that the parameter is % displayed in the task and the value is off. To enable % automatic insertion of JTAG AXI Master IP in the reference % design, set this value to 'on'. In that case, the % AddJTAGMATLABasAXIMasterParameter must be set to 'true'. hRD.JTAGMATLABasAXIMasterDefaultValue = 'off';
Для примера смотрите Используя MATLAB JTAG как Ведущее устройство AXI, чтобы управлять Ядром IP HDL Coder.
Когда вы открываете HDL Workflow Advisor, HDL Coder заполняет задачу Set Target Reference Design с именем исходного проекта, версией инструмента, пользовательские параметры, которые вы задали, и набор опции Insert JTAG MATLAB as AXI Master (HDL Verifier Required) к on
.
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