Analysis ports/exports/implementations are parameterized to a particular transaction type (sequence_item as you put it). Since the same name (write) cannot be used in a class multiple times, the writes can be implemented using `uvm_analysis_imp_decl(_SFX) declarations.
Also, how can a single monitor(which usually is for a single transaction type) call different kinds of write functions? This is impossible. Different monitors calling write on different transactions can go to the same component like a scoreboard. Their implementations differing through the different write_SFX functions.
|