ecco 1 Report post Posted June 19, 2013 I'm trying to keep track of an enumeration... the code is pretty simple: public: enum req_type_t { DMA_WRITE, DMA_READ, LAT_WRITE, LAT_READ, NONE // Used to intialize the variable when the constructor is called without parameters }; inline friend void sc_trace(sc_trace_file *tf, const req & m, const std::string & NAME ) { const char* names[] = {"WRITE", "READ", "LAT_WRITE", "LAT_READ", "NONE"}; sc_trace(tf, m.req_type, NAME+".req_type", names); (...) When I run it tells me that enum tracing is deprecated... what is the current enum tracing method? mofo@mofobox:~/controller$ ./main SystemC 2.3.0-ASI --- Jun 13 2013 15:06:45 Copyright © 1996-2012 by all Contributors, ALL RIGHTS RESERVED Note: VCD trace timescale unit is set by user to 1.000000e-10 sec. Info: (I804) /IEEE_Std_1666/deprecated: tracing of enumerated literals is deprecated Info: (I804) /IEEE_Std_1666/deprecated: You can turn off warnings about IEEE 1666 deprecated features by placing this method call as the first statement in your sc_main() function: sc_report_handler::set_actions("/IEEE_Std_1666/deprecated", SC_DO_NOTHING); Share this post Link to post Share on other sites
apfitch 201 Report post Posted June 20, 2013 As far as I know there isn't one. sc_trace of enumeration types was already deprecated in 1666-2005. I suppose part of the problem is that VCD itself doesn't support enumeration types (I'm assuming VCD as defined in 1364-2001). regards Alan 1 maehne reacted to this Share this post Link to post Share on other sites
apfitch 201 Report post Posted June 20, 2013 I've just checked the SystemVerilog standard 1800-2012, and enums are dumped as the underlying data type of the enum (which defaults to 32 bit integer in SystemVerilog). regards Alan Share this post Link to post Share on other sites