SystemVerilog Time Step

发布时间:2026/8/25 8:10:33
SystemVerilog Time Step SystemVerilog目录SystemVerilog前言一、时间片(Time Step)的仿真阶段二、input #1step在时间片中的行为1.#1step的定义2.input #1step的时序三、时间片内input #1step的具体流程(1)时间片内的执行顺序(2)对比input #0的默认行为四、时间片流程图五、实际验证场景示例(1)DUT 代码 (2)验证平台代码(3) 仿真结果六、总前言SystemVerilog Time Step在 SystemVerilog 验证环境中,时间片(Time Step)是仿真器处理事件的最小时间单位。每个时间片内,仿真器按照预定义的仿真阶段(Regions)顺序执行代码和更新信号值。理解时间片的机制是正确处理信号采样和驱动的关键,尤其是在涉及非阻塞赋值(=)和时钟块(clocking block)时。一、时间片(Time Step)的仿真阶段每个时间片(例如1ns)被划分为多个仿真阶段(Regions),按以下顺序执行:阶段顺序Region名称描述1Perponed Region执行$monitor和$strobe等语句,采样稳定值用于断言和覆盖。2Active Region执行阻塞赋值(=)、连续赋值(assign)和模块输入。3Inactive Region处理#0延迟的代码(将进程挂起到当前时间片的Inactive Region)4NBA Region执行非阻塞赋值(=),更新所有非阻塞赋值的右侧结果到左侧信号。5Observed Region评估 SystemVerilog 断言(assert、cover)。6Re-Active Region处理因断言触发或其他事件需要重新激活的进程(如$display)。7Postponed Region执$strobe和时钟块的