よく見かけるZynqのサンプルデザインのささやかな疑問。
VivadoのBlock Designで、シンプルにZynqだけのブロックを作るために
Run Block Automationをすると、デフォルトでDDRとFIXED_IOのピンが
Externalとして引き出されます。
しかし、これらのピンはすべてMIOに接続されているので、Externalにする
必要はないはずです。
試しに、DDRとFIXED_IOをDeleteしたブロックのビットストリームを生成して、
ハードウェアをエクスポート。
![](https://blogimg.goo.ne.jp/user_image/5a/94/184201fb74b39c711525664949eea988.png)
VitisでHello Worldのテンプレートをビルドして実行すると、問題なく動きます。
何のためにDDRとFIXED_IOはデフォルトでExternalとなるのでしょう?
P.S. ちなにみ、このサンプル、Vitis 2022.2でビルドして実行しようとすると、
これまで見たことのないcan't read "map": no such variableというエラーが出る。
![](https://blogimg.goo.ne.jp/user_image/69/4a/7a8027e6fb3e63250f064975e20c5123.png)
どうやら、2022.2特有のバグで、DDRのメモリマップの自動生成に問題があるみたい。
Vitis launching Ultrascale MPSoC debug error: can't read "map": no such variable
おとなしく、動作の確認できている2021.1に戻します。
VivadoのBlock Designで、シンプルにZynqだけのブロックを作るために
Run Block Automationをすると、デフォルトでDDRとFIXED_IOのピンが
Externalとして引き出されます。
しかし、これらのピンはすべてMIOに接続されているので、Externalにする
必要はないはずです。
試しに、DDRとFIXED_IOをDeleteしたブロックのビットストリームを生成して、
ハードウェアをエクスポート。
![](https://blogimg.goo.ne.jp/user_image/5a/94/184201fb74b39c711525664949eea988.png)
VitisでHello Worldのテンプレートをビルドして実行すると、問題なく動きます。
何のためにDDRとFIXED_IOはデフォルトでExternalとなるのでしょう?
P.S. ちなにみ、このサンプル、Vitis 2022.2でビルドして実行しようとすると、
これまで見たことのないcan't read "map": no such variableというエラーが出る。
![](https://blogimg.goo.ne.jp/user_image/69/4a/7a8027e6fb3e63250f064975e20c5123.png)
どうやら、2022.2特有のバグで、DDRのメモリマップの自動生成に問題があるみたい。
Vitis launching Ultrascale MPSoC debug error: can't read "map": no such variable
おとなしく、動作の確認できている2021.1に戻します。
※コメント投稿者のブログIDはブログ作成者のみに通知されます