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。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM