SPI_Test/tb/sysreg_tb/sysreg_monitor.sv

46 lines
734 B
Systemverilog
Raw Permalink Normal View History

2024-06-25 16:41:01 +08:00
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