Чтобы сконфигурировать или программировать соединенное целевое устройство SoC или плату FPGA, используйте IP Core Generation
рабочий процесс в HDL Workflow Advisor.
Откройте HDL Workflow Advisor. Щелкните правой кнопкой по DUT Subsystem, который содержит алгоритм, который будет развернут на целевом FPGA и выберет HDL Code> HDL Workflow Advisor.
В задаче Set Target Device and Synthesis Tool задайте IP Core Generation
как Target workflow, и задают Target platform кроме Generic Xilinx Platform
или Generic Altera Platform
.
Щелкните правой кнопкой по задаче Program Target Device и выберите Run to Selected Task.
В задаче Program Target Device задайте Programming method и запустите эту задачу.
Чтобы узнать больше о HDL Workflow Advisor, смотрите Начало работы с HDL Workflow Advisor.
Чтобы программировать целевое устройство в командной строке, после того, как вы зададите целевой рабочий процесс и целевую платформу в задаче Set Target Device and Synthesis Tool, экспортируют настройки HDL Workflow Advisor в скрипт. В окне HDL Workflow Advisor выберите File> Export to Script. Скрипт создает и конфигурирует hdlcoder.WorkflowConfig
объект, который обозначается hWC
.
Прежде чем вы запустите скрипт, можно задать, как программировать целевой компьютер при помощи ProgrammingMethod
свойство WorkflowConfig
объект. фрагмент кода показывает скрипт в качестве примера, который экспортируется от HDL Workflow Advisor, когда вы используете Download
по умолчанию
Programming method. Чтобы запустить задачу Program Target Device, настройте этот скрипт путем установки
RunTaskProgramTargetDevice
атрибут WorkflowConfig
возразите против true
.
% This script was generated using the following parameter values: % ... % Set properties related to 'RunTaskProgramTargetDevice' Task hWC.RunTaskProgramTargetDevice = true; hWC.ProgrammingMethod = hdlcoder.ProgrammingMethod.Download; % Validate the Workflow Configuration Object hWC.validate; %% Run the workflow hdlcoder.runWorkflow('hdlcoder_led_blinking/led_counter', hWC);
После того, как вы запускаете задачу Build FPGA Bitstream, Советник по вопросам Рабочего процесса предоставляет вам ссылку, чтобы сгенерировать скрипт Рабочего процесса, который программирует целевое устройство, не повторно выполняя предыдущие задачи в Советнике по вопросам Рабочего процесса.
Щелкните по ссылке, чтобы открыть скрипт в Редакторе MATLAB®. Этот фрагмент кода показывает скрипт в качестве примера, который сгенерирован HDL Workflow Advisor. Если близко HDL Workflow Advisor, можно запустить скрипт, чтобы программировать целевой компьютер, не запуская другие задачи рабочего процесса.
% Load the Model % ... % Set Workflow tasks to run hWC.RunTaskGenerateRTLCodeAndIPCore = false; hWC.RunTaskCreateProject = false; hWC.RunTaskGenerateSoftwareInterfaceModel = false; hWC.RunTaskBuildFPGABitstream = false; hWC.RunTaskProgramTargetDevice = true; % Set properties related to 'RunTaskProgramTargetDevice' Task hWC.ProgrammingMethod = hdlcoder.ProgrammingMethod.Download; % Validate the Workflow Configuration Object hWC.validate;
Если вы имеете Embedded Coder® и используете исходные проекты в Xilinx® Zynq® и аппаратных платформах Intel® SoC, генератор кода использует Download
как Programming method по умолчанию.
Когда вы используете Download
как Programming method и запуск задача Program Target Device, HDL Coder™ копирует сгенерированный поток битов FPGA, Linux devicetree и системные скрипты инициализации к SD-карте на Zynqboard, и затем сохраняет поток битов на SD-карте постоянно.
Рекомендуется, чтобы вы использовали Download
метод, потому что этот метод программирует поток битов FPGA и загружает соответствующий Linux devicetree прежде, чем загрузить систему Linux. Поэтому Download
метод более устойчив и не приводит к панике ядра, или ядро висят на, загружаются. Во время перезагрузки Linux поток битов FPGA повторно запрограммирован от SD-карты автоматически.
Задавать Download
как Programming method, когда вы запускаете рабочий процесс с помощью Советника по вопросам Рабочего процесса скрипт, прежде чем вы запустите скрипт, убеждаются что ProgrammingMethod
свойство объекта WorkflowConfig, hWC
, установлен в Download
.
hWC.ProgrammingMethod = hdlcoder.ProgrammingMethod.Download;
Когда вы задаете JTAG
как Programming method и запуск задача Program Target Device, HDL Coder использует кабель JTAG, чтобы программировать целевое устройство SoC. Используйте этот метод, чтобы программировать устройства Intel и Xilinx SoC и автономные платы FPGA.
Для программирования устройств SoC рекомендуется, чтобы вы использовали Download
метод. JTAG
режим не включает процессор ARM и программирует встроенный FPGA непосредственно. Этот режим не обновляет Linux devicetree, и может разрушить систему Linux или привести к панике ядра, когда поток битов не совпадает с devicetree. Чтобы избежать этой ситуации, используйте Download
метод, чтобы программировать устройство SoC.
Автономные платы FPGA Intel и Xilinx не имеют встроенного процессора ARM. JTAG
метод по умолчанию, который вы используете, чтобы программировать платы FPGA.
Задавать JTAG
как Programming method, когда вы запускаете рабочий процесс с помощью Советника по вопросам Рабочего процесса скрипт, прежде чем вы запустите скрипт, изменяют ProgrammingMethod
свойство объекта WorkflowConfig, hWC
, к JTAG
.
hWC.ProgrammingMethod = hdlcoder.ProgrammingMethod.JTAG;
Чтобы программировать целевое устройство, можно задать пользовательский метод программирования, когда вы создаете свой собственный исходный проект. Используйте CallbackCustomProgrammingMethod
из hdlcoder.ReferenceDesign
класс, чтобы указать указатель на функцию для функции обратного вызова, которая выполняется при выполнении задачи Program Target Device. Чтобы задать вашу функцию обратного вызова, создайте файл, который задает функцию MATLAB, и добавьте файл в свой путь MATLAB.
Этот отрывок примера кода показывает файл определения исходного проекта, который использует пользовательский метод программирования. Чтобы узнать больше, смотрите CallbackCustomProgrammingMethod
.
unction hRD = plugin_rd() % Reference design definition % ... % Construct reference design object hRD = hdlcoder.ReferenceDesign('SynthesisTool', 'Xilinx Vivado'); hRD.ReferenceDesignName = 'Parameter Callback Custom'; hRD.BoardName = 'ZedBoard'; % Tool information hRD.SupportedToolVersion = {'2017.2'}; % ... hRD.CallbackCustomProgrammingMethod = @my_reference_design.callback_CustomProgrammingMethod;