如何使用在运行阶段声明的数组计算检查阶段的延迟?

问题描述

iam 试图捕获 uvm 运行阶段的时间并在 uvm 检查阶段进行延迟计算延迟 = 结束时间 - 开始时间。 你能告诉我我该怎么做吗?开始和结束时间都有各自的条件在每个周期的仿真过程中被捕获到数组中,并且需要在检查阶段使用该数组进行计算。

解决方法

将数组传递给 check_phase 的两种方法:

  1. 如果需要同一个组件的check_phase中的start_time和end_time信息,可以将这两个数组都声明为类变量,而不是在run_phase内部声明并访问check_phase
  2. 如果你在其他组件中需要它,那么你可以使用 uvm_config_db set 方法传递它,一旦两个数组都填充了所需的信息

您可以在 run_phase 中计算延迟,而不是传递开始时间和结束时间数组,并使用上述两种方法之一将具有延迟信息的数组传递给 check_phase。