Avalon Busの動作確認

またしてもこの本でVerilogだ。

FPGA ボードで学ぶ組込みシステム開発入門 ?Altera編?

FPGA ボードで学ぶ組込みシステム開発入門 ?Altera編?

この本の第6章で、Avalon Busの動作確認の紹介がある。
何か動作するデバイスができるわけではないのだが、Verilogを書き、QsysでNios IIと一緒にモジュール化し、それをSingalTap II(FPGAに内蔵できるロジックアナライザ)で動作検証すると、なかなか面白い。
筆者の環境(Quartus II)ではSOPC Builderがサポートされていないため、すべてQsysでの作業、つまりAvalon Busはダイナミックバスのみとなる。
やり方は本に書いてある方法、およびこちらの方法に従えば、ほぼ問題なくできる。
本に書いてある通り、32bitアクセス、16bitアクセス、8bitアクセスのAPIの三通りの動作を確認してみた。
まずは32bitアクセス(IORD_32DIRECTを使用)、アドレス0x0から0x12345678を読みだしている

次に16bitアクセス(IORD_16DIRECTを使用)、アドレス0x0から0x1234を読みだしている

最後に8bitアクセス(IORD_8DIRECTを使用)、アドレス0x0から0x12を読みだしている

一見してわかるのが、本で紹介されているのとは異なる動作をしており、どの場合も2CLKで所望のデータを読みだしている。
おそらくファブリックを変えて、効率的に読み出しができるように変えたのだろう。