Is this a tool issue or a SystemVerilog language issue?
Compilation with code below yielded the following:
"Construction of embedded covergroup (defined in a class) is not supported except in constructor 'new()' of covergroup's parent class"
virtual function void build();
super.build();
m_xactn=counter_xactn::type_id::create("m_xactn", this);
this.cntr_cvg = new(); // *** TOOL SAYS NO ON THIS *** ?Q*&&?QW?????
endfunction : build
function new(string name, uvm_component parent);
super.new(name,parent);
m_name=get_type_name();
m_name=m_name.toupper();
// m_xactn=counter_xactn::type_id::create("m_xactn", this);
// // m_aport = new("m_aport", this);
// this.cntr_cvg = new(); // *** TOOL WANTS THIS // ONLY OK ON THIS
endfunction : new
endclass : counter_monitor_cvg

Dave Rich
Mentor Graphics
http://go.mentor.com/drich
Dave,
Thanks. Why this restriction on covergroup? Are there other things that "have to be in the new()" instead of the "build"?
Three things that the language requires to be in new()
I believe the embedded covergroup restriction has to do the fact that the covergroup is really part of the class type, and its construction has to be in synchronization with the class construction. And there are problems with per-class-type covergroup collection as well of the construction of all covergroups is not synchronized.
Dave Rich
Mentor Graphics
http://go.mentor.com/drich