System verilog 如何在不同位置找到具有相同字符串的$plusargs

System verilog 如何在不同位置找到具有相同字符串的$plusargs,system-verilog,uvm,System Verilog,Uvm,大型集成验证环境中非常普遍的问题。 我们的验证开发涉及跨越不同时区的大型团队。 组优先使用$plusargs而不是工厂机制。 可能主要原因是很难从命令行处理器设置工厂, 我们有更多的脚本层来开始模拟。 最近我发现同一个字符串在不同的环境中被用来控制环境的行为。在这种情况下,两个不同的记分板使用相同的字符串来禁用一些检查和测试通过。这两个环境都是在运行时创建的。还有一段时间,重复使用同一个字符串是可以的,并且需要所有者参与。 有没有办法从最终的详细模型中找到这样的重复,并在代码中提供位置作为警告

大型集成验证环境中非常普遍的问题。 我们的验证开发涉及跨越不同时区的大型团队。 组优先使用$plusargs而不是工厂机制。 可能主要原因是很难从命令行处理器设置工厂, 我们有更多的脚本层来开始模拟。 最近我发现同一个字符串在不同的环境中被用来控制环境的行为。在这种情况下,两个不同的记分板使用相同的字符串来禁用一些检查和测试通过。这两个环境都是在运行时创建的。还有一段时间,重复使用同一个字符串是可以的,并且需要所有者参与。 有没有办法从最终的详细模型中找到这样的重复,并在代码中提供位置作为警告

我本想创建我们自己的包装器,但问题是我们正在集成一些代码,而这些代码并不像本例中那样是我们的所有者。
谢谢,

这是一个完美的例子,说明了人们如何认为不遵循推荐的UVM方法可以更快地完成工作,而会在以后造成耗时的复杂性

我认为至少有两种可能的选择

  • 编写一个脚本,在源代码中搜索
    $plusargs
    ,希望他们已经使用了字符串文本来跟踪重复项
  • 您可以使用PLI代码覆盖
    $plusargs
    ,并使其跟踪重复项
    选择取决于您是否更擅长编写Perl/Python或C代码

    这是对你的问题非常模糊的描述。您应该添加一个示例以使其更加清晰,并删除所有关于团队协作的不必要信息$plusargs按一个顺序搜索命令行参数并返回第一个匹配项。“不同地点”是什么意思?你用什么工具?没有得到你的确切问题。你能详细说明一下吗?谢谢Dave,我不知道我可以覆盖$plusargs,我要试试。