In reply to nisreenj:
I believe it is not a good idea to calculate functional coverage in the scoreboard. Functional coverage will be calculated without any blocking operation. The scoreboar need the blocking activities because the transaction data to compare will arrive never at the same time. A good approach is to use for the coverage collector as bas class a uvm_subscriber located in the env to calculate some global coverage or in the agentds to calculate the agent related coverage.