大连网站制作赞ls15227,购买网站空间后怎么做,自己在本地建的网站 别人怎么访问教程,网站建设与维护管理实训报告优化 FPGA HLS 设计 用工具用 C 生成 RTL 的代码基本不可读。以下是如何在不更改任何 RTL 的情况下提高设计性能。 介绍 高级设计能够以简洁的方式捕获设计#xff0c;从而减少错误并更容易调试。然而#xff0c;经常出现的问题是性能权衡。在高度复杂的 FPGA 设计中实现高性… 优化 FPGA HLS 设计 用工具用 C 生成 RTL 的代码基本不可读。以下是如何在不更改任何 RTL 的情况下提高设计性能。 介绍 高级设计能够以简洁的方式捕获设计从而减少错误并更容易调试。然而经常出现的问题是性能权衡。在高度复杂的 FPGA 设计中实现高性能需要手动优化 RTL 代码而这对于HLS开发环境生成的 RTL 代码来说是不可能的。然而存在一些解决方案可以通过使用 FPGA 工具设置优化设计本身来最大限度地减少性能损失。 高效找到正确的 FPGA 工具设置 尽管设计人员知道 FPGA 工具设置的存在但这些设置往往没有得到充分利用。通常只有在出现设计问题时才使用工具设置。然而对于已达到性能目标的设计还有额外10% 至 50% 性能改进的巨大潜力。 上面的核心问题在于选择正确的工具设置因为不同的 FPGA 工具提供 30 到 70 种用于综合和布局布线的设置。可能的组合太多了。可以编写脚本来创建不同的运行并尝试推荐的标准指令/策略。 最后一个挑战问题是计算能力不足。典型的嵌入式应用程序是在单台计算机上设计的。运行多个编译需要更多的计算能力。这是与时间的权衡。如果可以同时运行更多使用云综合策略周转时间将会更短。 如何优化高级设计 - Sobel 滤波器 Sobel 滤波器是视频处理中常用的参考设计。该参考设计针对具有 Dual ARM® Cortex®-A9 MPCore™ 的 FPGA。 我们使用 Xilinx HLS 工具来打开此设计。 它的时钟周期为 5.00 ns即 200 MHz。从时序估计见下文来看它仍然缺少 506 ps 的时序这相当于 181 MHz比目标速度低 10%。 导出到 RTL 项目 在不更改 C 代码的情况下将设计导出到 RTL 中的 Vivado 项目中。在“解决方案”下选择“导出 RTL”。 它将在后台执行 Vivado 并生成项目文件 (XPR)。它还应该编译设计并且应该在控制台中看到实际的时序详细信息。完成后在/solution/impl/verilog/文件夹中找到项目文件。 找到一个 XPR 文件。可以通过Vivado打开它来验证它可以看到生成的RTL源码。 优化时序 下一步是使用名为InTime 的设计探索工具https://www.plunify.com/en/free-evaluation/。同样可以自己编写脚本来尝试 Vivado 工具中提供的标准指令或策略可以使用免费评估许可证在本地运行 InTime 。或者使用一些免费积分和预装 FPGA 工具注册 Plunify云帐户。 启动InTime后打开项目文件。当提示要使用的 Vivado 版本时请使用“相同”的 Vivado 版本。例如如果使用2017.3 HLS请使用2017.3 Vivado。 选择“热启动”。“热启动”是基于之前其他设计经验的推荐策略列表。 单击“Start Recipe”开始优化。如果在云上运行则应同时运行多个编译以减少时间。 优化过程和结果 在第一轮“热启动”之后最好的结果是“hotstart_1”策略。然而它仍然缺少-90ps 的时序。 我们对“HotStart_1”的结果应用了名为“Extra Opt Exploration”的第二个秘诀。这侧重于优化关键路径。这是一种迭代优化只要每次迭代都显示出改进就会不断重复。如果达到时间目标或未能显示出改进它最终将自动停止。 经过两轮优化共15次编译该设计能够满足200Mhz的性能目标。这是无需对 RTL 源代码进行任何更改即可实现的。 更高水平的性能 要达到更高的性能水平需要在所有方面进行优化——架构设计、代码和工具。工具设置探索可以克服更高级别设计的性能权衡而不会失去它首先带来的生产力优势。这对于高级设计师来说是双赢。