FC2カウンター FPGAの部屋 Vitis HLS
FC2ブログ

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

FPGAの部屋

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

Vitis HLS 2019.2 でチュートリアルをやってみた

@Venginner さんのツィートでXilinx/HLS-Tiny-Tutorials を知った。てっきりVivado HLS 2019.2 のチュートリアルかと思ったら、そこに、なんと、コマンドとして、vitis_hls -f run_hls.tcl が書いてあった。え〜〜〜、Vitis HLS というツールがあるか。。。と気がついたのでやってみた。

まずは、Xilinx/HLS-Tiny-Tutorials を git clone しよう。
git clone https://github.com/Xilinx/HLS-Tiny-Tutorials.git
cd HLS-Tiny-Tutorials/

Vitis_HLS_1_191106.png

HLS-Tiny-Tutorials ディレクトリの下に行くと、いろいろなチュートリアルがあった。
Vitis_HLS_2_191106.png

その内のalgorithm_2D_convolution_linebuffer ディレクトリに入って、チュートリアルをやってみよう。
cd algorithm_2D_convolution_linebuffer/
vitis_hls -f run_hls.tcl

Vitis_HLS_3_191106.png

proj_2D_convolution_linebuffer ディレクトリが生成されていた。その中はVivado HLS のプロジェクト・ディレクトリとそっくりだ。
ただ、vivado_hls.app の代わりに hls.app ファイルがあった。
Vitis_HLS_4_191106.png

vitis_hls &
で Vitis HLS 2019.2 を立ち上げた。
Vitis_HLS_5_191106.png

Vitis HLS 2019.2 が立ち上がった。
Vitis_HLS_6_191106.png

Open Project をクリックした。
先ほど作成されたproj_2D_convolution_linebuffer ディレクトリを指定した。
Vitis_HLS_7_191106.png

proj_2D_convolution_linebuffer プロジェクトがロードされた。
Vitis_HLS_8_191106.png

C コードの合成は行われているので、結果を示す。
GUI がVivado HLS と少し変わっている。インスタンスが前に表示され、そこをクリックするとレポートが表示される。
レポートの (absolute) の値には時間の単位 ( ns ) が表示されている。
Vitis_HLS_9_191106.png

Analysis 画面を表示した。これもVivado HLS とあまり変わりは無い気がするが、Schedule Viewer しか無くなってしまったのだろうか?
Vitis_HLS_10_191106.png

次に、C/RTL 協調シミュレーションを行った。Vivado HLS 同様のアイコンをクリックして行うことができた。
Vitis_HLS_11_191106.png

Vivado HLS 同様のOpen Wave Viewer アイコンをクリックすると、Vivado 2019.2 が立ち上がって、同様に波形を表示できる。
Vitis_HLS_14_191107.png

Export RTL をやってみよう。
Vivado synthesis, place and route にチェックを入れてOK ボタンをクリックした。
Vitis_HLS_12_191106.png

結果を示す。
Vitis_HLS_13_191106.png

solution1/impl/ip ディレクトリを見た。
Vitis_HLS_15_191107.png

最後に、vitis_hls -f run_hls.tcl のログを貼っておく。

masaaki@masaaki-H110M4-M01:~/Vitis_Work/HLS-Tiny-Tutorials/algorithm_2D_convolution_linebuffer$ vitis_hls -f run_hls.tcl

****** Vitis HLS - High-Level Synthesis from C, C++ and OpenCL v2019.2 (64-bit)
  **** SW Build 2700185 on Thu Oct 24 18:45:48 MDT 2019
  **** IP Build 2699827 on Thu Oct 24 21:16:38 MDT 2019
    ** Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.

