在testbench中我們經常需要加不同的delay來搭建direct pattern,可以通過plusargs來傳遞參數。如何實現呢?
`timescale 1ns/1fs
module top ;
task automatic delay_fs(longint val);
longint idx = 0;
while(idx < val)begin
#1fs;
idx++
end
endtask
initial begin
longint time_mark;
if($value$plusargs("START_TIME=%0f",time_mark))begin//用%f,爲了兼容questa,當time_mark比較大時,vcs和questa行爲不一致
delay_fs(time_mark);
@(posedge dut.clk);
force dut.src = 1;
...
end
end
endmodule