Can i use 3 fifos, 1 for expected transaction coming from 1st agent and 2 fifos for observed transaction coming from 2 different duts

hi sir. i have 2 agents with 3monitors in them.

  1. 1st agent contains driver,monitor,sequencer. this agent- monitor sends the expected transactions to comparator to compare with the observed transactions which comes from the 2nd agent in the scoreboard.
  2. 2nd agent contains 2 monitors 1 with valid data, other with random data.

my comparator has a uvm_tlm_analysis_fifo (exp_fifo.get) to get the values of expected transactions at one side after i get them i will trigger a ->EV event. On other side i have 2 monitors with the same trigger waits @(EV) in each of them, once their wait is over, pin activity converts to transactions and sent to comparator.

if i want to compare with my expected transaction with observed transaction.
so do i need to involve 2 fifos, obs1_fifo to get monitor1 value and obs2_fifo to get monitor2 values and compare?? or can i compare compare like this (exp.a==obs1.a or exp.a==obs2.a) then pass if not fail in comparator block??

In reply to subbarao:

You can also use 5 or 6 fifos if you need them. It depends on your requirements.