Formality笔记

插入clock gate之后FV失败的问题

相关变量:verification_clock_gate_hold_mode

在默认情况下,fm认为增添了门控插入(综合时)和之前没有门控的RTL的寄存器是不相等的 也就是说,如果综合时,使用了命令进行了门控插入,那么在形式验证时,就需要设置相应的verification_clock_gate_hold_mode.

user guide上面说这个可以设置成几个值,
* “none” - does not consider clock-gated flip-flop states equivalent to non-clock-gated flip-flop states (the default).
* “low” - considers latch-based clock gating, and combinational clock gating that holds the clock low when inactive (or high for falling-edge-triggered flip-flops).
* “high” - considers combinational clock gating that holds the clock high when inactive (or low for falling-edge-triggered flip-flops).
* “any” - considers both “high” and “low” styles of clock gating within the same design.

clock gating 应该就是只有两种形式的gating:
AND gate
OR gate
当插入的逻辑是and gate 的时候,这个值设置成low
当插入的逻辑是or gate 的时候,这个值设置成high

当然,如果Reference电路中的clock gate是RTL设计者插入的,在综合的时候用power compiler插入的,这个值就应该被设置成none。
如果Implement电路中的Clock Gate是implement在后端实现的过程中,为了修改电路的某些行为而插入的。那么它的EN端与电路的连接关系,在Reference电路中是不存在的。如果此变量设置成“none”,FV时,此clock gate后面的所有FF都会fail。此时,应该根据插入的clock gate的类型是AND Gate还是OR Gate,将变量设计成相应的值(Low/High)。

以上,参考自:
http://xilinx.eetop.cn/viewthread-466441
http://edabbs.com/archiver/?tid-129506.html
http://edabbs.com/redirect.php?tid=130494&goto=lastpost

  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值