socHardwareBoard

Связь с аппаратной платой SoC

Описание

Объект socHardwareBoard представляет связь с заданной аппаратной платой SoC от MATLAB®. Используйте этот объект создать soc.recorder, и socAXIMaster возражает что входные данные записи и память доступа на заданной аппаратной плате SoC.

Создание

Синтаксис

hwList = socHardwareBoard()
hw = socHardwareBoard(BoardName)
hw = socHardwareBoard(boardName,Name,Value)

Описание

hwList = socHardwareBoard() возвращает список поддерживаемых аппаратных плат SoC.

hw = socHardwareBoard(BoardName) создает связь с заданной аппаратной платой SoC. Эта связь снова использует IP-адрес, имя пользователя, и пароль от новой связи до этого задал аппаратную плату SoC. Когда вы соединяете MATLAB с аппаратной платой SoC впервые, вводите имя платы, IP-адрес, имя пользователя и пароль аппаратной платы SoC как аргументы пары "имя-значение".

Чтобы видеть полный список поддерживаемых аппаратных плат SoC, вызовите функцию socHardwareBoard без любых аргументов.

пример

hw = socHardwareBoard(boardName,Name,Value) создает связь с заданным оборудованием SoC при помощи IP-адреса, имени пользователя и пароля, который вы задаете.

Входные параметры

развернуть все

Имя поддерживаемой аппаратной платы SoC, заданной как вектор символов или скаляр строки. Задайте имя аппаратной платы, к которой вы хотите установить связь из MATLAB. Чтобы получить список плат поддерживаемого оборудования, вызовите функцию socHardwareBoard без любых аргументов.

Пример: 'Xilinx Zynq ZC706 evaluation kit'

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'username', 'root'

IP-адрес аппаратной платы SoC соединяется с сетью, заданной как пара, разделенная запятой, состоящая из 'hostname' и вектора символов.

Пример: '192.168.1.18'

Типы данных: char

Номер порта IP аппаратной платы SoC, заданной как целое число.

Пример: 18735

Типы данных: double

Корневое имя пользователя раньше входило в систему в аппаратную плату SoC, соединенную с сетью, заданной как пара, разделенная запятой, состоящая из 'username' и вектора символов.

Пример: 'корень'

Типы данных: char

Пароль root раньше входил в систему в аппаратную плату SoC, соединенную с сетью, заданной как пара, разделенная запятой, состоящая из 'username' и вектора символов.

Пример: 'корень'

Типы данных: char

Выходные аргументы

развернуть все

Список аппаратных плат SoC, которые поддерживаются для регистрации данных, возвращенной как массив строк.

Связь с определенной аппаратной платой SoC, возвращенной как объект socHardwareBoard. Можно использовать эту связь для регистрации данных входных источников с объектом soc.recorder, или можно получить доступ к памяти на плате с помощью объекта socAXIMaster.

Свойства

развернуть все

Это свойство не может быть изменено после того, как вы создадите объект socHardwareBoard.

Имя поддерживаемой аппаратной платы SoC, заданной как символьный массив.

Пример: 'Xilinx Zynq ZC706 evaluation kit'

Типы данных: char

Это свойство не может быть изменено после того, как вы создадите объект socHardwareBoard.

IP-адрес аппаратной платы SoC, заданной как символьный массив.

Пример: '192.168.1.11'

Типы данных: char

Это свойство не может быть изменено после того, как вы создадите объект socHardwareBoard.

Номер порта IP аппаратной платы SoC, заданной как целое число.

Пример: 18735

Типы данных: double

Примеры

свернуть все

Создайте связь от MATLAB до заданной аппаратной платы SoC с помощью IP-адреса, имени пользователя и пароля платы.

hw = socHardwareBoard('Xilinx Zynq ZC706 evaluation kit','hostname','192.168.1.18','username','root','password','root');

Создайте сеанс записи данных на аппаратной плате SoC при помощи объекта hw. Получившийся объект soc.recorder представляет сеанс записи данных на аппаратной плате SoC.

