生成时序报告后,如何阅读时序报告并从时序报告中发现导致时序违例的潜在问题是关键。首先要看Design Timing Summary在这个Summary里,呈现了Setup、Hold和Pulse Width的总体信息,但凡WNS、WHS或WPWS有一个小于0,就说明时序未收敛。
找到时序最糟糕的路径如果时序未收敛,并不需要分析所有未收敛的路径,而是先关注时序最糟糕的路径,先优化这些路径,有可能优化这些路径之后,这些路径收敛了,同时其他路径也能够收敛。只需要点击上图中WNS之后的数字,即可显示这些最糟糕的路径,如下图所示。
分析时序最糟糕的路径只需要双击上图中的路径,就能显示该路径对应的时序报告的详细信息,如下图所示。在这个报告中,首先可以看到Slack,其值为负,表明时序未收敛。接着看Source和Destination。通常,Source为时钟端口,如图中触发器的C端口;Destination为数据端口,如图中触发器的D端口。从Source和Destination还可以看到起始cell和终止cell的驱动时钟,从而可判定该路径是否为跨时钟域路径。这一点也可以从Requirement部分给出的信息加以验证。图中Requirement显示均为同一时钟,故此处为单一时钟下的时序路径。紧接着Path Type为Setup,表明该报告为建立时间路径报告,其后的信息Max at Slow Process Corner其中的Slow意味着High Temperature Low Voltage。如果是Path Type为Hold,表明该报告为保持时间路径报告,其后的信息为Min at Fast Process Corner,Fast意味着Low Temperature High Voltage。对于Requirement一栏,一定要看Requirement是否合理,例如,如果Requirement为1ns,那么显然是不合理的,这说明时序约束本身有问题。其后的Data Path Delay由两部分构成,逻辑延迟(对应图中的logic)和线延迟(对应图中的route)。这一栏同时显示了每部分延迟占的百分比。对于7系列FPGA,如果逻辑延迟超过了25%,那么说明时序违例的主要原因是逻辑级数太高了;对于UltraScale系列FPGA,这个指标则为50%。对于7系列FPGA,如果线延迟超过了75%,那么说明时序违例的主要原因是线延迟太高了;对于UltraScale系列FPGA,这个指标则为50%。对于Logic Levels,通常认为1个LUT+1根net的延迟为0.5ns,据此来评估逻辑级数是否过高。例如如果时钟为100MHz,那么逻辑级数在10/0.5=20左右是可以接受的。对于Clock Path Skew,如果该值超过了0.5ns,就要关注;对于Clock Uncertainty,如果该时钟是由MMCM或PLL生成,且Discrete Jitter超过了50ps,就要回到Clocking Wizard界面尝试修改参数改善Discrete Jitter。
对于跨时钟域路径,如下图所示,从Requirement部分信息可以看到源时钟和目的时钟是不同的,即可表明该路径为跨时钟域路径。这里Requirement为1ns,显然是不合理的,这说明跨时钟域路径的约束不合理。
总体而言,打开时序报告,要看路径Source、Destination、Requirement、Data Path Delay、Logic Levels、Clock Path Skew和Clock Uncertainty。还有一点至关重要,时序分析在综合之后就要开始分析,而不是等到布局布线之后再看。综合之后着重分析的是逻辑级数、资源利用率和控制集。
全部0条评论
快来发表一下你的评论吧 !