UVM phase机制(二)

本文详细介绍了UVM相位机制,从m_phase_hopper.get(phase)的五个步骤出发,解析了UVM如何按顺序执行相位。重点讨论了build_phase在UVM_PHASE_EXECUTING阶段构建环境的过程,以及run_phase、run_time_phase的执行特点,特别是objection机制的作用。最后提到了extract_node、check_node、report_node和finial_node的执行顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

UVM中所有的phase是按照一定的顺序执行的,那么UVM是如何组织的?下面我们详细说明一下。
首先在phase运行之前已经生成了完整的common domain,这个common domain中的node就是执行的顺序。牵扯到的核心函数是

task uvm_phase::m_run_phases();
  uvm_root top = uvm_root::get();

  // initiate by starting first phase in common domain
  begin
    uvm_phase ph = uvm_domain::get_common_domain();
    void'(m_phase_hopper.try_put(ph));
  end

  forever begin
    uvm_phase phase;
    m_phase_hopper.get(phase);
    fork
      begin
        phase.execute_phase();
      end
    join_none
    #0;  // let the process start running
  end
endtask

变量m_phase_hopper是一个mailbox;

第一步:m_phase_hopper.get(phase):

此时拿到的phase是common_ domain,接着执行代码common_domain::execute_phase()
这个phase的phase_type类型是domain,意味着不会真正执行任何操作,接下来put到m_phase_hopper的是common_domain的唯一后继build_node;

UVM(Universal Verification Methodology)是一种基于SystemVerilog的验证方法学,它提供了一种灵活的机制来开发可重用的验证环境。UVM中定义了一系列的phase,用于控制验证环境中的各个组件的执行顺序和时序。 UVM中的phase机制主要由以下几个部分组成: 1. UVM Manager:负责管理phase的全局状态和控制phase的执行顺序。 2. UVM Phasing Mechanism:包括各个组件的phase方法和phase queue,用于在不同的phase中执行相应的任务。 3. UVM Phasing Callbacks:用于在phase开始和结束时执行相应的回调方法。 4. UVM Factory:用于创建和配置UVM组件。它提供了一种机制来动态创建和配置组件,使得验证环境更加灵活和可重用。 在UVM中,整个验证环境被分为多个阶段,每个阶段执行不同的任务。这些阶段包括: 1. Build Phase:在这个阶段中,各个组件被创建和配置。 2. Connect Phase:在这个阶段中,各个组件被连接起来,形成完整的验证环境。 3. Run Phase:在这个阶段中,进行实际的测试,包括生成测试向量、模拟等。 4. Shutdown Phase:在这个阶段中,关闭测试环境,释放资源。 在每个阶段中,UVM Manager都会调用相应的phase方法来执行各个组件的任务。各个组件可以通过实现相应的任务方法来完成各自的任务。同时,UVM还提供了一些回调方法,用于在phase开始和结束时执行一些额外的操作,例如打印日志、统计分析等。 通过使用UVMphase机制,可以使验证环境更加灵活、可重用和可维护。同时,由于UVM是基于SystemVerilog的,所以也可以很好地与设计进行集成,提高验证的效率和准确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值