In reply to sai_pra99:
it is good to have a predictor and comparator for scoreboarding since it would simplify the logic and also increases the debugging of the testbench.
And to send a transaction from monitor to the scoreboard or to any other part of testbench use analysis_port, the reason is that analysis_port can be connected with one or more analysis_export or no connection at all.
Always send a transaction to any part of the testbench(i.e. scoreboard) from monitor. don’t use a driver for this purpose, because sometimes you need to configure testbench agent to acts as a passive device(means it would not has driver component, the only thing it has is monitor component). So try to send a transaction from the monitor only, not driver.