Cover statement can be used to monitor sequences and other behavioral aspects of the design. The tools can gather information about the evaluation and report the results at the end of simulation. When the property for the cover statement is successful, the pass statements can specify a coverage function, such as monitoring all paths for a sequence. The pass statement shall not include any concurrent assert, assume or cover statement. A cover property creates a single cover point.

Coverage results are divided into two: coverage for properties, coverage for sequences.
For sequence coverage, the statement appears as:

Cover property ( sequence_expr ) statement_or_null

Cover Property Results

The results of coverage statement for a property shall contain:
Number of times attempted
Number of times succeeded
Number of times failed
Number of times succeeded because of vacuity

In addition, statement_or_null is executed every time a property succeeds.

Vacuity rules are applied only when implication operator is used. A property succeeds non-vacuously only if the consequent of the implication contributes to the success.

Cover Sequence Results

Results of coverage for a sequence shall include:
Number of times attempted
Number of times matched (each attempt can generate multiple matches)

In addition, statement_or_null gets executed for every match. If there are multiple matches at the same time, the statement gets executed multiple times, one for each match.

It is recommended to cover sequences and not properties and its easy to convert a property into a sequence if required.

(S) Coverage property can be declared in

A design or a separate module
Program block

Cover properties are not allowed in class.

Comparison Of Cover Property And Cover Group.

Cover groups can reference data sets where as cover property references a temporal expression.

Cover group can be triggered using .sample method ()
Cover property dont have this option.

Cover group has multiple bins options.
Cover property has only one bin.

Cover group cannot handle complex temporal relationships.
Cover properties can cover complex temporal expressions.

Cover group automatically handles the crosses.
Cover properties cannot do crosses.

Cover group has lot of filtering options.
Cover property has no specific filtering constructs but it can be filtered.

Cover properties cannot be used in classes.
Cover groups can be used in classes. So, cover groups can reference the variables in class.

Cover groups are most useful at a higher level of abstractions where as cover property makes sense to use when we want to work at low level signals.

We can mix cover group and cover property to gain the OO and temporal advantages. Using properties for temporal expressions and trigger the cover group.

Cover Group
Cover Points
Coverpoint Expression
Generic Coverage Groups
Coverage Bins
Explicit Bin Creation
Transition Bins
Wildcard Bins
Ignore Bins
Illegal Bins
Cross Coverage
Coverage Options
Coverage Methods
System Tasks
Cover Property

Report a Bug or Comment on This section - Your input is what keeps Testbench.in improving with time!




copyright 2007-2017 :: all rights reserved www.testbench.in::Disclaimer