exponenta event banner

writememory

Напишите данные AXI4 нанесенные на карту памятью рабы

Описание

пример

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

writememory(mem,addr,data,Name,Value) записывает все слова, указанные в data, начиная с адреса, указанного в 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' .

Перед отправкой запроса на запись на плату функция передает входные данные в uint32 или int32 тип данных. Преобразование типа данных выполняется по следующим правилам:

  • Если входной тип данных double, то данные приводятся к int32 тип данных.

  • Если входной тип данных single, то данные приводятся к uint32 тип данных.

  • Если битовая ширина входного типа данных меньше 32 бит, то данные расширяются до 32 бит.

  • Если битовая ширина входного типа данных превышает 32 бита, то данные приводятся к int32 или uint32 тип данных, соответствующий сигнатуре исходного типа данных.

  • Если входные данные являются типом данных с фиксированной точкой, то функция записывает сохраненное целое значение данных.

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

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

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

Пример: writememory(mem,140,[20:29],'BurstType','Fixed')

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

См. также

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