CDC都是怎么检查的?
http://realintent.com/products/w ... noff_Done_Right.pdf
具体算法不清楚,感觉也是做了遍综合,然后就像你在dc 中 report timing path 一样,在节点和timing arc里检查cross domain
我们要求“跨时钟路径,没有组合逻辑单元”,不得其解。检查靠人工,没有什么工具可以解决,可以直接report的
The jasper_model_async_cdc_wire Proof Accelerator™ (PA) is an encrypted macro to model the effects of metastability and nondeterminism on asynchronous clock domain crossings (CDCs) in a design under verification (DUV). This modeling allows you to prove the functional correctness of your design even for cases where non-deterministic sampling of values between clock domains potentially causes problems. The PA is instantiated at the points where signals cross the clock domain boundaries and enables end-to-end (input to output) formal verification of your properties under all potential phase jitter conditions of completely asynchronous clocks.
所有Formal出身的公司都有工具检查,一抓一大把。
CDC基本上前端来查,当然也有某些做得细的牛逼公司在STA阶段也搭flow来check.原理上就是吃rtl和power domain definition, 工具会在cross-domain的地方check有没有握手/sync cell/async fifo.
差不多这样吧。
你这是检查信号是否都在本时钟域上reg out 才到异步时钟域上reg in,一般异步信号不是调用共用的同步单元来保证这个事情吗?
如果你们都是分散写的,CDC会把所有这些跨时钟域的Path都报出来的,然后你只能去一个个看了。
贡献个用DC做的思路,你试试把关注的时钟设为一个时钟group,但是不同的generated clk
然后去报彼此间的timing path,用脚本抓一下timing path里面的cell 除了buf外是否还有逻辑
谢谢