もくじ
1. はじめに
インテル®Stratix®10 FPGA および Intel Agilex® 7 FPGA の HPS 側の DDR(以下、HPS DDR)へ、FPGA Fabric 側と MPU からアクセスする際の Memory Map があります。HPS DDR へアクセスする際には Memory Map を理解しておかなければ、期待したアドレスへアクセスすることができない場合があります。この記事では推奨の Memory Map を紹介します。HPS DDR へアクセスする際の参考になれば幸いです。
【図 1】 FPGA Fabric 側と MPU から HPS DDR へアクセスする経路
※ Intel® Agilex™ Hard Processor System Technical Reference Manual から抜粋
ポイント: MPFE へは FPGA Fabric 側からは直接、
MPU からは Cache Coherency Unit を経由してアクセスします。
2. HPS DDR へアクセス
HPS DDR には Memory Map があります。
意図したアドレスへ書き込むためには、正しい Memory Map を理解しておく必要があります。
この章では FPGA Fabric 側と MPU からのアクセスにおける、推奨 Memory Map について説明します。
2-1. MPU の Address Map
まず初めに準備として、MPU の Address Map を紹介します。次の章では HPS DDR の Memory Map を紹介しますが、予め MPU の Address Map をご覧いただいた方が、比較することができより詳細をご理解いただけるかと思います。
HPS の Address Map は下図のようになっています。0~2GB 空間と 4~128GB 空間には SDRAM が配置されており、2~4GB 空間には Peripheral や Bridge 等が配置されています。
【図 5】 Hole 空間
※ Intel® Agilex™ Hard Processor System Technical Reference Manual から抜粋
ポイント: 0~2GB 空間と 4~128GB 空間には SDRAM、
2~4GB には Peripheral や Bridge が配置されております。
(この 2~4GB 空間のことを Hole と呼びます)
2-2. 推奨 Memory Map
下図はドキュメントから抜粋した推奨 Memory Map です。
左から順に DDR のサイズ、DDR の物理アドレス、MPU からアクセスする際のアドレス、FPGA 側からアクセスする際のアドレス、が記載されています。
【図 2】 推奨 Memory Map
※ Intel® Agilex™ Hard Processor System Technical Reference Manual から抜粋
ヒント: Total DDR size -> DDR のサイズ
External DDR address range -> DDR の物理アドレス
Address range for MPU -> MPU からアクセスの場合
Address range for FPGA(FPGA-to-HPS) -> FPGA Fabric 側からアクセスの場合
2-3. HPS DDR のサイズが 8GB の場合のアクセス例
HPS DDR のサイズが 8GB の場合の Memory Map 抜粋は下図の通りです。
【図 3】 8GB の場合の Memory Map
※ Intel® Agilex™ Hard Processor System Technical Reference Manual から抜粋
8GB における MPU と FPGA Fabric 側からアクセスする際の Memory Map は同じです。
そのため、いずれも下図のようなイメージとなります。
【図 4】 8GB の場合の Memory Map 図解
ポイント: 推奨 Memory Map に従うことで Hole(2~4GB 空間)へのアクセスも可能です。
いくつかアクセス例を記載します。
- HPS DDR の 0x00_0000_0000(8GB 中の 2GB 領域の先頭アドレス)へアクセスする場合:
⇒ 0x00_0000_0000 へアクセス - HPS DDR の 0x00_8000_0000(8GB 中の 6GB 領域の先頭アドレス)へアクセスする場合:
⇒ 0x10_8000_0000 へアクセス
3. 関連情報紹介(HPS DDR アクセス時 ECC エラー)
FPGA から HPS DDR へアクセスする際、Memory Map と異なるアドレスでアクセスすると、ECC エラーが発生することがあります。
以下にメーカーから公開されている情報を紹介させていただきますのでご参照ください。
4. おわりに
この記事では インテル® Stratix® 10 FPGA/ Intel Agilex® 7 FPGA の Memory Map について紹介しました。
推奨 Memory Map に従うことで、直接アクセスすることのできない Hole 空間へアクセスすることも可能です。
設計の際にこの記事がお役に立てば幸いです。
コメント
0件のコメント
記事コメントは受け付けていません。