I have a uvm_component which has two uvm_blocking_get_imps as follows,
    uvm_blocking_get_imp #(int, dma_busy_monitor) m_get_read_imp;
    uvm_blocking_get_imp #(int, dma_busy_monitor) m_get_write_imp;
What is the best approach to implementing both get tasks in the same component?
Thanks,
Dale.
             
            
              
              
              
            
           
          
            
            
              In reply to dshanley:
I found a reference to the same issue in the UVM Class Reference Manual, which recommended using macros, so I used this approach.
`uvm_blocking_get_imp_decl(_write)
`uvm_blocking_get_imp_decl(_read)
class my_busy_monitor extends uvm_monitor;
    uvm_blocking_get_imp_read#(int, my_busy_monitor) m_get_read_imp;
    uvm_blocking_get_imp_write#(int, my_busy_monitor) m_get_write_imp;
    task get_write(output int channel);
    ...
    endtask
    task get_read(output int channel);
    ...
    endtask
endclass
This works for me