socHardwareBoard

Подключение к аппаратной плате SoC

Описание

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

Создание

Описание

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

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

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

пример

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

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

расширить все

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

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

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

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

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

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

Пример: '192.168.1.18'

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

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

Пример: 'root'

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

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

Пример: 'password'

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

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

расширить все

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

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

Свойства

расширить все

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

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

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

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

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

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

Пример: '192.168.1.11'

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

Это свойство не может быть изменено.

Номер IP-порта аппаратной платы СнК.

Пример: 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 в рабочей папке хост-компьютера. Вы можете считать этот файл, используя socFileReader объект в MATLAB или блок IO Data Source в Simulink® модель.

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

removeSource(dr,'UDPDataReceived-Port25000')

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

ans =

  1×0 empty cell array                       

Для примера того, как сконфигурировать и использовать мастер-IP AXI в вашем проекте, смотрите Random Access of External Memory. В частности, проверьте soc_image_rotation_axi_master.m скрипт, который инициализирует память на устройстве, запускает логику FPGA и считывает измененные данные. В этом примере показан только шаг инициализации памяти.

Загрузка .mat файл, содержащий структуры, выведенные из параметров конфигурации платы. Этот файл был сгенерирован SoC Builder. Эти структуры также описывают IP-ядра и строение памяти проекта на плате. Настройте главное соединение JTAG AXI путем создания socHardwareBoard и передав его в socAXIMaster объект. The 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