exponenta event banner

readmemory

Прочитайте данные из AXI4 нанесенные на карту памятью рабы

Описание

пример

data = readmemory(mem,addr,size) читает size местоположения данных, начиная с адреса, указанного в addrи увеличение адреса для каждого слова. По умолчанию тип выходных данных: uint32. addr, должно относиться к расположению ведомой памяти AXI, управляемому ведущим IP AXI на вашей аппаратной плате. socAXIMaster объект, memуправляет соединением между MATLAB ® и ведущим IP-адресом AXI.

data = readmemory(mem,addr,size,Name,Value) читает size местоположения данных, начиная с адреса, указанного в addr, с дополнительными опциями, указанными одним или несколькими Name,Value аргументы пары.

Примеры

свернуть все

В этом примере на аппаратной плате, подключенной к хост-машине MATLAB, должна выполняться конструкция.

Создайте главный объект MATLAB AXI. Объект соединяется с платой аппаратных средств и подтверждает наличие IP-адреса. Можно создать объект с именем поставщика или socHardwareBoard объект.

mem = socAXIMaster('Xilinx');

Запись и чтение одного или нескольких адресов с помощью одной команды. По умолчанию функции автоматически увеличивают адрес для каждого слова данных. Например, запишите десять адресов, затем считайте данные обратно из одного местоположения.

writememory(mem,140,[10:19])
rd_d = readmemory(mem,140,1)
rd_d =

  uint32

   10

Теперь прочтите записанные данные из десяти мест.

rd_d = readmemory(mem,140,10)
rd_d =

  1×10 uint32 row vector

   10   11   12   13   14   15   16   17   18   19

Установите BurstType свойство для 'Fixed' для отключения автоматического приращения и многократного доступа к одному и тому же адресу. Например, считывайте записанные данные десять раз с одного и того же адреса.

rd_d = readmemory(mem,140,10,'BurstType','Fixed')
rd_d =

  1×10 uint32 row vector

   10   10   10   10   10   10   10   10   10   10

Запишите приращение данных в десять раз на один и тот же адрес. Окончательное значение, сохраненное в адресе 140 является 29.

writememory(mem,140,[20:29],'BurstType','Fixed')
rd_d = readmemory(mem,140,10)
rd_d =

  1×10 uint32 row vector

   29   11   12   13   14   15   16   17   18   19

Либо укажите адрес как шестнадцатеричную строку. Приведение считанных данных к типу данных, отличному от uint32, используйте OutputDataType собственность.

writememory(mem,'1c',[0:4:64])
rd_d = readmemory(mem,'1c',16,'OutputDataType',numerictype(0,6,4))
rd_d = 

  Columns 1 through 10
         0    0.2500    0.5000    0.7500    1.0000    1.2500    1.5000    1.7500    2.0000    2.2500
  Columns 11 through 16
    2.5000    2.7500    3.0000    3.2500    3.5000    3.7500

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Unsigned
            WordLength: 6
        FractionLength: 4

После завершения доступа к плате отпустите соединение JTAG.

release(mem)

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

свернуть все

Подключение JTAG к ведущему IP-интерфейсу AXI, работающему на вашей аппаратной плате, указанное как socAXIMaster объект.

Начальный адрес для операции чтения, заданный как целое число или шестнадцатеричный символьный вектор. Функция приводит адрес к uint32 тип данных. Адрес должен относиться к расположению ведомой памяти AXI, управляемому ведущим IP-адресом AXI на аппаратной плате.

Пример: 'a4'

Количество считываемых ячеек памяти, указанное как целое число. По умолчанию функция считывает из смежного блока адресов, увеличивая адрес для каждой операции. Чтобы отключить приращение адреса и многократное чтение из одного и того же местоположения, установите значение BurstType свойство для 'Fixed'.

При указании большого размера операции, например при считывании блока памяти DDR, объект автоматически разбивает операцию на несколько пакетов, используя максимальный поддерживаемый размер пакета. Максимальный поддерживаемый размер пакета - 256 слов.

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

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

Пример: readmemory(mem,140,10,'BurstType','Fixed')

AXI4 тип пакета, указанный как разделенная запятыми пара, состоящая из 'BurstType' и либо 'Increment' или 'Fixed'. Если это значение равно 'Increment', мастер AXI считывает вектор данных из смежных ячеек памяти, начиная с указанного адреса. Если это значение равно 'Fixed', мастер AXI считывает все данные с одного адреса.

Тип данных, назначенный считанным данным, указанный как 'uint32', 'int8', 'int16', 'int32', 'uint8', 'uint16', 'single', или numerictype объект.

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

свернуть все

Считывание данных, возвращаемых в виде скаляра или вектора в зависимости от значения, указанного для size. Функция приводит данные к типу данных, указанному OutputDataType собственность.

См. также

Представлен в R2019a