我正在生成一个PLL仿真模型。通过$time可以找到输入参考时钟周期,并用锁相环分频器对该周期进行分频,产生锁相环输出时钟。如下所示,但是模拟器没有显示波形上的任何东西,但是没有语法错误。这种方法有什么问题?
time prev_t, periodd;
reg clk = 0;
always @(posedge CLK_PLL_IN) begin
periodd = $time - prev_t;
prev_t = $time;
end
always #(periodd/pll_div) clk = ~clk;发布于 2020-03-17 01:05:38
periodd的初始值是0,因此如果第二个always块在第一个块之前开始,您将进入零延迟循环。我还建议使用realtime和$realtime,而不是time和$time,以防periodd/pll_div的派系部分小于时间刻度。
realtime prev_t, periodd=0;
reg clk = 0;
always @(posedge CLK_PLL_IN) begin
periodd = $time - prev_t;
prev_t = $time;
end
initial wait(periodd >0)
forever #(periodd/pll_div) clk = ~clk;https://stackoverflow.com/questions/60708217
复制相似问题