最近在看spyglass扯到了cdc,那借此机会把CDC的知识点过一遍
参考博客http://blog.csdn.net/u011729865/article/details/52937915,其中提到了论文《基于spyglass同步设计分析和静态验证》,这里总结并纠正一些知识点
本文结构基于论文,侵删
1. 数字设计中的常见问题
a. Setup/Hold不满足,产生了亚稳态,这个不赘述了
b. Data保持时间不满足:这个是指快时钟域->慢时钟域时,若data是一快时钟上的脉冲信号(1cycle),那慢时钟域很有可能会采不到,然后CDC就丢数了
c. 数据关联和竞争:这个指多bit CDC并采用2级触发器做同步时,由于多bit数据路径延迟不一,因此到达目的时钟域时可能会发生数据不同步情况(如:异步FIFO的地址,可以靠格雷码解决)
d. 复杂设计中常见CDC方式:异步FIFO、握手、单bit使能信号(老生常谈)
e. 异步复位:这里主要强调释放时由于需要不同时钟去采,而VLSI中异步复位信号到达不同触发器延迟不一,就会出现有的复位释放了、有的还在复位现象
2. 亚稳态和MTBF
这里提到的“危险区域”是指目的触发器自身的建立+保持时间形成的window,输入信号翻转不能落入这里
另外