【问题标题】:How to generate 400MHz & 500MHz clocks from 100MHz clock using Verilog? [closed]如何使用 Verilog 从 100MHz 时钟生成 400MHz 和 500MHz 时钟? [关闭]
【发布时间】:2020-09-03 08:25:16
【问题描述】:

对于 400 MHz:

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

这不起作用。

【问题讨论】:

  • 一般你不能。您可以从更快的时钟生成更慢的时钟,但反之则不行。最好有一个快时钟,它是所有慢时钟的共同点。因此,您可以轻松地从 2Ghz 时钟生成两者,但不能从 100Mhz 生成。

标签: verilog clock


【解决方案1】:

这是生成 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 声明为 4 状态信号,如 reg,但未将其初始化为 0 或 1,它在您的模拟中仍为 x
  2. 您没有正确设置时间刻度来生成所需的频率。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-28
    • 1970-01-01
    • 1970-01-01
    • 2020-07-28
    • 1970-01-01
    • 2021-11-29
    相关资源
    最近更新 更多