在(系统)verilog 仿真中从命令行定义参数

Defining parameters from command line in (system)verilog simulation

我有一个模块“'constrained'”,其中有几个延迟作为参数。 我想模拟模块中延迟的所有可能配置。

因为我有很多配置要测试,所以我不想在同一个测试台中实例化所有可能的配置。

我的想法是为每个配置启动一个模拟。

我想过生成一个模拟脚本来为每个延迟配置启动模拟。 问题是我无法使用从命令行检索到的值来覆盖模块的参数。

我用的是$value$plusargs("ARG=%d",val)val是一个变量,与后面的defparam不兼容。

最完美的做法是从命令行参数创建定义或本地参数,但我在研究中没有找到任何相关信息。

我也乐于接受任何关于以另一种方式进行这些模拟的建议,也许更有效,因为我认为这样做会很长。

PS:为了避免为每种配置重新编译和重新启动模拟器,我还考虑过在每种情况下重新实例化经过测试的模块。然而,我认为使用(系统)verilog 是不可能的。

Modelsim/Questa 允许您从模拟命令行覆盖参数,但这样做会降低模拟性能。寻找 vsim -Gparamname 选项。

在您的情况下,如果您可以为这些延迟使用变量而不是参数来编写模块,然后使用 $value$plusargs 直接设置它们,那就更好了。