用软件从 C 转化来的 RTL 代码其实并不好理解。今天我们就来谈谈,如何在不改变 RTL 代码的情况下,提升设计性能。
本项目所需应用与工具:赛灵思 HLS、Plunify Cloud 以及 Intime。
前言
高层次的设计可以让设计以更简洁的方法捕捉,从而让错误更少,调试更轻松。然而,这种方法最受诟病的是对性能的牺牲。在复杂的 FPGA 设计上实现高性能,往往需要手动优化RTL 代码,这也意味着从 C 转化得到 RTL基本不可能。其实,使用 FPGA 工具设置来优化设计可以最小限度地减少对性能的牺牲,这种方法是存在的。
高效地找到合适的 FPGA 工具设置
尽管工程师们知道 FPGA 工具的设置,但是这些设置往往并没有充分利用。一般而言,工具设置只有在出现时序问题的时候才会派上用途。然而,对于已经达到性能目标的设计来说,如果继续调整工具设计,仍然有 10%-50%的性能提升潜力。
真正的难点在于选择正确的工具设置,毕竟各种 FPGA 工具一般都有有 30-70 个不同的布局布线设置,可选的设置组合实在是太多了。您可以写脚本来运行不同的推荐指令 / 策略。市面上也有工具,来自动管理并运行设计探索。
另一个难点就是不充裕的计算能力。典型的嵌入式应用是在单台电脑上设计的。运行多个编译需要更多的计算能力,这就要求更多的时间。如果您可以(使用云计算)并行运行,周转时间就会变短。
如何优化高层次的设计 - “Sobel 滤镜”项目
这是一个用于视屏处理的参考设计,来自赛灵思的官网 https://china.xilinx.com/support/documentat