IP インテグレーター設計環境外の複数スレーブに接続可能な外部マスター ポートには、複数のアドレス範囲を割り当てることができます。次の例では、マスターが複数の外部スレーブに接続できます。
図 1. IP インテグレーター外の複数スレーブにアクセスする AXI マスターの例
次の図の [Address Editor] ウィンドウに示される M_AXI/Reg は仮想スレーブ セグメントです。このセグメントは、図のマスターのアドレス空間、この例の場合 master_1
および master_2
にマップできます。
図 2. IP インテグレーター外の複数スレーブにアクセスする AXI マスターを示す [Address Editor] ウィンドウ
このセグメントのオフセットは、マスター master_1
が To_External_Slaves
インターフェイスに接続されるスレーブへのトランザクションを開始するために使用するオフセットです。このインターフェイスは、assign_bd_address Tcl コマンドで説明されるように、その他のセグメントを作成することで、同じオフセットと範囲内にある必要のないその他のスレーブへのアクセスにも使用できます。
assign_bd_address -external -dict {offset 0x00000000 range 64M offset 0x20000000
range 4M} [get_bd_addr_segs /master_1/Data/SEG_M_AXI_Reg] -target_address_space
[get_bd_addr_space /jtag_axi_0]
この Tcl コマンドを実行すると、64M
の範囲の 0x00000000
と 4M
の範囲の 0x20000000
の 2 つのアドレス空間が作成されます。別の見方をすると、この例の場合、同じスレーブ インターフェイスの To_External_Slaves
を介して master_1
がその他のスレーブのアドレスを指定する必要があります。