Чтобы сконфигурировать или программировать соединенное целевое устройство 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;