今回もどのカテゴリに入れて良いか迷う話題。IP Core なんだけどChipScope Pro のコアだし、EDKで使うんだし、困ったがChipScope Analyzer も使うので、ChipScope のカテゴリに入れておいた。
今回は、ChipScope AXI Monitor を試してみることにした。常々、AXIバスの負荷について解析できたら良いと思っている。例えば、DDR2 SDRAMを画像のフレームバッファとして使っている。時間方向に演算するために何画面分フレームバッファとして使えるかを計算する場合がある。その場合には、現在のバス負荷を計算やシミュレーションで求め、それを検証する必要がある。その検証のためにバス負荷を計算できるAXIバスのモニタを使ってみたいと思っている。ChipScope AXI Monitor は結論として、そうしたバスモニタではなかったが、備忘録として書いておこうと思う。
使用したマニュアルは、”
LogiCORE IP ChipScope AXI Monitor (v3.03.a)”だ。ここには、AXI Protocol Checkerという項目があって、HDLで合成可能なARM system verilogアサーションを生成するものだそうだ。これもやってみたい。
使用するプロジェクトは、PlanAheadのプロジェクトで、”
PlanAhead14.1で、XPS入りのISE14.1のプロジェクトをインポートしてみた2(解決編)”で使用した。AXI4バス・スレーブIP、AXI4バス・マスタIPを使用したキャラクタ・ディスプレイ・コントローラの回路を使用する。
・PlanAheadプロジェクトからXPSプロジェクトをダブルクリックして立ち上げる。ChipScope AXI Monitor IPコアはIP CatalogウインドウのDebugの下にある。

・今回はこれをAdd IPせずに、DebugメニューからDebug Configuration を選択する。
・Debug Configurationダイアログで、Add ChipScope Peripheral...ボタンをクリックする。

・Add New ChisScope Peripheralダイアログで、To monitor AXI Interconnect signal(adding AXI Monitor) のラジオボタンをクリックして、OKボタンをクリックする。

・Debug Configurationダイアログが開く。SystemウインドウのMonitor Hardware Signals で、chipscope_axi_monitor_0 が選択されていると思う。右のMonitor Bus Signals でcdctest_axi_master_0.M_AXI を選択した。

・Advanced タブをクリックした。Protocol Checker Setting で下の図のようにセットした。

・上の図では表示しきれない部分があったので、もう一度、下図に示す。

・OKボタンをクリックして、Debug Configurationダイアログを閉じると、XPSにchipscope_axi_monitor_0が入っていた。下の方にchipscope_icon_0 も入っている。ChipScopeでは、これが入っている必要がある。

・XPSのPortタブでのchipscope_axi_monitor_0の設定の状況を下に示す。なお、Addressタブでは、特にアドレスは設定されていなかった。

・XPSを閉じて、PlanAheadに戻り論理合成、インプリメント、ビットストリームの生成を行った。Critical Warning が出てしまった。

・PlanAheadからChipScope Pro を立ち上げた。
・Trigger Setupウインドウを開いて、M3を展開し、MON_AXI_AWVALID に1を設定して1の時にトリガが掛かるように設定した。

・Waveformウインドウの波形を示す。まずはWriteから。すべてのAXIバスの信号を見ることが出来る。

・次はRead。やはり、すべてのAXIバスの信号を見ることが出来る。

・上の図で、下の方にPC_ERROR_BUS[78}_c4、error_bus_i という信号があるが、これがどうやらAXI Protocol Checkerの信号らしい? error_bus_i を展開するとたくさんの信号が入っているが、これが何を意味するかが良く分からない?

・Trigger Setupウインドウにも、AXI Protocol Checker信号が入っている。試しにRを入れてみてやってみたが、どこでトリガが掛かるか良くわからない。PC_ERROR_BUS[78}_c4、error_bus_i の値も0になっている。

AXI Protocol Checkerについてはよく分からなかった。残念だ。AXI Protocol Checkerに関しての情報をお持ちの方がいらっしゃったら、教えて下さい。
最後にChipScope AXI Monitor を入れた時と入れない時のリソースの比較をしてみようと思う。
最初は、ChipScope AXI Monitor を入れた時のリソースを下に示す。

次に、ChipScope AXI Monitor を入れない時のリソースを下に示す。

やはり、かなりの本数のモニタしているので、かなり増えている。LUTは19%から26%に増えている。RAMB16BWER は25%から37%に増えている。
- 2012年05月28日 05:25 |
- Chipscope
-
| トラックバック:0
-
| コメント:0