Vivado时间 - 消除时钟悲观:理解,计算和确定心肺复苏术

描述

什么是时钟悲观消除(CPR)及其计算方法?

  • 在静态时序分析中,通常会检查两个指标:设置和保持。此解释来自设置检查的有利位置。
  • FPGA内的数据和时钟路径带有概率延迟,其范围由过程,电压和温度变化(PVT)决定。
  • 有两个过程,快速和慢速。两者都具有路径延迟的最小和最大界限。
  • 这些工具使用最大数据路径和最小时钟路径来查找最坏情况的设置方案。

参考图1:

  • 在时钟分裂之前存在共同的时钟路径并且到达相应的触发器。
  • 这意味着目标路径将应用最小路径延迟,源路径将应用最大值。
  • 问题是这些路径连接在上游。
  • 对于此公共路径,不可能同时应用最小和最大延迟。
  • CPR通过获取最大值和最小值之间的差异来解决此问题。换句话说:CLK_COMMON dest - CLK_COMMON
  • 这种差异是松弛计算中的因素。

图1:设置和保持CPR方案。

尊重现实生活中的例子:

  • 根据以下报告,CPR应为-0.353 ns。
  • 同样,CPR = CLK_COMMON dest - CLK_COMMON
  • 在这种情况下,公共时钟路径从PAD(AG10)开始,到BUFG(BUFGCTRL_X0Y1)的输出结束。
  • 在此之后,路径分成两个相应的切片。在下面的报告中,CPR据说是-2.534 ns,这是不正确的。


CLK_COMMON des t = 9.948 ns - 5 ns = 4.498 ns(通过减去5 ns来考虑下一个时钟沿)
CLK_COMMON 源码 è   = 5.301 ns
CPR = CLK_COMMON dest - CLK_COMMON 源码 = 4.498 ns - 5.301 ns = -0.353 ns。

以下报告显示的CPR不正确。此问题现已修复(2012.3)。

这来自错误消息

 ------------------------------ 
