1. define 参数
`define AHB_WRITE(addr, data); begin \
ahb_seq seq_h; \
seq_h = ahb_seq#(...)::type_id::create(...);
seq_h.addr = addr; \
seq_h.data = data; \
... end
2. 使用define参数的值
使用##来使用define参数引用变量的值
`define REG_TO(x) TCSR_REG_##x
//usage
`REG_TO(1) //TCSR_REG_1
3. 使用define参数本身的变量名(字符串)
使用``来引用将传进来的值(变量名本身的字符串)
`define decl_class_base(SUFFIX) \
class ahb_trans_``SUFFIX #(type T=int) \
extern ahb_trans_base #(uvm_tlm_if #(T,T))
`uvm_info(`"ahb_trans_``SUFFIX", `"ahb_trans_``SUFFIX start!", UVM_LOW)
function void ahb_write(input T t);
super.write``SUFFIX( t);
endfunction
//usage
`decl_class_base(error) //declare ahb_trans_error class