================================================================ == Vivado HLS Report for 'convolution' ================================================================ * Date: Fri May 25 14:09:47 2018 * Version: 2017.4 (Build 2086221 on Fri Dec 15 21:13:33 MST 2017) * Project: edge_detection * Solution: solution2 * Product family: zynq * Target device: xc7z020clg484-1 ================================================================ == Performance Estimates ================================================================ + Timing (ns): * Summary: +--------+-------+----------+------------+ | Clock | Target| Estimated| Uncertainty| +--------+-------+----------+------------+ |ap_clk | 10.00| 8.51| 1.25| +--------+-------+----------+------------+ + Latency (clock cycles): * Summary: +---------+---------+---------+---------+---------+ | Latency | Interval | Pipeline| | min | max | min | max | Type | +---------+---------+---------+---------+---------+ | 3494765| 3494765| 3494765| 3494765| none | +---------+---------+---------+---------+---------+ + Detail: * Instance: N/A * Loop: +---------------------+---------+---------+----------+-----------+-----------+------+----------+ | | Latency | Iteration| Initiation Interval | Trip | | | Loop Name | min | max | Latency | achieved | target | Count| Pipelined| +---------------------+---------+---------+----------+-----------+-----------+------+----------+ |- Loop 1 | 3494764| 3494764| 38404| -| -| 91| no | | + Loop 1.1 | 38402| 38402| 422| -| -| 91| no | | ++ Loop 1.1.1 | 420| 420| 42| -| -| 10| no | | +++ Loop 1.1.1.1 | 40| 40| 4| -| -| 10| no | +---------------------+---------+---------+----------+-----------+-----------+------+----------+ ============================================================ + Verbose Summary: Synthesis Manager ============================================================ InlineROM: 1 ExposeGlobal: 0 ============================================================ + Verbose Summary: CDFG Model ============================================================ IsTopModel: 1 ResetActiveHigh: 1 IsCombinational: 0 IsDatapathOnly: 0 HasWiredReturn: 1 HasMFsm: 0 HasVarLatency: 1 IsPipeline: 0 IsRtlPipelined: 0 IsInstanceOverlapped: 0 IsDontTouch: 0 HasImplIP: 0 IsGatedGlobalClock: 0 ============================================================ + Verbose Summary: Schedule ============================================================ * Number of FSM states : 8 * Pipeline : 0 * Dataflow Pipeline: 0 * FSM state transitions: 1 --> 2 / true 2 --> 3 / (!exitcond3) 3 --> 4 / (!exitcond2) 2 / (exitcond2) 4 --> 5 / (!exitcond1) 3 / (exitcond1) 5 --> 6 / (!exitcond) 4 / (exitcond) 6 --> 7 / true 7 --> 8 / true 8 --> 5 / true * FSM state operations: : 1.77ns ST_1 : Operation 9 [1/1] (0.00ns) ---> "call void (...)* @_ssdm_op_SpecBitsMap([10000 x i32]* %A) nounwind, !map !7" ST_1 : Operation 10 [1/1] (0.00ns) ---> "call void (...)* @_ssdm_op_SpecBitsMap([100 x i32]* %B) nounwind, !map !13" ST_1 : Operation 11 [1/1] (0.00ns) ---> "call void (...)* @_ssdm_op_SpecBitsMap([8281 x i32]* %C) nounwind, !map !19" ST_1 : Operation 12 [1/1] (0.00ns) ---> "call void (...)* @_ssdm_op_SpecTopModule([12 x i8]* @convolution_str) nounwind" ST_1 : Operation 13 [1/1] (0.00ns) ---> "call void (...)* @_ssdm_op_SpecInterface(i32 0, [10 x i8]* @p_str, i32 0, i32 0, [1 x i8]* @p_str1, i32 0, i32 0, [1 x i8]* @p_str1, [1 x i8]* @p_str1, [1 x i8]* @p_str1, i32 0, i32 0, i32 0, i32 0, [1 x i8]* @p_str1, [1 x i8]* @p_str1) nounwind" [edge_detection/edge_detection.cpp:10] ST_1 : Operation 14 [1/1] (0.00ns) ---> "%empty = call i32 (...)* @_ssdm_op_SpecMemCore([8281 x i32]* %C, [1 x i8]* @p_str5, [7 x i8]* @RAM_1P_str, [1 x i8]* @p_str5, i32 -1, [1 x i8]* @p_str5, [1 x i8]* @p_str5, [1 x i8]* @p_str5, [1 x i8]* @p_str5, [1 x i8]* @p_str5) nounwind" ST_1 : Operation 15 [1/1] (0.00ns) ---> "call void (...)* @_ssdm_op_SpecInterface([8281 x i32]* %C, [10 x i8]* @p_str, i32 0, i32 0, [1 x i8]* @p_str1, i32 0, i32 0, [1 x i8]* @p_str1, [1 x i8]* @p_str1, [1 x i8]* @p_str1, i32 0, i32 0, i32 0, i32 0, [1 x i8]* @p_str1, [1 x i8]* @p_str1) nounwind" ST_1 : Operation 16 [1/1] (0.00ns) ---> "%empty_2 = call i32 (...)* @_ssdm_op_SpecMemCore([100 x i32]* %B, [1 x i8]* @p_str4, [7 x i8]* @RAM_1P_str, [1 x i8]* @p_str4, i32 -1, [1 x i8]* @p_str4, [1 x i8]* @p_str4, [1 x i8]* @p_str4, [1 x i8]* @p_str4, [1 x i8]* @p_str4) nounwind" ST_1 : Operation 17 [1/1] (0.00ns) ---> "call void (...)* @_ssdm_op_SpecInterface([100 x i32]* %B, [10 x i8]* @p_str, i32 0, i32 0, [1 x i8]* @p_str1, i32 0, i32 0, [1 x i8]* @p_str1, [1 x i8]* @p_str1, [1 x i8]* @p_str1, i32 0, i32 0, i32 0, i32 0, [1 x i8]* @p_str1, [1 x i8]* @p_str1) nounwind" ST_1 : Operation 18 [1/1] (0.00ns) ---> "%empty_3 = call i32 (...)* @_ssdm_op_SpecMemCore([10000 x i32]* %A, [1 x i8]* @p_str3, [7 x i8]* @RAM_1P_str, [1 x i8]* @p_str3, i32 -1, [1 x i8]* @p_str3, [1 x i8]* @p_str3, [1 x i8]* @p_str3, [1 x i8]* @p_str3, [1 x i8]* @p_str3) nounwind" ST_1 : Operation 19 [1/1] (0.00ns) ---> "call void (...)* @_ssdm_op_SpecInterface([10000 x i32]* %A, [10 x i8]* @p_str, i32 0, i32 0, [1 x i8]* @p_str1, i32 0, i32 0, [1 x i8]* @p_str1, [1 x i8]* @p_str1, [1 x i8]* @p_str1, i32 0, i32 0, i32 0, i32 0, [1 x i8]* @p_str1, [1 x i8]* @p_str1) nounwind" ST_1 : Operation 20 [1/1] (1.76ns) ---> "br label %.loopexit1" [edge_detection/edge_detection.cpp:10] : 2.04ns ST_2 : Operation 21 [1/1] (0.00ns) ---> "%i = phi i7 [ 0, %0 ], [ %i_1, %.loopexit1.loopexit ]" ST_2 : Operation 22 [1/1] (0.00ns) ---> "%phi_mul = phi i14 [ 0, %0 ], [ %next_mul, %.loopexit1.loopexit ]" ST_2 : Operation 23 [1/1] (2.03ns) ---> "%next_mul = add i14 %phi_mul, 91" ---> Core 14 'AddSub' ST_2 : Operation 24 [1/1] (1.48ns) ---> "%exitcond3 = icmp eq i7 %i, -37" [edge_detection/edge_detection.cpp:10] ---> Core 25 'Cmp' ST_2 : Operation 25 [1/1] (0.00ns) ---> "%empty_4 = call i32 (...)* @_ssdm_op_SpecLoopTripCount(i64 91, i64 91, i64 91) nounwind" ST_2 : Operation 26 [1/1] (1.87ns) ---> "%i_1 = add i7 %i, 1" [edge_detection/edge_detection.cpp:10] ---> Core 14 'AddSub' ST_2 : Operation 27 [1/1] (0.00ns) ---> "br i1 %exitcond3, label %3, label %.preheader4.preheader" [edge_detection/edge_detection.cpp:10] ST_2 : Operation 28 [1/1] (1.76ns) ---> "br label %.preheader4" [edge_detection/edge_detection.cpp:11] ST_2 : Operation 29 [1/1] (0.00ns) ---> "ret void" [edge_detection/edge_detection.cpp:20] : 4.60ns ST_3 : Operation 30 [1/1] (0.00ns) ---> "%j = phi i7 [ %j_1, %.preheader4.loopexit ], [ 0, %.preheader4.preheader ]" ST_3 : Operation 31 [1/1] (0.00ns) ---> "%j_cast5 = zext i7 %j to i14" [edge_detection/edge_detection.cpp:11] ST_3 : Operation 32 [1/1] (1.48ns) ---> "%exitcond2 = icmp eq i7 %j, -37" [edge_detection/edge_detection.cpp:11] ---> Core 25 'Cmp' ST_3 : Operation 33 [1/1] (0.00ns) ---> "%empty_5 = call i32 (...)* @_ssdm_op_SpecLoopTripCount(i64 91, i64 91, i64 91) nounwind" ST_3 : Operation 34 [1/1] (1.87ns) ---> "%j_1 = add i7 %j, 1" [edge_detection/edge_detection.cpp:11] ---> Core 14 'AddSub' ST_3 : Operation 35 [1/1] (0.00ns) ---> "br i1 %exitcond2, label %.loopexit1.loopexit, label %1" [edge_detection/edge_detection.cpp:11] ST_3 : Operation 36 [1/1] (2.03ns) ---> "%tmp_2 = add i14 %phi_mul, %j_cast5" [edge_detection/edge_detection.cpp:12] ---> Core 14 'AddSub' ST_3 : Operation 37 [1/1] (0.00ns) ---> "%tmp_3 = zext i14 %tmp_2 to i64" [edge_detection/edge_detection.cpp:12] ST_3 : Operation 38 [1/1] (0.00ns) ---> "%C_addr = getelementptr [8281 x i32]* %C, i64 0, i64 %tmp_3" [edge_detection/edge_detection.cpp:12] ST_3 : Operation 39 [1/1] (2.56ns) ---> "store i32 0, i32* %C_addr, align 4" [edge_detection/edge_detection.cpp:12] ---> Core 42 'RAM_1P' ST_3 : Operation 40 [1/1] (1.76ns) ---> "br label %.loopexit" [edge_detection/edge_detection.cpp:13] ST_3 : Operation 41 [1/1] (0.00ns) ---> "br label %.loopexit1" : 6.04ns ST_4 : Operation 42 [1/1] (0.00ns) ---> "%k = phi i4 [ 0, %1 ], [ %k_1, %.loopexit.loopexit ]" ST_4 : Operation 43 [1/1] (0.00ns) ---> "%k_cast4 = zext i4 %k to i7" [edge_detection/edge_detection.cpp:13] ST_4 : Operation 44 [1/1] (1.30ns) ---> "%exitcond1 = icmp eq i4 %k, -6" [edge_detection/edge_detection.cpp:13] ---> Core 25 'Cmp' ST_4 : Operation 45 [1/1] (0.00ns) ---> "%empty_6 = call i32 (...)* @_ssdm_op_SpecLoopTripCount(i64 10, i64 10, i64 10) nounwind" ST_4 : Operation 46 [1/1] (1.73ns) ---> "%k_1 = add i4 %k, 1" [edge_detection/edge_detection.cpp:13] ---> Core 14 'AddSub' ST_4 : Operation 47 [1/1] (0.00ns) ---> "br i1 %exitcond1, label %.preheader4.loopexit, label %.preheader.preheader" [edge_detection/edge_detection.cpp:13] ST_4 : Operation 48 [1/1] (1.87ns) ---> "%tmp_5 = add i7 %k_cast4, %i" [edge_detection/edge_detection.cpp:15] ---> Core 14 'AddSub' ST_4 : Operation 49 [1/1] (0.00ns) ---> "%tmp_5_cast_cast = zext i7 %tmp_5 to i14" [edge_detection/edge_detection.cpp:15] ST_4 : Operation 50 [1/1] (4.17ns) ---> "%tmp_6 = mul i14 %tmp_5_cast_cast, 100" [edge_detection/edge_detection.cpp:15] ---> Core 16 'Mul' ST_4 : Operation 51 [1/1] (0.00ns) ---> "%p_shl = call i7 @_ssdm_op_BitConcatenate.i7.i4.i3(i4 %k, i3 0)" [edge_detection/edge_detection.cpp:15] ST_4 : Operation 52 [1/1] (0.00ns) ---> "%p_shl8 = call i5 @_ssdm_op_BitConcatenate.i5.i4.i1(i4 %k, i1 false)" [edge_detection/edge_detection.cpp:15] ST_4 : Operation 53 [1/1] (1.76ns) ---> "br label %.preheader" [edge_detection/edge_detection.cpp:14] ST_4 : Operation 54 [1/1] (0.00ns) ---> "br label %.preheader4" : 6.41ns ST_5 : Operation 55 [1/1] (0.00ns) ---> "%l = phi i4 [ %l_1, %2 ], [ 0, %.preheader.preheader ]" ST_5 : Operation 56 [1/1] (0.00ns) ---> "%l_cast3 = zext i4 %l to i14" [edge_detection/edge_detection.cpp:14] ST_5 : Operation 57 [1/1] (0.00ns) ---> "%l_cast = zext i4 %l to i5" [edge_detection/edge_detection.cpp:14] ST_5 : Operation 58 [1/1] (1.30ns) ---> "%exitcond = icmp eq i4 %l, -6" [edge_detection/edge_detection.cpp:14] ---> Core 25 'Cmp' ST_5 : Operation 59 [1/1] (0.00ns) ---> "%empty_7 = call i32 (...)* @_ssdm_op_SpecLoopTripCount(i64 10, i64 10, i64 10) nounwind" ST_5 : Operation 60 [1/1] (1.73ns) ---> "%l_1 = add i4 %l, 1" [edge_detection/edge_detection.cpp:14] ---> Core 14 'AddSub' ST_5 : Operation 61 [1/1] (0.00ns) ---> "br i1 %exitcond, label %.loopexit.loopexit, label %2" [edge_detection/edge_detection.cpp:14] ST_5 : Operation 62 [1/1] (0.00ns) (grouped into TernaryAdder) ---> "%tmp1 = add i14 %tmp_6, %l_cast3" [edge_detection/edge_detection.cpp:15] ---> Core 80 'TAddSub' ST_5 : Operation 63 [1/1] (3.84ns) (root node of TernaryAdder) ---> "%tmp_s = add i14 %tmp1, %j_cast5" [edge_detection/edge_detection.cpp:15] ---> Core 80 'TAddSub' ST_5 : Operation 64 [1/1] (0.00ns) ---> "%tmp_1 = zext i14 %tmp_s to i64" [edge_detection/edge_detection.cpp:15] ST_5 : Operation 65 [1/1] (0.00ns) ---> "%A_addr = getelementptr [10000 x i32]* %A, i64 0, i64 %tmp_1" [edge_detection/edge_detection.cpp:15] ST_5 : Operation 66 [2/2] (2.56ns) ---> "%A_load = load i32* %A_addr, align 4" [edge_detection/edge_detection.cpp:15] ---> Core 42 'RAM_1P' ST_5 : Operation 67 [1/1] (1.78ns) ---> "%tmp2 = add i5 %p_shl8, %l_cast" [edge_detection/edge_detection.cpp:15] ---> Core 14 'AddSub' ST_5 : Operation 68 [1/1] (0.00ns) ---> "%tmp2_cast = zext i5 %tmp2 to i7" [edge_detection/edge_detection.cpp:15] ST_5 : Operation 69 [1/1] (1.87ns) ---> "%tmp_4 = add i7 %tmp2_cast, %p_shl" [edge_detection/edge_detection.cpp:15] ---> Core 14 'AddSub' ST_5 : Operation 70 [1/1] (0.00ns) ---> "%tmp_8 = zext i7 %tmp_4 to i64" [edge_detection/edge_detection.cpp:15] ST_5 : Operation 71 [1/1] (0.00ns) ---> "%B_addr = getelementptr [100 x i32]* %B, i64 0, i64 %tmp_8" [edge_detection/edge_detection.cpp:15] ST_5 : Operation 72 [2/2] (2.30ns) ---> "%B_load = load i32* %B_addr, align 4" [edge_detection/edge_detection.cpp:15] ---> Core 42 'RAM_1P' ST_5 : Operation 73 [1/1] (0.00ns) ---> "br label %.loopexit" : 2.57ns ST_6 : Operation 74 [1/2] (2.56ns) ---> "%A_load = load i32* %A_addr, align 4" [edge_detection/edge_detection.cpp:15] ---> Core 42 'RAM_1P' ST_6 : Operation 75 [1/2] (2.30ns) ---> "%B_load = load i32* %B_addr, align 4" [edge_detection/edge_detection.cpp:15] ---> Core 42 'RAM_1P' : 8.51ns ST_7 : Operation 76 [1/1] (8.51ns) ---> "%tmp_7 = mul nsw i32 %A_load, %B_load" [edge_detection/edge_detection.cpp:15] ---> Core 16 'Mul' ST_7 : Operation 77 [2/2] (2.56ns) ---> "%C_load = load i32* %C_addr, align 4" [edge_detection/edge_detection.cpp:15] ---> Core 42 'RAM_1P' : 7.68ns ST_8 : Operation 78 [1/2] (2.56ns) ---> "%C_load = load i32* %C_addr, align 4" [edge_detection/edge_detection.cpp:15] ---> Core 42 'RAM_1P' ST_8 : Operation 79 [1/1] (2.55ns) ---> "%tmp_9 = add nsw i32 %C_load, %tmp_7" [edge_detection/edge_detection.cpp:15] ---> Core 14 'AddSub' ST_8 : Operation 80 [1/1] (2.56ns) ---> "store i32 %tmp_9, i32* %C_addr, align 4" [edge_detection/edge_detection.cpp:15] ---> Core 42 'RAM_1P' ST_8 : Operation 81 [1/1] (0.00ns) ---> "br label %.preheader" [edge_detection/edge_detection.cpp:14] ============================================================ + Verbose Summary: Binding ============================================================ STG Binding: ---------------- STG Properties BEGIN ---------------- - Is combinational: 0 - Is one-state seq: 0 - Is datapath-only: 0 - Is pipelined: 0 - Is top level: 1 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=[1]; IO mode=ap_memory:ce=0 Port [ B]: wired=1; compound=1; hidden=0; nouse=0; global=0; static=0; extern=0; dir=0; type=1; pingpong=0; private_global=0; MemPort=[1]; IO mode=ap_memory:ce=0 Port [ C]: wired=1; compound=1; hidden=0; nouse=0; global=0; static=0; extern=0; dir=2; type=1; pingpong=0; private_global=0; MemPort=[2]; IO mode=ap_memory:ce=0 ---------------- STG Properties END ------------------ ---------------- Datapath Model BEGIN ---------------- StgValue_9 (specbitsmap ) [ 000000000] StgValue_10 (specbitsmap ) [ 000000000] StgValue_11 (specbitsmap ) [ 000000000] StgValue_12 (spectopmodule ) [ 000000000] StgValue_13 (specinterface ) [ 000000000] empty (specmemcore ) [ 000000000] StgValue_15 (specinterface ) [ 000000000] empty_2 (specmemcore ) [ 000000000] StgValue_17 (specinterface ) [ 000000000] empty_3 (specmemcore ) [ 000000000] StgValue_19 (specinterface ) [ 000000000] StgValue_20 (br ) [ 011111111] i (phi ) [ 001011111] phi_mul (phi ) [ 001111111] next_mul (add ) [ 011111111] exitcond3 (icmp ) [ 001111111] empty_4 (speclooptripcount) [ 000000000] i_1 (add ) [ 011111111] StgValue_27 (br ) [ 000000000] StgValue_28 (br ) [ 001111111] StgValue_29 (ret ) [ 000000000] j (phi ) [ 000100000] j_cast5 (zext ) [ 000011111] exitcond2 (icmp ) [ 001111111] empty_5 (speclooptripcount) [ 000000000] j_1 (add ) [ 001111111] StgValue_35 (br ) [ 000000000] tmp_2 (add ) [ 000000000] tmp_3 (zext ) [ 000000000] C_addr (getelementptr ) [ 000011111] StgValue_39 (store ) [ 000000000] StgValue_40 (br ) [ 001111111] StgValue_41 (br ) [ 011111111] k (phi ) [ 000010000] k_cast4 (zext ) [ 000000000] exitcond1 (icmp ) [ 001111111] empty_6 (speclooptripcount) [ 000000000] k_1 (add ) [ 001111111] StgValue_47 (br ) [ 000000000] tmp_5 (add ) [ 000000000] tmp_5_cast_cast (zext ) [ 000000000] tmp_6 (mul ) [ 000001111] p_shl (bitconcatenate ) [ 000001111] p_shl8 (bitconcatenate ) [ 000001111] StgValue_53 (br ) [ 001111111] StgValue_54 (br ) [ 001111111] l (phi ) [ 000001000] l_cast3 (zext ) [ 000000000] l_cast (zext ) [ 000000000] exitcond (icmp ) [ 001111111] empty_7 (speclooptripcount) [ 000000000] l_1 (add ) [ 001111111] StgValue_61 (br ) [ 000000000] tmp1 (add ) [ 000000000] tmp_s (add ) [ 000000000] tmp_1 (zext ) [ 000000000] A_addr (getelementptr ) [ 000000100] tmp2 (add ) [ 000000000] tmp2_cast (zext ) [ 000000000] tmp_4 (add ) [ 000000000] tmp_8 (zext ) [ 000000000] B_addr (getelementptr ) [ 000000100] StgValue_73 (br ) [ 001111111] A_load (load ) [ 000000010] B_load (load ) [ 000000010] tmp_7 (mul ) [ 000000001] C_load (load ) [ 000000000] tmp_9 (add ) [ 000000000] StgValue_80 (store ) [ 000000000] StgValue_81 (br ) [ 001111111] 1 1 2 ---------------- Datapath Model END ------------------ * FSMD analyzer results: - Output states: Port: C | {3 8 } - Input state : Port: convolution : A | {5 6 } Port: convolution : B | {5 6 } Port: convolution : C | {7 8 } - Chain level: State 1 State 2 next_mul : 1 exitcond3 : 1 i_1 : 1 StgValue_27 : 2 State 3 j_cast5 : 1 exitcond2 : 1 j_1 : 1 StgValue_35 : 2 tmp_2 : 2 tmp_3 : 3 C_addr : 4 StgValue_39 : 5 State 4 k_cast4 : 1 exitcond1 : 1 k_1 : 1 StgValue_47 : 2 tmp_5 : 2 tmp_5_cast_cast : 3 tmp_6 : 4 p_shl : 1 p_shl8 : 1 State 5 l_cast3 : 1 l_cast : 1 exitcond : 1 l_1 : 1 StgValue_61 : 2 tmp1 : 2 tmp_s : 3 tmp_1 : 4 A_addr : 5 A_load : 6 tmp2 : 2 tmp2_cast : 3 tmp_4 : 4 tmp_8 : 5 B_addr : 6 B_load : 7 State 6 State 7 State 8 tmp_9 : 1 StgValue_80 : 2 ============================================================ + Verbose Summary: Datapath Resource usage ============================================================ * Functional unit list: |----------|------------------------|---------|---------|---------| | Operation| Functional Unit | DSP48E | FF | LUT | |----------|------------------------|---------|---------|---------| | | next_mul_fu_160 | 0 | 0 | 21 | | | i_1_fu_172 | 0 | 0 | 15 | | | j_1_fu_188 | 0 | 0 | 15 | | | tmp_2_fu_194 | 0 | 0 | 21 | | | k_1_fu_215 | 0 | 0 | 13 | | add | tmp_5_fu_221 | 0 | 0 | 15 | | | l_1_fu_267 | 0 | 0 | 13 | | | tmp1_fu_273 | 0 | 0 | 14 | | | tmp_s_fu_278 | 0 | 0 | 14 | | | tmp2_fu_288 | 0 | 0 | 15 | | | tmp_4_fu_297 | 0 | 0 | 15 | | | tmp_9_fu_311 | 0 | 0 | 39 | |----------|------------------------|---------|---------|---------| | mul | tmp_6_fu_231 | 0 | 0 | 41 | | | tmp_7_fu_307 | 3 | 0 | 20 | |----------|------------------------|---------|---------|---------| | | exitcond3_fu_166 | 0 | 0 | 11 | | icmp | exitcond2_fu_182 | 0 | 0 | 11 | | | exitcond1_fu_209 | 0 | 0 | 9 | | | exitcond_fu_261 | 0 | 0 | 9 | |----------|------------------------|---------|---------|---------| | | j_cast5_fu_178 | 0 | 0 | 0 | | | tmp_3_fu_200 | 0 | 0 | 0 | | | k_cast4_fu_205 | 0 | 0 | 0 | | | tmp_5_cast_cast_fu_227 | 0 | 0 | 0 | | zext | l_cast3_fu_253 | 0 | 0 | 0 | | | l_cast_fu_257 | 0 | 0 | 0 | | | tmp_1_fu_283 | 0 | 0 | 0 | | | tmp2_cast_fu_293 | 0 | 0 | 0 | | | tmp_8_fu_302 | 0 | 0 | 0 | |----------|------------------------|---------|---------|---------| |bitconcatenate| p_shl_fu_237 | 0 | 0 | 0 | | | p_shl8_fu_245 | 0 | 0 | 0 | |----------|------------------------|---------|---------|---------| | Total | | 3 | 0 | 311 | |----------|------------------------|---------|---------|---------| Memories: N/A * Register list: +----------------+--------+ | | FF | +----------------+--------+ | A_addr_reg_379 | 14 | | A_load_reg_389 | 32 | | B_addr_reg_384 | 7 | | B_load_reg_394 | 32 | | C_addr_reg_343 | 14 | | i_1_reg_325 | 7 | | i_reg_103 | 7 | | j_1_reg_338 | 7 | | j_cast5_reg_330| 14 | | j_reg_127 | 7 | | k_1_reg_351 | 4 | | k_reg_138 | 4 | | l_1_reg_374 | 4 | | l_reg_149 | 4 | |next_mul_reg_317| 14 | | p_shl8_reg_366 | 5 | | p_shl_reg_361 | 7 | | phi_mul_reg_115| 14 | | tmp_6_reg_356 | 14 | | tmp_7_reg_399 | 32 | +----------------+--------+ | Total | 243 | +----------------+--------+ * Multiplexer (MUX) list: |------------------|------|------|------|--------||---------||---------| | Comp | Pin | Size | BW | S x BW || Delay || LUT | |------------------|------|------|------|--------||---------||---------| | grp_access_fu_73 | p0 | 2 | 14 | 28 || 9 | | grp_access_fu_73 | p1 | 2 | 32 | 64 || 9 | | grp_access_fu_86 | p0 | 2 | 14 | 28 || 9 | | grp_access_fu_98 | p0 | 2 | 7 | 14 || 9 | | i_reg_103 | p0 | 2 | 7 | 14 || 9 | | phi_mul_reg_115 | p0 | 2 | 14 | 28 || 9 | |------------------|------|------|------|--------||---------||---------| | Total | | | | 176 || 10.614 || 54 | |------------------|------|------|------|--------||---------||---------| * Summary: +-----------+--------+--------+--------+--------+ | | DSP48E | Delay | FF | LUT | +-----------+--------+--------+--------+--------+ | Function | 3 | - | 0 | 311 | | Memory | - | - | - | - | |Multiplexer| - | 10 | - | 54 | | Register | - | - | 243 | - | +-----------+--------+--------+--------+--------+ | Total | 3 | 10 | 243 | 365 | +-----------+--------+--------+--------+--------+