zoukankan      html  css  js  c++  java
  • 是否long pulse 訊號一定要拿來做同步處理?不做同步處理可以嗎?

    如果不做同步處理?

    任何的訊號,如果不做同步處理的話,都會有meta stable的產生的疑慮。而long pulse做同步

    處理是比one-pulse訊號做同步處理來得容易多了。

    很多人都認為long pulse不需要做同步處理,因為我下一個時間(next period time),就可

    以得到正確的long pulse訊號。就對下一個時間點而言,這樣子的說法這是正確的,但是對

    目前的時間點而言,你已經沒有辦法保證你所設計的系統是穩定的,除非,你設計一個

    會mask meta stable訊號的設計,但是,這有可能嗎?同步處理是每一個 T (period time)都

    在進行的,你要怎麼知道每一個小段時間的起始點? 任何訊號你想要得到之前,都是要同步過的。所以沒有辦法知道每一小段的起始點,因為連知道這個起始點的訊息,也是要同步的。

    不做同步處理的原因有很多,總結上來說,是因為你的設計不管有沒有meta stable,都不

    會影響系統的正確性,所以才會省略一個D-F.F.(D-Flip-Flop)。

     

    如果做同步處理?

    如果做同步處理, 則所有的訊號都會是收斂在同一個clock domain,提高系統穩定度。

    做同步處理和不做同步處理,相差的D-F.F.只有幾個,並不會太多,就整個系統來說,也不會太多。就我的經驗,整個晶片裏,同步處理的D-F.F.並沒有佔到整個晶片的1%(甚至可能不到0.1%或是0.01%),為什麼要省這些D-F.F.,來讓系統有不穩定的機會。

    降低成本的方式有很多,我們也可以用轉進更微小製程來降低成本,例如:90ns轉進到28ns製程。節省這個D-F.F,就節省面積來說,節省不到1%面積(甚至可能不到0.1%或是0.01%)的方式,換算成成本,應該會是多少錢呢?比起因系統不穩,而需付出NRE的費用來說,哪一個才是比較少的?

    並不是說long-pulse 訊號在cross clock domain的處理上,一定要做同步;而是說,如果同步處理是你無法避免的過程,那麼省略這幾個D-F.F.的做法,能不做還是不做,因為它帶來的實際上的效益並沒有太大。對於有meta stable的訊號,標準流程應該是直接捨棄不用,而不用去考慮它是否會帶給系統不穩定的機會有多大。

  • 相关阅读:
    mysql 时间戳 转 时间
    VSCode搭建VUE 开发环境
    虚拟通信
    JavaScript 获取客户端计算机硬件及系统信息
    Thinkphp关联模型BELONGS_TO
    docker部署rancher踩坑篇
    青龙面板 脚本 依赖库下载安装
    Linux 随记
    Tekton DAG代码
    手写Spring valar
  • 原文地址:https://www.cnblogs.com/orchid123/p/3643294.html
Copyright © 2011-2022 走看看