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

时间:2016-04-05 10:04:33

标签: verilog system-verilog hdl register-transfer-level

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

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

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

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

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

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

我也对任何有关进行这些模拟的方法的建议持开放态度,也许更有效率,因为我认为这样做会很长。

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

1 个答案:

答案 0 :(得分:2)

Modelsim / Questa允许您覆盖仿真命令行中的参数,但这样做会影响仿真性能。查找vsim -Gparamname选项。

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

相关问题