• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

SOC/IP验证工程师

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

寄存器模型内建sequence的uvm_reg_mem_hdl_paths_seq的用法

uvm_reg_mem_hdl_paths_seq可以用于检查hdl路径的正确性。
这个sequence的运行依赖于在基类uvm_reg_sequence中定义的一个变量:uvm_reg_block model;

class case0_cfg_vseq extends uvm_sequence;
   `uvm_object_utils(case0_cfg_vseq)
   `uvm_declare_p_sequencer(my_vsqr)
   function  new(string name= "case0_cfg_vseq");
      super.new(name);
   endfunction    
   virtual task body();
      uvm_status_e   status;
      uvm_reg_data_t value;
      uvm_reg_mem_hdl_paths_seq ckseq;////
      if(starting_phase != null) 
         starting_phase.raise_objection(this);
      ckseq = new("ckseq");////
      ckseq.model = p_sequencer.p_rm;////
      ckseq.start(null);////
      if(starting_phase != null) 
         starting_phase.drop_objection(this);
   endtask
endclass

在调用这个sequence的start任务时,传入的sequencer参数为null,因为它正常工作不依赖于这个sequencer,而依赖于model这个变量;
不仅可以检查寄存器,还可以检查存储器;
如果某个寄存器、存储器在加入寄存器模型时没有指定其hdl路径,那么此sequence在检查时会跳过这个寄存器和存储器。

posted on 2023-06-18 10:13  SOC验证工程师  阅读(231)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3