Когда вы задаете свой пользовательский исходный проект, можно опционально использовать свойства в 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
Генератор кода автоматически вставляет JTAG MATLAB AXI Master IP в ваш исходный проект. Используя JTAG MATLAB AXI Master IP, вы можете легко получить доступ к регистрам AXI в сгенерированном ядре DUT IP на плате FPGA от MATLAB через соединение JTAG. См. также раздел Настройка для MATLAB AXI Master (HDL Verifier).
Чтобы использовать эту возможность, необходимо установить и загрузить пакеты аппаратной поддержки HDL Verifier™. См. раздел Загрузка пакета поддержки платы FPGA (HDL Verifier).
Генератор кода настраивает AXI4 Slave ID Width, чтобы включить MATLAB в качестве главного IP-соединения AXI. После того, как вы сгенерируете HDL-ядро IP и создадите исходный проект, можно открыть Vivado® проект блока, чтобы увидеть JTAG MATLAB AXI Master IP, вставленный в исходный проект.
В коде предыдущего примера исходный проект задает 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';
Для примеров смотрите:
Когда вы открываете 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 устанавливает параметры исходного проекта перед поиском источника пользовательского блока design Tcl файла.
В определении исходного проекта можно зарегистрировать указатель на функцию для ссылки на пользовательские функции обратного вызова. Затем можно:
Включите пользовательские валидации.
Динамическая настройка исходного проекта.
Настройте исходный проект параметры создания проекта.
Измените модель сгенерированного программного обеспечения интерфейса.
Настройте процесс построения битового потока FPGA.
Задайте пользовательский метод программирования FPGA.
С hdlcoder.ReferenceDesign
можно задать имена свойства коллбэка. Свойства коллбэка имеют вид именования. Функции обратного вызова могут иметь любое имя. В HDL Workflow Advisor можно задать функции обратного вызова для настройки этих задач.
Задача советника по рабочему процессу | Имя свойства коллбэка | Функциональность |
---|---|---|
Установите целевые Исходные проекты |
|
|
Установите целевой интерфейс | PostTargetInterfaceFcn | Включите пользовательские валидации. Для примера, который показывает, как можно проверить, не выбирая определенный интерфейс для определенного пользовательского параметра, смотрите |
Создание проекта | PostCreateProjectFcn | Задайте пользовательские параметры при создании проекта HDL Coder. Для получения примера см. |
Сгенерируйте программный интерфейс | PostSWInterfaceFcn | Измените модель сгенерированного программного обеспечения интерфейса. Для получения примера см. |
Построение битового потока FPGA | PostBuildBitstreamFcn | Задайте пользовательские настройки при построении битового потока FPGA. Когда вы используете эту функцию, процесс сборки не может быть запущен извне. Необходимо запустить процесс сборки в HDL Workflow Advisor путем снятия флажка Run build process externally в Build FPGA Bitstream задаче. Для получения примера см. |
Программное целевое устройство | CallbackCustomProgrammingMethod | Задайте пользовательский метод программирования FPGA. Для получения примера см. |
Для каждой функции обратного вызова, которую вы хотите выполнить HDL Coder после выполнения задачи, создайте файл, который задает функцию MATLAB с любым именем.
Убедитесь, что функция обратного вызова имеет задокументированные входные и выходные аргументы.
Проверьте, что функции доступны из пути MATLAB.
Зарегистрируйте указатель на функцию функций обратного вызова в функции определения исходного проекта.
Следуйте соглашениям об именовании имен свойства коллбэка.
Дополнительные сведения об этих функциях обратного вызова см. в разделе hdlcoder.ReferenceDesign
.
hdlcoder.Board
| hdlcoder.ReferenceDesign