我有一个模块''约束'',有几个延迟作为参数。 我想模拟模块中所有可能的延迟配置。
由于我有很多要测试的配置,我不想在同一个测试平台中实例化所有可能的配置。
我的想法是为每个配置启动一个模拟。
我考虑过生成一个模拟脚本,该脚本将为每个延迟配置启动模拟。 问题是我无法使用从命令行检索的值覆盖模块的参数。
我使用了$value$plusargs("ARG=%d",val)
,val
是变量的事实与后来的defparam
不兼容。
完美的事情是从命令行参数创建一个define或localparam,但我在研究中没有找到任何关于它的内容。
我也对任何有关进行这些模拟的方法的建议持开放态度,也许更有效率,因为我认为这样做会很长。
PS:为了避免为每个配置重新编译和重新启动模拟器,我还考虑过在每种情况下重新实例化测试模块。但是我不认为(系统)verilog是可能的。
答案 0 :(得分:2)
Modelsim / Questa允许您覆盖仿真命令行中的参数,但这样做会影响仿真性能。查找vsim -Gparamname
选项。
在您的情况下,如果您可以使用变量为这些延迟而不是参数编写模块,那么会更好,然后使用$value$plusargs
直接设置它们。