source /media/masaaki/Ubuntu_Disk/tools/Xilinx/Vitis/2019.2/scripts/vitis_hls/hls.tcl -notrace
INFO: [HLS 200-10] Running '/media/masaaki/Ubuntu_Disk/tools/Xilinx/Vitis/2019.2/bin/unwrapped/lnx64.o/vitis_hls'
INFO: [HLS 200-10] For user 'masaaki' on host 'masaaki-H110M4-M01' (Linux_x86_64 version 4.15.0-66-generic) on Wed Nov 06 20:29:46 JST 2019
INFO: [HLS 200-10] On os Ubuntu 18.04.3 LTS
INFO: [HLS 200-10] In directory '/home/masaaki/Vitis_Work/HLS-Tiny-Tutorials/algorithm_2D_convolution_linebuffer'
WARNING: [HLS 200-40] Environment variable 'C_INCLUDE_PATH' is set to :/usr/local/cuda/include.
Sourcing Tcl script 'run_hls.tcl'
INFO: [HLS 200-10] Creating and opening project '/home/masaaki/Vitis_Work/HLS-Tiny-Tutorials/algorithm_2D_convolution_linebuffer/proj_2D_convolution_with_linebuffer'.
INFO: [HLS 200-10] Adding design file 'convolution.cpp' to the project
INFO: [HLS 200-10] Adding test bench file 'convolution_test.cpp' to the project
INFO: [HLS 200-10] Creating and opening solution '/home/masaaki/Vitis_Work/HLS-Tiny-Tutorials/algorithm_2D_convolution_linebuffer/proj_2D_convolution_with_linebuffer/solution1'.
INFO: [HLS 200-10] Cleaning up the solution database.
INFO: [HLS 200-10] Setting target device to 'xcvu9p-flga2104-2-i'
INFO: [SYN 201-201] Setting up clock 'default' with a period of 6.66ns.
INFO: [SIM 211-2] *************** CSIM start ***************
INFO: [SIM 211-4] CSIM will launch GCC as the compiler.
   Compiling ../../../../convolution_test.cpp in debug mode
   Compiling ../../../../convolution.cpp in debug mode
   Generating csim.exe

