私は平日は3:30に起床するので遅くても23:00までには就寝する。 そのため、FPGAの作業等で夜更しできるのは金曜日の夜か土曜日の夜だったのだが、 事情で日曜日も3:30に起床しなければならなくなり、夜更しできるのが金曜日の夜だけとなってしまった。 休日の昼間の時間も趣味に使うことは可能なのだけれども、日中でなければできない他の用事もあったりするので やはり集中できるのは夜中となる。のだが、最近は気力減退気味だ。
ZYBOでのテーマとして以前作成したDFT IPを実装してみることにしたが、DFT IPをCPUから制御するためにはAXI InterconnectとのI/Fが必要になる。レジスタ関係のアクセス(設定・読出し)にはAXI_GPポートに接続するAXI Slave I/Fが必要になるし、DFTしたデータをDRAMに格納しようとすればAXI_HPポートに接続するAXI Master I/Fが必要になる。AXI IPはXilinxのツールでも生成できるようだが、それだと勉強にならないので自作してみることにした。
ということで、RTLの作成を始めた。
資料としては、ARMのAMBA AXI Protocol v1.0 Specification、 XilinxのUG585 Zynq-7000 AP SoC Technical Reference Manual、 UG761 AXI Reference Guide 等を参照している。
AXIの規格を読んでいて、AxCACHE信号がよくわからない。
これはAXI MasterからAXI Slaveに対しての信号になるが、属性値BufferableによってWrite Responseの返し方が変わるというのは想像できるんだけど… CacheableとかAllocateなどの属性はこのようにMasterが指定するものなのか? Slave側componentの実装内容によって決まることがらのような気がするのだが。。。。