hdlcoder.DUTPort

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

Описание

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

Создание

Описание

пример

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

Свойства

расширить все

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

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

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

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

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

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

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

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

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

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

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

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

Целевой интерфейс платформы, которому сопоставлен порт DUT, заданный как строковый или символьный массив. Когда вы запускаете IP Core Generation рабочий процесс, вы получаете эту информацию из Target Platform Interfaces раздела таблицы интерфейсов целевой платформы.

Пример: 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. После создания объекта можно сопоставить порт с интерфейсом IO при помощи 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. После создания объекта можно сопоставить порт с интерфейсом IO при помощи 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