欢迎光临散文网 会员登陆 & 注册

推断出来的时钟门控,我不想要

2023-03-25 12:28 作者:皮特派  | 我要投稿

比起写书,写专栏要轻松很多,不用考虑遣词造句,格式字体,让我们用白话来轻松讨论吧。

除了我们手动插入的时钟门控外,工具会自动推断出一些时钟门控,但其中有一部分,它其实不是时钟门控,而是时钟。

工具推断时钟门控的方法如下,如果A点是已声明的时钟,那么B点输入信号就会被推断为时钟门控,C点就是门控后的时钟。

图1,时钟门控推断

但实际情况并不是这样的,我的设计中,也有A和B都是时钟的,两个都不是门控。

还有一种是时钟从pad输出,这个时候你再推断出时钟门控,再去检查时钟门控就没啥意义了,比如下图,假设A是一个想要输出的时钟,B,C,D是另外3个想要输出的信号,经过MUX 四选一输出到pad外面。由于A是时钟,B,C,D会被当成时钟门控,pad_output会被当成时钟树的一根树枝,pad_out_en又会被当成时钟门控。

图2,pad上推断的时钟门控

被推断成时钟门控后,工具就会对时钟门控做时序检查,就是setup检查和hold检查。以下是一个hold检查的例子,检查点设定为该时钟的下降沿,门控须在时钟检查点后再保持一段时间,如果不是这样,就是违例。

图3,时钟门控hold时序检查

违例了就会在min检查时报错:

图4,门控min违例提示

但在pad的例子中,B,C,D,pad_out_en信号都不是门控,不想做门控检查,不想报错,咋办?

用set_disable_clock_gating_check命令,它只能屏蔽那些推断出的门控,没法屏蔽手动插入的门控,不过我们要的就是这个。

举个例子,这是屏蔽了对A2上门控的检查。

set_disable_clock_gating_check  u_pad_mux/U3/A2

上面举的例子是hold检查,setup检查很多会被工具自动屏蔽掉,如下:

图5,一些检查自动避免了时钟门控检查


推断出来的时钟门控,我不想要的评论 (共 条)

分享到微博请遵守国家法律