系统 Verilog 调度程序

问题描述 投票:0回答:1

根据我对系统verilog事件调度程序的理解,我认为在每两个模拟步骤之间我们可以有几个增量周期,每个增量周期可以有许多事件,这些事件被分布到区域中,我们必须在进入下一个区域之前完成每个区域地区,但我想我错过了一些东西,那就是

  • 单独的增量周期是否每个增量周期都包含从活跃到重新 NBA 的所有区域,或者我们有活跃集区域的增量周期,我们必须先完成这些事件,然后我们可以转到观察区域的增量周期来完成它的事件,然后我们可以返回到活动区域或重新活动区域设置,我们必须完成增量周期,之后我们可以返回到活动区域设置或推迟区域或
  • 组合 Delta 周期 每个 Delta 周期都有从活跃到重新 NBA 的所有区域,我们必须完成所有这些区域才能进入下一个 Delta 周期 因此,我们是否将事件划分为 Delta 周期,这意味着每个区域集都有其 Delta周期,我们必须先完成其增量周期,然后才能进入下一个区域,或者我们将增量周期划分为事件,这意味着每个增量周期都有所有事件区域,当我们循环返回时,这意味着我们将进入下一个增量周期,并且在我们分开的情况进入 delta 周期的事件是被视为活动区域一部分的观察区域,这意味着活动、非活动、NBA、观察到的事件共享相同的 detla 周期?

我想知道调度在系统verilog中是如何工作的,我们是完成每个事件区域的增量周期还是我们首先完成每个增量周期(包括所有事件区域)

verilog system-verilog
1个回答
0
投票

SystemVerilog 没有 delta 周期 的正式定义。但实际上,通常是指事件调度程序在当前时间步内跳回较早事件区域的任何时间。

IEEE 1800-2023 SystemVerilog LRM中的4.5 SystemVerilog 模拟参考算法具有所有事件区域执行的伪代码定义,可以将每个时间步简单地表述为:

  • 执行当前区域中的事件,直到该区域为空。在一个区域执行可以将更多事件放入当前或其他区域
  • 当当前区域为空时,扫描事件区域列表并开始执行最早不为空的事件区域。
  • 当当前时间步内任何区域都没有更多事件时,将时间提前到已安排事件的时间步。

如果您忽略程序块(我强烈建议不要使用),您可以忽略重新活动/非活动区域的所有额外复杂性。并假设观察区域每个时隙仅执行一次。

© www.soinside.com 2019 - 2024. All rights reserved.