是否有针对每个对象调用多个阶段的UVM模式的名称?

时间:2016-10-10 22:59:01

标签: design-patterns uvm

在UVM中,每个uvm_object都有一组钩子,它可以选择在模拟时间内定义(或不​​定义)在定义点(阶段)的行为。大多数类需要实现或继承最常见阶段的方法,例如build_phase()connect_phase()run_phase()。不太常见的是,课程需要定义一种更具针对性的方法,例如end_of_elaboration_phase()start_of_simulation_phase()

但实际上,必须针对所有对象调用所有阶段。在下一阶段开始之前,所有对象都会看到对第一阶段的调用。在Pythonesque伪代码中,UVM基础设施正在做的是:

for phase in allPhases:
    for obj in allObjects:
        obj.phase()

这意味着当未使用该特定自定义点时,每个对象的基类必须包含null方法。

这种结构对我来说就像是一种设计模式。它有名字吗?

我认为关键功能是:

  • 实现相同界面的许多对象
  • 针对每个对象实例调用一组定义的方法
  • 方法调用有一个连续的顺序
  • 一些子类定制方法,一些子类继承null方法,因此不是每个对象都对每个方法调用都采取行动

修改

所以我的问题是,如果这种设计模式也被用于其他地方,那么你称之为这种设计模式是什么?

0 个答案:

没有答案