socHardwareBoard

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

Описание

socHardwareBoard объект представляет связь с заданной аппаратной платой SoC из MATLAB®. Используйте этот объект создать DataRecorder и 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

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

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

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

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

Пример: 'пароль'

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

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

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

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

Связь с определенной аппаратной платой SoC, возвращенной как socHardwareBoard объект. Можно использовать эту связь для регистрации данных входных источников с DataRecorder объект, или можно получить доступ к памяти на плате с помощью 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 объект. Получившийся DataRecorder объект представляет сеанс записи данных на аппаратной плате 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