exponenta event banner

hdlcoder. DUTPort

Порт DUT из созданного ядра IP кодера HDL, сохраненный как массив объектов

Описание

Этот объект представляет каждое имя порта DUT из образованного Coder™ HDL ядра IP. Объект представляет порты DUT на целевом оборудовании. При создании IP-ядра HDL с помощью IP Core Generation , порты сопоставляются с AXI4 подчиненными или AXI4-Stream интерфейсами. Объект порта содержит информацию об этих портах DUT и интерфейсах, на которые он сопоставлен, на основе информации о сопоставлении интерфейсов в таблице интерфейса целевой платформы задачи Set Target Interface. После использования mapPort , вы можете записывать или считывать из портов DUT с помощью writePort и.readPort функции.

Создание

Описание

пример

hPort = hdlcoder.DUTPort(Name) создает объект порта DUT в виде массива объектов с дополнительными свойствами, заданными аргументами пары имя-значение.

Свойства

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

Имя входного или выходного порта подсистемы DUT в исходной модели. При запуске IP Core Generation эту информацию можно получить в разделе Имя порта таблицы интерфейса целевой платформы.

Пример: hPort = hdlcoder.DUTPort("h_in", ...)

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

Направление порта DUT, указанное как IN или OUT.

Пример: hPort = hdlcoder.DUTPort(..., "Direction", "OUT", ...)

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

Тип данных порта DUT, сопоставленного с интерфейсом AXI, указанный как числовой тип MATLAB ®, например uint32 или numerictype объект. При запуске IP Core Generation эту информацию можно получить из раздела Тип данных таблицы Интерфейс целевой платформы.

Пример: hPort = hdlcoder.DUTPort(..., "DataType", numerictype(1,16,10), ... )

Типы данных: uint8 | uint16 | uint32 | uint64

Размеры порта DUT, сопоставленного с интерфейсом AXI, заданного как целочисленный массив или любой другой тип данных. Размеры зависят от того, является ли сопоставленный порт скаляром или вектором. Для скалярного порта: Dimension является [1 1], и для N-мерный векторный порт, он [1 N]. При запуске IP Core Generation эту информацию можно получить из раздела Тип данных таблицы Интерфейс целевой платформы.

Пример: hPort = hdlcoder.DUTPort(..., "Dimension", [1 6], ...)

Типы данных: int8 | int16 | int32 | int64 | single | double

Интерфейс целевой платформы, с которым сопоставлен порт DUT, указанный как строка или символьный массив. При запуске IP Core Generation эту информацию можно получить из раздела Интерфейсы целевой платформы таблицы Интерфейс целевой платформы.

Пример: hPort = hdlcoder.DUTPort(..., "IOInterface", "AXI4-Lite")

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

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

Пример: hPort = hdlcoder.DUTPort(..., "IOInterfaceMapping", "0x100")

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

Примеры

свернуть все

Создание fpga объект для подключения к целевому устройству и последующего использования hdlcoder.DUTPort для указания порта DUT.

Создание fpga объект для целевого устройства.

hFPGA = fpga("Xilinx")
hFPGA = 

  fpga with properties:

       Vendor: "Xilinx"
   Interfaces: [0x0 fpgaio.interface.InterfaceBase]
    

Добавьте подчиненный интерфейс AXI4 к hFPGA с помощью addAXI4SlaveInterface функция.

%% AXI4-Lite
addAXI4SlaveInterface(hFPGA, ...
	"InterfaceID", "AXI4-Lite", ...
	"BaseAddress", 0xA0000000, ...
	"AddressRange", 0x10000);

Создать hdlcoder.DUTPort для интерфейса AXI4-Lite. После создания объекта можно сопоставить порт с интерфейсом ввода-вывода с помощью mapPort функция.

% ...
hPort_h_in1 = hdlcoder.DUTPort("h_in1", ...
	"Direction", "IN", ...
	"DataType", numerictype(1,16,10), ...
	"Dimension", [1 1], ...
	"IOInterface", "AXI4-Lite", ...
	"IOInterfaceMapping", "0x100");

mapPort(hFPGA, hPort_h_in1);

 
hPort_h_in1 = 

  DUTPort with properties:

                  Name: "h_in1"
             Direction: IN
              DataType: [1×1 embedded.numerictype]
             Dimension: [1 1]
           IOInterface: "AXI4-Lite"
    IOInterfaceMapping: "0x100"

Создание fpga объект для подключения к целевому устройству и последующего использования hdlcoder.DUTPort для указания порта DUT.

Создание fpga объект.

hFPGA = fpga("Xilinx")
hFPGA = 

  fpga with properties:

       Vendor: "Xilinx"
   Interfaces: [0x0 fpgaio.interface.InterfaceBase]
    

Добавьте интерфейс AXI4-Stream в hFPGA с помощью addAXI4StreamInterface функция.

%% AXI4-Stream
addAXI4StreamInterface(hFPGA, ...
	"InterfaceID", "AXI4-Stream", ...
	"WriteEnable", true, ...
       "ReadEnable", true, ...
	"WriteFrameLength", 1024, ...
	"ReadFrameLength", 1024);

Создать hdlcoder.DUTPort для интерфейса AXI4-Stream. После создания объекта можно сопоставить порт с интерфейсом ввода-вывода с помощью mapPort функция.

hPort_x_in_data = hdlcoder.DUTPort("x_in_data", ...
	"Direction", "IN", ...
	"DataType", numerictype(1,16,10), ...
	"Dimension", [1 1], ...
	"IOInterface", "AXI4-Stream")

hPort_y_out_data = hdlcoder.DUTPort("y_out_data", ...
	"Direction", "OUT", ...
	"DataType", numerictype(1,32,20), ...
	"Dimension", [1 1], ...
	"IOInterface", "AXI4-Stream")

mapPort(hFPGA, [hPort_x_in_data, hPort_y_out_data]);
 hPort_x_in_data = 

  DUTPort with properties:

                  Name: "x_in_data"
             Direction: IN
              DataType: [1×1 embedded.numerictype]
             Dimension: [1 1]
           IOInterface: "AXI4-Stream"
    IOInterfaceMapping: ""

hPort_y_out_data = 

  DUTPort with properties:

                  Name: "y_out_data"
             Direction: OUT
              DataType: [1×1 embedded.numerictype]
             Dimension: [1 1]
           IOInterface: "AXI4-Stream"
    IOInterfaceMapping: ""

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