一、循环优化说明1.循环在高层次综合设计中是广泛被应用的得到全面的综合支持2.循环优化包括pipeline流水优化3.循环优化包括all unroll展开4.循环优化包括partitial unrool展开5.循环优化包括loop_flatten扁平化6.循环优化包括loop_merge合并设计二、循环优化的两个策略1.第一个策略使用原始串行代码优化指令进行优化设计2.第二个策略从代码层面对循环结构进行有效的修改主体为优化代码结构然后通过指令进行辅助的优化设计。三、循环优化注意事项1.循环的循环index索引index索引尽量不要使用全局变量推荐使用局部变量因为全局变量不利于综合工具对代码进行优化设计2.循环变量的边界循环变量的边界是影响unroll展开设计也影响latency和II的综合显示循环的边界影响综合报告的原因虽然单次迭代所需要的时延是可以确定的但是由于边界为变量迭代的次数是不确定的工具无法静态的判断变量的位宽从而无法知晓执行的迭代次数从而无法报告循环的总延时。对这个问题有三种解决方案方案一使用tripcount行程来进行优化方案二: 使用assert宏来对变量进行最大范围限制方案三使用一个可以预测的固定的最大值作为边界然后内部使用条件判断对变量进行比较处理。四、嵌套循环框架1.完美的嵌套循环设计框架2.半完美的嵌套循环的设计框架3.非完美的嵌套循环的设计框架五、循环设计中的依赖关系1.循环的单次迭代内部的依赖关系2.多次迭代之间的依赖关系依赖关系的存在会阻止循环流水线化设计需要判断依赖的真实性并对代码进行改造优化设计