Связь с аппаратной платой SoC
socHardwareBoard
объект представляет связь с заданной аппаратной платой SoC от MATLAB®. Используйте этот объект создать soc.recorder
и socAXIMaster
объекты, которые записывают входные данные и память доступа на заданной аппаратной плате SoC.
возвращает список поддерживаемых аппаратных плат SoC.hwList
= socHardwareBoard()
создает связь с заданной аппаратной платой SoC. Эта связь снова использует IP-адрес, имя пользователя, и пароль от новой связи до этого задал аппаратную плату SoC. Когда вы соединяете MATLAB с аппаратной платой SoC впервые, вводите имя платы, IP-адрес, имя пользователя и пароль аппаратной платы SoC как аргументы пары "имя-значение".hw
= socHardwareBoard(BoardName
)
Чтобы видеть полный список поддерживаемых аппаратных плат SoC, вызовите socHardwareBoard
функция без любых аргументов.
создает связь с заданным оборудованием SoC при помощи IP-адреса, имени пользователя и пароля, который вы задаете. hw
= socHardwareBoard(boardName
,Name,Value
)
boardName
— Имя поддерживаемой аппаратной платы SoCИмя поддерживаемой аппаратной платы SoC, заданной как вектор символов или скаляр строки. Задайте имя аппаратной платы, к которой вы хотите установить связь из MATLAB. Чтобы получить список плат поддерживаемого оборудования, вызовите socHardwareBoard
функция без любых аргументов.
Пример: 'Xilinx Zynq ZC706 evaluation kit'
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
'username'
, 'root'
'hostname'
— IP-адрес аппаратной платы SoCIP-адрес аппаратной платы SoC соединяется с сетью, заданной как разделенная запятой пара, состоящая из 'hostname'
и вектор символов или скаляр строки.
Пример: '192.168.1.18'
Типы данных: char |
string
'username'
— Корневое имя пользователя раньше регистрировало в аппаратную плату SoCКорневое имя пользователя раньше входило в систему в аппаратную плату SoC, соединенную с сетью, заданной как разделенная запятой пара, состоящая из 'username'
и вектор символов или скаляр строки.
Пример: 'корень'
Типы данных: char |
string
'password'
— Пароль root раньше регистрировал в аппаратную плату SoCПароль root раньше входил в систему в аппаратную плату SoC, соединенную с сетью, заданной как разделенная запятой пара, состоящая из 'password'
и вектор символов или скаляр строки.
Пример: 'пароль'
Типы данных: char |
string
hwList
— Список поддерживаемых аппаратных плат SoCСписок аппаратных плат SoC, которые поддерживаются для регистрации данных, возвращенной как массив строк.
hw
— Связь с определенной аппаратной платой SoCsocHardwareBoard
объектСвязь с определенной аппаратной платой SoC, возвращенной как socHardwareBoard
объект. Можно использовать эту связь в регистрации данных входных источников с soc.recorder
объект, или можно получить доступ к памяти на плате с помощью socAXIMaster
объект.
BoardName
— Имя поддерживаемой аппаратной платы SoCЭто свойство не может быть изменено после того, как вы создадите socHardwareBoard
объект.
Имя поддерживаемой аппаратной платы SoC, заданной как символьный массив или скаляр строки.
Пример:
'Xilinx Zynq ZC706 evaluation kit'
Типы данных: char |
string
DeviceAddress
— IP-адрес аппаратной платы SoCЭто свойство не может быть изменено после того, как вы создадите socHardwareBoard
объект.
IP-адрес аппаратной платы SoC, заданной как символьный массив или скаляр строки.
Пример:
'192.168.1.11'
Типы данных: char |
string
Port
— Номер порта IP аппаратной платы SoCЭто свойство не может быть изменено.
Номер порта 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)));
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.