win32下for循环优化(Optimization on for loop)

Author: Wilson

10多年的C/C++工作经历,常常设计ARM下编程,粗懂ARM汇编, 经常穷尽所能提高运行效率,减小代码尺寸。而在WIN32下,除了关注算法优化、数据结构设计等优化外,而是假定了ARM下的优化技术,而并没有认真去核实,现先小探for loop.

VS2005 sp1

从简单入手,看看

int g_a = 0;

for( int i=0; i<100; i++)

{

    g_a++;

}

release 下,Maximize Speed (/O2)

汇编展开:

 for( int i=0; i<100; i++)
004012A1  mov         eax,dword ptr [g_a (40512Ch)]
004012A6  add         eax,64h
 {
  g_a++;
 }

哈哈,编译器也太聪明了,知道我是循环100此,直接加100(64h)了,for 被优化掉了。

改复杂一点,再看:

  for(int i=0; i<100; i++)
  {
   g_b +=  Funct3();
004012B0  call        edi 
004012B2  and         eax,400h
004012B7  add         dword ptr [g_b (405130h)],eax
004012BD  sub         esi,1
004012C0  mov         dword ptr [g_k (4054ACh)],eax
004012C5  jne         CTestSomeCCPP_AboutDlg::OnInitDialog+0D0h (4012B0h)
  }

发现sub esi 1, 第一次运行 esi=100,以后递减,哦,你也想到了,没错,就是ARM常用的i-- loop:

for(int i=100; i--; )

{....

}

看来这种写法性能上高,编译器就直接这样优化了。

但是这种写法有个问题,i不能小于等于1,否,等死吧,你明白的,不过for的常量初始值,编译器肯定会检查这个条件,我们看看是否如此:

fror(iint i=0; i--;)//直接被优化掉了,

{...}

 for(int i=-10; i--; )//i=-10, 编译器当然不知道你要做什么了,

004012A1  mov         edi,dword ptr [__imp__GetTickCount@0 (403038h)]
004012A7  mov         esi,0FFFFFFF6h
004012AC  lea         esp,[esp]
004012B0  sub         esi,1
 {
  g_b +=  Funct3();
004012B3  call        edi 
004012B5  and         eax,400h
004012BA  add         dword ptr [g_b (405130h)],eax
004012C0  test        esi,esi
004012C2  mov         dword ptr [g_k (4054ACh)],eax
004012C7  jne         CTestSomeCCPP_AboutDlg::OnInitDialog+0D0h (4012B0h)
 }

然后,无限循环,等死了。

既然常变量for都被优化成i--了,我们看看变量作为循环条件的

  for(int i=0; i<g_a; i++)
004012A1  xor         esi,esi
004012A3  cmp         dword ptr [g_a (40512Ch)],esi
004012A9  jle         CTestSomeCCPP_AboutDlg::OnInitDialog+0EEh (4012CEh)
004012AB  mov         edi,dword ptr [__imp__GetTickCount@0 (403038h)]
  {
   g_b +=  Funct3();
004012B1  call        edi 
004012B3  and         eax,400h
004012B8  add         dword ptr [g_b (405130h)],eax
004012BE  add         esi,1
004012C1  cmp         esi,dword ptr [g_a (40512Ch)]
004012C7  mov         dword ptr [g_k (4054ACh)],eax
004012CC  jl          CTestSomeCCPP_AboutDlg::OnInitDialog+0D1h (4012B1h)
  }

第一行 xor esi,esi, 查一下,有人说清零的话,xor 比mov效率高,

用i=10测试一下,就变成mov 了,我只能说编译器实在是太强了。

这会是默认的i++循环了

其中Funct3{

g_k = GetTickCount()&1024;
 return g_k;

}

看看i--怎么样

  for(int i=g_a; i--; )
004012A1  mov         esi,dword ptr [g_a (40512Ch)]
004012A7  test        esi,esi
004012A9  je          CTestSomeCCPP_AboutDlg::OnInitDialog+0EAh (4012CAh)
004012AB  mov         edi,dword ptr [__imp__GetTickCount@0 (403038h)]
004012B1  sub         esi,1
  {
   g_b +=  Funct3();
004012B4  call        edi 
004012B6  and         eax,400h
004012BB  add         dword ptr [g_b (405130h)],eax
004012C1  test        esi,esi
004012C3  mov         dword ptr [g_k (4054ACh)],eax
004012C8  jne         CTestSomeCCPP_AboutDlg::OnInitDialog+0D1h (4012B1h)
  }