*** TEST PASSED ***
INFO: [SIM 211-1] CSim done with 0 errors.
INFO: [SIM 211-3] *************** CSIM finish ***************
INFO: [HLS 200-10] Analyzing design file 'convolution.cpp' ... 
WARNING: [HLS 207-1553] '#pragma HLS RESOURCE core=axi' is obsoleted and replaced by '#pragma HLS INTERFACE axi': convolution.cpp:211:9
WARNING: [HLS 207-1553] '#pragma HLS RESOURCE core=axi' is obsoleted and replaced by '#pragma HLS INTERFACE axi': convolution.cpp:213:9
WARNING: [HLS 207-1553] '#pragma HLS RESOURCE core=axi' is obsoleted and replaced by '#pragma HLS INTERFACE axi': convolution.cpp:214:9
WARNING: [HLS 207-1553] '#pragma HLS RESOURCE core=axi' is obsoleted and replaced by '#pragma HLS INTERFACE axi': convolution.cpp:215:9
WARNING: [HLS 207-1553] '#pragma HLS RESOURCE core=axi' is obsoleted and replaced by '#pragma HLS INTERFACE axi': convolution.cpp:216:9
WARNING: [HLS 207-1534] 'region' in '#pragma HLS Inline' is deprecated, and it will be removed in future release: convolution.cpp:218:26
WARNING: [HLS 207-1590] Ignore interface attribute or pragma which is not used in top function: convolution.cpp:210:9
WARNING: [HLS 207-1590] Ignore interface attribute or pragma which is not used in top function: convolution.cpp:210:9
WARNING: [HLS 207-1590] Ignore interface attribute or pragma which is not used in top function: convolution.cpp:212:9
WARNING: [HLS 207-1590] Ignore interface attribute or pragma which is not used in top function: convolution.cpp:212:9
WARNING: [HLS 207-1590] Ignore interface attribute or pragma which is not used in top function: convolution.cpp:212:9
WARNING: [HLS 207-1590] Ignore interface attribute or pragma which is not used in top function: convolution.cpp:210:9
WARNING: [HLS 207-1539] extra token before pragma subject is ignored: convolution.cpp:234:33
WARNING: [HLS 207-1539] extra token before pragma subject is ignored: convolution.cpp:235:33
WARNING: [HLS 207-1534] 'region' in '#pragma HLS Inline' is deprecated, and it will be removed in future release: convolution.cpp:238:26
INFO: [HLS 200-777] Using interface defaults for 'Vivado' target.
INFO: [HLS 214-131] Inlining function 'hls::stream<unsigned int, 0>::read(unsigned int&)' into 'hls::stream<unsigned int, 0>::read()' (/media/masaaki/Ubuntu_Disk/tools/Xilinx/Vitis/2019.2/common/technology/autopilot/hls_stream_39.h:97:9)
INFO: [HLS 214-131] Inlining function 'hls::stream<unsigned int, 0>::write(unsigned int const&)' into 'hls::stream<unsigned int, 0>::operator<<(unsigned int const&)' (/media/masaaki/Ubuntu_Disk/tools/Xilinx/Vitis/2019.2/common/technology/autopilot/hls_stream_39.h:76:9)
INFO: [HLS 214-131] Inlining function 'hls::stream<unsigned int, 0>::stream(char const*)' into 'void convolution_strm<unsigned int, 11>(int, int, hls::stream<unsigned int, 0>&, hls::stream<unsigned int, 0>&, unsigned int const*, unsigned int const*)' (convolution.cpp:121:20)
INFO: [HLS 214-131] Inlining function 'hls::stream<unsigned int, 0>::operator<<(unsigned int const&)' into 'void convolution_strm<unsigned int, 11>(int, int, hls::stream<unsigned int, 0>&, hls::stream<unsigned int, 0>&, unsigned int const*, unsigned int const*)' (convolution.cpp:201:17)
INFO: [HLS 214-131] Inlining function 'hls::stream<unsigned int, 0>::read()' into 'void convolution_strm<unsigned int, 11>(int, int, hls::stream<unsigned int, 0>&, hls::stream<unsigned int, 0>&, unsigned int const*, unsigned int const*)' (convolution.cpp:183:36)
INFO: [HLS 214-131] Inlining function 'hls::stream<unsigned int, 0>::operator<<(unsigned int const&)' into 'void convolution_strm<unsigned int, 11>(int, int, hls::stream<unsigned int, 0>&, hls::stream<unsigned int, 0>&, unsigned int const*, unsigned int const*)' (convolution.cpp:170:23)
INFO: [HLS 214-131] Inlining function 'hls::stream<unsigned int, 0>::read()' into 'void convolution_strm<unsigned int, 11>(int, int, hls::stream<unsigned int, 0>&, hls::stream<unsigned int, 0>&, unsigned int const*, unsigned int const*)' (convolution.cpp:160:19)
INFO: [HLS 214-131] Inlining function 'hls::stream<unsigned int, 0>::operator<<(unsigned int const&)' into 'void convolution_strm<unsigned int, 11>(int, int, hls::stream<unsigned int, 0>&, hls::stream<unsigned int, 0>&, unsigned int const*, unsigned int const*)' (convolution.cpp:150:23)
INFO: [HLS 214-131] Inlining function 'hls::stream<unsigned int, 0>::read()' into 'void convolution_strm<unsigned int, 11>(int, int, hls::stream<unsigned int, 0>&, hls::stream<unsigned int, 0>&, unsigned int const*, unsigned int const*)' (convolution.cpp:142:17)
INFO: [HLS 214-131] Inlining function 'hls::stream<unsigned int, 0>::stream(char const*)' into 'void convolution_strm<unsigned int, 11>(int, int, hls::stream<unsigned int, 0>&, hls::stream<unsigned int, 0>&, unsigned int const*, unsigned int const*)' (convolution.cpp:126:20)
INFO: [HLS 214-131] Inlining function 'void convolution_strm<unsigned int, 11>(int, int, hls::stream<unsigned int, 0>&, hls::stream<unsigned int, 0>&, unsigned int const*, unsigned int const*)' into 'filter11x11_strm(int, int, hls::stream<unsigned int, 0>&, hls::stream<unsigned int, 0>&)' (convolution.cpp:244:5)
INFO: [HLS 200-111] Finished Linking Time (s): cpu = 00:00:07 ; elapsed = 00:00:14 . Memory (MB): peak = 933.215 ; gain = 523.031 ; free physical = 853 ; free virtual = 26461
INFO: [HLS 200-111] Finished Checking Pragmas Time (s): cpu = 00:00:07 ; elapsed = 00:00:14 . Memory (MB): peak = 933.215 ; gain = 523.031 ; free physical = 853 ; free virtual = 26461
INFO: [HLS 200-10] Starting code transformations ...
INFO: [HLS 200-111] Finished Standard Transforms Time (s): cpu = 00:00:07 ; elapsed = 00:00:14 . Memory (MB): peak = 933.215 ; gain = 523.031 ; free physical = 842 ; free virtual = 26462
INFO: [HLS 200-10] Checking synthesizability ...
INFO: [HLS 200-111] Finished Checking Synthesizability Time (s): cpu = 00:00:07 ; elapsed = 00:00:14 . Memory (MB): peak = 933.215 ; gain = 523.031 ; free physical = 841 ; free virtual = 26461
INFO: [XFORM 203-502] Unrolling all sub-loops inside loop 'HConvW' (convolution.cpp:140) in function 'filter11x11_strm' for pipelining.
INFO: [XFORM 203-502] Unrolling all sub-loops inside loop 'VConvW' (convolution.cpp:157) in function 'filter11x11_strm' for pipelining.
INFO: [HLS 200-489] Unrolling loop 'HConv' (convolution.cpp:145) in function 'filter11x11_strm' completely with a factor of 11.
INFO: [HLS 200-489] Unrolling loop 'VConv' (convolution.cpp:163) in function 'filter11x11_strm' completely with a factor of 11.
INFO: [XFORM 203-102] Partitioning array 'hwin' (convolution.cpp:120) automatically.
INFO: [XFORM 203-101] Partitioning array 'linebuf' in dimension 1 completely.
INFO: [XFORM 203-721] Changing loop 'Loop_HConvH_proc' (convolution.cpp:139) to a process function for dataflow in function 'filter11x11_strm'.
INFO: [XFORM 203-721] Changing loop 'Loop_VConvH_proc' (convolution.cpp:156) to a process function for dataflow in function 'filter11x11_strm'.
INFO: [XFORM 203-721] Changing loop 'Loop_Border_proc' (convolution.cpp:177) to a process function for dataflow in function 'filter11x11_strm'.
WARNING: [HLS 200-805] An internal stream 'hconv.i1' with default size can result in deadlock. Please consider resizing the stream using the directive 'set_directive_stream' or the 'HLS stream' pragma.
WARNING: [HLS 200-805] An internal stream 'vconv.i2' with default size can result in deadlock. Please consider resizing the stream using the directive 'set_directive_stream' or the 'HLS stream' pragma.
WARNING: [HLS 200-786] Detected dataflow-on-top in function  'filter11x11_strm'  with default interface mode 'ap_ctrl_hs'. Overlapped execution of successive kernel calls will not happen unless interface mode 'ap_ctrl_chain' is used (or 'ap_ctrl_none' for a purely data-driven design).
INFO: [XFORM 203-712] Applying dataflow to function 'filter11x11_strm', detected/extracted 5 process function(s): 
     'filter11x11_strm.entry6'
     'Block_.split163_proc'
     'Loop_HConvH_proc5'
     'Loop_VConvH_proc'
     'Loop_Border_proc'.
