来自:http://xilinx.eetrend.com/article/12625
关于timing中的clock
时序收敛模型,分析vivado的timing报告对改善和解决timing 问题很有帮助:
图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 the source 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关系
当MMCM输出多个频率时钟是,一定把最高输出的时钟放在CLOCKOUT0,这样VCO最高,Uncertainty最小。
D. 高端器件分频使用BUFGCE_DIV
图3.MMCM和BUFGCE_DIV分频的Uncertainty对比
图4.高端器件灵活的BUFGCE_DIV分频配置
目前xilinx 的ultrascale器件的BUFGCE_DIV数量多,整数分频尽量避免MMCM使用。
图5. BUFGCE_DIV 在输出接口中的使用