zoukankan      html  css  js  c++  java
  • CDC spyglass

    SoC中会有着几百的clock domains,millions的async data crossing。

    Glitch等cdc问题是netlist level simulation的主要目的。

    CDC的困难点:

    1)STA不会进行asynchronous的检查,只会进行synchronous的检查;

    2)Path across clock domain通常会被设置为false path,不进行check;

    3)CDC带来的一些问题只有在进行post-sim的时候,才会暴露出来;

    在RTL level simulation中,无法发现问题。

    4)CDC带有一定的lucky性质,simulation只能检查出一部分的error;

    典型的CDC问题:

    1)Metastability:异步相位的必然结果;

    2-sync cell会导致一个clock cycle的uncertainty;

    metastability可能会导致data-coherency和re-covergence的问题;

    2)Reconvergence(correlation):一些reconvergence信号会带来的glitch以及sample single出错;(multi-bit uncertainty)

    会导致在receiving domain中有一到两个cycle的latency或者cycle uncertainty;

    可以通过gray encoding的方式来避免;

    通过verify signals肯定不会在destination clock cycle进行toggle,从而waive掉这个path。

    3)Data hold problem(data loss):Fast to slow clock以及data enable sequencing场景;

    可以通过implement pulse extenders的方式来避免:

    Spyglass对于这类fast-slow cdc crossing,会自动进行formal check,如果data不能被capture到,会报error

    处理方法:

    1)synchronization scehme(such as handshake,FIFO)

    2)reset synchronization(reset is asynchronously asserted and synchronously de-assert)

    3)bus async bridge;

    4)尽量使用glitch-free的mux;

    5)well managed convergence paths;

    CDC中主要的问题会在register中,因为Apb/Ahb clock与fucntion clock的async。 

  • 相关阅读:
    团队项目-需求分析报告
    自动化测试框架指南
    一起吐槽接口文档
    居家费拖鞋【FunTester居家日记】
    HTTP接口测试基础【FunTester框架教程】
    Java NIO在接口自动化中应用
    JAVA 可变参数
    HashSet 和 LinkedSet 数据结构
    简单数据结构
    JAVA 迭代器的简单使用
  • 原文地址:https://www.cnblogs.com/-9-8/p/5823299.html
Copyright © 2011-2022 走看看