数组定位器函数的原型

Prototype for array locator functions

我正在考虑创建一个通用的 task/function,它将从任何给定的 ovm 分析端口读取一个事务,如果该事务匹配用户提供的某些约束,那么我将触发一个找到匹配事务的事件。

我希望用户传递约束,就像我们使用 with 子句通过数组定位器函数传递它一样

out = arr.find_first with (item == 10);

许多 SystemVerilog 构造中的 with 子句对 OOP 不是很友好。无法将 with 表达式作为参数传递。

您可能想尝试的两种软件设计模式是

  • 工厂 - 允许用户使用差异比较功能扩展这些功能
  • 政策 class - 您可以制定 class 其唯一目的是提供比较功能。