PCI Express-Avalon‑MMブリッジは、一般的には最大64ビットのシステムレベルの物理アドレスをアプリケーション層のAvalon‑MMスレーブ・コンポーネントが必要とする非常に小さなアドレスに変換します。
Base Address Register (BAR) and Expansion ROM Settingsに記載されているように、PCI Express用ハードIPをカスタマイズする際、アドレス変換に対し最大6つのBARを指定することが可能です。32ビットのアドレスを指定する場合、Avalon-MM-to-PCI Express Address Translation Algorithm for 32-Bit Addressingに記載されているように、PCI Express Avalon‑MMブリッジはアプリケーション層のアドレスもシステムレベル物理アドレスに変換します。
次の図は、双方向アドレスの上位レベルの図を表しています。
Avalon-MM Rxマスター・モジュール・ポートは、64ビットモードの8バイト・データパスと128ビットモードの16バイト・データパスを備えています。 Platform Designerインターコネクトファブリックは、不一致のポート幅を透過的に管理します。
メモリー要求TLPがPCIeリンクから受信されると、PCI仕様で説明されているように、BARマッチングで最上位ビットが使用されます。 BARマッチング・プロセスで使用されない最下位ビットは、そのBARのRXマスターポートに向けてAvalon-MMアドレスとして変換されることなく渡されます。
たとえば、パラメーター・エディターでBase Addressレジスターを使用して指定された次のようなコンフィグレーションを見てみましょう。
- BAR1:0は、64ビットのプリフェッチ可能なメモリーで、4Kバイト -12ビットです。
- システム・ソフトウェアは、BAR1:0のベースアドレスが0x0000123456789000となるようにプログラミングします。
- TLPは、アドレス0x0000123456789870で受信されます。
- 上位52ビット(0x0000123456789)はBARマッチング・プロセスで使用されるため、この要求が一致します。
- 下位12ビットの0x870は、Rxm_BAR0 Avalon-MMマスターポートでAvalonアドレスとして渡されます。BARマッチング・ソフトウェアは、アドレスの上位20ビットをAvalon-MMベースアドレスに置き換えます。