Formality中的verification_set_undriven_signals变量设置

Formality中的verification_set_undriven_signals变量

前言

对于design出现的undriven signal,在做formality时需要对verification_set_undriven_signals变量进行设置,否则,formality结果failed。

一、verification_set_undriven_signals变量

Formality中关于verification_set_undriven_signals变量的介绍如下。

NAME

verification_set_undriven_signals

Specifies how Formality treats undriven nets and pins during verification.

TYPE

String

DEFAULT

“BINARY:X”

ENABLED SHELL MODES

Setup

DESCRIPTION

Use this variable to control the value that Formality assumes for undriven nets and pins.

By default, Formality treats undriven pins and nets in the reference design as BINARY (cut points) and in the implementation design as X. This conservative value results in verification failure if any matched compare point in the reference design is ever controlled by any undriven signal. This ensures that your reference design’s behavior is not controlled by any unexpected undriven signals. To be sure your reference and implementation designs propagate undriven net or pin values to compare points identically, you need to specify the value BINARY for this variable.

Note: When the synopsys_auto_setup Tcl variable is set to true, Formality sets the verification_set_undriven_signals variable to SYNTHESIS.

To change the value of the variable, use the set verification_set_undriven_signals value variable. Where value is one of the following:

X: Treats undriven pins and nets as X (don’t-care in the reference design and don’t-know in the implementation design to be consistent with the simulation).
Z: Treats undriven pins and nets as Z (high-impedance).
0: Treats undriven pins and nets as 0.
1: Treats undriven pins and nets as 1.
0:X: Treats undriven pins and nets in the reference design as 0 and in the implementation design as X (ensures undriven reference signals are tied to 0 in implementation).
BINARY: Treats each undriven pin or net as a matchable independent free variable by creating a cut point at each undriven signal. This value results in verification failure when the downstream compare points are controlled by unmatched (undriven signal) cut points.
BINARY:X: The default. Treats undriven pins and nets in the reference design as BINARY and in the implementation design as X. This value results in verification failure if any matching reference compare point is controlled by any undriven signal.
SYNTHESIS: Treats reference undriven pins and nets as treated by the Design Compiler tool and implementation undriven pins and nets as BINARY.
The PI value for this variable is deprecated and support discontinued starting with S-2021.06.

SEE ALSO

synopsys_auto_setup(3)
————————————————

一般地,不太希望设计上存在undriven。Designer Compiler工具默认只要存在undriven point,最后的网表都是会接0处理的。因此,Formality对于undriven的pin/nets在默认状态下是在ref中按照BINARY(cut)处理,在imp中按照X处理,这样操作比较保守确保,一旦存在undriven point,fm的结果就会fail。

二、如何解决由undriven nets/pins导致的failing points

在fm.tcl中一般会先set synopsys_auto_setup true,但是根据上面的描述如果set synopsys_auto_setup true之后,Formality会将verification_set_undriven_signals 变量设置为SYNTHESIS。因此需要对undriven的选项单独再设置一下,这样对设计的验证更加充分。

代码如下(示例):

set_app_var synopsys_auto_setup true
set_app_var verification_set_undriven_signals BINARY:X

如果设计中存在undriven nets/pins导致fail,首先确认设计中存在的这些undriven points是否是期望的, 如果设计中存在的这些undriven points是期望的,那么将变量verification_set_undriven_signals设置为0即可。

代码如下(示例):

set_app_var synopsys_auto_setup true
set_app_var verification_set_undriven_signals 0

总结

对于design中出现的undriven signals,Formality默认设置是failing points。因此首先确认设计中存在的这些undriven points是否是期望的,如果是期望的,在做formality时需要对verification_set_undriven_signals变量进行设置,这样才会succeed。

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值