如何使用Verilog从100MHz时钟生成400MHz和500MHz时钟?

问题描述 投票:0回答:1

对于400 MHz:

realtime delay =1.25;
always begin
#delay clk=0;
#delay clk=1;

这不起作用。

verilog clock
1个回答
0
投票

这里是生成3个时钟的一种方法,其中100MHz时钟与其他两个时钟同步:

`timescale 1ns/10ps

module tb;

reg clk1, clk2, clk3;

initial begin : clk_100MHz
    clk1 = 0;
    forever #5 clk1 <= ~clk1;
end

initial begin : clk_500MHz
    clk2 = 0;
    forever #1 clk2 <= ~clk2;
end

initial begin : clk_400MHz
    clk3 = 0;
    forever #1.25 clk3 <= ~clk3;
end

endmodule

您没有显示完整的代码。我可以想到为什么您的代码无法正常工作的两个原因:

  1. 您将clk声明为四态信号,类似于reg,但没有将其初始化为0或1,并且在模拟中仍为x
  2. 您没有适当地设置时间表以生成所需的频率。
© www.soinside.com 2019 - 2024. All rights reserved.