hdlcoder.DUTPort

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

Описание

Этот объект представляет каждое имя порта DUT от сгенерированного ядра IP HDL Coder™. Объект представляет порты вашего DUT на целевом компьютере. Когда вы генерируете ядро IP HDL путем выполнения IP Core Generation рабочий процесс, вы сопоставляете порты с ведомым устройством AXI4 или AXI4-потоковыми интерфейсами. Объект порта содержит информацию об этих портах DUT и интерфейсах, это сопоставлено с, на основе информации об отображении интерфейса в таблице интерфейса Целевой платформы Цели Набора Интерфейсная задача. После того, как вы используете 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-облегченного Интерфейса. После того, как вы создадите объект, можно сопоставить порт с интерфейсом 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-потокового Интерфейса. После того, как вы создадите объект, можно сопоставить порт с интерфейсом 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