Чтобы сконфигурировать или запрограммировать подключенное целевое устройство SoC или плату FPGA, используйте IP Core Generation
рабочий процесс в HDL Workflow Advisor.
Откройте HDL Workflow Advisor. Щелкните правой кнопкой мыши Подсистему DUT, содержащую алгоритм, который будет развернут на целевом 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
Объект .This кода snippet показывает пример скрипта, который экспортируется из 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 задачи советник по рабочему процессу предоставляет вам ссылку для генерации скрипта Workflow, который программирует целевое устройство, не перезапуская предыдущие задачи в Workflow Advisor.
Щелкните ссылку, чтобы открыть скрипт в MATLAB® Редактор. Этот фрагмент кода показывает пример скрипта, который генерируется HDL Workflow Advisor. Если закрыть HDL Workflow Advisor, можно запустить скрипт, чтобы запрограммировать целевой компьютер, не выполняя других задач рабочего процесса.
% Load the Model % ... % Set Workflow tasks to run hWC.RunTaskGenerateRTLCodeAndIPCore = false; hWC.RunTaskCreateProject = false; hWC.RunTaskGenerateSoftwareInterface = 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;
Если вы используете исходные проекты для Zynq® и Intel® Аппаратные платформы SoC, генератор кода использует Download
как значение по умолчанию Programming method.
Когда вы используете Download
при Programming method и запуске Program Target Device задачи HDL- Coder™ копирует сгенерированный битовый поток FPGA, Linux devicetree и скрипты инициализации системы на SD-карту на целевой плате, а затем сохраняет битовый поток на SD-карте постоянно. Чтобы использовать этот метод программирования, вам не требуется Embedded Coder® лицензия. Можно создать объект SSH путем определения IP Address, SSH Username и SSH Password. HDL Coder использует SSH копируемого объекта битовый поток на карту SD и перепрограммирует плату.
Рекомендуется, чтобы вы использовали Download
метод, поскольку этот метод программирует битовый поток FPGA и загружает соответствующий Linux devicetree перед загрузкой системы Linux. Поэтому Download
метод является более устойчивым и не приводит к панике ядра или зависанию ядра при загрузке. Во время перезагрузки Linux битовый поток FPGA перепрограммируется с карты SD автоматически. Чтобы задать Download
как Programming method, когда вы запускаете рабочий процесс с помощью скрипта Workflow Advisor, прежде чем запускать скрипт, убедитесь, что ProgrammingMethod
свойство объекта WorkflowConfig, hWC
, установлено в Download
.
hWC.ProgrammingMethod = hdlcoder.ProgrammingMethod.Download;
Когда вы задаете JTAG
в качестве Programming method и запуска Program Target Device задачи HDL Coder использует кабель для программирования целевого однокристального устройства. Используйте этот метод для программирования Intel и Xilinx® SoC-устройства и автономные платы FPGA.
Для программирования SoC-устройств рекомендуется использовать Download
способ. The JTAG
режим не включает процессор ARM и программирует встроенный FPGA непосредственно. Этот режим не обновляет Linux devicetree и может аварийно завершить работу системы Linux или привести к панике ядра, когда битовый поток не соответствует devicetree. Чтобы избежать этой ситуации, используйте Download
метод для программирования устройства СоК.
Автономные платы Intel и Xilinx FPGA не имеют встроенного процессора ARM. JTAG
является методом по умолчанию, который используется для программирования плат FPGA.
Чтобы задать JTAG
как Programming method, когда вы запускаете рабочий процесс с помощью скрипта Workflow Advisor, прежде чем запускать скрипт, измените 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;