其他分享
首页 > 其他分享> > UVM RAL : Integrating RAL to Agent

UVM RAL : Integrating RAL to Agent

作者:互联网

Integrating RAL to Agent

在 RAL 实例化之后,RAL 必须与 Bus Agent 连接。本节介绍将 RAL 与总线的sequencer和monitor连接。

Integrating Bus Sequencers

所有集成方法都需要为寄存器模型配置一个或多个总线sequencers。

寄存器模型成为 执行的  uvm_reg_sequence 子类型的属性

如果只有一个总线接口提供对 DUT 寄存器的访问,直接在总线sequencer上

作为一个virtual sequence,如果有一个或多个总线接口提供对 DUT 寄存器的访问;

作为一个寄存器 sequence 运行

将寄存器模型与总线monitor集成

默认情况下,寄存器模型隐式更新其寄存器值的镜像副本。每次通过寄存器模型读取或写入寄存器时,都会更新其镜像值。

如果总线接口上的其他agent在寄存器模型的上下文之外执行读写事务,寄存器模型必须了解这些总线操作以相应地更新其镜像。

class tb_env extends uvm_env;
  reg_model                     regmodel;
  uvm_reg_predictor#(ahb_trans) ahb2reg_predictor;
  reg2ahb_adapter               reg_adapter;
  ahb_agent                     ahb;
 
  virtual function void build_phase(uvm_phase phase);
    ahb2reg_predictor = new(“ahb2reg_predictor”, this);
  endfunction
 
  virtual function void connect_phase(uvm_phase phase);
    if (regmodel.get_parent() == null) begin
      reg_adapter = reg2ahb_adapter::type_id::create(“reg_adapter”,,get_full_name());
      ...
      ahb2reg_predictor.map     = regmodel.AHB;
      ahb2reg_predictor.adapter = reg_adapter;
      ahb.monitor.ap.connect(ahb2reg_predictor.bus_in);
    end
    ...
  endfunction
  ...
endclass

 

标签:RAL,总线,Agent,predictor,UVM,寄存器,adapter,reg,uvm
来源: https://www.cnblogs.com/fuqiangblog/p/16687012.html