如何使用Formal SEC证明设计手动插入的clock gating cell没有引入功能问题?

基于 Formal SEC的时钟门控验证技术是一个非常高效,但是并不是每个芯片工程师都使用过技术。很多公司的流程可能也不涉及。

设计手动插入clock gating的目的是通过关闭闲置电路的时钟来降低功耗(可能是拿内部一些vld信号作为唤醒信号,或者使用某个feature en信号),但验证其正确性极为复杂。传统仿真难以覆盖所有场景,尤其是时序边界或逻辑组合问题,可能导致功能错误或功耗异常。

如果唤醒信号有几十个,可以想象这个验证功能的复杂度吧。如果这个时候有人问你如何保证这个模块的clock gating的正确性,你肯定心里打鼓。

使用Formal SEC的步骤

  1. 创建双实例

    :生成两个相同设计的RTL实例,一个强制关闭所有非时钟门控(也就是时钟一直都在),另一个保持门控功能开启(时钟在中间可能会被gate掉)。

你可能感兴趣的:(如何使用Formal SEC证明设计手动插入的clock gating cell没有引入功能问题?)