本文主要是介绍HLS进阶——频率优化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
频率优化对于HLS设计或是RTL设计其实都是分为两部分:逻辑(logic)和布线(route)优化。思路上和RTL开发是一致的,但是由于HLS的控制力度不同,所以执行策略上也会有一些区别,下面我就介绍一些常用的优化技巧。
逻辑优化
- 了解FPGA,让适合的代码发挥FPGA的优势;
- 拆分为多个dataflow模块,减少一个模块内一拍执行的组合逻辑操作数量;
- 如果不能拆分为多个dataflow模块,则通过状态机将部分操作切换到下一拍去执行;
- 合理选择资源类型;
- 平衡设计模块中的ii和latency,大型设计一般以最大吞吐率为目标;
布线优化
- 合理选择资源类型,尽量做到资源均衡,防止布线过长;
- 对于fanin、fanout较大导致频率较低的模块,可以通过多级流水的方式提高频率;
- 了解卡内资源分布,尽量选择临近资源,减少布线长度;
- 大型设计尽量做到不要让组合逻辑跨SLR;
这篇关于HLS进阶——频率优化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!