FC2カウンター FPGAの部屋 intel HLS コンパイラを試してみる14(explicit_streams_buffer その1)
FC2ブログ

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

FPGAの部屋

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

intel HLS コンパイラを試してみる14(explicit_streams_buffer その1)

intel HLS コンパイラを試してみる13(mm_slave その3)”の続き。

今回は、examples\tutorials\interfaces\explicit_streams_buffer を試してみよう。
これは、”intel HLS コンパイラを試してみる7(image_downsampleを試す1)”でもやったAvalon Streaming インターフェースだが、ihc::buffer<>でストリーム入力が宣言されている。

image_inversion.cpp だがハードウェア化関数は、img_invert1() と img_invert_buff() がある。
二つの関数の宣言部分を引用する。

component void img_invert(int W,
              int H,
              ihc::stream_in<unsigned char>  &a,
              ihc::stream_out<unsigned char> &b) {


component void img_invert_buff(int W,
                           int H,
                           ihc::stream_in<unsigned char, ihc::buffer<64> > &a,
                           ihc::stream_out<unsigned char> &b) {


上に示すように、 img_invert_buff() の方の入力が、ihc::stream_in で定義されている。それでも同様に a.read() でストリームのデータを読むことができる。これは、ストリームのバッファの容量を指定する方法のようだ。

build.bat のDEVICE を CycloneV に変更した。
Intel_HLS_127_171127.png

build default を実行した。
Intel_HLS_128_171127.png

tutorial-msvc.exe、tutorial-x86.exe、tutorial-fpga.exe すべて PASSED だった。

F:\intelFPGA_lite\17.1\hls\examples\tutorials\interfaces\explicit_streams_buffer フォルダを示す。
tutorial-fpga.prj フォルダができていた。
Intel_HLS_129_171127.png

さて、ModelSimで波形を見てみよう。
全体波形を示す。
Intel_HLS_130_171127.png

上の背景が白の信号名が、img_invert1() の信号で、その下の信号が img_invert_buff() 用の信号だ。

img_invert1() でデータ転送している部分を拡大する。
Intel_HLS_131_171127.png

入力のa_ready, a_valid、出力の b_ready, b_valid が 1 で転送が連続していることを示している。

次に、 img_invert_buff() で転送している部分を示す。
Intel_HLS_132_171127.png

こちらも同様に、入力のa_ready, a_valid、出力の b_ready, b_valid が 1 で転送が連続している。
  1. 2017年11月27日 05:12 |
  2. intel HLS
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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