FC2カウンター FPGAの部屋 Vivado HLS 2015.3 が出た

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

FPGAの部屋

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

Vivado HLS 2015.3 が出た

Vivado HLS 2015.3 が出た。普通は”Vivado 2015.3 が出た”と書くと思うのだが、なるべくVivado HLS を使っていこうと思っている私にとって、Vivado HLS が新しくなったのが大きなニュースだ。

今度のVivado HLS は1つのテストしかしていないが、今まで使ってきたVivado HLS 2014.4 よりも良くなっていると思う。今やっている固定小数点型の比較が終わった時点でVivado HLS 2015.3 に乗り換えたいと思う。

まずは、2015.3のリリースノートはまだ日本語がないので、英語の2015.3のリリースノートを参照している。10ページにVivado HLS の新機能が書いてある。
それによると、

・Open Wave Viewer toolbar buttonが付いた
・半精度の浮動小数点数が hls_half.h をインクルードすることで使えるようなった。
・DATAFLOW ディレクティブが改善された。
・AXI4 master (m_axi)がループ内で自動でバースト転送を推論してくれるようになった。
・config_interface でのAXI-Stream (axis) のレジスタ・オプション
・AXI-Lite (s_axilite) に独自クロックを割り当てられるようになった。
・新しいリソース・コア・オプション(Mul_LUT)

だそうだ

一番、大きな変更は、Vivado HLS 2015.3 ではOpen Wave Viewer toolbar button が付いたことだ。今まで、Vivado を立ちあげて、Tcl Console からTcl コマンドを入力してとやっていたが、Open Wave Viewer toolbar button をクリックすれば、それらを全部やってくれて、Vivado が立ち上がり波形を表示することができる。
Vivado_HLS_2015_3_1_151008.png

Vivado_HLS_2015_3_4_151008.png

次に、AXI-Lite (s_axilite) に独自クロックを調べてみた。
AXI4 Stream にAXI4 Lite Slave インターフェースが付いている回路で、AXI4 Lite Slave インターフェースに独自クロックを追加する。
C++ソースコードで、s_axilite ディレクティブを編集する。
Vivado_HLS_2015_3_2_151008.png

Vivado HLS Directive Editor で clock name (optional) に axils_clk を入力した。
Vivado_HLS_2015_3_3_151008.png

すると、s_axilite ディレクティブに”clock=axils_clk”が追加された。
Vivado_HLS_2015_3_5_151008.png

C から HDL へ合成を行った。
Vivado_HLS_2015_3_6_151008.png

lap_filter_axis.v を見ると、”axils_clk”と”ap_rst_n_axils_clk”が追加されている。
Vivado_HLS_2015_3_7_151008.png

lap_filter_axis.v のモジュール宣言を貼っておく。

module lap_filter_axis (
        ap_clk,
        ap_rst_n,
        ins_TDATA,
        ins_TVALID,
        ins_TREADY,
        ins_TKEEP,
        ins_TSTRB,
        ins_TUSER,
        ins_TLAST,
        ins_TID,
        ins_TDEST,
        outs_TDATA,
        outs_TVALID,
        outs_TREADY,
        outs_TKEEP,
        outs_TSTRB,
        outs_TUSER,
        outs_TLAST,
        outs_TID,
        outs_TDEST,
        s_axi_AXILiteS_AWVALID,
        s_axi_AXILiteS_AWREADY,
        s_axi_AXILiteS_AWADDR,
        s_axi_AXILiteS_WVALID,
        s_axi_AXILiteS_WREADY,
        s_axi_AXILiteS_WDATA,
        s_axi_AXILiteS_WSTRB,
        s_axi_AXILiteS_ARVALID,
        s_axi_AXILiteS_ARREADY,
        s_axi_AXILiteS_ARADDR,
        s_axi_AXILiteS_RVALID,
        s_axi_AXILiteS_RREADY,
        s_axi_AXILiteS_RDATA,
        s_axi_AXILiteS_RRESP,
        s_axi_AXILiteS_BVALID,
        s_axi_AXILiteS_BREADY,
        s_axi_AXILiteS_BRESP,
        interrupt,
        axils_clk,
        ap_rst_n_axils_clk
);


AXI4 Lite Slave インターフェースの独自クロックのタイミング制約を何処でするか?はまだわかっていない。
  1. 2015年10月08日 05:22 |
  2. Vivado HLS
  3. | トラックバック:0
  4. | コメント:2

コメント

>AXI4 master (m_axi)がループ内で自動でバースト転送を推論してくれるようになった。

この辺りも勝手に推論してくれるようになれば、あ~だ、こ~だと記述方法を考える必要がなくなると楽になりそうだけど・・・・
「FPGAを並べて配線しておけば、どんな回路でもできますよ」って大倉商事の営業に笑顔で言われて、XC2064を20個使用した基板を起こした上司は豪傑だったなw
  1. 2015/10/08(木) 09:30:24 |
  2. URL |
  3. おる #-
  4. [ 編集 ]

そうですね。自動でやってくれると基本的性能が上がるでしょうから、ソフトウェアからハードウェアへの移行が楽になると思います。

昔はFPGAも規模が小さかったでしょうから、20個並べた基板は壮観でしょうね。。。
  1. 2015/10/09(金) 03:48:25 |
  2. URL |
  3. marsee #f1oWVgn2
  4. [ 編集 ]

コメントの投稿


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

トラックバック URL
http://marsee101.blog19.fc2.com/tb.php/3269-531fb3f2
この記事にトラックバックする(FC2ブログユーザー)