信息: 
[Timing-91] UpdateTimingParams:估计,速度等级:-1,延迟类型:最大,约束类型:SDC。 
信息:[Timing-78] ReportTimingParams:-max_paths 1 -nworst 1 -transition rf -delay_type max -sort_by slack。 -------------------------------------------------- ---------------------------------- |报告:时间安排
|设计:blastpn_fpga0
|零件:器件= 7k325t封装= ffg900速度= -1(预览1.04 2012-04-11)
|版本:Vivado v2012.1(64位)构建179419 xbuild于4月26日星期四11:43:29 MDT 2012
|日期:2012年6月14日星期四15:14:10
|命令:report_timing - 从i_blast_common / i_ddr3_wrapper_1 / i_mig_7series_v1_4 / u_memc_ui_top_std / mem_intfc0 / ddr_phy_top0 / u_ddr_mc_phy_wrapper / u_ddr_mc_phy / ddr_phy_4lanes_0.ddr_phy_4lanes / ddr_byte_lane_D.ddr_byte_lane_D / dq_gen_40.if_post_fifo_gen.if_empty_r_reg / Q -to {i_blast_common / i_ddr3_wrapper_1 / i_mig_7series_v1_4 / u_memc_ui_top_std / u_ui_top / ui_rd_data0 /not_strict_mode.app_rd_data_reg[64]/D} -------------------------------------------------- ---------------------------------- Slack(VIOLATED): - 4.895ns 来源:i_blast_common / i_ddr3_wrapper_1 / i_mig_7series_v1_4 / u_memc_ui_top_std / mem_intfc0 / ddr_phy_top0 / u_ddr_mc_phy_wrapper / u_ddr_mc_phy / ddr_phy_4lanes_0.ddr_phy_4lanes / ddr_byte_lane_D.ddr_byte_lane_D / dq_gen_40.if_post_fifo_gen.if_empty_r_reg / Q
(上升沿触发的单元FDCE由clk_pll_1 {rise@0.000ns fall@2.500ns period = 5.000ns}计时}
目的地:i_blast_common / i_ddr3_wrapper_1 / i_mig_7series_v1_4 / u_memc_ui_top_std / u_ui_top / ui_rd_data0 / not_strict_mode.app_rd_data_reg [64] / D
(上升沿触发的单元FDCE由clk_pll_1 {rise@0.000ns fall@2.500ns period = 5.000ns}计时}
路径组:clk_pll_1
路径类型:慢速过程角的最大值
要求:5.000ns
数据路径延迟:6.817ns(逻辑0.539ns(7.907%)路由6.278ns(92.093%))
逻辑电平:5(LUT2 = 2 LUT3 = 1 LUT4 = 1 LUT6 = 1)
时钟路径偏差:-3.024ns(DCD - SCD + CPR)
目的地时钟延迟(DCD):6.663ns
源时钟延迟(SCD):7.153ns
时钟悲观消除(CPR): - 2.534ns
时钟不确定度:0.054ns((TSJ ^ 2 + DJ ^ 2)^ 1/2)/ 2 + PE
总系统抖动(TSJ):0.071ns
离散抖动(DJ):0.081ns
相位误差(PE):0.000ns
位置延迟类型Incr(ns)路径(ns)网表资源 -------------------------------------------------- ----------------- ------------------- (时钟clk_pll_1上升沿)
0.000 0.000 r
AG10 0.000 0.000 r CLK_HPCLK_P
AG10 IBUFDS(Prop_ibufds_I_O)1.036 1.036 r i_blast_common / i_ibufds_sys_clk0 / O
PLLE2_ADV_X1Y1 PLLE2_ADV(Prop_plle2_adv_CLKIN2_CLKOUT3)
1.317 2.353 r i_blast_common / i_ddr3_wrapper_1 / i_mig_7series_v1_4 / u_ddr3_infrastr
BUFGCTRL_X0Y1 BUFG(Prop_bufg_I_O)2.948 5.301 r i_blast_common / i_ddr3_wrapper_1 / i_mig_7series_v1_4 / u_ddr3_infrastructure / u_bufg_clkdiv0 / O
SLICE_X152Y94净(FO = 4991)1.852 7.153 - [R i_blast_common / i_ddr3_wrapper_1 / i_mig_7series_v1_4 / u_memc_ui_top_std / mem_intfc0 / ddr_phy_top0 / u_ddr_mc_phy_wrapper / u_ddr_mc_phy / ddr_phy_4lanes_0.ddr_phy_4lanes / ddr_byte_lane_D.ddr_byte_lane_D / dq_gen_40.if_post_fifo_gen.if_empty_r_reg / C -------------------------------------------------- ----------------- ------------------- < SLICE_X152Y94 FDCE(Prop_fdce_C_Q)0.308 7.461 - [R i_blast_common / i_ddr3_wrapper_1 / i_mig_7series_v1_4 / u_memc_ui_top_std / mem_intfc0 / ddr_phy_top0 / u_ddr_mc_phy_wrapper / u_ddr_mc_phy / ddr_phy_4lanes_0.ddr_phy_4lanes / ddr_byte_lane_D.ddr_byte_lane_D / dq_gen_40.if_post_fifo_gen.if_empty_r_reg / Q SLICE_X150Y70 LUT4(Prop_lut4_I2_O)1.484 8.945 - [R i_blast_common / i_ddr3_wrapper_1 / i_mig_7series_v1_4 / u_memc_ui_top_std / mem_intfc0 / ddr_phy_top0 / u_ddr_mc_phy_wrapper / u_ddr_mc_phy / ddr_phy_4lanes_0.ddr_phy_4lanes / ddr_byte_lane_A.ddr_byte_lane_A / dq_gen_40.if_post_fifo_gen.u_ddr_if_post_fifo / i_134281_7618 / O SLICE_X114Y77 LUT2(Prop_lut2_I1_O)1.691 10.636 r i_blast_common / i_ddr3_wrapper_1 / i_mig_7series_v1_4 / u_memc_ui_top_std / mem_intfc0 / ddr_phy_top0 / u_ddr_calib_top / u_ddr_phy_init / i_134281_10513 / O SLICE_X114Y77 LUT2(Prop_lut2_I0_O)0.286 10.922 r i_blast_common / i_ddr3_wrapper_1 / i_mig_7series_v1_4 / u_memc_ui_top_std / mem_intfc0 / ddr_phy_top0 / u_ddr_calib_top / u_ddr_phy_init / i_134281_11708 / O SLICE_X127Y77 LUT6(Prop_lut6_I5_O)0.757 11.679 r i_blast_common / i_ddr3_wrapper_1 / i_mig_7series_v1_4 / u_memc_ui_top_std / u_ui_top / ui_rd_data0 / i_134281_11854 / O SLICE_X150Y88 LUT3(Prop_lut3_I1_O)2.325 14.004 r i_blast_common / i_ddr3_wrapper_1 / i_mig_7series_v1_4 / u_memc_ui_top_std / u_ui_top / ui_rd_data0 / i_134102_12146 / O SLICE_X150Y88 net(fo = 1 ...
(更多...)
编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-31 14:30:43 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它