Intel® Quartus® Prime Pro Edition用户指南: 设计优化

ID 683641
日期 9/30/2019
Public
文档目录

5.4.1.4.3. 添加线缆以“保持”

布线期间Fitter可能在寄存器路径之间添加线缆以增加延迟,从而满足保持时间要求。Fitter在Estimated Delay Added for Hold Timing中报告已添加的布线延迟的量。 过多添加线缆可能出现约束错误。导致该错误的原因通常是多速率时钟之间,以及不同时钟网络之间不正确的多周期传输。

查看Estimated Delay Added for Hold Timing报告中指定寄存器路径以确定Fitter是否添加过多线缆以满足保持时序要求。

图 16. Hold Timing Report的预估添加延迟

当数据传输从1x到2x时钟时,导致路由器为满足保持要求而添加线缆的错误约束示例。假设设计意图是允许每传输两个周期。而通过添加多周期建立约束,数据可在两个目标时钟周期内的任何时间达到,如范例中所示:

 set_multicycle_path -from 1x -to 2x -setup -end 2

时序要求放松一个2x时钟周期,如图示波形中的黑色线条所示。

图 17. 时序要求的松弛波形
默认保持要求(如蓝色虚线所示),可强制路由器添加线缆以保证数据延迟一个周期。要更正保持要求,通过保持选项添加一个多周期约束。
set_multicycle_path -from 1x -to 2x -setup -end 2
set_multicycle_path -from 1x -to 2x -hold -end 1

上图中橙色虚线代表保持关系,且无需额外线缆来延迟数据。

当数据在同一时钟域中传输时,布线程序也可添加线缆以保持时序要求,但各时钟分支之间使用不同缓冲。时钟网络类型间的传送常常发生在外设和内核之间。下图显示数据正进入器件,外设时钟驱动源寄存器,全局时钟驱动目标寄存器。全局时钟缓冲器的插入延迟大于外设时钟缓冲器。所以到目标寄存器的时钟延迟远大于到源寄存器的时钟延迟,因此数据路径上需要额外的延迟以确保满足其保持要求。

图 18. 时钟延迟

要确认路径中各种时钟网络类型,请在Timing Analyzer中查看路径,并沿源时钟路径和目标时钟路径检查节点。此外,检查源时钟频率和目标时钟频率以查看两者是否相同,或成倍数,以及路径上是否存在多周期异常。最后,请确保所有有意的跨域路径错误都有相关联的错误路径异常。

如果您怀疑已添加了修复实际保持问题的路径,则可禁用Optimize hold timing高级Fitter设置(Assignments > Settings > Compiler Settings > Advanced Settings (Fitter) > Optimize hold timing)。在禁用Optimize hold timing的条件下重新编译设计,然后重新运行分析以确认并更正不符合保持时间要求的路径。

图 19. 优化保持时间选项
注: 仅在调试设计时才禁用Optimize hold timing选项。请确保常规编译期间启用该选项(默认状态)。布线期间针对保持时间而添加的线缆是时序优化的常规部分,不一定是存在问题。