七台河市网站建设_网站建设公司_HTTPS_seo优化
2026/1/7 13:28:22 网站建设 项目流程

一、关于嵌套循环
1.嵌套循环之间的移动需要额外的时钟周期
从外层循环进入内层循环需要一个时钟周期;
同样,从内层循环退出,然后进入外层循环,也额外需要一个时钟周期。

2.代码示例
void foo_top { a, b, c, d} {
...
Outer: while(j<100)
Inner: while(i<6) // 1 cycle to enter inner
...
LOOP_BODY
...
} // 1 cycle to exit inner
}
...
}
上述代码需要额外200个clock的时钟周期!
因为外层循环为100次,那么需要进入内层循环100次,需要退出内层循环100次,合计200次。
所以除了内外层循环本身的消耗的clock以外,还额外要增加200个clock的时钟周期!

3.Vivado HLS 提供的 set_directive_loop_flatten 命令允许将已标记为完美和半完美的嵌套循环扁平化,这样就
无需重新编码来提升硬件性能,并且还可减少执行循环中的运算所需的周期数。
针对多层循环的情况,是完美循环,还是半完美循环还是非完美循环,进行策略优化设计。
• 完美循环嵌套:仅限最内层的循环才有循环主体内容,逻辑语句之间未指定任何逻辑,所有循环边界均为常量。
• 半完美循环嵌套:仅限最内层的循环才有循环主体内容,逻辑语句之间未指定任何逻辑,所有循环边界均为常量。
对于非完美循环嵌套,即内层循环具有变量边界或者循环主体未完全包含在内层循环内,设计人员应尝试重构代码或者
将循环主体中的循环展开以创建完美循环嵌套。
将该指令应用于一组嵌套循环时,应将其应用于包含循环主体的最内层循环。

二、面积的优化
1.通过优化数据类型和数据位宽来达到面积的优化
2.代码设计中,对于乘法,除法,取模等复杂算术运算要慎重,这个耗费资源很多

三、内联函数
1.inline的使用与否会改变设计的优化架构和层级

四、数组优化
1.array_map
2.array_partition
3.array_reshape

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询