Can't understand how covergroup sample works

I do it

....
task run_phase(uvm_phase phase);
      calc_trans tx;
    
    repeat(300)
    begin

      @(posedge ifc.clk);

      tx=calc_trans::type_id::create("tx");
      tx.a = ifc.a;
      tx.b = ifc.b;
      tx.opcode = ifc.opcode;
      tx.res=ifc.res;
      tx.error=ifc.error;

      // run write function from scoreboard
      aport.write(tx);
     end
   endtask: run_phase
   
endclass: calc_monitor

Where is my problem ?