我很想了解在模拟器中生成软件时钟所使用的技术。我的机器的频率只有~2.4 The,但我可以使用模拟器生成高达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晶体振荡器有任何联系?
发布于 2019-08-01 14:40:47
模拟不会实时“运行”。所以它将计算步骤的结果,如果完成了,就完成了。这意味着所需步骤的数量(以及问题复杂性)与计算机性能之间的比率将定义模拟需要完成的时间。模拟的时间刻度设置就是它所说的:一种将模拟步骤关联到时间(刻度)的方法。
因此,如果你想这样叫它,它实际上是一种“幻觉”。
发布于 2019-08-08 14:38:08
SystemVerilog是一种硬件验证语言。它(主要)用于验证硬件设计。
该语言的主要目的是提供一个平台,在该平台上,人们可以通过运行仿真来创建逻辑来验证DUT,即为DUT生成不同的操作条件,并检查其在每种条件下的行为。但这并不一定意味着DUT应该在SystemVerilog测试平台生成的这种极端条件下运行。
当您从测试平台生成500THz时钟并检查DUT的行为时,您正在确保DUT即使在如此极端的条件下也不会(实际上)发生故障。但请注意,这只是您创建的虚拟环境,而不是DUT一旦合成就应该在其下运行的实际环境。
如果机器(或DUT)的最大频率为~2.5 the,则在实际环境中应以该频率运行,但出于好奇,您甚至可以通过生成不同的模拟来检查具有不同输入时钟频率的DUT的操作。
希望它能帮上忙!
https://stackoverflow.com/questions/57302232
复制相似问题