[SV] module中如何把delay time作爲參數

在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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章