場合によっては、ツールで自動的に推論させるのではなく、ユーザーがインターフェイスの推論される順序を指定する必要があることがあります。インターフェイスの推論順序は、モジュール参照機能を使用すると変更できます。インターフェイスを推論するのに使用できる属性は複数あります。
特定のインターフェイスでは、標準のものとわずかに異なる物理的なピン (ポート) 名が付いていることがあります。このような場合は、Tcl コマンド ラインに次の属性を指定する必要があります。
(* X_INTERFACE_INFO = "xilinx.com:interface:axis:1.0 axi_stream_s2c TREADY"
*)output axi_stream_s2c_tready,
この属性は HDL コードのポート定義の上に挿入され、推論されるインターフェイスは、VLNV が xilinx.com:interface:axis:1.0
、名前が axi_stream_s2C
、論理ピン名が TREADY
で、物理ピン名 axi_stream_s2c_tready
にマップされるようになっています。この属性は、その他の推論される属性よりも一番優先されます。
動作やポートのわずかに異なるインターフェイスが複数バージョンある場合は、X_INTERFACE_PRIORITY_LIST
属性を使用して優先順位を決めてください。この Verilog の構文は、次のとおりです。
(* X_INTERFACE_PRIORITY_LIST = "xilinx.com:dsv:dsv_axis:3.0" *)
module axi_stream_gen_check #(
....
....
)
VHDL 構文は、次のようになります。
entity HDMI_TX_INTF is
Port (
-- put ports here
);
attribute X_INTERFACE_PRIORITY_LIST : string;
attribute X_INTERFACE_PRIORITY_LIST of HDMI_TX_INTF : entity is
"xilinx.com:user:my_hdmi:3.0 xilinx.com:cust:cust_hdmi:4.0";
end HDMI_TX_INTF;
この属性では、リポジトリ内のその他同様のインターフェイス タイプではなく、指定したインターフェイスが推論されます。この属性は、Verilog ではモジュール定義前、VHDL ではエンティティ本体に挿入する必要があります。この属性の優先順位は 2 番目です。
インターフェイスは、次のコード例に示すように、プロジェクトにプロパティを追加しても推論できます。
set_property ip_interface_inference_priority xilinx.com:user:my_axis:2.0
[current_project]
この優先順位は 3 番目です。
最後に、プロジェクトの設定でのリポジトリ順序によって、推論順序が決まります。次の図に示すように、プロジェクトに追加されるカスタム インターフェイスを含むリポジトリは 2 つあります。次のリポジトリが一番上で指定されるとします。
C:/tutorials/2018.2/if_12/if_repo
これは、次よりも優先されます。
C:/tutorials/2018.2/mod_ref/if_12/myipdir.
通常、命名規則に従っていれば、プロジェクトにリポジトリを追加するだけでインターフェイスが推論されるはずです。次の図を参照してください。