FC2カウンター FPGAの部屋 AXI4-Stream インターフェースの最終出力層2(C シミュレーション、C コードの合成、C/RTL 協調シミュレーション、Export RTL )
fc2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

AXI4-Stream インターフェースの最終出力層2(C シミュレーション、C コードの合成、C/RTL 協調シミュレーション、Export RTL )

AXI4-Stream インターフェースの最終出力層1(C ソースコード)”の続き。

前回は、AXI4-Stream インターフェースの最終出力層のC ソースコードを貼っておいた。今回は、C シミュレーション、C コードの合成、C/RTL 協調シミュレーション、Export RTLを行う。

まずは、Vivado HLS 2017.4 の output_layer プロジェクトを作成した。
output_layer_1_180312.png


C シミュレーションを行った。結果を示す。
(2017/04/17:修正、前段のソフトウェアが間違っていたので、結果が変わってしまった)
(誤)
output_layer_2_180312.png

Vivado HLS console の表示は、cerr に出力したので、赤くなってしまったと思う。ハードウェアが直進で、ソフトウェアが右旋回という結果だった。”AXI4-Stream インターフェースの全結合層2層目2(C シミュレーション、C/RTL 協調シミュレーション)”で書いたが、かなり左寄りの直進なので、右旋回と言ってもおかしくない感じなので、精度の良いソフトウェアの方がミスってしまったのかもしれない?

(正)
output_layer_14_180417.png

うまく行った。out = 1 out_soft = 1 でハードウェア、ソフトウェア共に直進を示している。正解だ。

C コードの合成を行った。結果を示す。
output_layer_3_180312.png

Estmated は 6.31 ns でタイミング制約を満足している。
Latency は 7 クロックだった。
リソース使用量は、FF が 175 個、LUT が 478 個だった。
生成された VHDL のファイルを見ると、出力ポートは、output_data_Vで定義は、std_logic_vector(2 downto 0); になっていて、左旋回、直進、右旋回のそれぞれの出力が出ていることが分かる。output_data_V_ap_vld ポートもできているのが分かる。
output_layer_7_180312.png


C/RTL 協調シミュレーションを行った。結果を示す。
output_layer_4_180312.png

37 クロックだった。C コードの合成に比べて、クロック数が多いのは、AXI4 Lite でのレジスタの設定に時間がかかっているのと、最初にダミーのデータをRead しているからだ。

C/RTL 協調シミュレーションの波形を示す。
output_layer_5_180312.png

点線のカーソルのところで、最初のAXI4-Stream データが入力されて、実線のカーソルのところで、結果が出ている。ちょうど 7 クロックかかっている。


Export RTL を行った。結果を示す。
なお、Vivado synthesis, place and route にチェックを入れてある。
output_layer_6_180312.png
  1. 2018年03月13日 04:12 |
  2. DNN
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/4105-253d7424
この記事にトラックバックする(FC2ブログユーザー)