System-Verilog 测试平台生成 2 个相同频率的 90 度异相时钟

System-Verilog testbench generate 2 clocks same frequency 90 degrees out of phase

对于系统 verilog 测试平台,我需要使用参数创建 2 个时钟

时钟1 = 250MHz,起始相位0度

时钟 2 = 250MHz,起始相位 90 度 w.r.t。时钟 1

我尝试了以下方法,但它对时钟生成没有影响,并且两者仍同相。我如何实现这种相移?

  parameter CLK_PERIOD = 4000; //250MHz = 4000ps

  initial
    Clock1 = 1'b0;
  always
    Clock1= #(CLK_PERIOD/2.0) ~Clock1;

  initial begin
    Clock2 = 1'b0;
    #1000; //to make it 90degrees out of phase with Clock1
  end
  always
    Clock2= #(CLK_PERIOD/2.0) ~Clock2;

Clock2 initial 块中使用 forever

module tb;
  parameter CLK_PERIOD = 4000; //250MHz = 4000ps
  bit Clock1, Clock2;
  initial
    Clock1 = 1'b0;
  always
    Clock1= #(CLK_PERIOD/2.0) ~Clock1;

  initial begin
    Clock2 = 1'b0;
    #1000; //to make it 90degrees out of phase with Clock1
    forever Clock2= #(CLK_PERIOD/2.0) ~Clock2;
  end
endmodule