================================================================ == Vivado HLS Report for 'compute_pixel' ================================================================ * Date: Tue May 29 19:06:49 2018 * Version: 2017.4 (Build 2086221 on Fri Dec 15 21:13:33 MST 2017) * Project: edge_detection * Solution: axi_port_only * Product family: zynq * Target device: xc7z020clg484-1 ================================================================ == Performance Estimates ================================================================ + Timing (ns): * Summary: +--------+-------+----------+------------+ | Clock | Target| Estimated| Uncertainty| +--------+-------+----------+------------+ |ap_clk | 10.00| 9.17| 1.25| +--------+-------+----------+------------+ + Latency (clock cycles): * Summary: +-----+-----+-----+-----+----------+ | Latency | Interval | Pipeline | | min | max | min | max | Type | +-----+-----+-----+-----+----------+ | 53| 53| 5| 5| function | +-----+-----+-----+-----+----------+ + Detail: * Instance: N/A * Loop: N/A ================================================================ == Utilization Estimates ================================================================ * Summary: +-----------------+---------+-------+--------+-------+ | Name | BRAM_18K| DSP48E| FF | LUT | +-----------------+---------+-------+--------+-------+ |DSP | -| -| -| -| |Expression | -| -| 0| 24| |FIFO | -| -| -| -| |Instance | -| 7| 553| 1101| |Memory | -| -| -| -| |Multiplexer | -| -| -| 246| |Register | 0| -| 816| 128| +-----------------+---------+-------+--------+-------+ |Total | 0| 7| 1369| 1499| +-----------------+---------+-------+--------+-------+ |Available | 280| 220| 106400| 53200| +-----------------+---------+-------+--------+-------+ |Utilization (%) | 0| 3| 1| 2| +-----------------+---------+-------+--------+-------+ + Detail: * Instance: +-------------------------+----------------------+---------+-------+-----+-----+ | Instance | Module | BRAM_18K| DSP48E| FF | LUT | +-------------------------+----------------------+---------+-------+-----+-----+ |conv_stream_fadd_bkb_U6 |conv_stream_fadd_bkb | 0| 2| 205| 390| |conv_stream_fadd_bkb_U7 |conv_stream_fadd_bkb | 0| 2| 205| 390| |conv_stream_fmul_cud_U8 |conv_stream_fmul_cud | 0| 3| 143| 321| +-------------------------+----------------------+---------+-------+-----+-----+ |Total | | 0| 7| 553| 1101| +-------------------------+----------------------+---------+-------+-----+-----+ * DSP48: N/A * Memory: N/A * FIFO: N/A * Expression: +-----------------------------+----------+-------+---+----+------------+------------+ | Variable Name | Operation| DSP48E| FF| LUT| Bitwidth P0| Bitwidth P1| +-----------------------------+----------+-------+---+----+------------+------------+ |ap_block_pp0_stage0_11001 | and | 0| 0| 8| 1| 1| |ap_block_pp0_stage0_subdone | or | 0| 0| 8| 1| 1| |ap_enable_pp0 | xor | 0| 0| 8| 1| 2| +-----------------------------+----------+-------+---+----+------------+------------+ |Total | | 0| 0| 24| 3| 4| +-----------------------------+----------+-------+---+----+------------+------------+ * Multiplexer: +--------------------------+----+-----------+-----+-----------+ | Name | LUT| Input Size| Bits| Total Bits| +--------------------------+----+-----------+-----+-----------+ |A_address0 | 33| 6| 4| 24| |A_address1 | 27| 5| 4| 20| |ap_NS_fsm | 33| 6| 1| 6| |ap_enable_reg_pp0_iter0 | 9| 2| 1| 2| |ap_enable_reg_pp0_iter10 | 9| 2| 1| 2| |grp_fu_112_p0 | 33| 6| 32| 192| |grp_fu_112_p1 | 33| 6| 32| 192| |grp_fu_117_p0 | 27| 5| 32| 160| |grp_fu_117_p1 | 27| 5| 32| 160| |grp_fu_121_p1 | 15| 3| 32| 96| +--------------------------+----+-----------+-----+-----------+ |Total | 246| 46| 171| 854| +--------------------------+----+-----------+-----+-----------+ * Register: +-----------------------------+----+----+-----+-----------+ | Name | FF | LUT| Bits| Const Bits| +-----------------------------+----+----+-----+-----------+ |A_load_1_reg_193 | 32| 0| 32| 0| |A_load_3_reg_228 | 32| 0| 32| 0| |A_load_5_reg_248 | 32| 0| 32| 0| |A_load_7_reg_268 | 32| 0| 32| 0| |ap_CS_fsm | 5| 0| 5| 0| |ap_enable_reg_pp0_iter0_reg | 1| 0| 1| 0| |ap_enable_reg_pp0_iter1 | 1| 0| 1| 0| |ap_enable_reg_pp0_iter10 | 1| 0| 1| 0| |ap_enable_reg_pp0_iter2 | 1| 0| 1| 0| |ap_enable_reg_pp0_iter3 | 1| 0| 1| 0| |ap_enable_reg_pp0_iter4 | 1| 0| 1| 0| |ap_enable_reg_pp0_iter5 | 1| 0| 1| 0| |ap_enable_reg_pp0_iter6 | 1| 0| 1| 0| |ap_enable_reg_pp0_iter7 | 1| 0| 1| 0| |ap_enable_reg_pp0_iter8 | 1| 0| 1| 0| |ap_enable_reg_pp0_iter9 | 1| 0| 1| 0| |result_2_0_1_reg_218 | 32| 0| 32| 0| |result_2_0_2_reg_233 | 32| 0| 32| 0| |result_2_1_1_reg_253 | 32| 0| 32| 0| |result_2_1_2_reg_258 | 32| 0| 32| 0| |result_2_1_reg_238 | 32| 0| 32| 0| |result_2_2_1_reg_278 | 32| 0| 32| 0| |result_2_2_reg_273 | 32| 0| 32| 0| |result_2_reg_213 | 32| 0| 32| 0| |tmp_10_0_2_reg_183 | 32| 0| 32| 0| |tmp_10_1_1_reg_198 | 32| 0| 32| 0| |tmp_10_2_2_reg_208 | 32| 0| 32| 0| |tmp_10_2_reg_203 | 32| 0| 32| 0| |tmp_s_reg_168 | 32| 0| 32| 0| |tmp_10_0_2_reg_183 | 64| 32| 32| 0| |tmp_10_1_1_reg_198 | 64| 32| 32| 0| |tmp_10_2_2_reg_208 | 64| 32| 32| 0| |tmp_10_2_reg_203 | 64| 32| 32| 0| +-----------------------------+----+----+-----+-----------+ |Total | 816| 128| 688| 0| +-----------------------------+----+----+-----+-----------+ ================================================================ == Interface ================================================================ * Summary: +------------+-----+-----+------------+---------------+--------------+ | RTL Ports | Dir | Bits| Protocol | Source Object | C Type | +------------+-----+-----+------------+---------------+--------------+ |ap_clk | in | 1| ap_ctrl_hs | compute_pixel | return value | |ap_rst | in | 1| ap_ctrl_hs | compute_pixel | return value | |ap_start | in | 1| ap_ctrl_hs | compute_pixel | return value | |ap_done | out | 1| ap_ctrl_hs | compute_pixel | return value | |ap_idle | out | 1| ap_ctrl_hs | compute_pixel | return value | |ap_ready | out | 1| ap_ctrl_hs | compute_pixel | return value | |ap_ce | in | 1| ap_ctrl_hs | compute_pixel | return value | |ap_return | out | 32| ap_ctrl_hs | compute_pixel | return value | |A_address0 | out | 4| ap_memory | A | array | |A_ce0 | out | 1| ap_memory | A | array | |A_q0 | in | 32| ap_memory | A | array | |A_address1 | out | 4| ap_memory | A | array | |A_ce1 | out | 1| ap_memory | A | array | |A_q1 | in | 32| ap_memory | A | array | +------------+-----+-----+------------+---------------+--------------+ ============================================================ + Verbose Summary: Synthesis Manager ============================================================ InlineROM: 1 ExposeGlobal: 0 ============================================================ + Verbose Summary: CDFG Model ============================================================ IsTopModel: 0 ResetActiveHigh: 1 IsCombinational: 2 IsDatapathOnly: 2 HasWiredReturn: 1 HasMFsm: 2 HasVarLatency: 0 IsPipeline: 1 IsRtlPipelined: 1 IsInstanceOverlapped: 0 IsDontTouch: 0 HasImplIP: 0 IsGatedGlobalClock: 0 + Individual pipeline summary: * Pipeline-0: initiation interval (II) = 5, depth = 54 ============================================================ + Verbose Summary: Schedule ============================================================ * Number of FSM states : 54 * Pipeline : 1 Pipeline-0 : II = 5, D = 54, States = { 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 } * Dataflow Pipeline: 0 * FSM state transitions: 1 --> 2 / true 2 --> 3 / true 3 --> 4 / true 4 --> 5 / true 5 --> 6 / true 6 --> 7 / true 7 --> 8 / true 8 --> 9 / true 9 --> 10 / true 10 --> 11 / true 11 --> 12 / true 12 --> 13 / true 13 --> 14 / true 14 --> 15 / true 15 --> 16 / true 16 --> 17 / true 17 --> 18 / true 18 --> 19 / true 19 --> 20 / true 20 --> 21 / true 21 --> 22 / true 22 --> 23 / true 23 --> 24 / true 24 --> 25 / true 25 --> 26 / true 26 --> 27 / true 27 --> 28 / true 28 --> 29 / true 29 --> 30 / true 30 --> 31 / true 31 --> 32 / true 32 --> 33 / true 33 --> 34 / true 34 --> 35 / true 35 --> 36 / true 36 --> 37 / true 37 --> 38 / true 38 --> 39 / true 39 --> 40 / true 40 --> 41 / true 41 --> 42 / true 42 --> 43 / true 43 --> 44 / true 44 --> 45 / true 45 --> 46 / true 46 --> 47 / true 47 --> 48 / true 48 --> 49 / true 49 --> 50 / true 50 --> 51 / true 51 --> 52 / true 52 --> 53 / true 53 --> 54 / true 54 --> * FSM state operations: : 2.32ns ST_1 : Operation 55 [1/1] (0.00ns) ---> "%A_addr = getelementptr [9 x float]* %A, i64 0, i64 0" [edge_detection/edge_detection.cpp:8] ST_1 : Operation 56 [2/2] (2.32ns) ---> "%A_load = load float* %A_addr, align 4" [edge_detection/edge_detection.cpp:8] ---> Core 37 'RAM' : 9.17ns ST_2 : Operation 57 [1/1] (0.00ns) ---> "%A_addr_2 = getelementptr [9 x float]* %A, i64 0, i64 2" [edge_detection/edge_detection.cpp:8] ST_2 : Operation 58 [1/2] (2.32ns) ---> "%A_load = load float* %A_addr, align 4" [edge_detection/edge_detection.cpp:8] ---> Core 37 'RAM' ST_2 : Operation 59 [4/4] (6.84ns) ---> "%tmp_s = fmul float %A_load, 0.000000e+00" [edge_detection/edge_detection.cpp:8] ---> Core 100 'FMul' ST_2 : Operation 60 [2/2] (2.32ns) ---> "%A_load_2 = load float* %A_addr_2, align 4" [edge_detection/edge_detection.cpp:8] ---> Core 37 'RAM' : 9.17ns ST_3 : Operation 61 [1/1] (0.00ns) ---> "%A_addr_4 = getelementptr [9 x float]* %A, i64 0, i64 4" [edge_detection/edge_detection.cpp:8] ST_3 : Operation 62 [3/4] (5.70ns) ---> "%tmp_s = fmul float %A_load, 0.000000e+00" [edge_detection/edge_detection.cpp:8] ---> Core 100 'FMul' ST_3 : Operation 63 [1/2] (2.32ns) ---> "%A_load_2 = load float* %A_addr_2, align 4" [edge_detection/edge_detection.cpp:8] ---> Core 37 'RAM' ST_3 : Operation 64 [4/4] (6.84ns) ---> "%tmp_10_0_2 = fmul float %A_load_2, 0.000000e+00" [edge_detection/edge_detection.cpp:8] ---> Core 100 'FMul' ST_3 : Operation 65 [2/2] (2.32ns) ---> "%A_load_4 = load float* %A_addr_4, align 4" [edge_detection/edge_detection.cpp:8] ---> Core 37 'RAM' : 9.17ns ST_4 : Operation 66 [1/1] (0.00ns) ---> "%A_addr_6 = getelementptr [9 x float]* %A, i64 0, i64 6" [edge_detection/edge_detection.cpp:8] ST_4 : Operation 67 [2/4] (5.70ns) ---> "%tmp_s = fmul float %A_load, 0.000000e+00" [edge_detection/edge_detection.cpp:8] ---> Core 100 'FMul' ST_4 : Operation 68 [3/4] (5.70ns) ---> "%tmp_10_0_2 = fmul float %A_load_2, 0.000000e+00" [edge_detection/edge_detection.cpp:8] ---> Core 100 'FMul' ST_4 : Operation 69 [1/2] (2.32ns) ---> "%A_load_4 = load float* %A_addr_4, align 4" [edge_detection/edge_detection.cpp:8] ---> Core 37 'RAM' ST_4 : Operation 70 [4/4] (6.84ns) ---> "%tmp_10_1_1 = fmul float %A_load_4, -4.000000e+00" [edge_detection/edge_detection.cpp:8] ---> Core 100 'FMul' ST_4 : Operation 71 [2/2] (2.32ns) ---> "%A_load_6 = load float* %A_addr_6, align 4" [edge_detection/edge_detection.cpp:8] ---> Core 37 'RAM' : 9.17ns ST_5 : Operation 72 [1/1] (0.00ns) ---> "%A_addr_8 = getelementptr [9 x float]* %A, i64 0, i64 8" [edge_detection/edge_detection.cpp:8] ST_5 : Operation 73 [1/4] (5.70ns) ---> "%tmp_s = fmul float %A_load, 0.000000e+00" [edge_detection/edge_detection.cpp:8] ---> Core 100 'FMul' ST_5 : Operation 74 [2/4] (5.70ns) ---> "%tmp_10_0_2 = fmul float %A_load_2, 0.000000e+00" [edge_detection/edge_detection.cpp:8] ---> Core 100 'FMul' ST_5 : Operation 75 [3/4] (5.70ns) ---> "%tmp_10_1_1 = fmul float %A_load_4, -4.000000e+00" [edge_detection/edge_detection.cpp:8] ---> Core 100 'FMul' ST_5 : Operation 76 [1/2] (2.32ns) ---> "%A_load_6 = load float* %A_addr_6, align 4" [edge_detection/edge_detection.cpp:8] ---> Core 37 'RAM' ST_5 : Operation 77 [4/4] (6.84ns) ---> "%tmp_10_2 = fmul float %A_load_6, 0.000000e+00" [edge_detection/edge_detection.cpp:8] ---> Core 100 'FMul' ST_5 : Operation 78 [2/2] (2.32ns) ---> "%A_load_8 = load float* %A_addr_8, align 4" [edge_detection/edge_detection.cpp:8] ---> Core 37 'RAM' : 9.17ns ST_6 : Operation 79 [1/1] (0.00ns) ---> "%A_addr_1 = getelementptr [9 x float]* %A, i64 0, i64 1" [edge_detection/edge_detection.cpp:8] ST_6 : Operation 80 [5/5] (8.39ns) ---> "%result_2 = fadd float %tmp_s, 0.000000e+00" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' ST_6 : Operation 81 [2/2] (2.32ns) ---> "%A_load_1 = load float* %A_addr_1, align 4" [edge_detection/edge_detection.cpp:8] ---> Core 37 'RAM' ST_6 : Operation 82 [1/4] (5.70ns) ---> "%tmp_10_0_2 = fmul float %A_load_2, 0.000000e+00" [edge_detection/edge_detection.cpp:8] ---> Core 100 'FMul' ST_6 : Operation 83 [2/4] (5.70ns) ---> "%tmp_10_1_1 = fmul float %A_load_4, -4.000000e+00" [edge_detection/edge_detection.cpp:8] ---> Core 100 'FMul' ST_6 : Operation 84 [3/4] (5.70ns) ---> "%tmp_10_2 = fmul float %A_load_6, 0.000000e+00" [edge_detection/edge_detection.cpp:8] ---> Core 100 'FMul' ST_6 : Operation 85 [1/2] (2.32ns) ---> "%A_load_8 = load float* %A_addr_8, align 4" [edge_detection/edge_detection.cpp:8] ---> Core 37 'RAM' ST_6 : Operation 86 [4/4] (6.84ns) ---> "%tmp_10_2_2 = fmul float %A_load_8, 0.000000e+00" [edge_detection/edge_detection.cpp:8] ---> Core 100 'FMul' : 7.26ns ST_7 : Operation 87 [4/5] (7.25ns) ---> "%result_2 = fadd float %tmp_s, 0.000000e+00" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' ST_7 : Operation 88 [1/2] (2.32ns) ---> "%A_load_1 = load float* %A_addr_1, align 4" [edge_detection/edge_detection.cpp:8] ---> Core 37 'RAM' ST_7 : Operation 89 [1/4] (5.70ns) ---> "%tmp_10_1_1 = fmul float %A_load_4, -4.000000e+00" [edge_detection/edge_detection.cpp:8] ---> Core 100 'FMul' ST_7 : Operation 90 [2/4] (5.70ns) ---> "%tmp_10_2 = fmul float %A_load_6, 0.000000e+00" [edge_detection/edge_detection.cpp:8] ---> Core 100 'FMul' ST_7 : Operation 91 [3/4] (5.70ns) ---> "%tmp_10_2_2 = fmul float %A_load_8, 0.000000e+00" [edge_detection/edge_detection.cpp:8] ---> Core 100 'FMul' : 7.26ns ST_8 : Operation 92 [3/5] (7.25ns) ---> "%result_2 = fadd float %tmp_s, 0.000000e+00" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' ST_8 : Operation 93 [1/4] (5.70ns) ---> "%tmp_10_2 = fmul float %A_load_6, 0.000000e+00" [edge_detection/edge_detection.cpp:8] ---> Core 100 'FMul' ST_8 : Operation 94 [2/4] (5.70ns) ---> "%tmp_10_2_2 = fmul float %A_load_8, 0.000000e+00" [edge_detection/edge_detection.cpp:8] ---> Core 100 'FMul' : 7.26ns ST_9 : Operation 95 [2/5] (7.25ns) ---> "%result_2 = fadd float %tmp_s, 0.000000e+00" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' ST_9 : Operation 96 [1/4] (5.70ns) ---> "%tmp_10_2_2 = fmul float %A_load_8, 0.000000e+00" [edge_detection/edge_detection.cpp:8] ---> Core 100 'FMul' : 7.26ns ST_10 : Operation 97 [1/5] (7.25ns) ---> "%result_2 = fadd float %tmp_s, 0.000000e+00" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 7.26ns ST_11 : Operation 98 [5/5] (7.25ns) ---> "%result_2_0_1 = fadd float %result_2, %A_load_1" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 7.26ns ST_12 : Operation 99 [4/5] (7.25ns) ---> "%result_2_0_1 = fadd float %result_2, %A_load_1" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 7.26ns ST_13 : Operation 100 [3/5] (7.25ns) ---> "%result_2_0_1 = fadd float %result_2, %A_load_1" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 7.26ns ST_14 : Operation 101 [2/5] (7.25ns) ---> "%result_2_0_1 = fadd float %result_2, %A_load_1" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 7.26ns ST_15 : Operation 102 [1/5] (7.25ns) ---> "%result_2_0_1 = fadd float %result_2, %A_load_1" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 0.00ns : 8.40ns ST_17 : Operation 103 [1/1] (0.00ns) ---> "%A_addr_3 = getelementptr [9 x float]* %A, i64 0, i64 3" [edge_detection/edge_detection.cpp:8] ST_17 : Operation 104 [5/5] (8.39ns) ---> "%result_2_0_2 = fadd float %result_2_0_1, %tmp_10_0_2" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' ST_17 : Operation 105 [2/2] (2.32ns) ---> "%A_load_3 = load float* %A_addr_3, align 4" [edge_detection/edge_detection.cpp:8] ---> Core 37 'RAM' : 7.26ns ST_18 : Operation 106 [4/5] (7.25ns) ---> "%result_2_0_2 = fadd float %result_2_0_1, %tmp_10_0_2" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' ST_18 : Operation 107 [1/2] (2.32ns) ---> "%A_load_3 = load float* %A_addr_3, align 4" [edge_detection/edge_detection.cpp:8] ---> Core 37 'RAM' : 7.26ns ST_19 : Operation 108 [3/5] (7.25ns) ---> "%result_2_0_2 = fadd float %result_2_0_1, %tmp_10_0_2" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 7.26ns ST_20 : Operation 109 [2/5] (7.25ns) ---> "%result_2_0_2 = fadd float %result_2_0_1, %tmp_10_0_2" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 7.26ns ST_21 : Operation 110 [1/5] (7.25ns) ---> "%result_2_0_2 = fadd float %result_2_0_1, %tmp_10_0_2" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 7.26ns ST_22 : Operation 111 [5/5] (7.25ns) ---> "%result_2_1 = fadd float %result_2_0_2, %A_load_3" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 7.26ns ST_23 : Operation 112 [4/5] (7.25ns) ---> "%result_2_1 = fadd float %result_2_0_2, %A_load_3" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 7.26ns ST_24 : Operation 113 [3/5] (7.25ns) ---> "%result_2_1 = fadd float %result_2_0_2, %A_load_3" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 7.26ns ST_25 : Operation 114 [2/5] (7.25ns) ---> "%result_2_1 = fadd float %result_2_0_2, %A_load_3" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 7.26ns ST_26 : Operation 115 [1/5] (7.25ns) ---> "%result_2_1 = fadd float %result_2_0_2, %A_load_3" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 0.00ns : 8.40ns ST_28 : Operation 116 [1/1] (0.00ns) ---> "%A_addr_5 = getelementptr [9 x float]* %A, i64 0, i64 5" [edge_detection/edge_detection.cpp:8] ST_28 : Operation 117 [5/5] (8.39ns) ---> "%result_2_1_1 = fadd float %result_2_1, %tmp_10_1_1" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' ST_28 : Operation 118 [2/2] (2.32ns) ---> "%A_load_5 = load float* %A_addr_5, align 4" [edge_detection/edge_detection.cpp:8] ---> Core 37 'RAM' : 7.26ns ST_29 : Operation 119 [4/5] (7.25ns) ---> "%result_2_1_1 = fadd float %result_2_1, %tmp_10_1_1" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' ST_29 : Operation 120 [1/2] (2.32ns) ---> "%A_load_5 = load float* %A_addr_5, align 4" [edge_detection/edge_detection.cpp:8] ---> Core 37 'RAM' : 7.26ns ST_30 : Operation 121 [3/5] (7.25ns) ---> "%result_2_1_1 = fadd float %result_2_1, %tmp_10_1_1" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 7.26ns ST_31 : Operation 122 [2/5] (7.25ns) ---> "%result_2_1_1 = fadd float %result_2_1, %tmp_10_1_1" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 7.26ns ST_32 : Operation 123 [1/5] (7.25ns) ---> "%result_2_1_1 = fadd float %result_2_1, %tmp_10_1_1" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 7.26ns ST_33 : Operation 124 [5/5] (7.25ns) ---> "%result_2_1_2 = fadd float %result_2_1_1, %A_load_5" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 7.26ns ST_34 : Operation 125 [4/5] (7.25ns) ---> "%result_2_1_2 = fadd float %result_2_1_1, %A_load_5" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 7.26ns ST_35 : Operation 126 [3/5] (7.25ns) ---> "%result_2_1_2 = fadd float %result_2_1_1, %A_load_5" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 7.26ns ST_36 : Operation 127 [2/5] (7.25ns) ---> "%result_2_1_2 = fadd float %result_2_1_1, %A_load_5" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 7.26ns ST_37 : Operation 128 [1/5] (7.25ns) ---> "%result_2_1_2 = fadd float %result_2_1_1, %A_load_5" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 0.00ns : 8.40ns ST_39 : Operation 129 [1/1] (0.00ns) ---> "%A_addr_7 = getelementptr [9 x float]* %A, i64 0, i64 7" [edge_detection/edge_detection.cpp:8] ST_39 : Operation 130 [5/5] (8.39ns) ---> "%result_2_2 = fadd float %result_2_1_2, %tmp_10_2" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' ST_39 : Operation 131 [2/2] (2.32ns) ---> "%A_load_7 = load float* %A_addr_7, align 4" [edge_detection/edge_detection.cpp:8] ---> Core 37 'RAM' : 7.26ns ST_40 : Operation 132 [4/5] (7.25ns) ---> "%result_2_2 = fadd float %result_2_1_2, %tmp_10_2" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' ST_40 : Operation 133 [1/2] (2.32ns) ---> "%A_load_7 = load float* %A_addr_7, align 4" [edge_detection/edge_detection.cpp:8] ---> Core 37 'RAM' : 7.26ns ST_41 : Operation 134 [3/5] (7.25ns) ---> "%result_2_2 = fadd float %result_2_1_2, %tmp_10_2" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 7.26ns ST_42 : Operation 135 [2/5] (7.25ns) ---> "%result_2_2 = fadd float %result_2_1_2, %tmp_10_2" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 7.26ns ST_43 : Operation 136 [1/5] (7.25ns) ---> "%result_2_2 = fadd float %result_2_1_2, %tmp_10_2" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 7.26ns ST_44 : Operation 137 [5/5] (7.25ns) ---> "%result_2_2_1 = fadd float %result_2_2, %A_load_7" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 7.26ns ST_45 : Operation 138 [4/5] (7.25ns) ---> "%result_2_2_1 = fadd float %result_2_2, %A_load_7" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 7.26ns ST_46 : Operation 139 [3/5] (7.25ns) ---> "%result_2_2_1 = fadd float %result_2_2, %A_load_7" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 7.26ns ST_47 : Operation 140 [2/5] (7.25ns) ---> "%result_2_2_1 = fadd float %result_2_2, %A_load_7" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 7.26ns ST_48 : Operation 141 [1/5] (7.25ns) ---> "%result_2_2_1 = fadd float %result_2_2, %A_load_7" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 0.00ns : 8.40ns ST_50 : Operation 142 [5/5] (8.39ns) ---> "%result_2_2_2 = fadd float %result_2_2_1, %tmp_10_2_2" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 7.26ns ST_51 : Operation 143 [4/5] (7.25ns) ---> "%result_2_2_2 = fadd float %result_2_2_1, %tmp_10_2_2" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 7.26ns ST_52 : Operation 144 [3/5] (7.25ns) ---> "%result_2_2_2 = fadd float %result_2_2_1, %tmp_10_2_2" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 7.26ns ST_53 : Operation 145 [2/5] (7.25ns) ---> "%result_2_2_2 = fadd float %result_2_2_1, %tmp_10_2_2" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' : 7.26ns ST_54 : Operation 146 [1/5] (7.25ns) ---> "%result_2_2_2 = fadd float %result_2_2_1, %tmp_10_2_2" [edge_detection/edge_detection.cpp:8] ---> Core 99 'FAddSub' ST_54 : Operation 147 [1/1] (0.00ns) ---> "ret float %result_2_2_2" [edge_detection/edge_detection.cpp:9] ============================================================ + Verbose Summary: Binding ============================================================ STG Binding: ---------------- STG Properties BEGIN ---------------- - Is combinational: 0 - Is one-state seq: 0 - Is datapath-only: 0 - Is pipelined: 1 - Is top level: 0 Port [ Return ] is wired: 1; IO mode=ap_ctrl_hs:ce=0 Port [ A]: wired=1; compound=1; hidden=0; nouse=0; global=0; static=0; extern=0; dir=0; type=1; pingpong=0; private_global=0; MemPort=[11]; IO mode=ap_memory:ce=0 ---------------- STG Properties END ------------------ ---------------- Datapath Model BEGIN ---------------- A_addr (getelementptr) [ 0010000000000000000000000000000000000000000000000000000] A_addr_2 (getelementptr) [ 0001000000000000000000000000000000000000000000000000000] A_load (load ) [ 0001110000000000000000000000000000000000000000000000000] A_addr_4 (getelementptr) [ 0000100000000000000000000000000000000000000000000000000] A_load_2 (load ) [ 0100111000000000000000000000000000000000000000000000000] A_addr_6 (getelementptr) [ 0000010000000000000000000000000000000000000000000000000] A_load_4 (load ) [ 0110011100000000000000000000000000000000000000000000000] A_addr_8 (getelementptr) [ 0100001000000000000000000000000000000000000000000000000] tmp_s (fmul ) [ 0111111111100000000000000000000000000000000000000000000] A_load_6 (load ) [ 0111001110000000000000000000000000000000000000000000000] A_addr_1 (getelementptr) [ 0010000100000000000000000000000000000000000000000000000] tmp_10_0_2 (fmul ) [ 0111110111111111111111000000000000000000000000000000000] A_load_8 (load ) [ 0011100111000000000000000000000000000000000000000000000] A_load_1 (load ) [ 0111110011111111000000000000000000000000000000000000000] tmp_10_1_1 (fmul ) [ 0111110011111111111111111111111110000000000000000000000] tmp_10_2 (fmul ) [ 0111110001111111111111111111111111111111111100000000000] tmp_10_2_2 (fmul ) [ 0111110000111111111111111111111111111111111111111111111] result_2 (fadd ) [ 0111110000011111000000000000000000000000000000000000000] result_2_0_1 (fadd ) [ 0111110000000000111111000000000000000000000000000000000] A_addr_3 (getelementptr) [ 0001000000000000001000000000000000000000000000000000000] A_load_3 (load ) [ 0111110000000000000111111110000000000000000000000000000] result_2_0_2 (fadd ) [ 0111110000000000000000111110000000000000000000000000000] result_2_1 (fadd ) [ 0111110000000000000000000001111110000000000000000000000] A_addr_5 (getelementptr) [ 0000100000000000000000000000010000000000000000000000000] A_load_5 (load ) [ 0111110000000000000000000000001111111100000000000000000] result_2_1_1 (fadd ) [ 0111110000000000000000000000000001111100000000000000000] result_2_1_2 (fadd ) [ 0111110000000000000000000000000000000011111100000000000] A_addr_7 (getelementptr) [ 0000010000000000000000000000000000000000100000000000000] A_load_7 (load ) [ 0111110000000000000000000000000000000000011111111000000] result_2_2 (fadd ) [ 0111110000000000000000000000000000000000000011111000000] result_2_2_1 (fadd ) [ 0111110000000000000000000000000000000000000000000111111] result_2_2_2 (fadd ) [ 0000000000000000000000000000000000000000000000000000000] StgValue_147 (ret ) [ 0000000000000000000000000000000000000000000000000000000] 1 1 ---------------- Datapath Model END ------------------ * FSMD analyzer results: - Output states: Port: A | {} - Input state : Port: compute_pixel : A | {1 2 3 4 5 6 7 17 18 28 29 39 40 } - Chain level: State 1 A_load : 1 State 2 tmp_s : 1 A_load_2 : 1 State 3 tmp_10_0_2 : 1 A_load_4 : 1 State 4 tmp_10_1_1 : 1 A_load_6 : 1 State 5 tmp_10_2 : 1 A_load_8 : 1 State 6 A_load_1 : 1 tmp_10_2_2 : 1 State 7 State 8 State 9 State 10 State 11 State 12 State 13 State 14 State 15 State 16 State 17 A_load_3 : 1 State 18 State 19 State 20 State 21 State 22 State 23 State 24 State 25 State 26 State 27 State 28 A_load_5 : 1 State 29 State 30 State 31 State 32 State 33 State 34 State 35 State 36 State 37 State 38 State 39 A_load_7 : 1 State 40 State 41 State 42 State 43 State 44 State 45 State 46 State 47 State 48 State 49 State 50 State 51 State 52 State 53 State 54 StgValue_147 : 1 ============================================================ + Verbose Summary: Datapath Resource usage ============================================================ * Functional unit list: |----------|----------------|---------|---------|---------| | Operation| Functional Unit| DSP48E | FF | LUT | |----------|----------------|---------|---------|---------| | fadd | grp_fu_112 | 2 | 205 | 390 | | | grp_fu_117 | 2 | 205 | 390 | |----------|----------------|---------|---------|---------| | fmul | grp_fu_121 | 3 | 143 | 321 | |----------|----------------|---------|---------|---------| | Total | | 7 | 553 | 1101 | |----------|----------------|---------|---------|---------| Memories: N/A * Register list: +--------------------+--------+ | | FF | +--------------------+--------+ | A_addr_1_reg_178 | 4 | | A_addr_2_reg_133 | 4 | | A_addr_3_reg_223 | 4 | | A_addr_4_reg_143 | 4 | | A_addr_5_reg_243 | 4 | | A_addr_6_reg_153 | 4 | | A_addr_7_reg_263 | 4 | | A_addr_8_reg_163 | 4 | | A_addr_reg_128 | 4 | | A_load_1_reg_193 | 32 | | A_load_2_reg_148 | 32 | | A_load_3_reg_228 | 32 | | A_load_4_reg_158 | 32 | | A_load_5_reg_248 | 32 | | A_load_6_reg_173 | 32 | | A_load_7_reg_268 | 32 | | A_load_8_reg_188 | 32 | | A_load_reg_138 | 32 | |result_2_0_1_reg_218| 32 | |result_2_0_2_reg_233| 32 | |result_2_1_1_reg_253| 32 | |result_2_1_2_reg_258| 32 | | result_2_1_reg_238 | 32 | |result_2_2_1_reg_278| 32 | | result_2_2_reg_273 | 32 | | result_2_reg_213 | 32 | | tmp_10_0_2_reg_183 | 32 | | tmp_10_1_1_reg_198 | 32 | | tmp_10_2_2_reg_208 | 32 | | tmp_10_2_reg_203 | 32 | | tmp_s_reg_168 | 32 | +--------------------+--------+ | Total | 740 | +--------------------+--------+ * Multiplexer (MUX) list: |------------------|------|------|------|--------||---------||---------| | Comp | Pin | Size | BW | S x BW || Delay || LUT | |------------------|------|------|------|--------||---------||---------| | grp_access_fu_32 | p0 | 10 | 4 | 40 || 47 | | grp_access_fu_32 | p3 | 8 | 4 | 32 || 41 | | grp_fu_112 | p0 | 5 | 32 | 160 || 27 | | grp_fu_112 | p1 | 5 | 32 | 160 || 27 | | grp_fu_117 | p0 | 4 | 32 | 128 || 21 | | grp_fu_117 | p1 | 4 | 32 | 128 || 21 | | grp_fu_121 | p0 | 6 | 32 | 192 || 33 | | grp_fu_121 | p1 | 2 | 32 | 64 | |------------------|------|------|------|--------||---------||---------| | Total | | | | 904 || 15.3067 || 217 | |------------------|------|------|------|--------||---------||---------| * Summary: +-----------+--------+--------+--------+--------+ | | DSP48E | Delay | FF | LUT | +-----------+--------+--------+--------+--------+ | Function | 7 | - | 553 | 1101 | | Memory | - | - | - | - | |Multiplexer| - | 15 | - | 217 | | Register | - | - | 740 | - | +-----------+--------+--------+--------+--------+ | Total | 7 | 15 | 1293 | 1318 | +-----------+--------+--------+--------+--------+