2

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

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

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

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

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

完美的事情是从命令行参数创建一个定义或 localparam,但我在研究中没有找到任何关于它的信息。

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

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

4

1 回答 1

3

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

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

于 2016-04-05T11:05:57.527 回答