0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

EBAZ4205 FPGA Xilinx編 第2版 第7章-1

Last updated at Posted at 2025-06-27

EBAZ4205を使ったZYNQの勉強をしています。
はまったところの解決策を中心に書きます。

vivado側

大全のP.272から進めます。EBAZでの変更点。

・EBAZのDDRの設定
image.png

・FCLOCKを変更
image.png

・全体のブロック図
Regenerate Layout をするとすっきりした配線になる気がする。
image.png

vivado側は、大全の内容で問題なく作業できると思います。

vitis で はまったところ (ver2022.2,2023.2,2024.2で確認)

・vivadoで生成したxsaを使って作ったplatformプロジェクトをコンパイルしました。参考書と同じ手順で行いましたが、myipのコンパイルで複数エラーが発生。

・内容はCソースのファイルが存在しないというエラーのようです。

image.png

・AMDのコミュニティーでも同じエラーが報告されていました。
https://adaptivesupport.amd.com/s/question/0D54U00006l9xEpSAI/vitis-202222-cannot-build-platform-having-customer-ip?language=ja

・私の環境ではvivado2022,2023,2024のバージョンで同じエラーとなりました。

修正方法

・最善の方法ではありませんが、以下の手順で修正しました。

  1. vitisで生成されたフォルダ内でカスタムIP名で調べ、該当のフォルダを抽出する

私の環境では「3フォルダ」見つかりました。

image.png

  1. 該当フォルダ➡src➡makefile の2行を以下のように書き換えます。
変更前
LIBSOURCES=($wildcard *.c)
OUTS = $(wildcard *.c)
変更後
LIBSOURCES=$(wildcard *.c)
OUTS = $(addsuffix .o, $(basename $(wildcard *.c)))

意味としては、現在のディレクトリにあるすべてのC言語ソースファイル(.c)に対応して、
オブジェクトファイル(.o)のリストをOUTS変数に格納する指示(より明示的に)になります。

ベースアドレスの考え

zynqのようなPSとPL一体のSoCを初めて勉強したので、このベースアドレスの考え方が最初わかりづらかったです。


PLとPSをAXIバスで接続してPSから制御する場合、PSからアクセスするレジスタアドレスは、このベースアドレスを基準として考えるようです。

vivadoのblock diagram の「address editor」に今回作成したIPと接続したAXIバスのアドレスが記載されています。

image.png

同様に、vitisにxsaファイルを渡してplatformを作成する際に、xparameters.hが生成されますが、この中にも同じアドレスがマクロ定義されています。

image.png

自作IPで自動生成されたAXI slave のRTLを確認すると、slv_reg0~slv_reg3まで4つのレジスタグループが作られていました。演習ではslv_reg0を指示通り使いました。


自動生成されたAXI slave のRTLの以下のcase分より、[3:2]のビットでどのレジスタを使うかを選択しています。
つまりアドレスの下位が0x00ならreg0、0x04ならreg1、0x08ならreg2、0x0Cならreg3と4バイト境界でアドレスを区切っているようです。

image.png

ベースアドレスが 私の例では 0x43C00000なので、reg0へのアクセスはそのまま0x43C00000、reg1へのアクセスは0x43C00004、reg2は0x43C00008、reg3は0x43C0000C といった具合になるようです。


マイコン畑で育った私は、レジスタアドレスはユーザーマニュアルに全て載っているのが当たり前!と思っていました。


ZynqのPLのようなベースアドレスだけ決めて、あとはそのアドレスからのオフセットで他のレジスタが決まるのは、難しいですね。




今日はここまで

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?