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