关于UVM寄存器模型的理解

发布时间 2023-08-20 14:20:28作者: Juremy-420-bling

UVM中的RAL寄存器模型的意义:让开发者能够方便,快速地配置dut的寄存器。

RAL寄存器模型的实质:仍然是UVM中的一个类,但不是作为组件,而是和sequence一样,在basetest中被实例化和使用。本质上,RAL模型与DUT的通信还是依赖于agent的,其顺序是RAL模型通过发起sequence,信息经过adapter转换,给到agent的sequencer,最终由driver来和dut进行通信。

 

 

 

实现RAL寄存器模型的逻辑:1设计并实现RAL寄存器模型。 2在basetest中实例化,并做好配置,连接等工作。 3调用rm(register model)的句柄,实现前门、后门访问。

用什么方法实现一个RAL:

1 通过继承uvm_reg, uvm_reg_block来构建寄存器模型(利用到的知识有 uvm_reg的层次,configure等的function)。

2 构建adapter,作为sequence和sequencer的中间件,在adapter内部实现reg2bus,bus2reg的function。

 register model 会发送给sequence一个uvm_reg_bus_op变量(这条从rm到seuqence的路径不需要写代码),adapter根据方向调用reg2bus/bus2reg,根据读/写请求,在transaction中传递信息。

3 在basetest中实例化register model和adapter, 

  这一步骤要做两件事情,第一,对rm进行configure,build, lock, reset等操作,第二,然后对其中的default_map,进行set_sequencer.