UVM regmodel怎么创建新的寄存器访问属性
时间: 2023-10-20 09:14:17 浏览: 52
要创建新的寄存器访问属性,需要按照以下步骤进行:
1.定义新的寄存器访问属性类型,例如“my_access_type”,并继承“uvm_reg_access”类。
2.在“my_access_type”类中定义新的寄存器字段,例如“my_field”,并在构造函数中进行初始化。
3.如果需要添加自定义的寄存器操作或行为,可以重写“uvm_reg_access”类中的相应方法,例如“pre_access”,“post_access”,“get_permission”,“get_kind”等。
4.在UVM Register模型中,注册新的寄存器访问属性类型,可以使用“uvm_reg_access”类的“register_access”方法。
例如,以下是创建一个新的寄存器访问属性类型“my_access_type”的示例代码:
```systemverilog
class my_access_type extends uvm_reg_access;
rand bit [1:0] my_field;
function new(string name = "my_access_type");
super.new(name, UVM_ACCESS_NONE, UVM_BACKDOOR);
my_field = 0;
endfunction
virtual function uvm_status_e pre_access(uvm_reg_item rw);
//customize the pre_access behavior
endfunction
virtual function uvm_status_e post_access(uvm_reg_item rw);
//customize the post_access behavior
endfunction
endclass
initial begin
uvm_reg_access::register_access(my_access_type::get_type(), "my_access_type");
end
```