46 lines
734 B
Systemverilog
46 lines
734 B
Systemverilog
class sysreg_monitor;
|
|
|
|
|
|
virtual sysreg_if vif;
|
|
virtual sram_if#(25,32) xif;
|
|
|
|
//collect
|
|
sysreg_trans act_trans[$];
|
|
|
|
|
|
function new();
|
|
endfunction
|
|
extern task collect();
|
|
extern task do_mon();
|
|
|
|
endclass : sysreg_monitor
|
|
|
|
|
|
task sysreg_monitor::do_mon();
|
|
|
|
while(1) begin
|
|
@(negedge xif.wren);
|
|
collect();
|
|
end
|
|
|
|
endtask: do_mon
|
|
|
|
|
|
|
|
|
|
task sysreg_monitor::collect();
|
|
sysreg_trans tr_temp;
|
|
|
|
@(posedge xif.clk);
|
|
@(negedge xif.clk);
|
|
|
|
tr_temp = new();
|
|
tr_temp.dbg_enable = vif.dbg_enable ;
|
|
tr_temp.dbg_data_sel = vif.dbg_data_sel ;
|
|
tr_temp.dbg_ch_sel = vif.dbg_ch_sel ;
|
|
tr_temp.irq = vif.irq ;
|
|
|
|
act_trans.push_back(tr_temp);
|
|
|
|
endtask: collect
|