<font color="#FD8900">注意:本文所有内容皆来源于Xilinx工程师,如需转载,请写明出处作者及赛灵思论坛链接并发邮件至cncrc@xilinx.com,未经Xilinx及著作权人许可,禁止用作商业用途。</font>
<font color="#FD8900">BY Hemang Divyakant Parikh</font>
有多种类型的时序违例可归类为脉冲宽度违例。
- 最大偏差违例(详见<a href="https://forums.xilinx.com/t5/Design-and-Debug-Techniques-Blog/Vivado-Ti…;)
- 最小周期违例(本文详解之重点)。
- 最大周期违例
- 低脉冲宽度违例
- 高脉冲宽度违例
如需了解脉冲宽度违例的详情,请参阅“报告时序汇总”(Report Timing Summary) 的“TPWS”部分。
最严重的脉冲宽度违例在报告中显示为 WPWS。
<center><img width="600" src="http://xilinx.eetrend.com/files/2019-12/wen_zhang_/100046541-86624-1.pn…; alt=""></center><br>
如需了解脉冲宽度违例的详情,请在 Vivado GUI 中打开脉冲宽度违例报告(单击“Reports” - > “Timing” - > “Report Pulse Width”)或使用以下 Tcl 命令打开此报告:
report_pulse_width
<font style="line-height: 40px;" color="red"><strong>最小周期违例</strong></font>
本文仅介绍“最小周期违例”相关内容。
<font style="line-height: 40px;" color="red"><strong>报告描述:</strong></font>
在脉冲宽度报告中,将检查所有时钟的最小脉冲宽度要求。
<center><img width="600" src="http://xilinx.eetrend.com/files/2019-12/wen_zhang_/100046541-86625-2.pn…; alt=""></center><br>
<font style="line-height: 40px;" color="red"><strong>最小周期违例示例:</strong></font>
举例来说,GUI 中打开的报告描述如下所示:
<center><img width="600" src="http://xilinx.eetrend.com/files/2019-12/wen_zhang_/100046541-86626-3.pn…; alt=""></center><br>
以上示例显示了特定时钟的最小周期 (Min Period) 和最大周期 (Max Period) 要求。
可以看到,针对“Min Period”,裕量 (Slack) 为负值。
此违例现象必须解决,才能避免出现脉冲宽度违例。
在此示例中,显示的预期值 (Required) 为 2.155ns,实际值 (Actual) 为 1.250ns,这两个值均为对应于检查类型 (Min Period) 的值。“Slack”列显示的值即为这两者的差值(Slack = Actual 值 - Required 值)。
<font style="line-height: 40px;" color="red"><strong>解决办法:</strong></font>
在此示例中,负 Slack 值 -0.905ns 位于 BUFG 的输入引脚 (Lib Pin: BUFG/I) 上。
要解决此违例,必须检查此特定器件系列的 AC 和 DC 特性,其中将显示 BUFG 允许的最大频率。
由于这是硅片层面的限制,您将需要调低频率才能解决此违例。
来源:<a href="https://forums.xilinx.com/t5/Xilinx-%E4%BA%A7%E5%93%81%E8%AE%BE%E8%AE%A…;