メインコンテンツ

hdlcoder.DUTPort

オブジェクト配列として保存された、HDL Coder で生成された IP コアの DUT 端子

説明

このオブジェクトは、HDL Coder™ で生成された IP コアの各 DUT 端子名を表します。このオブジェクトは、ターゲット ハードウェア上の DUT の端子を表します。IP Core Generation ワークフローを実行して HDL IP コアを生成する場合は、端子を AXI4 スレーブまたは AXI4-Stream インターフェイスにマッピングします。端子オブジェクトには、ターゲット インターフェイスを設定のタスクのターゲット プラットフォーム インターフェイス テーブルのインターフェイス マッピング情報に基づいて、これらの DUT 端子およびマップ先のインターフェイスに関する情報が含まれます。関数 mapPort を使用した後に、関数 writePort および readPort を使用して、DUT 端子との間で書き込みおよび読み取りを行うことができます。

作成

説明

hPort = hdlcoder.DUTPort(Name) は、名前と値のペアの引数で追加プロパティを指定して、DUT 端子オブジェクトをオブジェクト配列として作成します。

プロパティ

すべて展開する

元のモデル内の DUT サブシステムの入力端子または出力端子の名前。IP Core Generation ワークフローを実行する際に、ターゲット プラットフォーム インターフェイス テーブルの [端子名] セクションからこの情報を取得します。

例: hPort = hdlcoder.DUTPort("h_in", ...)

データ型: string | char

DUT 端子の方向。INOUT、または INOUT として指定します。端子の方向 INOUT は、AXI4 および AXI4-Lite インターフェイスでのみサポートされています。

例: hPort = hdlcoder.DUTPort(..., "Direction", "OUT", ...)

データ型: char

DUT 端子での複素数データ。true または false として指定します。HDL Coder では、AXI4-Stream インターフェイスでの複素数データ ストリーミングがサポートされています。この設定は、AXI4-Stream インターフェイスでのみサポートされています。

例: hPort = hdlcoder.DUTPort(..., "IsComplex", "true", ...)

データ型: char

AXI インターフェイスにマッピングされる DUT 端子のデータ型。uint32numerictype オブジェクトなどの MATLAB® 数値型として指定します。IP Core Generation ワークフローを実行する際に、ターゲット プラットフォーム インターフェイス テーブルの [データ型] セクションからこの情報を取得します。

例: hPort = hdlcoder.DUTPort(..., "DataType", numerictype(1,16,10), ... )

データ型: uint8 | uint16 | uint32 | uint64

AXI インターフェイスにマッピングされる DUT 端子の次元。整数配列または他の任意のデータ型として指定します。次元は、マップされる端子がスカラーかベクトルかによって異なります。Dimension は、スカラー端子の場合は [1 1]N 次元ベクトル端子の場合は [1 N] です。IP Core Generation ワークフローを実行する際に、ターゲット プラットフォーム インターフェイス テーブルの [データ型] セクションからこの情報を取得します。

例: hPort = hdlcoder.DUTPort(..., "Dimension", [1 6], ...)

データ型: int8 | int16 | int32 | int64 | single | double

DUT 端子のマッピング先のターゲット プラットフォーム インターフェイス。string または文字配列として指定します。IP Core Generation ワークフローを実行する際に、ターゲット プラットフォーム インターフェイス テーブルの [ターゲット プラットフォーム インターフェイス] セクションからこの情報を取得します。

例: hPort = hdlcoder.DUTPort(..., "IOInterface", "AXI4-Lite")

データ型: string | char

ターゲット プラットフォーム インターフェイス マッピング情報。文字配列、string 配列、または数値型として指定します。

例: 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]
    

関数addAXI4SlaveInterfaceを使用して、AXI4 スレーブ インターフェイスを hFPGA オブジェクトに追加します。

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

AXI4-Lite インターフェイス用の hdlcoder.DUTPort オブジェクトを作成します。オブジェクトを作成した後に、関数 mapPort を使用して端子を IO インターフェイスにマッピングできます。

% ...
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]
    

関数 addAXI4StreamInterface を使用して、AXI4-Stream インターフェイスを hFPGA オブジェクトに追加します。

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

AXI4-Stream インターフェイス用の hdlcoder.DUTPort オブジェクトを作成します。オブジェクトを作成した後に、関数 mapPort を使用して端子を IO インターフェイスにマッピングできます。

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 で導入