我需要2个不同频率的时钟工作。
但是如果我写的那样
forever
begin
#5ns clk1=~clk1;
#4ns clk2=~clk2;
end
在clk1完成后,clk2将生成,它们不会同时生成。无论如何要让它发挥作用?
答案 0 :(得分:2)
一种方法是使用2个单独的intital
块:
module tb;
bit clk1, clk2;
initial forever #5ns clk1 = ~clk1;
initial forever #4ns clk2 = ~clk2;
endmodule
另一种方法是使用intital
/ fork
而不是join
/ begin
的单个end
块。
答案 1 :(得分:1)
begin / end
块中的语句按顺序进行评估。您需要创建两个forever
块才能并行运行。
forever begin
#5ns clk1 = ~clk1;
end
forever begin
#4ns clk2 = ~clk2;
end
答案 2 :(得分:-1)
尝试使用非阻止分配
forever
begin
#5ns clk1 <= ~clk1;
#4ns clk2 <= ~clk2;
end