实时 CPU 时钟与高频软件时钟

Realtime CPU clock vs High Frequency Software clock

我很想了解在模拟器中生成软件时钟所使用的技术。我机器的频率只有 ~2.4GHz,但我可以使用模拟器生成高达 500THz 的时钟(请参阅下面的系统 Verilog 片段)。

`timescale 1fs/1fs;//This is the minimum time-unit and precision that can be used to generate 500THz clock
module temp();
  bit clk_b;
  always #1 clk_b =~ clk_b ;
endmodule

这个更高的频率只是软件的错觉还是它有任何 link 和 CPU crystal 振荡器?

模拟不是实时的"run"。因此它将计算步骤的结果,如果完成则完成。这意味着所需步骤数(以及问题复杂性)与您的计算机性能之间的比率将决定模拟完成所需的时间。模拟的时间刻度设置正如它所说:一种将模拟步骤与时间(刻度)相关联的方法。

如果你想这样称呼它,它确实是一个 "illusion"。

SystemVerilog 是一种 HVL,即硬件验证语言。它(主要)用于验证硬件设计。

该语言的主要目的是提供一个平台,人们可以在其中创建逻辑以通过 运行 模拟验证 DUT,即为 DUT 生成不同的操作条件并检查其在每种条件下的行为。但这并不一定意味着 DUT 应该在 SystemVerilog 测试平台生成的这种极端条件下运行。

当您从测试台生成 500THz 时钟并检查 DUT 的行为时,您要确保 DUT 即使在这种极端条件下也不会(实际上)发生故障。但请注意,这只是您创建的虚拟环境,而不是 DUT 合成后应运行的实际环境。

如果机器(或 DUT)的最大频率是 ~2.5GHz,它应该在实际环境中以该频率运行,但出于好奇,您甚至可以使用不同的输入时钟检查 DUT 的运行情况通过生成不同的模拟频率。

希望对您有所帮助!