SPI_Test/tb/dacreg_tb/dacreg_driver.sv

54 lines
694 B
Systemverilog
Raw Permalink Normal View History

2024-06-25 16:41:01 +08:00
class dacreg_driver;
dacreg_trans tr;
//interface
virtual dacreg_if dif;
virtual spi_if wif;
function new();
endfunction
extern task do_drive();
extern task make_pkt();
endclass : dacreg_driver
task dacreg_driver::do_drive();
fork
while(1) begin
make_pkt();
end
join
endtask
task dacreg_driver::make_pkt();
int cnt=0;
cnt = 0;
tr = new();
if(!tr.randomize())
$fatal(0,"Randomize Failed");
while(cnt<3000) begin
@(posedge wif.clk);
cnt = cnt + 1;
case(cnt)
tr.Cal_end: dif.Cal_end <=tr.Cal_end;
endcase
end
endtask : make_pkt