exponenta event banner

socHardwareBoard

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

Описание

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

Создание

Описание

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

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

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

Пример: '192.168.1.18'

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

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

Пример: 'root'

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

Пароль root, используемый для входа в аппаратную плату SoC, подключенную к сети, указанный как пара, разделенная запятыми, состоящая из '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-порта аппаратной платы 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)

Запишите данные на плату SoC в течение 60 секунд.

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 или блок источника данных ввода-вывода в модели Simulink ®.

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

removeSource(dr,'UDPDataReceived-Port25000')

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

ans =

  1×0 empty cell array                       

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

Загрузить a .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