
Defining Cross Coverage Items
Syntax
cross item-name-1, item-name-2, ... [using coverage-item-option, ...] | Where | ||
| . | ||
| item-name-1, item-name-2, ... | Each item name must be one of the following. | . |
| . | The name of an item defined previously in the current coverage group | . |
| . | The name of a transition item defined previously in the current coverage group | . |
| . | The name of a cross item defined previously in the current coverage group | . |
| coverage-item- option | An option for the cross item. | . |
Options
|
| ||||||||||||||||||
| Example |
1 <'
2 type cpu_opcode: [ADD, SUB, OR, AND, JMP, LABEL];
3 type cpu_reg: [reg0, reg1, reg2, reg3];
4
5 struct inst {
6 opcode: cpu_opcode;
7 op1: cpu_reg;
8 op2: byte;
9 event info;
10 event data_change;
11 event inst_driven;
12 cover data_change using no_collect is {
13 item data: uint(bits:16) = op2;
14 };
15 cover info is {
16 item opcode using per_instance, ignore = (opcode == ADD);
17 };
18 cover inst_driven is {
19 item opcode;
20 item op1 using at_least=2;
21 cross opcode, op1;
22 };
23
24 post_generate() is also {
25 emit info;
26 emit data_change;
27 emit inst_driven;
28 };
29 };
30
31 extend sys {
32 inst : inst;
33 run() is also {
34 for {var i: uint = 0; i < 10 ; i = i + 1} do {
35 gen inst;
36 print inst;
37 };
38 };
39 };
40 '>
Simulation Output inst = inst-@0: inst of unit: sys ---------------------------------------------- @coverage40 opcode: ADD1 op1: reg32 op2: 59 inst = inst-@1: inst of unit: sys ---------------------------------------------- @coverage40 opcode: OR1 op1: reg32 op2: 90 inst = inst-@2: inst of unit: sys ---------------------------------------------- @coverage40 opcode: SUB1 op1: reg32 op2: 188 inst = inst-@3: inst of unit: sys ---------------------------------------------- @coverage40 opcode: JMP1 op1: reg32 op2: 97 inst = inst-@4: inst of unit: sys ---------------------------------------------- @coverage40 opcode: OR1 op1: reg12 op2: 105 inst = inst-@5: inst of unit: sys ---------------------------------------------- @coverage40 opcode: LABEL1 op1: reg22 op2: 4 inst = inst-@6: inst of unit: sys ---------------------------------------------- @coverage40 opcode: SUB1 op1: reg12 op2: 14 inst = inst-@7: inst of unit: sys ---------------------------------------------- @coverage40 opcode: LABEL1 op1: reg32 op2: 204 inst = inst-@8: inst of unit: sys ---------------------------------------------- @coverage40 opcode: JMP1 op1: reg22 op2: 170 inst = inst-@9: inst of unit: sys ---------------------------------------------- @coverage40 opcode: LABEL1 op1: reg02 op2: 250Wrote 1 cover_struct to coverage4_1.ecovCoverageCover group: inst.info
======================
Grade: 0.80 Weight: 1
** opcode **
Samples: 10 Tests: 1 Grade: 0.80 Weight: 1
grade goal samples tests %t opcode
------------------------------------------------
1.00 1 2 1 20 SUB
1.00 1 3 1 30 OR
0.00 1 0 0 0 AND
1.00 1 2 1 20 JMP
1.00 1 3 1 30 LABEL
Cover group: inst.inst_driven
=============================
Grade: 0.71 Weight: 1
** opcode **
Samples: 11 Tests: 1 Grade: 0.83 Weight: 1
grade goal samples tests %t opcode
------------------------------------------------
1.00 1 1 1 9 ADD
1.00 1 2 1 18 SUB
1.00 1 3 1 27 OR
0.00 1 0 0 0 AND
1.00 1 2 1 18 JMP
1.00 1 3 1 27 LABEL
** op1 **
Samples: 11 Tests: 1 Grade: 0.88 Weight: 1
grade goal samples tests %t op1
------------------------------------------------
0.50 2 1 1 9 reg0
1.00 2 2 1 18 reg1
1.00 2 2 1 18 reg2
1.00 2 6 1 55 reg3
** cross__opcode__op1 **
Samples: 11 Tests: 1 Grade: 0.42 Weight: 1
grade goal samples tests %p/%t opcode/op1
------------------------------------------------------
0.25 - 1 1 9/9 ADD
0.00 1 0 0 0/0 ADD/reg0
0.00 1 0 0 0/0 ADD/reg1
0.00 1 0 0 0/0 ADD/reg2
1.00 1 1 1 100/9 ADD/reg3
0.50 - 2 1 18/18 SUB
0.00 1 0 0 0/0 SUB/reg0
1.00 1 1 1 50/9 SUB/reg1
0.00 1 0 0 0/0 SUB/reg2
1.00 1 1 1 50/9 SUB/reg3
0.50 - 3 1 27/27 OR
0.00 1 0 0 0/0 OR/reg0
1.00 1 1 1 33/9 OR/reg1
0.00 1 0 0 0/0 OR/reg2
1.00 1 2 1 67/18 OR/reg3
0.00 - 0 0 0/0 AND
0.50 - 2 1 18/18 JMP
0.00 1 0 0 0/0 JMP/reg0
0.00 1 0 0 0/0 JMP/reg1
1.00 1 1 1 50/9 JMP/reg2
1.00 1 1 1 50/9 JMP/reg3
0.75 - 3 1 27/27 LABEL
1.00 1 1 1 33/9 LABEL/reg0
0.00 1 0 0 0/0 LABEL/reg1
1.00 1 1 1 33/9 LABEL/reg2
1.00 1 1 1 33/9 LABEL/reg3 Bạn Có Đam Mê Với Vi Mạch hay Nhúng - Bạn Muốn Trau Dồi Thêm Kĩ Năng
Mong Muốn Có Thêm Cơ Hội Trong Công Việc
Và Trở Thành Một Người Có Giá Trị Hơn
Mong Muốn Có Thêm Cơ Hội Trong Công Việc
Và Trở Thành Một Người Có Giá Trị Hơn





