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

Когда вы задаете свой пользовательский исходный проект, можно опционально использовать свойства в 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.

Задайте вставку JTAG MATLAB как AXI Master IP

По умолчанию 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';

Для примеров смотрите:

Запуск рабочего процесса генерации IP-ядра

Когда вы открываете 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 можно задать функции обратного вызова для настройки этих задач.

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

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

  • CustomizeReferenceDesignFcn

  • PostTargetReferenceDesignFcn

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

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

PostTargetInterfaceFcn

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

Создание проекта

PostCreateProjectFcn

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

Сгенерируйте программный интерфейс

PostSWInterfaceFcn

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

Построение битового потока FPGA

PostBuildBitstreamFcn

Задайте пользовательские настройки при построении битового потока FPGA. Когда вы используете эту функцию, процесс сборки не может быть запущен извне. Необходимо запустить процесс сборки в HDL Workflow Advisor путем снятия флажка Run build process externally в Build FPGA Bitstream задаче. Для получения примера см. PostBuildBitstreamFcn.

Программное целевое устройство

CallbackCustomProgrammingMethod

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

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

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

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

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

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

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

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

См. также

|

Похожие примеры

Подробнее о

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