总结一下UVM中的寄存器访问实现:
后门访问通过add_hdl_path命令来添加寄存器路径,并扩展uvm_reg_backdoor基类,定义read与write函数,最后在uvm_reg_block类中
通过set_backdoor()来将相应的寄存器与它对应的后门访问的读写函数对应起来。其中read和write函数以路径名来直接操作。
前门访问通过总线操作来实现,在其中有uvm_adapter的扩展类,扩展了函数reg2bus和bus2reg,并在uvm_reg扩展类中用default_map
命令添加指定的sequencer和adapter。这样便可以正确的在write函数中调用reg2bus,在read函数中调用bus2reg,并调用相应的
sequencer来发送transaction。reg2bus函数,以ref的方式接收uvm_reg_bus_op类型的reg_transction,最后返回一个
bus_transaction类型的transaction。bus2reg函数,接收input的uvm_sequence_item,送出output的ref的uvm_reg_bus_op类型
的transaction。所以这两个函数,只是完成transaction形式的改变。
先这样,以后再补充。