quick.gif

space2.gif

space2.gif

space2.gif

space2.gif

space2.gif

space2.gif

space2.gif

   

space.gif

   

space.gif

  ../images/main/bulllet_4dots_orange.gif Defining Transition Coverage Items

Transition items are items for which value changes are collected in the coverage data. The transition coverage group item is used to define transition items.

   

space.gif

Syntax

   

space.gif

transition item-name [using coverage-item-option, ...]
   

space.gif

Where

   

space.gif

Parameter

Description

item-name

A coverage item defined previously in the current coverage group.

coverage-item- option

An option for the cross item.

   

space.gif

   

space.gif

Options

   

space.gif

Option

Description

at_least=num

The minimum number of samples for each bucket of the item. Anything less than num is considered a hole.

ignore=item-bool-exp

Define values that are to be completely ignored. They do not appear in the statistics at all. The expression is a Boolean expression that can contain a coverage item name and constants.

illegal=item-bool-exp

Define values that are illegal. An illegal value causes a DUT error. If the check_illegal_immediately coverage configuration option is FALSE, the DUT error occurs during the check_test phase of the test. If that configuration option is TRUE, the DUT error occurs immediately (on the fly). Note that checking illegal values immediately has a significant negative impact on Specman performance.

name=label

Specifies a name for a cross coverage item. No white spaces are allowed in the label. The default is cross__item-a__item-b

no_collect=bool

When no_collect[=TRUE], this coverage item is not displayed in coverage reports and is not saved in the coverage files.

per_instance=bool

When per_instance[=TRUE], coverage data is collected and graded for all the other items in a separate sub-group for each bucket of this item. This option can only be used for gradeable items.

text=string

A text description for this coverage item. This can only be a quoted string, not a variable or expression. In the ASCII coverage report the text is shown along with the item name at the top of the coverage information for the item. In the Show Coverage GUI, the text is shown for each item.

weight=uint

Specifies the weight of the current item relative to other items in the same coverage group. It is a non-negative integer with a default of 1.

when=bool-exp

The item is sampled only when bool-exp is TRUE. The bool-exp is evaluated in the context of the parent struct.

   

space.gif

   

space.gif

  ../images/main/bullet_star_pink.gif Example
   

space.gif


  1 <'
  2 type cpu_state: [START, FETCH1, FETCH2, EXEC]; 
  3 struct cpu { 
  4     st: cpu_state; 
  5     event state_change;
  6     cover state_change is { 
  7         item st; 
  8         transition st;  
  9     }; 
 10 
 11     post_generate() is also {
 12       emit  state_change;
 13     }
 14 }; 
 15  
 16 extend sys {
 17   cpu : cpu;
 18   run() is also {
 19     for {var i: uint = 0; i < 10 ; i = i + 1} do {
 20       gen cpu;
 21       print cpu;
 22     };
 23   };
 24 };
 25 '>
You could download file coverage5.e here
   

space.gif

  ../images/main/bullet_star_pink.gif Simulation Output
   

space.gif

  cpu = cpu-@0: cpu   of unit: sys 
	----------------------------------------------	@coverage5
0	st:                             START
  cpu = cpu-@1: cpu   of unit: sys 
	----------------------------------------------	@coverage5
0	st:                             START
  cpu = cpu-@2: cpu   of unit: sys 
	----------------------------------------------	@coverage5
0	st:                             EXEC
  cpu = cpu-@3: cpu   of unit: sys 
	----------------------------------------------	@coverage5
0	st:                             START
  cpu = cpu-@4: cpu   of unit: sys 
	----------------------------------------------	@coverage5
0	st:                             FETCH1
  cpu = cpu-@5: cpu   of unit: sys 
	----------------------------------------------	@coverage5
0	st:                             FETCH2
  cpu = cpu-@6: cpu   of unit: sys 
	----------------------------------------------	@coverage5
0	st:                             EXEC
  cpu = cpu-@7: cpu   of unit: sys 
	----------------------------------------------	@coverage5
0	st:                             START
  cpu = cpu-@8: cpu   of unit: sys 
	----------------------------------------------	@coverage5
0	st:                             START
  cpu = cpu-@9: cpu   of unit: sys 
	----------------------------------------------	@coverage5
0	st:                             START
Wrote 1 cover_struct to coverage5_1.ecov
   

space.gif

  ../images/main/bullet_star_pink.gif Coverage
   

space.gif

 Cover group: cpu.state_change
 =============================
 
 Grade: 0.69  Weight: 1
 
 ** st **
 Samples: 11  Tests: 1  Grade: 1.00  Weight: 1
 
 grade    goal   samples  tests    %t    st
 ------------------------------------------------
  1.00       1         6     1     55    START
  1.00       1         1     1      9    FETCH1
  1.00       1         1     1      9    FETCH2
  1.00       1         3     1     27    EXEC
 
 
 ** transition__st **
 Samples: 10  Tests: 1  Grade: 0.38  Weight: 1
 
 grade    goal   samples  tests    %t    prev_st=>st
 ------------------------------------------------
  1.00       1         3     1     30    START=>START
  1.00       1         1     1     10    START=>FETCH1
  0.00       1         0     0      0    START=>FETCH2
  1.00       1         1     1     10    START=>EXEC
  0.00       1         0     0      0    FETCH1=>START
  0.00       1         0     0      0    FETCH1=>FETCH1
  1.00       1         1     1     10    FETCH1=>FETCH2
  0.00       1         0     0      0    FETCH1=>EXEC
  0.00       1         0     0      0    FETCH2=>START
  0.00       1         0     0      0    FETCH2=>FETCH1
  0.00       1         0     0      0    FETCH2=>FETCH2
  1.00       1         1     1     10    FETCH2=>EXEC
  1.00       1         3     1     30    EXEC=>START
  0.00       1         0     0      0    EXEC=>FETCH1
  0.00       1         0     0      0    EXEC=>FETCH2
  0.00       1         0     0      0    EXEC=>EXEC
   

space.gif

   

space.gif

   

space.gif

   

space.gif

space2.gif

space2.gif

space2.gif

space2.gif

space2.gif

  

Copyright © 1998-2014

Deepak Kumar Tala - All rights reserved

Do you have any Comment? mail me at:deepak@asic-world.com