How to register enum type?

Hi All,

I have some problem registering the enum type variable.

I have enum type

enum {READ,WRITE} rd_e

when I am registering this fields by

ovm_field_enum{rd_e,OVM_ALL_ON}

It shows that type is not defined.

so here also I have to use typedef ?
without using typedef I can’t register in to factory ?

Thanks,
Trpp

Hi trpp,

Yes, you do need to use typedef.


The `ovm_field_enum macro requires three parameters: the enum type, the field (i.e., class property), and the flag. Here is an example of how to use this macro:

typedef enum bit {READ, WRITE} rd_e;

class my_txn extends  ovm_sequence_item;
   rand rd_e hwr_rd;
   ...
    `ovm_object_utils_begin(my_txn)  
       `ovm_field_enum(rd_e, hwr_rd,  OVM_ALL_ON)  
     ...
   `ovm_object_utils_end
    ...
endclass