【无标题】--UVM sequence调试

本文介绍了如何在UVM中管理并行执行的sequence,包括在一个sequencer上启动不同sequence、使用lock和grab进行资源独占、在sequence中访问sequencer属性,以及利用virtual sequence解决时序问题。详细讲解了如何设置sequence执行优先级、通过lock和grab控制并发执行顺序,以及如何直接访问和控制sequencer的属性。
摘要由CSDN通过智能技术生成

1、一个sequencer上启动不同的sequence

需要并发手动起两个,不能使用default_sequence机制了:

class dut_sequence extends uvm_sequence #(dut_transaction);
   dut_transaction tr;

   `uvm_object_utils(dut_sequence);

   function new(string name = "dut_sequence");
      super.new(name);
   endfunction

   virtual task body();//每个sequence都有body的任务,启动sequence后自动执行该任务
      if(starting_phase != null) begin
         starting_phase.raise_objection(this);//sequence启动后起objection
         `uvm_info("dut_sequence", "raise", UVM_LOW)
      end
      repeat(3) begin
         `uvm_do(tr);//创建tr并随机化,并发送给sequencer
         `uvm_info("dut_sequence", "seq1 send", UVM_LOW);
      end

      #1000;
      if(starting_phase != null)
         starting_phase.drop_objection(this);
   endtask
endclass

class dut_sequence_0 extends uvm_sequence #(dut_transaction);
   dut_transaction tr;

   `uvm_object_utils(du
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值