Spyglass之CDC检查(5)

时间:2024-04-05 14:30:27

本篇介绍CDC检查最后一个过程CDC_verify(functional cdc checks)。主要检查:a)数据完整性;b) 格雷码编码;c) FIFO上溢或下溢;d) 握手协议。

上一篇:Spyglass之CDC检查(4)

AC_cdc01a

检查快时钟到慢时钟同步数据传输是否丢失。
Spyglass之CDC检查(5)
如下图所示,快时钟域信号只维持一个时钟周期,很难被慢时钟域采到,造成数据丢失。
Spyglass之CDC检查(5)
解决办法是在快时钟域添加extender,使信号至少维持一个慢时钟周期
Spyglass之CDC检查(5)

AC_datahold01a

检查数据被另一个时钟域采样时是否稳定。与ac_cdc01a规则相似,区别ac_cdc01a检查单bit,ac_datahold01a检查多bit数据。FIFO,握手以及门控同步模块不会检查。

AC_conv02/04/05

检查跨时钟传输中没有聚合也没有格雷码编码的多bit控制信号
(1)检查是否使用格雷码编码。下图中q[1;0]信号源没有采用格雷码编码。
Spyglass之CDC检查(5)
(2)检查不同bit信号是否使用不同的同步方式。如下图src_bus[0]采用多级同步器方式同步,src_bus[1]采用同步控制信号方式
Spyglass之CDC检查(5)
(3)检查不同bit信号是否使用同一个同步控制信号。如下图src_bus[0]与src_bus[1]采用不同的同步控制信号。
Spyglass之CDC检查(5)

AC_fifo01

检查设计中的FIFO是否会上溢或下溢

AC_handshake01/02

(1)检查REQ-ACK信号是否满足四相握手协议:
REQ拉高->ACK拉高->REQ拉低->ACK拉低
Spyglass之CDC检查(5)
(2)检查是否会有数据丢失