”
Vivado HLS 2014.4 でサイドチャネル付き AXI4-Stream をテストする2(C++シミュレーション、高位合成)”の続き。
前回、サイドチャネル付き1次元俺様フィルタのC++シミュレーションと高位合成を行ったので、今回は、RTLシミュレーションを行って、ハードウェアでの動作を確認する。その際に、RTLのトレースファイルを出力させて、Vivado でシミュレーション波形の表示を行う。
Vivado HLS で Run C/RTL Cosimulation ボタンをクリックして、RTL Cosimulation を行う。(または、Solution メニューから Run C/RTL Cosimulation を選択する)
Vivado HLS で Run C/RTL Cosimulation ボタンをクリックすると、Co-simulation Dialog が出てくる。
Dump Trace を all に変更する。

Co-simulation が終了した。

結果は、C Simulation と同じだった。
次に、RTLシミュレーション波形を見てみよう。
Vivado 2014.4 を立ち上げる。
Vivado の下の入力領域に、下に示すように tcl コマンドを入力した。
cd C:/Users/Masaaki/Documents/Vivado_HLS/study/fil_axis_side_ch/solution1/sim/verilog/
current_fileset
open_wave_database fil_axis_side_ch.wdb
open_wave_config fil_axis_side_ch.wcfg
シミュレーション波形が表示された。

シミュレーション波形全体を表示した。その際に、ap_start と ap_done、ap_idle、 ap_NS_fsm をシミュレーション波形に追加した。

ap_NS_fsm は、Vivado HLS 2014.4 の Analysis タブ -> Resource タブで示された Control Step で示された C0 ~ C5 のステートを表しているようだ。何故か? C6 ステートは無い。

190 ns 周辺で、s_axi_AXILiteS_WVALID, s_axi_AXILiteS_WREADY 信号が共に 1 になっているので、AXI4 Lite Slave バス経由で、fil_axis_side_ch に s_axi_AXILiteS_WDATA の 1 が書かれている。これは、スタート信号となる。
少し遅れて、ap_start が 1 になっているが分かる。
スタート後に ap_NS_fsm が 000001 (C0) から 000010 (C1) → 000100 (C2) を3回繰り返している。これは、sreg[3] の初期化を行っているようだ。
その後、 ap_NS_fsm は 001000 (C3) ステートに移行して、TUSER が 1 になったデータを待つ。C++ ソースコードで言うと、do { } while 文で、pix.user が 1 になるのを待っている。
それが来ると、010000 (C4) ステートに移行して、AXI4-Stream で来るストリーム入力に俺様フィルタをかけていく。実際にフィルタ後の値を Write するのは 100000 (C5) ステートだが、パイプラインされているようである。
010000 (C4) ステートに移行した1クロック後で、ins_TREADYが1クロック期間、落ちている。これは、do { } while 文から for () 文に処理が切り替わり、今度は俺様フィルタの演算をし始めるので、そのパイプライン満たすためだと思う。

最後の部分を見ると、実践のカーソルの部分で、ap_done が出力され、ここでフィルタ動作が終了しているのが分かる。
AXI4 Lite Slave バスでは、ポーリングで Read を繰り返し行い、Done するのを監視している。破線のカーソル部分で、0x6 をRead してフィルタ動作の完了が分かった。
ap_done の 1 クロック前に、 ap_NS_fsm は 100000 (C5) ステートに移行している。ここでは、ストリーム入力が無くなったので、 100000 (C5) ステートのフィルタ演算+ストリーム出力が見えているのだろう。その後はIDLE ステートの 000001 (C0) に戻っている。
また、最後のストリーム出力のタイミングで、outs_TLAST が 1 になっているのが見える。

次は、AXI4-Stream IP として、ラプラシアンフィルタを作っていこう。
- 2015年04月30日 04:11 |
- Vivado HLS
-
| トラックバック:0
-
| コメント:0