1

我很想了解在模拟器中生成软件时钟所使用的技术。我的机器的频率只有 ~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

这个更高的频率只是软件错觉还是与 CPU 晶体振荡器有任何联系?

4

2 回答 2

1

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

所以如果要这样称呼它,那真的是一种“幻觉”。

于 2019-08-01T06:40:47.387 回答
0

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

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

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

如果机器(或 DUT)的最大频率约为 2.5GHz,则它应该在实际环境中以该频率运行,但出于好奇,您甚至可以通过生成不同的仿真来检查具有不同输入时钟频率的 DUT 的运行情况.

希望能帮助到你!

于 2019-08-08T06:38:08.110 回答