发现汇编代码差不太多,但是i--循环下,循环体少一行汇编语句,这个很重要,减少时间哦

因为不是很了解各汇编的执行效率,不能相对准确地估算运行时间,

但是,我们基本可以得出结论,能用i--方式的循环,还是用i--方式,但是,

不要写成假死状态的循环哦!

 

INFO: [HLS 214-291] Loop 'VITIS_LOOP_56_2' is marked as complete unroll implied by the pipeline pragma (src/SmoothProfileOnXAxisMeanOptimize.cpp:56:19) INFO: [HLS 214-291] Loop 'VITIS_LOOP_43_1' is marked as complete unroll implied by the pipeline pragma (src/SmoothProfileOnXAxisMeanOptimize.cpp:43:19) INFO: [HLS 214-186] Unrolling loop 'VITIS_LOOP_56_2' (src/SmoothProfileOnXAxisMeanOptimize.cpp:56:19) in function 'SmoothProfileOnXAxisMeanOptimize' completely with a factor of 11 (src/SmoothProfileOnXAxisMeanOptimize.cpp:15:0) INFO: [HLS 214-186] Unrolling loop 'VITIS_LOOP_43_1' (src/SmoothProfileOnXAxisMeanOptimize.cpp:43:19) in function 'SmoothProfileOnXAxisMeanOptimize' completely with a factor of 32 (src/SmoothProfileOnXAxisMeanOptimize.cpp:15:0) INFO: [HLS 214-248] Applying array_partition to '_ZZ32SmoothProfileOnXAxisMeanOptimizeRN3hls6streamIfLi0EEES2_7ap_uintILi6EEfE6buffer': Complete partitioning on dimension 1. (src/SmoothProfileOnXAxisMeanOptimize.cpp:24:0) INFO: [HLS 214-248] Applying array_partition to '_ZZ32SmoothProfileOnXAxisMeanOptimizeRN3hls6streamIfLi0EEES2_7ap_uintILi6EEfE3win': Complete partitioning on dimension 1. (src/SmoothProfileOnXAxisMeanOptimize.cpp:27:0) INFO: [HLS 200-111] Finished Compiling Optimization and Transform: CPU user time: 0 seconds. CPU system time: 0 seconds. Elapsed time: 6.958 seconds; current allocated memory: 202.637 MB. INFO: [HLS 200-111] Finished Checking Pragmas: CPU user time: 0 seconds. CPU system time: 0 seconds. Elapsed time: 0.002 seconds; current allocated memory: 202.637 MB. INFO: [HLS 200-10] Starting code transformations ... INFO: [HLS 200-111] Finished Standard Transforms: CPU user time: 0 seconds. CPU system time: 0 seconds. Elapsed time: 0.051 seconds; current allocated memory: 208.652 MB. INFO: [HLS 200-10] Checking synthesizability ... WARNING: [SYNCHK 200-23] src/SmoothProfileOnXAxisMeanOptimize.cpp:100: variable-indexed range selection may cause suboptimal QoR. INFO: [SYNCHK 200-10] 0 error(s), 1 warning(s). INFO: [HLS 200-111] Finished Checking Synthesizability: CPU user time: 0 seconds. CPU system time: 0 seconds. Elapsed time: 0.06 seconds; current allocated memory: 210.320 MB. INFO: [XFORM 203-401] Performing if-conversion on hyperblock from (src/SmoothProfileOnXAxisMeanOptimize.cpp:16:9) to (src/SmoothProfileOnXAxisMeanOptimize.cpp:90:9) in function 'SmoothProfileOnXAxisMeanOptimize'... converting 13 basic blocks. INFO: [XFORM 203-401] Performing if-conversion on hyperblock from (src/SmoothProfileOnXAxisMeanOptimize.cpp:94:45) in function 'SmoothProfileOnXAxisMeanOptimize'... converting 7 basic blocks. INFO: [XFORM 203-401] Performing if-conversion on hyperblock from (src/SmoothProfileOnXAxisMeanOptimize.cpp:89:13) to (src/SmoothProfileOnXAxisMeanOptimize.cpp:101:1) in function 'SmoothProfileOnXAxisMeanOptimize'... converting 10 basic blocks. INFO: [XFORM 203-11] Balancing expressions in function 'SmoothProfileOnXAxisMeanOptimize' (src/SmoothProfileOnXAxisMeanOptimize.cpp:10:1)...20 expression(s) balanced. INFO: [HLS 200-111] Finished Loop, function and other optimizations: CPU user time: 0 seconds. CPU system time: 0 seconds. Elapsed time: 0.157 seconds; current allocated memory: 233.824 MB. INFO: [HLS 200-111] Finished Architecture Synthesis: CPU user time: 0 seconds. CPU system time: 0 seconds. Elapsed time: 0.088 seconds; current allocated memory: 233.828 MB. INFO: [HLS 200-10] Starting hardware synthesis ... INFO: [HLS 200-10] Synthesizing 'SmoothProfileOnXAxisMeanOptimize' ... INFO: [HLS 200-10] ---------------------------------------------------------------- INFO: [HLS 200-42] -- Implementing module 'SmoothProfileOnXAxisMeanOptimize' INFO: [HLS 200-10] ---------------------------------------------------------------- INFO: [SCHED 204-11] Starting scheduling ... INFO: [SCHED 204-61] Pipelining function 'SmoothProfileOnXAxisMeanOptimize'. INFO: [HLS 200-1470] Pipelining result : Target II = 1, Final II = 1, Depth = 81, function 'SmoothProfileOnXAxisMeanOptimize' INFO: [SCHED 204-11] Finished scheduling. INFO: [HLS 200-111] Finished Scheduling: CPU user time: 0 seconds. CPU system time: 0 seconds. Elapsed time: 0.319 seconds; current allocated memory: 238.062 MB. INFO: [BIND 205-100] Starting micro-architecture generation ... INFO: [BIND 205-101] Performing variable lifetime analysis. INFO: [BIND 205-101] Exploring resource sharing. INFO: [BIND 205-101] Binding ... INFO: [BIND 205-100] Finished micro-architecture generation. INFO: [HLS 200-111] Finished Binding: CPU user time: 0 seconds. CPU system time: 0 seconds. Elapsed time: 0.118 seconds; current allocated memory: 239.660 MB. INFO: [HLS 200-10] ---------------------------------------------------------------- INFO: [HLS 200-10] -- Generating RTL for module 'SmoothProfileOnXAxisMeanOptimize' INFO: [HLS 200-10] ---------------------------------------------------------------- WARNING: [RTGEN 206-101] Design contains AXI ports. Reset is fixed to synchronous and active low. INFO: [RTGEN 206-500] Setting interface mode on port 'SmoothProfileOnXAxisMeanOptimize/points_in_z' to 'axis' (register, both mode). INFO: [RTGEN 206-500] Setting interface mode on port 'SmoothProfileOnXAxisMeanOptimize/smoothed_z' to 'axis' (register, both mode). INFO: [RTGEN 206-500] Setting interface mode on port 'SmoothProfileOnXAxisMeanOptimize/mean_win_size' to 'ap_none'. INFO: [RTGEN 206-500] Setting interface mode on port 'SmoothProfileOnXAxisMeanOptimize/invalid_z' to 'ap_none'. INFO: [RTGEN 206-500] Setting interface mode on function 'SmoothProfileOnXAxisMeanOptimize' to 'ap_ctrl_none'. WARNING: [RTGEN 206-101] Register 'p_ZZ32SmoothProfileOnXAxisMeanOptimizeRN3hls6streamIfLi0EEES2_7ap_uintILi6EEfE6bu' is power-on initialization. WARNING: [RTGEN 206-101] Register 'p_ZZ32SmoothProfileOnXAxisMeanOptimizeRN3hls6streamIfLi0EEES2_7ap_uintILi6EEfE6bu_1' is power-on initialization. WARNING: [RTGEN 206-101] Register 'p_ZZ32SmoothProfileOnXAxisMeanOptimizeRN3hls6streamIfLi0EEES2_7ap_uintILi6EEfE6bu_2' is power-on initialization. WARNING: [RTGEN 206-101] Register 'p_ZZ32SmoothProfileOnXAxisMeanOptimizeRN3hls6streamIfLi0EEES2_7ap_uintILi6EEfE6bu_3' is power-on initialization. WARNING: [RTGEN 206-101] Register 'p_ZZ32SmoothProfileOnXAxisMeanOptimizeRN3hls6streamIfLi0EEES2_7ap_uintILi6EEfE6bu_4' is power-on initialization. WARNING: [RTGEN 206-101] Register 'p_ZZ32SmoothProfileOnXAxisMeanOptimizeRN3hls6streamIfLi0EEES2_7ap_uintILi6EEfE6bu_5' is power-on initialization. WARNING: [RTGEN 206-101] Register 'p_ZZ32SmoothProfileOnXAxisMeanOptimizeRN3hls6streamIfLi0EEES2_7ap_uintILi6EEfE6bu_6' is power-on initialization. WARNING: [RTGEN 206-101] Register 'p_ZZ32SmoothProfileOnXAxisMeanOptimizeRN3hls6streamIfLi0EEES2_7ap_uintILi6EEfE6bu_7' is power-on initialization. WARNING: [RTGEN 206-101] Register 'p_ZZ32SmoothProfileOnXAxisMeanOptimizeRN3hls6streamIfLi0EEES2_7ap_uintILi6EEfE6bu_8' is power-on initialization. WARNING: [RTGEN 206-101] Register 'p_ZZ32SmoothProfileOnXAxisMeanOptimizeRN3hls6streamIfLi0EEES2_7ap_uintILi6EEfE6bu_9' is power-on initialization. WARNING: [RTGEN 206-101] Register 'p_ZZ32SmoothProfileOnXAxisMeanOptimizeRN3hls6streamIfLi0EEES2_7ap_uintILi6EEfE6bu_10' is power-on initialization. WARNING: [RTGEN 206-101] Register 'p_ZZ32SmoothProfileOnXAxisMeanOptimizeRN3hls6streamIfLi0EEES2_7ap_uintILi6EEfE6bu_11' is power-on initialization. WARNING: [RTGEN 206-101] Register 'p_ZZ32SmoothProfileOnXAxisMeanOptimizeRN3hls6streamIfLi0EEES2_7ap_uintILi6EEfE6bu_12' is power-on initialization. WARNING: [RTGEN 206-101] Register 'p_ZZ32SmoothProfileOnXAxisMeanOptimizeRN3hls6streamIfLi0EEES2_7ap_uintILi6EEfE6bu_13' is power-on initialization. WARNING: [RTGEN 206-101] Register 'p_ZZ32SmoothProfileOnXAxisMeanOptimizeRN3hls6streamIfLi0EEES2_7ap_uintILi6EEfE6bu_14' is power-on initialization. WARNING: [RTGEN 206-101] Register 'p_ZZ32SmoothProfileOnXAxisMeanOptimizeRN3hls6streamIfLi0EEES2_7ap_uintILi6EEfE6bu_15' is power-on initialization. WARNING: [RTGEN 206-101] Register 'p_ZZ32SmoothProfileOnXAxisMeanOptimizeRN3hls6streamIfLi0EEES2_7ap_uintILi6EEfE6bu_16' is power-on initialization. WARNING: [RTGEN 206-101] Register 'p_ZZ32SmoothProfileOnXAxisMeanOptimizeRN3hls6streamIfLi0EEES2_7ap_uintILi6EEfE6bu_17' is power-on initialization. WARNING: [RTGEN 206-101] Register 'p_ZZ32SmoothProfileOnXAxisMeanOptimizeRN3hls6streamIfLi0EEES2_7ap_uintILi6EEfE6bu_18' is power-on initialization. WARNING: [RTGEN 206-101] Register 'p_ZZ32SmoothProfileOnXAxisMeanOptimizeRN3hls6streamIfLi0EEES2_7ap_uintILi6EEfE6bu_19' is power-on initialization. WARNING: [RTGEN 206-101] Register 'p_ZZ32SmoothProfileOnXAxisMeanOptimizeRN3hls6streamIfLi0EEES2_7ap_uintILi6EEfE6bu_20' is power-on initialization. WARNING: [RTGEN 206-101] Register 'p_ZZ32SmoothProfileOnXAxisMeanOptimizeRN3hls6streamIfLi0EEES2_7ap_uintILi6EEfE6bu_21' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_stream_stream_ap_uint_6_float_buffer' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_stream_stream_ap_uint_6_float_buffer_1' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_stream_stream_ap_uint_6_float_buffer_2' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_stream_stream_ap_uint_6_float_buffer_3' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_stream_stream_ap_uint_6_float_buffer_4' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_stream_stream_ap_uint_6_float_buffer_5' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_stream_stream_ap_uint_6_float_buffer_6' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_stream_stream_ap_uint_6_float_buffer_7' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_stream_stream_ap_uint_6_float_buffer_8' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_stream_stream_ap_uint_6_float_buffer_9' is power-on initialization. WARNING: [RTGEN 206-101] Register 'p_ZZ32SmoothProfileOnXAxisMeanOptimizeRN3hls6streamIfLi0EEES2_7ap_uintILi6EEfE3wi' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_hls_stream_float_0_hls_stream_float_0_ap_uint_6_float_wi_s_19' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_hls_stream_float_0_hls_stream_float_0_ap_uint_6_float_wi_s_8' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_hls_stream_float_0_hls_stream_float_0_ap_uint_6_float_wi_s_5' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_hls_stream_float_0_hls_stream_float_0_ap_uint_6_float_wi_s_4' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_hls_stream_float_0_hls_stream_float_0_ap_uint_6_float_wi_s_3' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_hls_stream_float_0_hls_stream_float_0_ap_uint_6_float_wi_s_2' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_hls_stream_float_0_hls_stream_float_0_ap_uint_6_float_wi_s_1' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_hls_stream_float_0_hls_stream_float_0_ap_uint_6_float_wi_s_0' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_hls_stream_float_0_hls_stream_float_0_ap_uint_6_float_wi_s' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_hls_stream_float_0_hls_stream_float_0_ap_uint_6_float_wi_s_18' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_hls_stream_float_0_hls_stream_float_0_ap_uint_6_float_wi_s_17' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_hls_stream_float_0_hls_stream_float_0_ap_uint_6_float_wi_s_16' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_hls_stream_float_0_hls_stream_float_0_ap_uint_6_float_wi_s_15' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_hls_stream_float_0_hls_stream_float_0_ap_uint_6_float_wi_s_14' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_hls_stream_float_0_hls_stream_float_0_ap_uint_6_float_wi_s_13' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_hls_stream_float_0_hls_stream_float_0_ap_uint_6_float_wi_s_12' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_hls_stream_float_0_hls_stream_float_0_ap_uint_6_float_wi_s_11' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_hls_stream_float_0_hls_stream_float_0_ap_uint_6_float_wi_s_10' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_hls_stream_float_0_hls_stream_float_0_ap_uint_6_float_wi_s_9' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_hls_stream_float_0_hls_stream_float_0_ap_uint_6_float_wi_s_7' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_hls_stream_float_0_hls_stream_float_0_ap_uint_6_float_wi_s_6' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_stream_stream_ap_uint_6_float_win' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_stream_stream_ap_uint_6_float_win_1' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_stream_stream_ap_uint_6_float_win_2' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_stream_stream_ap_uint_6_float_win_3' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_stream_stream_ap_uint_6_float_win_4' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_stream_stream_ap_uint_6_float_win_5' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_stream_stream_ap_uint_6_float_win_6' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_stream_stream_ap_uint_6_float_win_7' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_stream_stream_ap_uint_6_float_win_8' is power-on initialization. WARNING: [RTGEN 206-101] Register 'SmoothProfileOnXAxisMeanOptimize_stream_stream_ap_uint_6_float_win_9' is power-on initialization. INFO: [HLS 200-1030] Apply Unified Pipeline Control on module 'SmoothProfileOnXAxisMeanOptimize' pipeline 'SmoothProfileOnXAxisMeanOptimize' pipeline type 'function pipeline' INFO: [HLS 200-1552] Enabling free running pipeline (frp) architecture on pipeline 'SmoothProfileOnXAxisMeanOptimize' in module 'SmoothProfileOnXAxisMeanOptimize'. Estimated max control fanout for pipeline is 10267. WARNING: [RTGEN 206-101] Port 'SmoothProfileOnXAxisMeanOptimize/mean_win_size' has no fanin or fanout and is left dangling. Please use C simulation to confirm this function argument can be read from or written to. INFO: [RTGEN 206-100] Generating core module 'ddiv_64ns_64ns_64_59_no_dsp_1': 1 instance(s).
07-29
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值