关于timing中的clock

作者:East,来源:FPGA那点事儿

时序收敛模型,分析vivado的timing报告对改善和解决timing 问题很有帮助:

图1.时序报告信息

图1.时序报告信息

当使用ultrascaleor ultrascale + 器件时,如果时序不收敛不看下ug949是不合适的。关于逻辑级数、net delay等常用办法已经介绍很多。平衡congestion vs. wire length vs. timing 的方法,vivado 也有相应的策略。这里还有一个时钟因素,skew和Uncertainty。这两项虽然有时候看起来不太重要,但对于高速设计,有时候slack差距很小,关于这两个指标就能够完美的解决。

Reducing Clock Skew
A. 定义:The difference between the time a clock signal arrives at thesource flip-flop in a path and the time it arrives at the destination flip-flop。

B. Clock skew 在FPGA和ASIC等数字电路中都存在。

C. 对于intra-clock 小于300ps,inter-clock小于500ps;

D. 时钟的拓扑结构,时钟布局都会影响;

E. 减少时钟级联buffer,并行化处理;

F. 时钟路径不能出现组合逻辑;

Reducing Clock Uncertainty
A. 定义:The total amount of clock uncertainty (relative to an idealclock) that results from user-specified external clock uncertainty, jitter, orduty cycle distortion.

B. Clock Uncertainty 影响所有路径;

C. 修改MMCM / PLL设置会影响Uncertainty;

图2.MMCM设置和Uncertainty关系

图2.MMCM设置和Uncertainty关系

当MMCM输出多个频率时钟是,一定把最高输出的时钟放在CLOCKOUT0,这样VCO最高,Uncertainty最小。

D. 高端器件分频使用BUFGCE_DIV

图3.MMCM和BUFGCE_DIV分频的Uncertainty对比

图3.MMCM和BUFGCE_DIV分频的Uncertainty对比

图4.高端器件灵活的BUFGCE_DIV分频配置

图4.高端器件灵活的BUFGCE_DIV分频配置

目前xilinx 的ultrascale器件的BUFGCE_DIV数量多,整数分频尽量避免MMCM使用。

图5. BUFGCE_DIV 在输出接口中的使用

图5. BUFGCE_DIV 在输出接口中的使用

文章转载自: FPGA那点事儿