|
|
|
|
|
|
|
|
|
|
|
|
cross
|
|
|
cross is used for creating permutation and combitation of state and tran bins creater in coverage group. Basically this is used for creating more deep functional coverage points. |
|
|
|
|
|
Lets assume we have |
|
|
|
|
|
- variable a which is 1 bit wide and states are S0 and S1
- variable b whish is also is 1 bit wide and states are M0 and M1
- when we do cross on samples of a and b it creates S0M0, S0M1, S1M0, S1M1.
- Basically it means when S0 occured, did M0 occured, same for other states
|
|
|
|
|
|
|
|
|
|
|
|
Example
|
|
|
|
|
|
1 class coverage_cross {
2 bit [1:0] value1;
3 bit [1:0] value2;
4 event now;
5
6 coverage_group something {
7 sample_event = sync(ALL,now);
8 sample value1,value2;
9 cross MY_CROSS (value1,value2);
10 }
11
12 task update_coverage (bit [1:0] value1,bit [1:0] value2) {
13 this.value1 = value1;
14 this.value2 = value2;
15 trigger(now);
16 }
17 }
18
19
20
21 program test {
22 coverage_cross cov = new();
23 bit [1:0] v1;
24 bit [1:0] v2;
25 repeat (10) {
26 v1 = random();
27 v2 = random();
28 printf("Value is %0d %0d\n",v1,v2);
29 cov.update_coverage(v1,v2);
30 delay(1);
31 }
32 }
You could download file coverage_cross.vr here
|
|
|
|
|
|
Simulation log
|
|
|
|
|
|
Value is 0 1
Value is 3 1
Value is 1 2
Value is 2 3
Value is 3 1
Value is 2 3
Value is 1 2
Value is 2 0
Value is 0 3
Value is 2 2
|
|
|
|
|
|
Coverage Report
|
|
|
|
|
|
Group : test::coverage_cross::something
====================================================
Group : test::coverage_cross::something
====================================================
Score Weight Goal
81.25 1 100
====================================================
Samples for Group : test::coverage_cross::something
Variable Expected Covered Percent Goal Weight
Total 8 8 100.00
value1 4 4 100.00 100 1
value2 4 4 100.00 100 1
Crosses for Group : test::coverage_cross::something
Cross Expected Covered Percent Goal Weight
Total 16 7 43.75
MY_CROSS 16 7 43.75 100 1
====================================================
Summary for variable value1
Expected Covered Percent
Automatically Generated Bins 4 4 100.00
Automatically Generated Bins for value1
Bins
name count at least
auto[0] 2 1
auto[1] 2 1
auto[2] 4 1
auto[3] 2 1
====================================================
Summary for variable value2
Expected Covered Percent
Automatically Generated Bins 4 4 100.00
Automatically Generated Bins for value2
Bins
name count at least
auto[0] 1 1
auto[1] 3 1
auto[2] 3 1
auto[3] 3 1
====================================================
Summary for cross MY_CROSS
Samples crossed: value1 value2
Expected Covered Percent Missing
Automatically Generated Cross Bins 16 7 43.75 9
Automatically Generated Cross Bins for MY_CROSS
Uncovered bins
value1 value2 count at least
[auto[0]] [auto[0]] 0 1
[auto[0]] [auto[2]] 0 1
[auto[1]] [auto[0] - auto[1]] -- -- (2 bins)
[auto[1]] [auto[3]] 0 1
[auto[2]] [auto[1]] 0 1
[auto[3]] [auto[0]] 0 1
[auto[3]] [auto[2] - auto[3]] -- -- (2 bins)
Covered bins
value1 value2 count at least
auto[2] auto[2] 1 1
auto[2] auto[0] 1 1
auto[2] auto[3] 2 1
auto[0] auto[3] 1 1
auto[0] auto[1] 1 1
auto[1] auto[2] 2 1
auto[3] auto[1] 2 1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Copyright © 1998-2014 |
Deepak Kumar Tala - All rights reserved |
Do you have any Comment? mail me at:deepak@asic-world.com
|
|