writePort
構文
説明
writePort(
は、hFPGA
, portName
, data
)data
で指定した入力データを、端子 portName
のデータ型にキャストし、その端子にマッピングされているインターフェイスにディスパッチしてデータを書き込みます。データを書き込む前に、MATLAB® からターゲットの FPGA または SoC デバイス hFPGA
への接続を設定してから、関数 mapPort
を使用して portName
をそのインターフェイスにマッピングします。
writePort(
は、オプションの引数 hFPGA
, portName
,data
,InterfaceID
)InterfaceID
を使用することで、data
で指定した入力データを、重複している端子 portName
のデータ型にキャストし、その端子にマッピングされているインターフェイスにディスパッチしてデータを書き込みます。
は、データ書き込みが完了したかどうかを示す Valid 信号を返します。valid
=writePort(hFPGA
, portName
, data
)
例
AXI4 スレーブ インターフェイスにマッピングされた DUT 端子へのデータの書き込み
この例では、AXI4 スレーブ インターフェイスにマッピングされた DUT 端子にデータを書き込む方法を示します。
Xilinx
を Vendor
にして fpga
オブジェクトを作成します。
hFPGA = fpga("Xilinx")
hFPGA = fpga with properties: Top-Level Properties Vendor: "Xilinx" Interfaces: [0x0 fpgaio.interface.InterfaceBase]
関数addAXI4SlaveInterface
を使用して、AXI4 スレーブ インターフェイスを hFPGA
オブジェクトに追加します。
%% AXI4 Slave addAXI4SlaveInterface(hFPGA, ... "InterfaceID", "AXI4-Lite", ... "BaseAddress", 0xA0000000, ... "AddressRange", 0x10000);
HDL IP コアの DUT 端子を hdlcoder.DUTPort
オブジェクト配列として指定してから、その端子を AXI4 スレーブ インターフェイスにマッピングします。
hPort_h_in1 = hdlcoder.DUTPort("h_in1", ... "Direction", "IN", ... "DataType", numerictype(1,16,10), ... "Dimension", [1 1], ... "IOInterface", "AXI4-Lite", ... "IOInterfaceMapping", "0x100");
DUT 端子オブジェクトを AXI4 スレーブ インターフェイスにマッピングしてから、関数 writePort
を使用してデータを書き込みます。
mapPort(hFPGA, hPort_h_in1);
writePort(hFPGA, "h_in1", 5);
AXI4-Stream インターフェイスにマッピングされた DUT 端子へのデータの書き込み
この例では、AXI4-Stream インターフェイスにマッピングされた DUT 端子にデータを書き込む方法を示します。
ターゲット デバイス用のオブジェクトを作成します。
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);
DUT 端子を hdlcoder.DUTPort
オブジェクト配列として指定してから、その端子を AXI4-Stream インターフェイスにマッピングします。
hPort = hdlcoder.DUTPort("x_in", ... "Direction", "IN", ... "DataType", numerictype(1,16,10), ... "Dimension", [1 1], ... "IOInterface", "AXI4-Stream");
DUT 端子オブジェクトを AXI4-Stream インターフェイスにマッピングしてから、関数 writePort
を使用してデータを書き込みます。
mapPort(hFPGA, hPort);
writePort(hFPGA, "x_in", sin(linspace(0, 2*pi, 1024)));
重複した端子名をもつ DUT への書き込み
この例では、InterfaceID
引数を使用して、重複した端子名をもつ DUT にデータを書き込む方法を示します。
Xilinx
を Vendor
にして fpga
オブジェクトを作成します。
hFPGA = fpga("Xilinx")
hFPGA = fpga with properties: Top-Level Properties Vendor: "Xilinx" Interfaces: [0x0 fpgaio.interface.InterfaceBase]
関数addAXI4SlaveInterface
を使用して、AXI4 スレーブ インターフェイスを hFPGA
オブジェクトに追加します。
%% AXI4 Slave addAXI4SlaveInterface(hFPGA, ... "InterfaceID", "DUT1_Registers");
HDL IP コアの DUT 端子を hdlcoder.DUTPort
オブジェクト配列として指定してから、その端子を AXI4 スレーブ インターフェイスにマッピングします。
p = hdlcoder.DUTPort("myPort", ... "Direction", "IN", ... "IOInterface", "AXI4-Lite", ... "IOInterfaceMapping", "0x100");
関数addAXI4SlaveInterface
を使用して、AXI4 スレーブ インターフェイスを hFPGA
オブジェクトに追加します。
%% AXI4 Slave addAXI4SlaveInterface(hFPGA, ... "InterfaceID", "DUT2_Registers");
HDL IP コアの DUT 端子を hdlcoder.DUTPort
オブジェクト配列として指定してから、その端子を AXI4 スレーブ インターフェイスにマッピングします。
p = hdlcoder.DUTPort("myPort", ... "Direction", "IN", ... "IOInterface", "AXI4-Lite", ... "IOInterfaceMapping", "0x100");
DUT 端子オブジェクトを AXI4 スレーブ インターフェイスにマッピングしてから、オプションの引数 InterfaceID
を指定した関数 writePort
を使用してデータを書き込みます。
mapPort(hFPGA, p); writePort(hFPGA, "DUT2_Registers", "myPort", 5);
入力引数
hFPGA
— ターゲット FPGA オブジェクト
fpga object
ターゲット ベンダーの fpga
オブジェクト。fpga
オブジェクトとして指定します。
portName
— DUT 端子の名前
string
DUT 端子の名前。string として指定します。DUT 端子を hdlcoder.DUTPort
オブジェクト配列として作成します。portName
を指定する前に、関数 mapPort
を使用して端子を AIX インターフェイスにマッピングしておく必要があります。
data
— 入力データ
Scalar
(既定値) | Vector
DUT 端子 PortName
に書き込む入力データ。スカラーまたはベクトルとして指定します。
InterfaceID
— FPGA インターフェイスの名前
""
| string
FPGA インターフェイスの名前。string として指定します。
出力引数
valid
— 書き込んだデータが有効かどうかを示す true または false の結果
true | false | boolean
書き込んだデータが有効かどうか。boolean
データ型の true または false として返されます。この引数は、WriteTimeout
の値が有限値に設定されていて、端子が AXI4-Stream インターフェイスにマッピングされている場合にのみ使用可能です。
バージョン履歴
R2020b で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)