Intel® FPGA SDK for OpenCL™ Pro Edition: 最佳实践实践指南

ID 683521
日期 9/26/2022
Public
文档目录

10.6.1. 复位建议

Intel® 提供关于如何处理英特尔 Stratix 10 OpenCL设计中的复位。 Intel® FPGA SDK for OpenCL™ Offline Compiler自动应用这些建议。如果您正在开发RTL库,则应该实现这些知道获得最佳性能。

对于非英特尔 Stratix 10器件的传统FPGA RTL,常规做法是不加区别地复位每个寄存器以便于实现,而不会对性能产生负面影响。然而,要提高您英特尔 Stratix 10设计的性能,就必须最大程度地减少复位次数。

注: 如果寄存器未复位,则复位扇出(fanout)信号减去一。

您的英特尔 Stratix 10设计中避免不必要的复位,原因如下:

  • 由此产生的高扇出(high-fanout)信后会阻止英特尔 Quartus Prime Pro Edition软件的重定时器找出满意的解决方案。

    有关更深入的解释,请参阅 英特尔 Stratix 10 高性能设计手册避免广播信号小节。请注意,术语“广播信号”指得是高扇出信号。

  • 某些情况下,简单地复位寄存器,无论它是否高扇出复位信号,都足以降低您英特尔 Stratix 10设计的性能。

    有关更深入的解释,请参阅英特尔 Stratix 10 高性能设计手册中的同步复位和限制小节。

Intel® 建议的复位设计指南,如下:

  • 要提高英特尔 Stratix 10设计性能,请勿通过复位不会保持内部状态的寄存器来减少复位扇出。
  • 必须保证复位信号在至少50个时钟周期内保持有效。通过“刷新”("flushing” )具有内部状态的寄存器链来使用这个有保证的置位。
  • 对于深度不超过15个流水线寄存器的可停顿RTL模块,或者深度不超过25个流水线寄存器的可停顿RTL模块,您可以选择在RTL模块内部流水线化复位信号来进行扇出管理。如果RTL模块足够大,流水线复位信号可能会改善设计性能。