Can't synthesis Qkeras CNN model
Created by: HenningCode
Hello Guys,
I successfully synthesized some FC neural networks, now I tried CNN's, but I cant seem to make them work. I used the master branch and also the branch form PR #220.
I tried both io_stream
as well as io_parallel
, with both Resource
and Latency
.
Do you guys have an idea why it doesn't work?
The synthesis either fails with being stuck at the unrolling process being stuck or with this error log:
source /mnt/e41fa463-d10e-4d8d-ae5b-f90fb0242bd6/Xilinx/Vivado/2019.1/scripts/vivado_hls/hls.tcl -notrace
INFO: [HLS 200-10] Running '/mnt/e41fa463-d10e-4d8d-ae5b-f90fb0242bd6/Xilinx/Vivado/2019.1/bin/unwrapped/lnx64.o/vivado_hls'
INFO: [HLS 200-10] For user 'henning' on host 'henningubuntu' (Linux_x86_64 version 5.4.0-89-generic) on Fri Nov 05 17:11:21 CET 2021
INFO: [HLS 200-10] On os Ubuntu 18.04.6 LTS
INFO: [HLS 200-10] In directory '/home/henning/Schreibtisch/Masterarbeit/Hls4Ml/Output/my_model_qkeras'
Sourcing Tcl script 'build_prj.tcl'
INFO: [HLS 200-10] Opening project '/home/henning/Schreibtisch/Masterarbeit/Hls4Ml/Output/my_model_qkeras/mnist_classifier_prj'.
INFO: [HLS 200-10] Adding design file 'firmware/mnist_classifier.cpp' to the project
INFO: [HLS 200-10] Adding test bench file 'mnist_classifier_test.cpp' to the project
INFO: [HLS 200-10] Adding test bench file 'firmware/weights' to the project
INFO: [HLS 200-10] Adding test bench file 'tb_data' to the project
INFO: [HLS 200-10] Opening solution '/home/henning/Schreibtisch/Masterarbeit/Hls4Ml/Output/my_model_qkeras/mnist_classifier_prj/solution1'.
INFO: [SYN 201-201] Setting up clock 'default' with a period of 10ns.
INFO: [HLS 200-10] Setting target device to 'xc7z020-clg400-1'
INFO: [XFORM 203-101] Allowed max sub elements number after partition is 4096.
INFO: [XFORM 203-1161] The maximum of name length is set into 60.
INFO: [XFORM 203-101] Allowed max sub elements number after partition is 4096.
INFO: [XFORM 203-1161] The maximum of name length is set into 60.
***** C SIMULATION *****
INFO: [SIM 211-2] *************** CSIM start ***************
INFO: [SIM 211-4] CSIM will launch GCC as the compiler.
Compiling ../../../../mnist_classifier_test.cpp in debug mode
Compiling ../../../../firmware/mnist_classifier.cpp in debug mode
Generating csim.exe
INFO: Unable to open input/predictions file, using default input.
WARNING: Hls::stream 'layer11_cpy1' contains leftover data, which may result in RTL simulation hanging.
0.0996094 0.0996094 0.0996094 0.0996094 0.0996094 0.0996094 0.0996094 0.0996094 0.0996094 0.0996094
INFO: Saved inference results to file: tb_data/csim_results.log
INFO: [SIM 211-1] CSim done with 0 errors.
INFO: [SIM 211-3] *************** CSIM finish ***************
***** C SIMULATION COMPLETED IN 0h0m6s *****
***** C/RTL SYNTHESIS *****
INFO: [SCHED 204-61] Option 'relax_ii_for_timing' is enabled, will increase II to preserve clock frequency constraints.
INFO: [HLS 200-10] Analyzing design file 'firmware/mnist_classifier.cpp' ...
WARNING: [HLS 200-40] In file included from firmware/mnist_classifier.cpp:1:
In file included from firmware/mnist_classifier.cpp:22:
In file included from firmware/parameters.h:12:
In file included from firmware/nnet_utils/nnet_conv2d_stream.h:5:
firmware/nnet_utils/nnet_conv_stream.h:13:10: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]
if (idx < K - S) {
~~~ ^ ~~~~~
firmware/nnet_utils/nnet_conv_stream.h:58:16: note: in instantiation of function template specialization 'nnet::scale_index_K_gte_S<2, 2, 28>' requested here
return scale_index_K_gte_S<K, S, W>(idx);
^
firmware/nnet_utils/nnet_conv2d_stream.h:16:29: note: in instantiation of function template specialization 'nnet::scale_index<2, 2, 28>' requested here
const unsigned sh_idx = scale_index<CONFIG_T::filt_height, CONFIG_T::stride_height, CONFIG_T::in_height>(h_idx);
^
firmware/nnet_utils/nnet_conv2d_stream.h:58:13: note: in instantiation of function template specialization 'nnet::compute_scaled_indices_2d<nnet::array<ap_fixed<16, 6, 5, 3, 0>, 1>, config2>' requested here
compute_scaled_indices_2d<data_T, CONFIG_T>(i_ih, i_iw, pixel_idx);
^
firmware/mnist_classifier.cpp:69:2: note: in instantiation of function template specialization 'nnet::conv_2d_cl<nnet::array<ap_fixed<16, 6, 5, 3, 0>, 1>, nnet::array<ap_fixed<16, 6, 5, 3, 0>, 16>, config2>' requested here
nnet::conv_2d_cl<layer11_t, layer2_t, config2>(layer11_cpy2, layer2_out, w2, b2);
^
In file included from firmware/mnist_classifier.cpp:1:
In file included from firmware/mnist_classifier.cpp:22:
In file included from firmware/parameters.h:12:
In file included from firmware/nnet_utils/nnet_conv2d_stream.h:5:
firmware/nnet_utils/nnet_conv_stream.h:35:10: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]
if (idx < S - K) {
~~~ ^ ~~~~~
firmware/nnet_utils/nnet_conv_stream.h:60:16: note: in instantiation of function template specialization 'nnet::scale_index_K_lt_S<2, 2, 28>' requested here
return scale_index_K_lt_S<K, S, W>(idx);
^
firmware/nnet_utils/nnet_conv2d_stream.h:16:29: note: in instantiation of function template specialization 'nnet::scale_index<2, 2, 28>' requested here
const unsigned sh_idx = scale_index<CONFIG_T::filt_height, CONFIG_T::stride_height, CONFIG_T::in_height>(h_idx);
^
firmware/nnet_utils/nnet_conv2d_stream.h:58:13: note: in instantiation of function template specialization 'nnet::compute_scaled_indices_2d<nnet::array<ap_fixed<16, 6, 5, 3, 0>, 1>, config2>' requested here
compute_scaled_indices_2d<data_T, CONFIG_T>(i_ih, i_iw, pixel_idx);
^
firmware/mnist_classifier.cpp:69:2: note: in instantiation of function template specialization 'nnet::conv_2d_cl<nnet::array<ap_fixed<16, 6, 5, 3, 0>, 1>, nnet::array<ap_fixed<16, 6, 5, 3, 0>, 16>, config2>' requested here
nnet::conv_2d_cl<layer11_t, layer2_t, config2>(layer11_cpy2, layer2_out, w2, b2);
^
2 warnings generated.
WARNING: [HLS 214-114] Since the only kind of statements allowed in a dataflow region are variable declarations and function calls, the compiler may not be able to correctly handle the region: firmware/nnet_utils/nnet_dense_latency.h:64:9
WARNING: [HLS 214-104] Only for-loops and functions support the dataflow: firmware/nnet_utils/nnet_dense_latency.h:76:9
WARNING: [HLS 214-114] Since the only kind of statements allowed in a dataflow region are variable declarations and function calls, the compiler may not be able to correctly handle the region: firmware/mnist_classifier.cpp:35:2
WARNING: [HLS 200-471] Dataflow form checks found 3 issue(s) in file firmware/mnist_classifier.cpp
INFO: [HLS 200-111] Finished Linking Time (s): cpu = 00:00:29 ; elapsed = 00:00:30 . Memory (MB): peak = 903.199 ; gain = 194.969 ; free physical = 7753 ; free virtual = 12266
INFO: [HLS 200-111] Finished Checking Pragmas Time (s): cpu = 00:00:29 ; elapsed = 00:00:30 . Memory (MB): peak = 903.199 ; gain = 194.969 ; free physical = 7753 ; free virtual = 12266
INFO: [HLS 200-10] Starting code transformations ...
INFO: [HLS 200-489] Unrolling loop 'ClonePack' (firmware/nnet_utils/nnet_stream.h:28) in function 'void nnet::clone_stream<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, 784>(hls::stream<FORWARD_REFERENCE>&, hls::stream<FORWARD_REFERENCE>&, hls::stream<FORWARD_REFERENCE>&)' completely with a factor of 1.
INFO: [HLS 200-489] Unrolling loop 'MultLoop' (firmware/nnet_utils/nnet_dense_resource.h:158) in function 'void nnet::dense_resource_rf_gt_nin_rem0<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, config8>(FORWARD_REFERENCE*, FORWARD_REFERENCE*, FORWARD_REFERENCE::weight_t*, FORWARD_REFERENCE::bias_t*)' completely with a factor of 1.
INFO: [HLS 200-489] Unrolling loop 'ComputeIndex' (firmware/nnet_utils/nnet_conv2d_stream.h:19) in function 'void nnet::compute_scaled_indices_2d<nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, config5>(unsigned int, unsigned int, ap_uint<(FORWARD_REFERENCE::filt_height) * (FORWARD_REFERENCE::filt_width)>*)' completely with a factor of 1.
INFO: [HLS 200-489] Unrolling loop 'MultLoop' (firmware/nnet_utils/nnet_dense_resource.h:158) in function 'void nnet::dense_resource_rf_gt_nin_rem0<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, config5_mult>(FORWARD_REFERENCE*, FORWARD_REFERENCE*, FORWARD_REFERENCE::weight_t*, FORWARD_REFERENCE::bias_t*)' completely with a factor of 1.
INFO: [HLS 200-489] Unrolling loop 'ComputeIndex' (firmware/nnet_utils/nnet_conv2d_stream.h:19) in function 'void nnet::compute_scaled_indices_2d<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, config2>(unsigned int, unsigned int, ap_uint<(FORWARD_REFERENCE::filt_height) * (FORWARD_REFERENCE::filt_width)>*)' completely with a factor of 1.
INFO: [HLS 200-489] Unrolling loop 'CopyDataChan' (firmware/nnet_utils/nnet_conv_stream.h:130) in function 'void nnet::compute_output<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, config2>(FORWARD_REFERENCE const&, hls::stream<FORWARD_REFERENCE::value_type>*, hls::stream<FORWARD_REFERENCE>&, FORWARD_REFERENCE&, unsigned int&, FORWARD_REFERENCE::weight_t*, FORWARD_REFERENCE::bias_t*, ap_uint<FORWARD_REFERENCE::kernel_size>*)' completely with a factor of 1.
INFO: [HLS 200-489] Unrolling loop 'Loop-1' (firmware/nnet_utils/nnet_types.h:32) in function 'nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>::operator=(nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u> const&)' completely with a factor of 1.
INFO: [HLS 200-489] Unrolling loop 'MultLoop' (firmware/nnet_utils/nnet_dense_resource.h:158) in function 'void nnet::dense_resource_rf_gt_nin_rem0<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, config2_mult>(FORWARD_REFERENCE*, FORWARD_REFERENCE*, FORWARD_REFERENCE::weight_t*, FORWARD_REFERENCE::bias_t*)' completely with a factor of 1.
INFO: [XFORM 203-603] Inlining function 'nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>::operator[]' into 'nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>::operator=' (firmware/nnet_utils/nnet_types.h:34).
INFO: [XFORM 203-603] Inlining function 'nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>::operator[]' into 'nnet::compute_output<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, config2>' (firmware/nnet_utils/nnet_conv_stream.h:132).
INFO: [XFORM 203-603] Inlining function 'nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>::operator[].1' into 'nnet::clone_stream<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, 784>' (firmware/nnet_utils/nnet_stream.h:30).
INFO: [XFORM 203-603] Inlining function 'nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>::operator[].1' into 'nnet::clone_stream<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, 784>' (firmware/nnet_utils/nnet_stream.h:30).
INFO: [XFORM 203-603] Inlining function 'nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>::operator[].1' into 'nnet::clone_stream<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, 784>' (firmware/nnet_utils/nnet_stream.h:31).
INFO: [XFORM 203-603] Inlining function 'nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>::operator[].1' into 'nnet::clone_stream<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, 784>' (firmware/nnet_utils/nnet_stream.h:31).
INFO: [XFORM 203-603] Inlining function 'nnet::scale_index_K_gte_S<2u, 2u, 28u>' into 'nnet::scale_index<2u, 2u, 28u>' (firmware/nnet_utils/nnet_conv_stream.h:58).
INFO: [XFORM 203-603] Inlining function 'nnet::scale_index<2u, 2u, 28u>' into 'nnet::compute_scaled_indices_2d<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, config2>' (firmware/nnet_utils/nnet_conv2d_stream.h:22).
INFO: [XFORM 203-603] Inlining function 'nnet::scale_index<2u, 2u, 28u>' into 'nnet::compute_scaled_indices_2d<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, config2>' (firmware/nnet_utils/nnet_conv2d_stream.h:16).
INFO: [XFORM 203-603] Inlining function 'nnet::product::mult<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, ap_fixed<4, 1, (ap_q_mode)5, (ap_o_mode)3, 0>, ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0> >::product' into 'nnet::dense_resource_rf_gt_nin_rem0<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, config2_mult>' (firmware/nnet_utils/nnet_dense_resource.h:160).
INFO: [XFORM 203-603] Inlining function 'nnet::dense_resource_rf_gt_nin_rem0<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, config2_mult>' into 'nnet::dense_resource<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, config2_mult>' (firmware/nnet_utils/nnet_dense_resource.h:276).
INFO: [XFORM 203-603] Inlining function 'nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>::operator[]' into 'nnet::mult_buffer<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, config2>' (firmware/nnet_utils/nnet_conv_stream.h:95).
INFO: [XFORM 203-603] Inlining function 'nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>::operator[]' into 'nnet::relu<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, relu_config4>' (firmware/nnet_utils/nnet_activation_stream.h:69).
INFO: [XFORM 203-603] Inlining function 'nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>::operator[]' into 'nnet::relu<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, relu_config4>' (firmware/nnet_utils/nnet_activation_stream.h:69).
INFO: [XFORM 203-603] Inlining function 'nnet::dense_resource<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, config2_mult>' into 'nnet::mult_buffer<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, config2>' (firmware/nnet_utils/nnet_conv_stream.h:89).
INFO: [XFORM 203-603] Inlining function 'nnet::mult_buffer<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, config2>' into 'nnet::compute_output<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, config2>' (firmware/nnet_utils/nnet_conv_stream.h:136).
INFO: [XFORM 203-603] Inlining function 'nnet::compute_output<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, config2>' into 'nnet::conv_2d_cl<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, config2>' (firmware/nnet_utils/nnet_conv2d_stream.h:59).
INFO: [XFORM 203-603] Inlining function 'nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>::operator[].1' into 'nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>::operator=' (firmware/nnet_utils/nnet_types.h:34).
INFO: [XFORM 203-603] Inlining function 'nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>::operator[].1' into 'nnet::relu<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, relu_config4>' (firmware/nnet_utils/nnet_activation_stream.h:70).
INFO: [XFORM 203-603] Inlining function 'nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>::operator[].1' into 'nnet::relu<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, relu_config4>' (firmware/nnet_utils/nnet_activation_stream.h:69).
INFO: [XFORM 203-603] Inlining function 'nnet::scale_index_K_gte_S<3u, 2u, 14u>' into 'nnet::scale_index<3u, 2u, 14u>' (firmware/nnet_utils/nnet_conv_stream.h:58).
INFO: [XFORM 203-603] Inlining function 'nnet::scale_index<3u, 2u, 14u>' into 'nnet::compute_scaled_indices_2d<nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, config5>' (firmware/nnet_utils/nnet_conv2d_stream.h:22).
INFO: [XFORM 203-603] Inlining function 'nnet::scale_index<3u, 2u, 14u>' into 'nnet::compute_scaled_indices_2d<nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, config5>' (firmware/nnet_utils/nnet_conv2d_stream.h:16).
INFO: [XFORM 203-603] Inlining function 'nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>::operator[]' into 'nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>::operator=' (firmware/nnet_utils/nnet_types.h:34).
INFO: [XFORM 203-603] Inlining function 'nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>::operator[]' into 'nnet::compute_output<nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, config5>' (firmware/nnet_utils/nnet_conv_stream.h:132).
INFO: [XFORM 203-603] Inlining function 'nnet::product::mult<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, ap_fixed<4, 1, (ap_q_mode)5, (ap_o_mode)3, 0>, ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0> >::product' into 'nnet::dense_resource_rf_gt_nin_rem0<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, config5_mult>' (firmware/nnet_utils/nnet_dense_resource.h:160).
INFO: [XFORM 203-603] Inlining function 'nnet::product::mult<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, ap_fixed<4, 1, (ap_q_mode)5, (ap_o_mode)3, 0>, ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0> >::product' into 'nnet::dense_resource_rf_gt_nin_rem0<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, config8>' (firmware/nnet_utils/nnet_dense_resource.h:160).
INFO: [XFORM 203-603] Inlining function 'nnet::dense_resource_rf_gt_nin_rem0<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, config5_mult>' into 'nnet::dense_resource<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, config5_mult>' (firmware/nnet_utils/nnet_dense_resource.h:276).
INFO: [XFORM 203-603] Inlining function 'nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>::operator[]' into 'nnet::mult_buffer<nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, config5>' (firmware/nnet_utils/nnet_conv_stream.h:95).
INFO: [XFORM 203-603] Inlining function 'nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>::operator[]' into 'nnet::relu<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, relu_config7>' (firmware/nnet_utils/nnet_activation_stream.h:69).
INFO: [XFORM 203-603] Inlining function 'nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>::operator[]' into 'nnet::relu<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, relu_config7>' (firmware/nnet_utils/nnet_activation_stream.h:69).
INFO: [XFORM 203-603] Inlining function 'nnet::dense_resource<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, config5_mult>' into 'nnet::mult_buffer<nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, config5>' (firmware/nnet_utils/nnet_conv_stream.h:89).
INFO: [XFORM 203-603] Inlining function 'nnet::mult_buffer<nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, config5>' into 'nnet::compute_output<nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, config5>' (firmware/nnet_utils/nnet_conv_stream.h:136).
INFO: [XFORM 203-603] Inlining function 'nnet::compute_output<nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, config5>' into 'nnet::conv_2d_cl<nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, config5>' (firmware/nnet_utils/nnet_conv2d_stream.h:59).
INFO: [XFORM 203-603] Inlining function 'nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>::operator[].1' into 'nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>::operator=' (firmware/nnet_utils/nnet_types.h:34).
INFO: [XFORM 203-603] Inlining function 'nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>::operator[]' into 'nnet::dense<nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 10u>, config8>' (firmware/nnet_utils/nnet_dense_stream.h:48).
INFO: [XFORM 203-603] Inlining function 'nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>::operator[]' into 'nnet::relu<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, relu_config7>' (firmware/nnet_utils/nnet_activation_stream.h:70).
INFO: [XFORM 203-603] Inlining function 'nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>::operator[]' into 'nnet::relu<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, relu_config7>' (firmware/nnet_utils/nnet_activation_stream.h:69).
INFO: [XFORM 203-603] Inlining function 'nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>::operator[].1' into 'nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>::operator=' (firmware/nnet_utils/nnet_types.h:34).
INFO: [XFORM 203-603] Inlining function 'nnet::dense_resource_rf_gt_nin_rem0<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, config8>' into 'nnet::dense_resource<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, config8>' (firmware/nnet_utils/nnet_dense_resource.h:276).
INFO: [XFORM 203-603] Inlining function 'nnet::dense_resource<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, config8>' into 'nnet::dense_wrapper<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, config8>' (firmware/nnet_utils/nnet_dense_stream.h:24).
INFO: [XFORM 203-603] Inlining function 'nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 10u>::operator[]' into 'nnet::softmax_latency<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 10u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 10u>, softmax_config10>' (firmware/nnet_utils/nnet_activation_stream.h:175).
INFO: [XFORM 203-603] Inlining function 'nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 10u>::operator[]' into 'nnet::softmax_latency<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 10u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 10u>, softmax_config10>' (firmware/nnet_utils/nnet_activation_stream.h:156).
INFO: [XFORM 203-603] Inlining function 'nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 10u>::operator[]' into 'nnet::dense<nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 10u>, config8>' (firmware/nnet_utils/nnet_dense_stream.h:62).
INFO: [XFORM 203-603] Inlining function 'nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 10u>::operator[].1' into 'nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 10u>::operator=' (firmware/nnet_utils/nnet_types.h:34).
INFO: [HLS 200-111] Finished Standard Transforms Time (s): cpu = 00:00:43 ; elapsed = 00:00:44 . Memory (MB): peak = 2439.199 ; gain = 1730.969 ; free physical = 6528 ; free virtual = 11041
INFO: [HLS 200-10] Checking synthesizability ...
INFO: [XFORM 203-602] Inlining function 'nnet::compute_scaled_indices_2d<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, config2>' into 'nnet::conv_2d_cl<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, config2>' (firmware/nnet_utils/nnet_conv2d_stream.h:58) automatically.
INFO: [XFORM 203-602] Inlining function 'nnet::cast<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, config2_mult>' into 'nnet::conv_2d_cl<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, config2>' (firmware/nnet_utils/nnet_dense_resource.h:178->firmware/nnet_utils/nnet_dense_resource.h:276->firmware/nnet_utils/nnet_conv_stream.h:89->firmware/nnet_utils/nnet_conv_stream.h:136->firmware/nnet_utils/nnet_conv2d_stream.h:59) automatically.
INFO: [XFORM 203-602] Inlining function 'nnet::cast<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, config5_mult>' into 'nnet::conv_2d_cl<nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, config5>' (firmware/nnet_utils/nnet_dense_resource.h:178->firmware/nnet_utils/nnet_dense_resource.h:276->firmware/nnet_utils/nnet_conv_stream.h:89->firmware/nnet_utils/nnet_conv_stream.h:136->firmware/nnet_utils/nnet_conv2d_stream.h:59) automatically.
INFO: [XFORM 203-602] Inlining function 'nnet::cast<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, config8>' into 'nnet::dense_wrapper<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, config8>' (firmware/nnet_utils/nnet_dense_resource.h:178->firmware/nnet_utils/nnet_dense_resource.h:276->firmware/nnet_utils/nnet_dense_stream.h:24) automatically.
INFO: [XFORM 203-602] Inlining function 'nnet::reduce<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0>, 2, nnet::Op_add<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0> > >' into 'nnet::reduce<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0>, 4, nnet::Op_add<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0> > >' (firmware/nnet_utils/nnet_common.h:54) automatically.
INFO: [XFORM 203-602] Inlining function 'nnet::reduce<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0>, 4, nnet::Op_add<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0> > >' into 'nnet::reduce<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0>, 8, nnet::Op_add<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0> > >' (firmware/nnet_utils/nnet_common.h:54) automatically.
INFO: [XFORM 203-602] Inlining function 'nnet::reduce<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0>, 8, nnet::Op_add<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0> > >' into 'nnet::reduce<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0>, 10, nnet::Op_add<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0> > >' (firmware/nnet_utils/nnet_common.h:54) automatically.
INFO: [XFORM 203-602] Inlining function 'nnet::reduce<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0>, 2, nnet::Op_add<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0> > >' into 'nnet::reduce<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0>, 10, nnet::Op_add<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0> > >' (firmware/nnet_utils/nnet_common.h:54) automatically.
INFO: [XFORM 203-602] Inlining function 'nnet::softmax_idx_from_real_val<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, softmax_config10>' into 'nnet::softmax_latency<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 10u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 10u>, softmax_config10>' (firmware/nnet_utils/nnet_activation_stream.h:156) automatically.
INFO: [XFORM 203-602] Inlining function 'nnet::reduce<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0>, 10, nnet::Op_add<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0> > >' into 'nnet::softmax_latency<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 10u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 10u>, softmax_config10>' (firmware/nnet_utils/nnet_activation_stream.h:164) automatically.
INFO: [XFORM 203-602] Inlining function 'nnet::softmax_idx_from_real_val<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0>, softmax_config10>' into 'nnet::softmax_latency<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 10u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 10u>, softmax_config10>' (firmware/nnet_utils/nnet_activation_stream.h:166) automatically.
INFO: [HLS 200-111] Finished Checking Synthesizability Time (s): cpu = 00:00:44 ; elapsed = 00:00:46 . Memory (MB): peak = 2440.367 ; gain = 1732.137 ; free physical = 6544 ; free virtual = 11058
INFO: [XFORM 203-1101] Packing variable 'out_pack.data.V' (firmware/nnet_utils/nnet_activation_stream.h:170) into a 160-bit variable.
INFO: [XFORM 203-1101] Packing variable 'out_data.data.V' (firmware/nnet_utils/nnet_activation_stream.h:64) into a 160-bit variable.
INFO: [XFORM 203-1101] Packing variable 'out_data.data.V' (firmware/nnet_utils/nnet_activation_stream.h:64) into a 80-bit variable.
INFO: [XFORM 203-1101] Packing variable 'res_pack.data.V' (firmware/nnet_utils/nnet_dense_stream.h:58) into a 160-bit variable.
INFO: [XFORM 203-1101] Packing variable 'res_pack.data.V' (firmware/nnet_utils/nnet_conv2d_stream.h:45) into a 512-bit variable.
INFO: [XFORM 203-1101] Packing variable 'res_pack.data.V' (firmware/nnet_utils/nnet_conv2d_stream.h:45) into a 256-bit variable.
INFO: [XFORM 203-1101] Packing variable 'out_data1.data.V' (firmware/nnet_utils/nnet_stream.h:23) into a 16-bit variable.
INFO: [XFORM 203-1101] Packing variable 'out_data2.data.V' (firmware/nnet_utils/nnet_stream.h:24) into a 16-bit variable.
INFO: [XFORM 203-502] Unrolling all loops for pipelining in function 'nnet::softmax_latency<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 10u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 10u>, softmax_config10>' (firmware/nnet_utils/nnet_activation_stream.h:32:59).
INFO: [XFORM 203-502] Unrolling all sub-loops inside loop 'ReLUActLoop' (firmware/nnet_utils/nnet_activation_stream.h:60) in function 'nnet::relu<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, relu_config7>' for pipelining.
INFO: [XFORM 203-502] Unrolling all sub-loops inside loop 'ReLUActLoop' (firmware/nnet_utils/nnet_activation_stream.h:60) in function 'nnet::relu<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, relu_config4>' for pipelining.
INFO: [XFORM 203-502] Unrolling all sub-loops inside loop 'DataPrepare' (firmware/nnet_utils/nnet_dense_stream.h:41) in function 'nnet::dense<nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 10u>, config8>' for pipelining.
INFO: [HLS 200-489] Unrolling loop 'Loop-1' (firmware/nnet_utils/nnet_types.h:32) in function 'nnet::softmax_latency<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 10u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 10u>, softmax_config10>' completely with a factor of 10.
INFO: [HLS 200-489] Unrolling loop 'SoftmaxExpPackLoop' (firmware/nnet_utils/nnet_activation_stream.h:154) in function 'nnet::softmax_latency<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 10u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 10u>, softmax_config10>' completely with a factor of 10.
INFO: [HLS 200-489] Unrolling loop 'SoftmaxInvPackLoop' (firmware/nnet_utils/nnet_activation_stream.h:172) in function 'nnet::softmax_latency<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 10u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 10u>, softmax_config10>' completely with a factor of 10.
INFO: [HLS 200-489] Unrolling loop 'Loop-1.1' (firmware/nnet_utils/nnet_types.h:32) in function 'nnet::relu<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, relu_config7>' completely with a factor of 32.
INFO: [HLS 200-489] Unrolling loop 'ReLUPackLoop' (firmware/nnet_utils/nnet_activation_stream.h:67) in function 'nnet::relu<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, relu_config7>' completely with a factor of 32.
INFO: [HLS 200-489] Unrolling loop 'Loop-1.1' (firmware/nnet_utils/nnet_types.h:32) in function 'nnet::relu<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, relu_config4>' completely with a factor of 16.
INFO: [HLS 200-489] Unrolling loop 'ReLUPackLoop' (firmware/nnet_utils/nnet_activation_stream.h:67) in function 'nnet::relu<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, relu_config4>' completely with a factor of 16.
INFO: [HLS 200-489] Unrolling loop 'Loop-1.1' (firmware/nnet_utils/nnet_types.h:32) in function 'nnet::dense<nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 10u>, config8>' completely with a factor of 32.
INFO: [HLS 200-489] Unrolling loop 'DataPack' (firmware/nnet_utils/nnet_dense_stream.h:46) in function 'nnet::dense<nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 10u>, config8>' completely with a factor of 32.
INFO: [HLS 200-489] Unrolling loop 'ResPack' (firmware/nnet_utils/nnet_dense_stream.h:60) in function 'nnet::dense<nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 10u>, config8>' completely with a factor of 10.
INFO: [HLS 200-489] Unrolling loop 'Loop-2.1.1' (firmware/nnet_utils/nnet_types.h:32) in function 'nnet::conv_2d_cl<nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, config5>' completely with a factor of 16.
INFO: [HLS 200-489] Unrolling loop 'CopyDataFilt' (firmware/nnet_utils/nnet_conv_stream.h:128) in function 'nnet::conv_2d_cl<nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, config5>' completely with a factor of 9.
INFO: [HLS 200-489] Unrolling loop 'CopyDataChan' (firmware/nnet_utils/nnet_conv_stream.h:130) in function 'nnet::conv_2d_cl<nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, config5>' completely with a factor of 16.
INFO: [HLS 200-489] Unrolling loop 'InitData' (firmware/nnet_utils/nnet_conv_stream.h:80) in function 'nnet::conv_2d_cl<nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, config5>' completely with a factor of 144.
INFO: [HLS 200-489] Unrolling loop 'InitAccum' (firmware/nnet_utils/nnet_dense_resource.h:130) in function 'nnet::conv_2d_cl<nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, config5>' completely with a factor of 32.
INFO: [HLS 200-489] Unrolling loop 'Result' (firmware/nnet_utils/nnet_dense_resource.h:176) in function 'nnet::conv_2d_cl<nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, config5>' completely with a factor of 32.
INFO: [HLS 200-489] Unrolling loop 'CastLoop' (firmware/nnet_utils/nnet_conv_stream.h:92) in function 'nnet::conv_2d_cl<nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, config5>' completely with a factor of 32.
INFO: [HLS 200-489] Unrolling loop 'CopyDataFilt' (firmware/nnet_utils/nnet_conv_stream.h:128) in function 'nnet::conv_2d_cl<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, config2>' completely with a factor of 4.
INFO: [HLS 200-489] Unrolling loop 'InitData' (firmware/nnet_utils/nnet_conv_stream.h:80) in function 'nnet::conv_2d_cl<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, config2>' completely with a factor of 4.
INFO: [HLS 200-489] Unrolling loop 'InitAccum' (firmware/nnet_utils/nnet_dense_resource.h:130) in function 'nnet::conv_2d_cl<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, config2>' completely with a factor of 16.
INFO: [HLS 200-489] Unrolling loop 'Result' (firmware/nnet_utils/nnet_dense_resource.h:176) in function 'nnet::conv_2d_cl<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, config2>' completely with a factor of 16.
INFO: [HLS 200-489] Unrolling loop 'CastLoop' (firmware/nnet_utils/nnet_conv_stream.h:92) in function 'nnet::conv_2d_cl<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, config2>' completely with a factor of 16.
INFO: [HLS 200-489] Unrolling loop 'InitAccum' (firmware/nnet_utils/nnet_dense_resource.h:130) in function 'nnet::dense_wrapper<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, config8>' completely with a factor of 10.
INFO: [HLS 200-489] Unrolling loop 'Result' (firmware/nnet_utils/nnet_dense_resource.h:176) in function 'nnet::dense_wrapper<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, config8>' completely with a factor of 10.
INFO: [XFORM 203-102] Partitioning array 'tmp.data.V.11' automatically.
INFO: [XFORM 203-102] Partitioning array 'tmp.data.V.5' automatically.
INFO: [XFORM 203-102] Partitioning array 'tmp.data.V.9' automatically.
INFO: [XFORM 203-102] Partitioning array 'tmp.data.V.3' automatically.
INFO: [XFORM 203-102] Partitioning array 'tmp.data.V.7' automatically.
INFO: [XFORM 203-102] Partitioning array 'tmp.data.V.1' automatically.
WARNING: [XFORM 203-135] Cannot reshape array 'w5.V' : incorrect reshape factor 1.
WARNING: [XFORM 203-135] Cannot reshape array 'w2.V' : incorrect reshape factor 1.
WARNING: [XFORM 203-135] Cannot reshape array 'w8.V' : incorrect reshape factor 1.
WARNING: [XFORM 203-135] Cannot reshape array 'w5.V' : incorrect reshape factor 1.
WARNING: [XFORM 203-135] Cannot reshape array 'w2.V' : incorrect reshape factor 1.
WARNING: [XFORM 203-135] Cannot reshape array 'w8.V' : incorrect reshape factor 1.
INFO: [XFORM 203-102] Automatically partitioning streamed array 'layer8_out.V.data.V' (firmware/mnist_classifier.cpp:86) .
INFO: [XFORM 203-102] Automatically partitioning streamed array 'layer10_out.V.data.V' (firmware/mnist_classifier.cpp:26) .
INFO: [XFORM 203-102] Automatically partitioning streamed array 'layer5_out.V.data.V' (firmware/mnist_classifier.cpp:76) .
INFO: [XFORM 203-102] Automatically partitioning streamed array 'layer7_out.V.data.V' (firmware/mnist_classifier.cpp:81) .
INFO: [XFORM 203-102] Automatically partitioning streamed array 'layer2_out.V.data.V' (firmware/mnist_classifier.cpp:66) .
INFO: [XFORM 203-102] Automatically partitioning streamed array 'layer4_out.V.data.V' (firmware/mnist_classifier.cpp:71) .
INFO: [XFORM 203-102] Automatically partitioning streamed array 'data_window.V.V' (firmware/nnet_utils/nnet_conv2d_stream.h:37) .
INFO: [XFORM 203-102] Automatically partitioning streamed array 'data_window.V.V' (firmware/nnet_utils/nnet_conv2d_stream.h:37) .
INFO: [XFORM 203-102] Automatically partitioning streamed array 'layer11_cpy2.V.data.V' (firmware/mnist_classifier.cpp:61) .
INFO: [XFORM 203-102] Automatically partitioning streamed array 'input.V.data.V' (firmware/mnist_classifier.cpp:25) .
INFO: [XFORM 203-102] Automatically partitioning streamed array 'layer11_cpy1.V.data.V' (firmware/mnist_classifier.cpp:58) .
INFO: [XFORM 203-101] Partitioning array 'exp_res.V' (firmware/nnet_utils/nnet_activation_stream.h:146) in dimension 1 completely.
INFO: [XFORM 203-101] Partitioning array 'tmp.data.V.2' in dimension 1 completely.
INFO: [XFORM 203-101] Partitioning array 'tmp.data.V.4' in dimension 1 completely.
INFO: [XFORM 203-101] Partitioning array 'tmp.data.V.6' in dimension 1 completely.
WARNING: [XFORM 203-104] Completely partitioning array 'data.V' (firmware/nnet_utils/nnet_dense_stream.h:35) accessed through non-constant indices on dimension 1 (firmware/nnet_utils/nnet_dense_stream.h:48:39), which may result in long runtime and suboptimal QoR due to large multiplexers. Please consider wrapping the array access into a function or using a register file core instead.
INFO: [XFORM 203-101] Partitioning array 'data.V' (firmware/nnet_utils/nnet_dense_stream.h:35) in dimension 1 completely.
INFO: [XFORM 203-101] Partitioning array 'res' in dimension 1 completely.
INFO: [XFORM 203-101] Partitioning array 'tmp.data.V.8' in dimension 1 completely.
WARNING: [XFORM 203-104] Completely partitioning array 'config5::pixels.V' accessed through non-constant indices on dimension 1 (firmware/nnet_utils/nnet_conv2d_stream.h:23:9), which may result in long runtime and suboptimal QoR due to large multiplexers. Please consider wrapping the array access into a function or using a register file core instead.
INFO: [XFORM 203-101] Partitioning array 'config5::pixels.V' in dimension 1 completely.
INFO: [XFORM 203-101] Partitioning array 'pixel_idx.V' (firmware/nnet_utils/nnet_conv2d_stream.h:49) in dimension 1 completely.
INFO: [XFORM 203-101] Partitioning array 'tmp.data.V.10' in dimension 1 completely.
WARNING: [XFORM 203-104] Completely partitioning array 'data.V' (firmware/nnet_utils/nnet_conv_stream.h:75) accessed through non-constant indices on dimension 1 (firmware/nnet_utils/nnet_dense_resource.h:160:20), which may result in long runtime and suboptimal QoR due to large multiplexers. Please consider wrapping the array access into a function or using a register file core instead.
INFO: [XFORM 203-101] Partitioning array 'data.V' (firmware/nnet_utils/nnet_conv_stream.h:75) in dimension 1 completely.
INFO: [XFORM 203-101] Partitioning array 'res.i.i' in dimension 1 completely.
INFO: [XFORM 203-101] Partitioning array 'b5.V' in dimension 1 completely.
INFO: [XFORM 203-101] Partitioning array 'acc.V' (firmware/nnet_utils/nnet_dense_resource.h:126) in dimension 1 completely.
INFO: [XFORM 203-101] Partitioning array 'config2::pixels.V' in dimension 1 completely.
INFO: [XFORM 203-101] Partitioning array 'pixel_idx.V' (firmware/nnet_utils/nnet_conv2d_stream.h:49) in dimension 1 completely.
INFO: [XFORM 203-101] Partitioning array 'data.V' (firmware/nnet_utils/nnet_conv_stream.h:75) in dimension 1 completely.
INFO: [XFORM 203-101] Partitioning array 'res.i.i' in dimension 1 completely.
INFO: [XFORM 203-101] Partitioning array 'b2.V' in dimension 1 completely.
INFO: [XFORM 203-101] Partitioning array 'acc.V' (firmware/nnet_utils/nnet_dense_resource.h:126) in dimension 1 completely.
INFO: [XFORM 203-101] Partitioning array 'b8.V' in dimension 1 completely.
INFO: [XFORM 203-101] Partitioning array 'acc.V' (firmware/nnet_utils/nnet_dense_resource.h:126) in dimension 1 completely.
INFO: [XFORM 203-101] Partitioning array 'layer8_out.V.data.V' (firmware/mnist_classifier.cpp:86) in dimension 1 completely.
INFO: [XFORM 203-101] Partitioning array 'layer10_out.V.data.V' (firmware/mnist_classifier.cpp:26) in dimension 1 completely.
INFO: [XFORM 203-101] Partitioning array 'layer5_out.V.data.V' (firmware/mnist_classifier.cpp:76) in dimension 1 completely.
INFO: [XFORM 203-101] Partitioning array 'layer7_out.V.data.V' (firmware/mnist_classifier.cpp:81) in dimension 1 completely.
INFO: [XFORM 203-101] Partitioning array 'layer2_out.V.data.V' (firmware/mnist_classifier.cpp:66) in dimension 1 completely.
INFO: [XFORM 203-101] Partitioning array 'layer4_out.V.data.V' (firmware/mnist_classifier.cpp:71) in dimension 1 completely.
WARNING: [XFORM 203-104] Completely partitioning array 'data_window.V.V' (firmware/nnet_utils/nnet_conv2d_stream.h:37) accessed through non-constant indices on dimension 1 (firmware/nnet_utils/nnet_conv2d_stream.h:40:1), which may result in long runtime and suboptimal QoR due to large multiplexers. Please consider wrapping the array access into a function or using a register file core instead.
INFO: [XFORM 203-101] Partitioning array 'data_window.V.V' (firmware/nnet_utils/nnet_conv2d_stream.h:37) in dimension 1 completely.
INFO: [XFORM 203-101] Partitioning array 'data_window.V.V' (firmware/nnet_utils/nnet_conv2d_stream.h:37) in dimension 1 completely.
INFO: [XFORM 203-101] Partitioning array 'layer11_cpy2.V.data.V' (firmware/mnist_classifier.cpp:61) in dimension 1 completely.
INFO: [XFORM 203-101] Partitioning array 'input.V.data.V' (firmware/mnist_classifier.cpp:25) in dimension 1 completely.
INFO: [XFORM 203-101] Partitioning array 'layer11_cpy1.V.data.V' (firmware/mnist_classifier.cpp:58) in dimension 1 completely.
WARNING: [XFORM 203-104] Completely partitioning array 'data.V' (firmware/nnet_utils/nnet_dense_stream.h:35) accessed through non-constant indices on dimension 1 (firmware/nnet_utils/nnet_dense_resource.h:160:20), which may result in long runtime and suboptimal QoR due to large multiplexers. Please consider wrapping the array access into a function or using a register file core instead.
INFO: [XFORM 203-602] Inlining function 'nnet::compute_scaled_indices_2d<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, config2>' into 'nnet::conv_2d_cl<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, config2>' (firmware/nnet_utils/nnet_conv2d_stream.h:58) automatically.
INFO: [XFORM 203-602] Inlining function 'nnet::cast<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, config2_mult>' into 'nnet::conv_2d_cl<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, config2>' (firmware/nnet_utils/nnet_dense_resource.h:178->firmware/nnet_utils/nnet_dense_resource.h:276->firmware/nnet_utils/nnet_conv_stream.h:89->firmware/nnet_utils/nnet_conv_stream.h:136->firmware/nnet_utils/nnet_conv2d_stream.h:59) automatically.
INFO: [XFORM 203-602] Inlining function 'nnet::cast<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, config5_mult>' into 'nnet::conv_2d_cl<nnet::array<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, 16u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 32u>, config5>' (firmware/nnet_utils/nnet_dense_resource.h:178->firmware/nnet_utils/nnet_dense_resource.h:276->firmware/nnet_utils/nnet_conv_stream.h:89->firmware/nnet_utils/nnet_conv_stream.h:136->firmware/nnet_utils/nnet_conv2d_stream.h:59) automatically.
INFO: [XFORM 203-602] Inlining function 'nnet::cast<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, config8>' into 'nnet::dense_wrapper<ap_fixed<5, 3, (ap_q_mode)5, (ap_o_mode)3, 0>, ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, config8>' (firmware/nnet_utils/nnet_dense_resource.h:178->firmware/nnet_utils/nnet_dense_resource.h:276->firmware/nnet_utils/nnet_dense_stream.h:24) automatically.
INFO: [XFORM 203-602] Inlining function 'nnet::Op_add<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0> >::operator()' into 'nnet::reduce<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0>, 2, nnet::Op_add<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0> > >' (firmware/nnet_utils/nnet_common.h:52) automatically.
INFO: [XFORM 203-602] Inlining function 'nnet::Op_add<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0> >::operator()' into 'nnet::reduce<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0>, 4, nnet::Op_add<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0> > >' (firmware/nnet_utils/nnet_common.h:54) automatically.
INFO: [XFORM 203-602] Inlining function 'nnet::Op_add<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0> >::operator()' into 'nnet::reduce<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0>, 8, nnet::Op_add<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0> > >' (firmware/nnet_utils/nnet_common.h:54) automatically.
INFO: [XFORM 203-602] Inlining function 'nnet::reduce<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0>, 8, nnet::Op_add<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0> > >' into 'nnet::reduce<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0>, 10, nnet::Op_add<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0> > >' (firmware/nnet_utils/nnet_common.h:54) automatically.
INFO: [XFORM 203-602] Inlining function 'nnet::reduce<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0>, 2, nnet::Op_add<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0> > >' into 'nnet::reduce<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0>, 10, nnet::Op_add<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0> > >' (firmware/nnet_utils/nnet_common.h:54) automatically.
INFO: [XFORM 203-602] Inlining function 'nnet::Op_add<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0> >::operator()' into 'nnet::reduce<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0>, 10, nnet::Op_add<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0> > >' (firmware/nnet_utils/nnet_common.h:54) automatically.
INFO: [XFORM 203-602] Inlining function 'nnet::softmax_idx_from_real_val<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, softmax_config10>' into 'nnet::softmax_latency<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 10u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 10u>, softmax_config10>' (firmware/nnet_utils/nnet_activation_stream.h:156) automatically.
INFO: [XFORM 203-602] Inlining function 'nnet::softmax_idx_from_real_val<ap_fixed<18, 8, (ap_q_mode)0, (ap_o_mode)0, 0>, softmax_config10>' into 'nnet::softmax_latency<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 10u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 10u>, softmax_config10>' (firmware/nnet_utils/nnet_activation_stream.h:166) automatically.
WARNING: [XFORM 203-731] Internal stream variable 'layer11_cpy1.V.data[0].V' (firmware/mnist_classifier.cpp:58) is invalid: it has no data consumer.
ERROR: [XFORM 203-711] Internal stream 'layer11_cpy1.V.data[0].V' failed dataflow checking: it must be produced and consumed exactly once.
WARNING: [XFORM 203-713] Variable 'layer11_cpy1.V.data[0].V' has write operations in process function 'nnet::clone_stream<nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, nnet::array<ap_fixed<16, 6, (ap_q_mode)5, (ap_o_mode)3, 0>, 1u>, 784>'.
ERROR: [HLS 200-70] Pre-synthesis failed.
command 'ap_source' returned error code
while executing
"source build_prj.tcl"
("uplevel" body line 1)
invoked from within
"uplevel \#0 [list source $arg] "
INFO: [Common 17-206] Exiting vivado_hls at Fri Nov 5 17:12:39 2021...
Synthesis report not found.
Found 1 solution(s) in ../Output/my_model_qkeras/mnist_classifier_prj.
Reports for solution "solution1":
C SIMULATION RESULT:
INFO: [SIM 2] *************** CSIM start ***************
INFO: [SIM 4] CSIM will launch GCC as the compiler.
Compiling ../../../../mnist_classifier_test.cpp in debug mode
Compiling ../../../../firmware/mnist_classifier.cpp in debug mode
Generating csim.exe
INFO: Unable to open input/predictions file, using default input.
WARNING: Hls::stream 'layer11_cpy1' contains leftover data, which may result in RTL simulation hanging.
0.0996094 0.0996094 0.0996094 0.0996094 0.0996094 0.0996094 0.0996094 0.0996094 0.0996094 0.0996094
INFO: Saved inference results to file: tb_data/csim_results.log
INFO: [SIM 1] CSim done with 0 errors.
INFO: [SIM 3] *************** CSIM finish ***************
My config is this:
AxiWidth: '8'
Backend: Vivado
ClockPeriod: 10
IOType: io_stream
Implementation: serial
Interface: m_axi
OutputDir: ../Output/my_model_qkeras
ProjectName: mnist_classifier
XilinxPart: xc7z020clg400-1
HLSConfig:
LayerName:
act0_m:
Precision:
result: ap_fixed<5,3>
ReuseFactor: 1000000
Trace: true
act1_m:
Precision:
result: ap_fixed<5,3>
ReuseFactor: 1000000
Trace: true
conv2d_0_m:
Precision:
bias: ap_fixed<5,1>
weight: ap_fixed<5,1>
ReuseFactor: 1000000
Trace: true
conv2d_1_m:
Precision:
bias: ap_fixed<5,1>
weight: ap_fixed<5,1>
ReuseFactor: 1000000
Trace: true
dense:
Precision:
bias: ap_fixed<5,1>
weight: ap_fixed<5,1>
ReuseFactor: 1000000
Trace: true
input:
Precision:
result: ap_fixed<16,6>
Trace: true
softmax:
Precision: ap_fixed<16,6>
ReuseFactor: 1000000
exp_table_t: ap_fixed<18,8,AP_RND,AP_SAT>
inv_table_t: ap_fixed<18,8,AP_RND,AP_SAT>
table_size: 1024
Trace: true
Model:
Precision: ap_fixed<16,6>
ReuseFactor: 1000000
Strategy: Resource