PFM.AXI_PORT
プロパティを設定する Tcl コマンドは次のとおりです。
set_property PFM.AXI_PORT { <port_name> {parameters} \
<port2> {parameters} ...} [get_bd_cells <cell_name>]
引数の説明
- Port_name
- AXI ポート名。
- パラメーター
-
-
memport
type: メモリ インターフェイスのポート タイプに該当。有効な type 値は、次のとおりです。-
M_AXI_GP
: 汎用 AXI マスター ポート -
S_AXI_HP
: 高パフォーマンスの AXI スレーブ ポート -
S_AXI_ACP
: アクセラレータ コヒーレント スレーブ ポート -
S_AXI_HPC
: 高パフォーマンスのアクセラレータ コヒーレント スレーブ ポート -
MIG
: MIG メモリ コントローラーに接続されている AXI スレーブ。デフォルトは MIG です。
-
-
sptag
ID: (オプション) 最初の文字がアルファベットで始まる必要のあるユーザー定義の ID。ID の大文字/小文字は区別されます。システム ポート タグ (sptag) は、
S_AXI_HP
、S_AXI_ACP
、M_AXI_GP
などのプラットフォーム ポート接続のクラスを示すシンボル識別子です。複数のブロック デザイン プラットフォーム ポートが同じsptag
を共有できます。 - memory: (オプション) 関連する MIG IP インスタンスと address_segment を指定します。memory タグは、IP インテグレーターの [Address Editor] ウィンドウの Cell 名と Base Name 列を組み合わせた独自の名前になります。このタグは、複数のブロック デザイン プラットフォーム ポートが同じ memory タグを共有可能な Memory Subsystem HIP への接続に関連付けられます。
-
AXI インターコネクトの例
set_property PFM.AXI_PORT { \
M_AXI_GP0 {memport "M_AXI_GP"} \
M_AXI_GP1 {memport "M_AXI_GP"} \
S_AXI_ACP {memport "S_AXI_ACP" sptag "ACP" memory \
"processing_system7_0 ACP_DDR_LOWOCM"} \
S_AXI_HP0 {memport "S_AXI_HP" sptag "HP0" memory \
"processing_system7_0 HP0_DDR_LOWOCM"} \
S_AXI_HP1 {memport "S_AXI_HP" sptag "HP1" memory \
"processing_system7_0 HP1_DDR_LOWOCM"} \
S_AXI_HP2 {memport "S_AXI_HP" sptag "HP2" memory \
"processing_system7_0 HP2_DDR_LOWOCM"} \
S_AXI_HP3 {memport "S_AXI_HP" sptag "HP3" memory \
"processing_system7_0 HP3_DDR_LOWOCM"} \
} [get_bd_cells /processing_system7_0]
AXI インターコネクトのマスター ポートおよびスレーブ ポートのエクスポートには、次の要件があります。
- プラットフォームで使用されるインターコネクト上のすべてのポートは、宣言されたプラットフォーム インターフェイスの前にインデックス順で宣言する必要があります。
- ポートのインデックス番号をスキップすることはできません。
-
S_AXI_ACP
ポートのマスター ID の最大数は 8 なので、接続された AXI インターコネクト上で宣言する使用可能なポートは {S00_AXI, S01_AXI, ..., S07_AXI} のいずれかである必要があります。プラットフォーム内で使用されるポートは宣言しないでください。できるだけ多くのポートを宣言すると、sds++ でカスケード接続された axi_interconnects を回避できます。 -
S_AXI_HP
または MIG ポートのマスター ID の最大数は 16 なので、接続された AXI インターコネクト上で宣言する使用可能なポートは {S00_AXI, S01_AXI, ..., S15_AXI} のいずれかである必要があります。プラットフォーム内で使用されるポートは宣言しないでください。できるだけ多くのポートを宣言すると、sds++ で生成されたユーザー システムでカスケード接続された axi_interconnects を回避できます。 -
M_AXI_GP
ポートに接続されるインターコネクト上で宣言されるマスター ポートの最大数は 64 なので、接続された AXI インターコネクト上で宣言する使用可能なポートは {M00_AXI, M01_AXI, ..., M63_AXI} のいずれかである必要があります。プラットフォーム内で使用されるポートは宣言しないでください。できるだけ多くのポートを宣言すると、sds++ で生成されたユーザー システムでカスケード接続された axi_interconnects を回避できます。
その他の例
インターコネクトの AXI_port を定義:
set parVal []
for {set i 2} {$i < 64} {incr i} {
lappend parVal M[format %02d $i]_AXI \
{memport "M_AXI_GP"}
}
set_property PFM.AXI_PORT $parVal [get_bd_cells /axi_interconnect_0]
SmartConnect IP の AXI_port を定義:
set parVal []
for {set i 1} {$i < 16} {incr i} {
lappend parVal S[format %02d $i]_AXI \
{memport "MIG" sptag "Bank0"}
}
set_property PFM.AXI_PORT $parVal [get_bd_cells /smartconnect_0]
MIG IP に接続する AXI_PORT を定義:
set parVal []
for {set i 1} {$i < 16} {incr i} {
lappend parVal S[format %02d $i]_AXI \
{memport "MIG" sptag "bank0" memory "ddrmem_0 C0_DDR4_ADDRESS_BLOCK"}
}
set_property PFM.AXI_PORT $parVal [get_bd_cells \
/memory_subsystem/interconnect_data/interconnect_aximm_ddrmem0]