CDC检查常见的错误及原因

CDC检查是数字电路的必要检查之一,本节逻辑对应的一些常见的错误类型和原因,以供参考备用,一般工具会报出几种不同的分类,下面罗列出目前工作中碰见的问题:

1. Setup Stage

    1. SETUP_RESET_UNDECL

         Reset 未约束,采用create_reset来设置reset signals, 或者是其他原因进行解决即可。

    2. SETUP_BBOXPIN_UNCONSTRAINED

block-box的管脚没有约束或者部分约束。确认连接关系,没问题waive了就行了。

    3. CDC_UNSYNC_ASYNCRESET

        复位信号没有经过目的时钟域同步,一般是目的端复位被异步时钟驱动,或者工具没有推断处同步逻辑,这个可以根据具体的设计来进行判断,确保功能符合预取

2. Sync Stage

    1. CDC_UNSYNC_ASYNCRESET

        异步复位没有同步释放, 需要排查设计,修改逻辑,或者可以确保reset和时钟的固定关系,不会引起reset异步释放问题。

    2. CDC_UNSYNC_DATA

        部分数据并没有经过同步,和同步的逻辑进行组合逻辑之后就进行使用了。

        常规下是需要修改的,除非来自异步域的信号为准静态信号,且在逻辑上不会产生问题。

    3. CDC_UNSYNC_NOSCHEME

        跨时钟域信号没同步就被dest采集,默认是一定要进行修改的,除非是准静态信号。

3. cov_stage

   3.1 CDC_COHERENCY_MULTI_SYNC

         Multiple synchronization of same source SrcInfo.

        经过逻辑再同步的处理机制是不好的,可能会导致数据到后续寄存器端的时间不同导致采样数据有问题;

        不修复该问题可能有以下问题:

         Data coherency issues if synchronized destinations driven by the same source converge. – 信号经过逻辑到达后一个时钟域的时间不同,可能引发数据不一致的问题,这个在跨时钟域边界,看一下是否有max dealy/data_check保证;这样的设计是不可重复使用的,因为由于潜在的收敛问题,芯片故障的风险很大

       修复方式:

       先同步,后分发,如果放在源时钟域的话,先做组合逻辑可能会有毛刺导致问题,非要在src侧做的话,就做完逻辑再寄存器输出,但是引入了一拍,这也遵循同步器之前不加组合逻辑的需求。

    3.2  CDC_COHERENCY_RECONV_SEQ

Sequential convergence found at ConvergencePoint

           //– 同步之后的聚合点,有寄存器参与,同步之后的同一个信号存在汇聚点

          Clock1的数据在clock2中经过同步的信号,和经过同步之后打拍的信号最终进行组合逻辑,这在实际使用中需要确认用法,因为这种做法,可能是导致同步之后的信号组合和原始的值的组合不同,导致电路问题;

To fix the violation, either of the following needs to be done:

如果确认是设计需求,且不会引起数据一致性问题,可以忽略;或者用configure_cdc_convergence (-ignore_through_objects /-ignore_at_objects /-ignore_among_signals) command on the related nets or signals,设定约束。否则,将信号同步信号简化或者逻辑前移或者后移。

3.3 CDC_COHERENCY_ASYNCSRCS_RECONV_COMB

Combinational convergence found at ConvergencePoint –

           //来自不同时钟域的信息,在目的时钟域中同步之后进行组合逻辑运算

解决办法:

1. 如果确认是设计需求,且不会引起数据一致性问题,可以忽略;或者用configure_cdc_convergence (-ignore_through_objects /-ignore_at_objects /-ignore_among_signals) command on the related nets or signals,设定约束;

2. 否则需要修改设计,;

3.4  CDC_COHERENCY_RECONV_COMB

Combinational convergence found at ConvergencePoint.

clk1的数据同步之后再clk2中做组合逻辑,存在逻辑汇聚点,存在多种不同的场景;这种场景是会存在问题的,因为再经过同步之后路径的delay可能存在不同,那么就可能会导致信号出现异常组合,导致不期望的信号组合导致逻辑失败,所以需要在设计中明确是否会存在对应问题,是否需要将同步信号简化,逻辑前移或者后移。

Refer to the related reason codes section and take any of the following steps based on the reason code reported.

  •    Reason Code: DIV_SRC_CONV

Same with GRAY_CHECK_IGNORED_DIV_SRC_CONV reason and solve ways;

  • Reason Code: GRAY_CHECK_IGNORED_DIV_SRC_CONV

This kind of convergence can cause data coherency issues and may cause chip failure,可以采用以下方式修正这个问题:

1. 如果确认是设计需求,且不会引起数据一致性问题,可以忽略;或者用configure_cdc_convergence (-ignore_through_objects /-ignore_at_objects /-ignore_among_signals) command on the related nets or signals,设定约束

2. 修改设计,避免对应通路的产生;

  • Reason Code: SYNC_SRC_CONV

需要查看电路结构来判断对应设计是不是符合预期;以下是建议动作:

1. 明确在source signals处,采用了gray码编码,确保没有coherency issue;

2. 如果是static signal引起的,可以采用create static进行约束;

3. 如果路径上的同步器对于汇聚点不是同时生效的,可以wavie

4. 如果涉及明确汇聚点不会引起数据一致性问题,可以采用configure_cdc_convergence (-ignore_through_objects /-ignore_at_objects /- ignore_among_signals) command on the related nets or signals进行设置;

5. 如果汇聚点是一个mux单元,那么这里肯定不会同时选中,那么采用disable the configure_cdc_convergence -disable_mux_exclusivity command进行设置;

6. 如果汇聚点是不同的domain,可以采用configure_cdc_convergence - stop_diff_domain command进行设置

3.5 CDC_COHERENCY_ASYNCSRCS_RECONV_SEQ

//来自不同时钟域的信息,在目的时钟域中同步之后,最后做逻辑,但其中一个在目的时钟域中多打了1拍以上;

解决办法:

1. 如果确认是设计需求,且不会引起数据一致性问题,可以忽略;或者用configure_cdc_convergence (-ignore_through_objects /-ignore_at_objects /-ignore_among_signals) command on the related nets or signals,设定约束;

2. 否则需要修改设计。

4.Glitch

 CDC path contains structure resulting in potential glitch propagation to destination GlitchDestInfo.

   1. Reason Code: GLITCH_SOURCE_RECONVERGES

        同一个源头的不同路径可以会有不同的delay,可能产生不同的时间延迟,因此引起毛刺;

        a. 修改设计;

        b. 确保各个信号到达dest的时间是一样的; sdc中进行约束;

    2. Reason Code: GLITCH_SOURCES_FROM_DIFF_DOMAIN

        不同源头的delay可能不同,因此产生不同时间延迟,因此引起毛刺;

        a. 确保setup clock是正确的;

        b. 检查源信号是否是准静态的;

        c. 如果满足上述两个条件,那么您可能需要修复设计;

    3. Reason Code: GLITCH_SOURCES_FROM_SAME_DOMAIN

        a . 检查源信号是否是准静态的

        b. 可能需要修改设计

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值