FPGAの部屋FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。ZedBoardにビットマップ・ディスプレイ・コントローラを追加する18(再度ACPポートを使用)”ZedBoardにビットマップ・ディスプレイ・コントローラを追加する17(ARMのソフトからキャラクタを書けた2)”の続き。ツイッターでACPポートの使用方法がTRMに書いてあると教えてもらったで、やってみることにした。読み出し要求はコヒーレントです。書き込み要求はコヒーレントです。読み出し要求にして、もう一度、”ZedBoardにビットマップ・ディスプレイ・コントローラを追加する8(ACPを使用)”を見ながら、ビットマップ・ディスプレイ・コントローラで使用するAXIバスのポートをACPポートに変更しました。すると、やはりキャラクタの表示波形が乱れた。その様子を図1に示す。(ACPポートはキャッシュのコヒーレンシを維持できるAXIバスのポートだ。outし、その後にプロセッサで更新された正しい値をAXIバス経由でDMAできるはずだ。IPコアのプロパティで、C_M_AXI_SUPPORTS_USER_SIGNALSにチェックが入っていなかったので、チェックを入れた。これは、ユーザー信号をサポートするかどうかを決めるチェックだった。チェックを入れると、下の5つのユーザー信号がハイドから回復した。IPコアのプロパティこれで、論理合成、インプリメントを行なって、キャラクタを表示させたところ、だいぶましになったのだが、最初の行がおかしくなってしまった。何度、ソフトウェアを実行しても、おかしいパターンは変わるが、最初の行がいつもおかしい。その様子を図3に示す。ACPポートを使用したキャラクタ表示(C_M_AXI_SUPPORTS_USER_SIGNALSにチェック入り)実行しているソフトウェアは、キャッシュのフラッシュをコメントアウトしてあるが、このコメントアウトを外してキャッシュをソフトウェアでフラッシュすると、キャラクタがきちんと表示される。図1、図3を表示したソフトウェアを下に示す。戻り値:次のキャラクタの描画先頭アドレスを示す。コメントアウトから回復させると、正常にキャラクタが表示された。ACPポートを使用すると、なんとも微妙な結果になってしまった。(2013/10/12:追記)やっとACPポートがおかしい理由がわかりました。