dr = soc.recorder(hw)
dr = 

  DataRecorder with properties:

          HardwareName: 'Xilinx Zynq ZC706 evaluation kit'
               Sources: {}                            
             Recording: false                         

Перечислите входные источники, добавленные к сеансу записи данных.

dr.Sources(hw)
ans =

  1×0 empty cell array                       

По умолчанию объекты soc.recorder не имеют никаких добавленных входных источников. Чтобы добавить входной источник в сеанс записи данных, сначала создайте входной исходный объект при помощи функции soc.iosource. В данном примере создайте исходный объект Пользовательского дейтаграммного протокола (UDP).

udpSrc = soc.iosource(hw,'UDP Receive')
udpSrc = 

  soc.iosource.UDPRead with properties:

   Main
              LocalPort: 25000
             DataLength: 1
               DataType: 'uint8'
      ReceiveBufferSize: -1
           BlockingTime: 0
    OutputVarSizeSignal: false
             SampleTime: 0.1000
         HideEventLines: true

  Show all properties

Добавьте этот исходный объект UDP в сеанс записи данных при помощи функции объекта addSource.

addSource(dr,udpSrc,'UDPDataReceived-Port25000')

Проверьте результат путем осмотра свойства Sources объекта soc.recorder.

dr.Sources
ans =

  1×1 cell array

    {'UDPDataOnPort25000'}                        

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

setup(dr)

Данные записи в течение 60 секунд на аппаратной плате SoC.

record(dr, 60);

Проверяйте состояние сеанса записи данных при помощи функции объекта isRecording. Состоянием записи, когда запись данных происходит, является 1.

recordingStatus = isRecording(dr)
recordingStatus =

  logical

   1

Состоянием записи, когда запись данных завершена, является 0.

isRecording(dr)
recordingStatus =

  logical

   0

Сохраните зарегистрированные данные в TGZ-сжатый-файл.

save(dr,'UDPDataReceived','UDP Data Testing',{'Recorded On Zynq Board'})

Эта функция сохраняет записанные данные как файл UDPDataReceived.tgz в вашей рабочей папке PC хоста. Можно считать этот файл при помощи объекта socFileReader в MATLAB или блока IO Data Source в модели Simulink®.

Удалите добавленный источник из сеанса записи данных при помощи функции объекта removeSource.

removeSource(dr,'UDPDataReceived-Port25000')

Проверьте результат путем осмотра свойства Sources объекта soc.recorder.

ans =

  1×0 empty cell array                       

Для примера того, как сконфигурировать и использовать основной IP AXI в вашем проекте, смотрите Произвольный доступ Внешней памяти. А именно, рассмотрите скрипт soc_image_rotation_axi_master.m, который инициализирует память на устройстве, запускает логику FPGA и считывает назад измененные данные. Этот пример показывает только шаг инициализации памяти.

Загрузите файл .mat, который содержит структуры, выведенные от параметров конфигурации платы. Этот файл был сгенерирован SoC Builder. Эти структуры также описывают ядра IP и конфигурацию памяти проекта на плате. Настройте ведущую связь JTAG AXI путем создания socHardwareBoard и передачи его объекту socAXIMaster. Объект socAXIMaster соединяется с аппаратной платой и подтверждает, что IP присутствует.

load('soc_image_rotation_zc706_aximaster.mat');
hwObj = socHardwareBoard('Xilinx Zynq ZC706 evaluation kit','Connect',false);
AXIMasterObj = socAXIMaster(hwObj);

Инициализируйте содержание памяти на устройстве путем загрузки данных фигуры и записи его в Region1. Логика FPGA разработана, чтобы считать эти данные, вращать их и записать его в Region2. Очистите содержимое Region2.

load('soc_image_rotation_inputdata.mat');
inputFigure = smallImage;
[x, y] = size(inputFigure);
inputImage = uint32(reshape(inputFigure',1,x*y));
writememory(AXIMasterObj,memRegions.AXI4MasterMemRegion1,inputImage);
writememory(AXIMasterObj,memRegions.AXI4MasterMemRegion2,uint32(zeros(1,x*y)));

Смотрите также

| |

Введенный в R2019a