INFO: [XFORM 203-401] Performing if-conversion on hyperblock from (convolution.cpp:177:35) to (convolution.cpp:176:9) in function 'Loop_Border_proc'... converting 4 basic blocks.
INFO: [XFORM 203-11] Balancing expressions in function 'Loop_VConvH_proc' (convolution.cpp:92:16)...12 expression(s) balanced.
INFO: [XFORM 203-11] Balancing expressions in function 'Loop_HConvH_proc5' (convolution.cpp:92:16)...12 expression(s) balanced.
INFO: [HLS 200-111] Finished Pre-synthesis Time (s): cpu = 00:00:07 ; elapsed = 00:00:14 . Memory (MB): peak = 933.215 ; gain = 523.031 ; free physical = 823 ; free virtual = 26443
INFO: [XFORM 203-541] Flattening a loop nest 'VConvH' (convolution.cpp:156:20) in function 'Loop_VConvH_proc'.
INFO: [XFORM 203-541] Flattening a loop nest 'HConvH' (convolution.cpp:139:20) in function 'Loop_HConvH_proc5'.
INFO: [XFORM 203-541] Flattening a loop nest 'Border' (convolution.cpp:177:35) in function 'Loop_Border_proc'.
WARNING: [ANALYSIS 214-52] Found false inter dependency for variable 'linebuf.7'.
WARNING: [ANALYSIS 214-52] Found false inter dependency for variable 'linebuf.9'.
WARNING: [ANALYSIS 214-52] Found false inter dependency for variable 'linebuf.2'.
WARNING: [ANALYSIS 214-52] Found false inter dependency for variable 'linebuf.4'.
WARNING: [ANALYSIS 214-52] Found false inter dependency for variable 'linebuf.1'.
WARNING: [ANALYSIS 214-52] Found false inter dependency for variable 'linebuf.3'.
WARNING: [ANALYSIS 214-52] Found false inter dependency for variable 'linebuf.0'.
WARNING: [ANALYSIS 214-52] Found false inter dependency for variable 'linebuf.8'.
WARNING: [ANALYSIS 214-52] Found false inter dependency for variable 'linebuf.6'.
WARNING: [ANALYSIS 214-52] Found false inter dependency for variable 'linebuf.5'.
INFO: [HLS 200-472] Inferring partial write operation for 'linebuf.0' (convolution.cpp:167:41)
INFO: [HLS 200-472] Inferring partial write operation for 'borderbuf' (convolution.cpp:184:34)
INFO: [HLS 200-111] Finished Architecture Synthesis Time (s): cpu = 00:00:08 ; elapsed = 00:00:15 . Memory (MB): peak = 933.215 ; gain = 523.031 ; free physical = 782 ; free virtual = 26403
INFO: [HLS 200-10] Starting hardware synthesis ...
INFO: [HLS 200-10] Synthesizing 'filter11x11_strm' ...
WARNING: [SYN 201-103] Legalizing function name 'filter11x11_strm.entry6' to 'filter11x11_strm_entry6'.
WARNING: [SYN 201-103] Legalizing function name 'Block_.split163_proc' to 'Block_split163_proc'.
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [HLS 200-42] -- Implementing module 'filter11x11_strm_entry6' 
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [SCHED 204-11] Starting scheduling ...
INFO: [SCHED 204-11] Finished scheduling.
INFO: [HLS 200-111]  Elapsed time: 14.79 seconds; current allocated memory: 176.923 MB.
INFO: [BIND 205-100] Starting micro-architecture generation ...
INFO: [BIND 205-101] Performing variable lifetime analysis.
INFO: [BIND 205-101] Exploring resource sharing.
INFO: [BIND 205-101] Binding ...
INFO: [BIND 205-100] Finished micro-architecture generation.
INFO: [HLS 200-111]  Elapsed time: 0.01 seconds; current allocated memory: 177.009 MB.
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [HLS 200-42] -- Implementing module 'Block_split163_proc' 
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [SCHED 204-11] Starting scheduling ...
INFO: [SCHED 204-11] Finished scheduling.
INFO: [HLS 200-111]  Elapsed time: 0.01 seconds; current allocated memory: 177.080 MB.
INFO: [BIND 205-100] Starting micro-architecture generation ...
INFO: [BIND 205-101] Performing variable lifetime analysis.
INFO: [BIND 205-101] Exploring resource sharing.
INFO: [BIND 205-101] Binding ...
INFO: [BIND 205-100] Finished micro-architecture generation.
INFO: [HLS 200-111]  Elapsed time: 0 seconds; current allocated memory: 177.165 MB.
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [HLS 200-42] -- Implementing module 'Loop_HConvH_proc5' 
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [SCHED 204-11] Starting scheduling ...
INFO: [SCHED 204-61] Pipelining loop 'HConvH_HConvW'.
INFO: [SCHED 204-61] Pipelining result : Target II = 1, Final II = 1, Depth = 2.
INFO: [SCHED 204-11] Finished scheduling.
INFO: [HLS 200-111]  Elapsed time: 0.07 seconds; current allocated memory: 177.457 MB.
INFO: [BIND 205-100] Starting micro-architecture generation ...
INFO: [BIND 205-101] Performing variable lifetime analysis.
INFO: [BIND 205-101] Exploring resource sharing.
INFO: [BIND 205-101] Binding ...
INFO: [BIND 205-100] Finished micro-architecture generation.
INFO: [HLS 200-111]  Elapsed time: 0.09 seconds; current allocated memory: 177.785 MB.
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [HLS 200-42] -- Implementing module 'Loop_VConvH_proc' 
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [SCHED 204-11] Starting scheduling ...
INFO: [SCHED 204-61] Pipelining loop 'VConvH_VConvW'.
INFO: [SCHED 204-61] Pipelining result : Target II = 1, Final II = 1, Depth = 3.
INFO: [SCHED 204-11] Finished scheduling.
INFO: [HLS 200-111]  Elapsed time: 0.1 seconds; current allocated memory: 178.117 MB.
INFO: [BIND 205-100] Starting micro-architecture generation ...
INFO: [BIND 205-101] Performing variable lifetime analysis.
INFO: [BIND 205-101] Exploring resource sharing.
INFO: [BIND 205-101] Binding ...
INFO: [BIND 205-100] Finished micro-architecture generation.
INFO: [HLS 200-111]  Elapsed time: 0.06 seconds; current allocated memory: 178.599 MB.
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [HLS 200-42] -- Implementing module 'Loop_Border_proc' 
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [SCHED 204-11] Starting scheduling ...
INFO: [SCHED 204-61] Pipelining loop 'Border_L'.
INFO: [SCHED 204-61] Pipelining result : Target II = 1, Final II = 1, Depth = 5.
INFO: [SCHED 204-11] Finished scheduling.
INFO: [HLS 200-111]  Elapsed time: 0.1 seconds; current allocated memory: 178.915 MB.
INFO: [BIND 205-100] Starting micro-architecture generation ...
INFO: [BIND 205-101] Performing variable lifetime analysis.
INFO: [BIND 205-101] Exploring resource sharing.
INFO: [BIND 205-101] Binding ...
INFO: [BIND 205-100] Finished micro-architecture generation.
INFO: [HLS 200-111]  Elapsed time: 0.04 seconds; current allocated memory: 179.320 MB.
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [HLS 200-42] -- Implementing module 'filter11x11_strm' 
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [SCHED 204-11] Starting scheduling ...
INFO: [SCHED 204-11] Finished scheduling.
INFO: [HLS 200-111]  Elapsed time: 0.07 seconds; current allocated memory: 179.495 MB.
INFO: [BIND 205-100] Starting micro-architecture generation ...
INFO: [BIND 205-101] Performing variable lifetime analysis.
INFO: [BIND 205-101] Exploring resource sharing.
INFO: [BIND 205-101] Binding ...
INFO: [BIND 205-100] Finished micro-architecture generation.
INFO: [HLS 200-111]  Elapsed time: 0.18 seconds; current allocated memory: 179.938 MB.
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [HLS 200-10] -- Generating RTL for module 'filter11x11_strm_entry6' 
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [RTGEN 206-100] Finished creating RTL model for 'filter11x11_strm_entry6'.
INFO: [HLS 200-111]  Elapsed time: 0.13 seconds; current allocated memory: 180.216 MB.
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [HLS 200-10] -- Generating RTL for module 'Block_split163_proc' 
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_add_32ns_32s_32_1_1': 1 instance(s).
INFO: [RTGEN 206-100] Finished creating RTL model for 'Block_split163_proc'.
INFO: [HLS 200-111]  Elapsed time: 0.02 seconds; current allocated memory: 180.672 MB.
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [HLS 200-10] -- Generating RTL for module 'Loop_HConvH_proc5' 
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_add_11ns_11ns_11_1_1': 1 instance(s).
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_add_32ns_32ns_32_1_1': 2 instance(s).
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_add_64ns_64ns_64_1_1': 1 instance(s).
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_mul_10ns_32s_32_1_1': 4 instance(s).
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_mul_11ns_32s_32_1_1': 3 instance(s).
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_mul_32ns_32ns_64_1_1': 1 instance(s).
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_mul_8ns_32s_32_1_1': 2 instance(s).
INFO: [RTGEN 206-100] Finished creating RTL model for 'Loop_HConvH_proc5'.
INFO: [HLS 200-111]  Elapsed time: 0.04 seconds; current allocated memory: 181.565 MB.
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [HLS 200-10] -- Generating RTL for module 'Loop_VConvH_proc' 
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_add_11ns_11ns_11_1_1': 2 instance(s).
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_add_32ns_32ns_32_1_1': 2 instance(s).
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_add_64ns_64ns_64_1_1': 1 instance(s).
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_mul_10ns_32s_32_1_1': 4 instance(s).
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_mul_11ns_32s_32_1_1': 3 instance(s).
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_mul_32ns_32ns_64_1_1': 1 instance(s).
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_mul_8ns_32s_32_1_1': 2 instance(s).
INFO: [RTGEN 206-100] Finished creating RTL model for 'Loop_VConvH_proc'.
INFO: [HLS 200-111]  Elapsed time: 0.17 seconds; current allocated memory: 183.909 MB.
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [HLS 200-10] -- Generating RTL for module 'Loop_Border_proc' 
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_add_11ns_11ns_11_1_1': 2 instance(s).
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_add_11ns_11s_11_1_1': 1 instance(s).
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_add_32ns_32s_32_1_1': 3 instance(s).
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_add_64ns_64ns_64_1_1': 1 instance(s).
INFO: [RTGEN 206-100] Generating core module 'filter11x11_strm_mul_32ns_32ns_64_1_1': 1 instance(s).
INFO: [RTGEN 206-100] Finished creating RTL model for 'Loop_Border_proc'.
INFO: [HLS 200-111]  Elapsed time: 0.23 seconds; current allocated memory: 186.334 MB.
INFO: [HLS 200-10] ----------------------------------------------------------------
INFO: [HLS 200-10] -- Generating RTL for module 'filter11x11_strm' 
INFO: [HLS 200-10] ----------------------------------------------------------------
WARNING: [RTGEN 206-101] Design contains AXI ports. Reset is fixed to synchronous and active low.
INFO: [RTGEN 206-500] Setting interface mode on port 'filter11x11_strm/width' to 'ap_none'.
INFO: [RTGEN 206-500] Setting interface mode on port 'filter11x11_strm/height' to 'ap_none'.
INFO: [RTGEN 206-500] Setting interface mode on port 'filter11x11_strm/src_V' to 'axis' (register, both mode).
INFO: [RTGEN 206-500] Setting interface mode on port 'filter11x11_strm/dst_V' to 'axis' (register, both mode).
INFO: [RTGEN 206-500] Setting interface mode on function 'filter11x11_strm' to 'ap_ctrl_hs'.
INFO: [RTGEN 206-100] Finished creating RTL model for 'filter11x11_strm'.
INFO: [HLS 200-111]  Elapsed time: 0.19 seconds; current allocated memory: 188.429 MB.
INFO: [RTMG 210-282] Generating pipelined core: 'filter11x11_strm_filter11x11_strm_mul_32ns_32ns_64_1_1_Multiplier_0'
INFO: [RTMG 210-282] Generating pipelined core: 'filter11x11_strm_filter11x11_strm_mul_8ns_32s_32_1_1_Multiplier_1'
INFO: [RTMG 210-282] Generating pipelined core: 'filter11x11_strm_filter11x11_strm_mul_10ns_32s_32_1_1_Multiplier_2'
INFO: [RTMG 210-282] Generating pipelined core: 'filter11x11_strm_filter11x11_strm_mul_11ns_32s_32_1_1_Multiplier_3'
INFO: [RTMG 210-278] Implementing memory 'filter11x11_strm_Loop_VConvH_proc_linebuf_0_ram (RAM)' using block RAMs with power-on initialization.
INFO: [RTMG 210-278] Implementing memory 'filter11x11_strm_Loop_VConvH_proc_linebuf_1_ram (RAM)' using block RAMs with power-on initialization.
INFO: [RTMG 210-278] Implementing memory 'filter11x11_strm_Loop_Border_proc_borderbuf_ram (RAM)' using block RAMs.
INFO: [RTMG 210-285] Implementing FIFO 'width_c_U(filter11x11_strm_fifo_w32_d2_A)' using Shift Registers.
INFO: [RTMG 210-285] Implementing FIFO 'width_c176_U(filter11x11_strm_fifo_w32_d2_A)' using Shift Registers.
INFO: [RTMG 210-285] Implementing FIFO 'height_c_U(filter11x11_strm_fifo_w32_d2_A)' using Shift Registers.
INFO: [RTMG 210-285] Implementing FIFO 'height_c177_U(filter11x11_strm_fifo_w32_d2_A)' using Shift Registers.
INFO: [RTMG 210-285] Implementing FIFO 'width_c178_U(filter11x11_strm_fifo_w32_d3_A)' using Shift Registers.
INFO: [RTMG 210-285] Implementing FIFO 'height_c179_U(filter11x11_strm_fifo_w32_d2_A)' using Shift Registers.
INFO: [RTMG 210-285] Implementing FIFO 'vconv_xlim_loc_c_U(filter11x11_strm_fifo_w32_d2_A)' using Shift Registers.
INFO: [RTMG 210-285] Implementing FIFO 'hconv_i1_U(filter11x11_strm_fifo_w32_d2_A)' using Shift Registers.
INFO: [RTMG 210-285] Implementing FIFO 'vconv_i2_U(filter11x11_strm_fifo_w32_d2_A)' using Shift Registers.
INFO: [RTMG 210-285] Implementing FIFO 'height_c180_U(filter11x11_strm_fifo_w32_d2_A)' using Shift Registers.
INFO: [RTMG 210-285] Implementing FIFO 'vconv_xlim_loc_c181_U(filter11x11_strm_fifo_w32_d2_A)' using Shift Registers.
INFO: [RTMG 210-285] Implementing FIFO 'start_for_Block_split163_proc_U0_U(filter11x11_strm_start_for_Block_split163_proc_U0)' using Shift Registers.
INFO: [RTMG 210-285] Implementing FIFO 'start_for_Loop_Border_proc_U0_U(filter11x11_strm_start_for_Loop_Border_proc_U0)' using Shift Registers.
INFO: [RTMG 210-285] Implementing FIFO 'start_for_Loop_VConvH_proc_U0_U(filter11x11_strm_start_for_Loop_VConvH_proc_U0)' using Shift Registers.
INFO: [HLS 200-111] Finished generating all RTL models Time (s): cpu = 00:00:10 ; elapsed = 00:00:18 . Memory (MB): peak = 933.215 ; gain = 523.031 ; free physical = 749 ; free virtual = 26381
INFO: [VHDL 208-304] Generating VHDL RTL for filter11x11_strm with prefix filter11x11_strm_.
INFO: [VLOG 209-307] Generating Verilog RTL for filter11x11_strm with prefix filter11x11_strm_.
INFO: [HLS 200-790] **** Loop Constraint Status: All loop constraints were satisfied.
INFO: [HLS 200-789] **** Estimated Fmax: 215.89 MHz
INFO: [HLS 200-112] Total elapsed time: 18.13 seconds; peak allocated memory: 188.429 MB.
INFO: [Common 17-206] Exiting vitis_hls at Wed Nov  6 20:30:04 2019...

  1. 2019年11月07日 05:21 |
  2. Vitis HLS
  3. | トラックバック:0
  4. | コメント:0